Sunday, May 31, 2009

Thousands of websites about to bite the dust...

Yahoo announced a month ago that it was pulling the plug on GeoCities, one of the Web's first free web-hosting services. There doesn't appear to be any plan to migrate the thousands (millions?) of websites this will affect to other services. If you don't act by the end of the summer, you're Geocities website will disappear.

That is unless the Internet Archive has grabbed a copy, but they aren't likely to have many pages from each Geocities website archived. I've been conversing with someone who lost a backup of her Geocities website years ago, and IA only had a handful of pages archived. This is likely going to be a recurring story in the years ahead.

My first website was on Geocities. In fact, that's how I first learned how to use HTML in 1997. I'm so embarrased by that first website that I'm keeping the address a secret. I fear the day the Internet Archive's Wayback Machine has full-text search, because someone's going to pull it up and post it on Facebook or something. That's one stream of bites I'm not afraid of losing.

Tuesday, May 26, 2009

Flight simulator site AVSIM destroyed by hackers

This morning I got a call from an individual who alerted me to the AVSIM tragedy. Apparently this popular flight simulator website with 13 years of articles, forum posts, etc. was not being backed-up properly, and a hacker took them out.




Tom Allensworth, the website's founder, stated:
"The method of the hack makes recovery difficult, if not impossible, to recover from. AVSIM is totally offline at this time and we expect to be so for some time to come. We are not able to predict when we will be back online, if we can come back at all."

It's possible Warrick could recover a significant amount of lost content, but I have not heard from anyone at AVSIM about it. Perhaps they are using it now as we speak.

Thursday, May 21, 2009

Braden William McCown has arrived!

Braden made his appearance at 2:38 pm this afternoon. He was 8 pounds, 4 ounces, and 22" long. He had a basketball in one hand and a tennis racket in the other which made the birth very painful wink, but we were very thankful he decided to come during the day instead of the middle of the night. Ethan was excited to meet Braden and even gave him a couple of kisses. Let's hope they remain good buddies!




Becky and I are very appreciative of all the calls, emails, and Facebook messages we've received. We are excited to introduce you all to the little guy.

God is good!

Wednesday, May 20, 2009

Java Sitemap Parser

I've just released the Java Sitemap Parser on SourceForge.net. The software is capable of reading Sitemaps in XML, Atom, RSS, and text format. As far as I can tell, this is the first open source Sitemap-parsing software available on the Web.

The Java Sitemap Parser was the final project for my Search Engine Development class. I talked about the project a few weeks ago and how prevalent Sitemaps are becoming. Originally we wanted to add Sitemap support to Nutch, but developing just the parser proved to be quite a task. By releasing it as an independent project, I'm hoping Nutch, Heritrix, and other open-source crawlers will integrate it into their systems.

Tuesday, May 12, 2009

I love my teacher evaluations

Every semester I usually get evaluated by my students (I just got my results back today). They answer questions like, "How effective has the instructor been in this course?" and "Rate the instructor's command of the subject matter." All responses are anonymous.

This is common practice at most universities, and it often creates terror in the hearts of many faculty. I've known colleagues who have never read their teacher evaluations for fear of what their students might say, and I've known others who can still recite word-for-word some of the cruelest comments made by students over 20 years ago.

I've received my share of poor evaluations, especially when I was a new teacher. It took me a few semesters to get the hang of teaching, and now my evaluations are generally good (not great, but typically a little higher than the average Harding professor).

What I've found over my 10+ years of teaching is that some students give really helpful comments that can help you improve your class next time around. "I wish we could have spent some time discussing how to apply some of the new principles we learned to our project." Some students are going to really like you and let you know it. "The professor had good teaching skills, was responsive and helpful to questions, and was very knowledgeable."

Other students... well... you have to take their comments with a grain of salt. You have to realize that some students are not going to like it if you require them to work hard (many students think they should receive a B just for attending every lecture). Some students are just poor at evaluating others' performance. Others have yet to realize that they are responsible for their own learning. Occasionally a student is going to be having a bad day, and you're anonymous evaluation is going to be the perfect target.

What really helped me was learning how to properly interpret students' remarks and judge whether the criticism has merit or not. I think learning this skill is important to any new faculty member, otherwise you'll be crying yourself to sleep after reading your evaluations.

Here are a few comments I've received over the past couple of years along with my interpretation of said comment and response. smile

  1. Student 1: The projects expected a lot from the students.
    Student 2: Smaller, less-brutal projects would not be a bad idea.

    Interpretation: I thought this class was supposed to be easy!

    Response: If computer science was easy, we wouldn't be getting paid like we are, and everyone would be doing it. The projects are tough because I'm preparing you for the far more difficult and complex projects you'll encounter when you enter the workforce. You'll thank me later.


  2. Have different projects that we can choose from instead of making everyone do the same project.

    Interpretation: I like my classes like my Burger King - my way!

    Response: I always entertain ideas for new projects, but it's unreasonable for any teacher to spend hours coming up with a menu of project choices to cater to every whim. In a software development job, you are unlikely to have a boss ask you which project you'd like to work on... you'll work on what needs to be completed.


  3. Instead of making us use the programming language you want us to use, let us use one we are already familiar with.

    Interpretation: Learning something new is highly overrated.

    Response: If you graduate from Harding being comfortable with only one or two languages, you should get your money back, because we haven't adequately prepared you. You'll need to learn new languages all the time as a working professional.


  4. Disable the Internet on the classroom computers so that we can only access web sites are necessary for class. Remove Solitaire, Minesweeper, Hearts, etc. from the computers.

    Interpretation: Save me from myself!

    Response: I appreciate this student's honesty. I asked our lab administrator today to remove all games. There's going to be some very disappointed students next Fall. wink


  5. Student 1: The fast pace of the class made it difficult to fully learn concepts.
    Student 2: It felt like sometimes you paced the classes very slowly.

    Interpretation: The pace of the class is perfect!

    Response: If roughly the same number of students complain that the pace of the course is too fast and too slow, I know I'm covering it at just the right pace.


  6. You try to cover too much material for a semester. Your previous classes didn't have to learn as much as we've had to. :-(

    Interpretation: Curse you ever-evolving technology!

    Response: One of the enigmas of higher education is that the consumers (the students) are often happier to receive less for what they are paying for (education). Can you imagine the same student being upset if McDonald's gave him a large order of fries for the price of a medium? Harding should fire me if I quit trying to keep my classes current and just teach the exact same stuff every semester.


  7. Don't give us really hard assignments, and don't expect us to have them done by the next class period... we do have other classes and lives!

    Interpretation: I'm serious about "me" time.

    Response: You should schedule 2-3 hours of outside-class time for each hour you are in class. (This is a universal rule that applies to all your major courses, not just mine.) So if I give a homework assignment on Mon and expect it due Wed, you should have already allocated 2-3 hours (at least) to getting the assignment finished. If your assignments are taking much longer than that to complete on a regular basis, that's a sign that you need to start getting some extra help and adjust your schedule accordingly. Remember that half of the class thinks we're going too slowly (see #5 above).


  8. Weaknesses of the instructor: Calvinism

    Interpretation: ???

    Response: "Isms in my opinion are not good. A person should not believe in an ism - he should believe in himself. I quote John Lennon: 'I don't believe in Beatles - I just believe in me.' A good point there. Of course, he was the Walrus. I could be the Walrus - I'd still have to bum rides off of people." - Ferris Beuller

Update:

Inspired by Jordan's comments, I have added a little to my original post.

Friday, May 08, 2009

Spring semester is over

I wrapped up all my grading today. We have a senior reception tonight and the graduation ceremony tomorrow.

Below is the grade distribution for my Intro to Programming, Internet Development, and Search Engine courses. The average was 79.0, and the median 85.4. If I had time I'd compare this to my past semesters, but I don't think much has changed.


I guess I'm a little guilty of grade creep... the average student is supposed to get a C, right? I think my students would argue with that conclusion. A recent survey found that 30% of college students agree with the statement: "If I show up to every class, I deserve at least a B." Surely that percentage isn't nearly as high at Harding. wink

Wednesday, May 06, 2009

Team Digital Preservation

In an effort to bring digital preservation to the masses, DigitalPreservationEurope (DPE) is developing an entertaining series of short animations introducing and explaining digital preservation problems and solutions. Below is their first video. It's a throw-back to animated cartoons of the 1960s, and it is fantastic. Watch as Team Digital Preservation thwarts Team Chaos' plans to disrupt digital information from a nuclear power plant.
"You fiend! It's essential to have long term stable and trusted information on how nuclear power plants are built and what's inside them!" - DigiMan




Future cartoons will be made available on DPE's You Tube Channel.

Monday, May 04, 2009

Improving movie recommendations

If you haven't yet checked out the new CACM blogs, you need to soon. One of the posts that caught my attention was Greg Linden's What is a Good Recommendation Algorithm? Linden wonders if Netflix's one million dollar reward for a better recommendation engine is a little short-sighted. The goal for their recommendation system is to only show people how much they might like a movie. But Linden points out:
However, this might not be what we want. Even in a feature that shows people how much they might like any particular movie, people care a lot more about misses at the extremes. For example, it could be much worse to say that you will be lukewarm (a prediction of 3 1/2 stars) on a movie you love (an actual of 4 1/2 stars) than to say you will be slightly less lukewarm (a prediction of 2 1/2 stars) on a movie you are lukewarm about (an actual of 3 1/2 stars). Moreover, what we often want is not to make a prediction for any movie, but find the best movies. (emphasis mine)


Shifting gears a little, I want talk about a couple of small fixes to an existing movie recommendation system that could make customers a lot happier.

I haven't used Netflix, but I've been using Blockbuster Online for over a year, and I've played with their recommendation feature a lot. I would assume their recommender is on par with Netflix (hint: someone needs to compare the two).

One feature Blockbuster offers allows you to select "Do not show me this movie again", a little icon on the side of each movie's ratings. I've clicked this icon a lot (is it just me, or there's a lot of garbage out there?), hoping Blockbuster would stop recommending these specific movies to me and others like them. However, the screen shot below is what I saw this morning when I logged into my account:


Note how I was recommended "Zack" and "Quarantine" despite having clicked on the no-show icon weeks ago. They also recommend , a movie I've already rated (and therefore obviously seen). But since I didn't rent "Changeling" directly from Blockbuster, they still offer it as a movie I "might have missed."

These movies do not appear in my formal set of recommendations (the screen that results from clicking on the Recommendations link), so my guess is Blockbuster is using a different set of algorithms to populate their might-have-missed list from their formal recommendation list. However, I suggest that the might-have-missed list should take advantage of previous ratings to improve overall customer satisfaction.

This should be common sense: Do not suggest a movie that a user has already marked "do not show me this movie again". Especially not on the first page the user sees when logging into your site.

One more point. Below is a screen shot from the first page of recommendations made by Blockbuster. None of the movies below appeal to me, but I can see how they might have been recommended based on my viewing history and ratings.



But one movie really stands out as a bad recommendation: "Swing" (bottom-left). Note how it has only received two stars on average, equivalent to "I didn't like this movie".

Why would Blockbuster think I would like this movie when most people don't?

I know my taste in movies is probably not typical, but I don't think I've ever given a movie with an average rating of two stars a rating better than two stars. Even if Blockbuster thinks this movie matches my tastes, it would make much more sense to put movies with higher overall ratings on the first result page and bump lower rated movies back a few pages.

My experience in general has been that Blockbuster's recommendations don't really work. I've found one recommended movie in the past year that I thought looked interesting. Then again, I don't often try iffy movie recommendations because I'm not ready to gamble on two hours of a nice evening.

I'm looking forward to a time when the recommendation system really works well, but until then, I'll be consulting with my friends and family who have a much better idea of what I really like to see.

Saturday, May 02, 2009

Micah Pate has been found

If you haven't already heard, Micah Pate's body has been found. Micah's husband Thomas is being charged with the killing this morning.

Micah Rine Pate was a Harding University graduate and Searcy native. Her parents are employees of Harding and Harding Academy. As you can imagine, the Searcy community has been rocked with this story. Our prayers go out to the Rine family and to Thomas' family.

The photo on the right is a screen shot of Micah's Facebook page. Many of her friends are posting sad farewells to her and telling her family how much they loved her. Her account will likely remain active as long as Facebook is around. I imagine her family is going to "capture" her Facebook account as well as an artifact of remembrance. I'm presenting a paper on this subject in June at JCDL 2009.


Update:

Two vigils in Searcy were held for Micah and the Pates, one at Harding. KARK 4 News had a news story about it last night. One thing that comes across in the story and interviews is Micah's faith and the positive influence she has had on others.

Wednesday, April 29, 2009

Upload an image in PHP

I created this function for my Internet Development students which saves a single uploaded image to disk. Example:
// Assuming the web server has write permissions to /mydir
SaveUploadedImage("/mydir/myimage.png");

The function can easily be modified to handle multiple filenames (change the parameter to accept an array of filenames and modify the final foreach block). Note that this is modified code from the webdeveloper.com forum. If you want to know more about uploading files in PHP, check out the PHP - File Upload tutorial.


// Return empty string if uploaded image is successfully saved as
// $image_filename or an error message. $image_filename should be
// saved in a directory that the web server can write to.
function SaveUploadedImage($image_filename)
{
// This function is greatly modified code from
// http://www.webdeveloper.com/forum/showthread.php?t=101466


// Possible PHP upload errors
$errors = array(1 => 'php.ini max file size exceeded',
2 => 'html form max file size exceeded',
3 => 'file upload was only partial',
4 => 'no file was attached');

// Store nonempty files in the active_keys array
$active_keys = array();
foreach ($_FILES as $key => $file)
{
if (!empty($file['name']))
$active_keys[] = $key;
}

// Check at least one file was uploaded
if (count($active_keys) == 0)
return 'No files were uploaded';

// Check for standard uploading errors
foreach ($active_keys as $key)
{
if ($_FILES[$key]['error'] > 0)
return $_FILES[$key]['tmp_name'] . ': ' . $errors[$_FILES[$key]['error']];
}

// See if the file we are working on really was an HTTP upload
foreach ($active_keys as $key)
{
if (!is_uploaded_file($_FILES[$key]['tmp_name']))
return $_FILES[$key]['tmp_name'] . ' not an HTTP upload';
}

// Make sure the image uploaded appears to be an actual image
foreach ($active_keys as $key)
{
if (!getimagesize($_FILES[$key]['tmp_name']))
return $_FILES[$key]['tmp_name'].' is not an image';
}


// Save every uploaded file to the same filename (normally we'd want to
// save each file with its own unique name, but we are assuming there
// is only one file).
foreach ($active_keys as $key)
{
if (!move_uploaded_file($_FILES[$key]['tmp_name'], $image_filename))
return 'receiving directory (' . $image_filename . ') has insufficient permission';
}

// If you got this far, everything has worked and the file has been successfully saved.

return '';
}

Wednesday, April 22, 2009

Nutch, Sitemaps, and Google's findings

My search engine class is winding down, but our final project is to implement a Sitemap Protocol parser for Nutch, a popular open-source search engine. I mentioned a while back that Nutch is not for wimps... my students would certainly vouch for the huge learning curve to making code modifications. I've even had to scale back how much work my students do because of the complexity of changes required. I'm going to do the difficult part of integrating their code with the innards of Nutch sometime in the next few weeks.

The reason I mention our Sitemap project is that WWW 2009 is meeting in Madrid this week, and a paper entitled Sitemaps: Above and Beyond the Crawl of Duty is being presented today by Uri Schonfeld (UCLA) and Narayanan Shivakumar (Google). This is the first paper to report on widespread usage of Sitemaps in the Web using Google's crawling history.

Schonfeld & Shivakumar report that Sitemaps were used by approximately 35 million websites in late 2008, exposing several billion URLs. 58% of the URLs included last modification dates, 7% included change frequency, and 61% a priority. About 76.8% of Sitemaps used XML formatting, and only 3.4% used plain text. Interestingly, 17.5% of Sitemaps are formatted incorrectly.

The figure below represents how many URLs Google discovered via Sitemaps (red) vs. regular crawling (green) for cnn.com. Notice that on any given day, more URLs could normally be discovered via Sitemaps.



Another interesting figure (below) shows when a URL was discovered via Sitemaps vs. regular web crawling for cnn.com. In most cases URLs were discovered at the same rate, but there are a number of them (dots below the line) that were discovered via Sitemaps much earlier than web crawling.


CNN's website is not typical. Schonfeld & Shivakumar report that in a dataset of 5 billion+ URLs, 78% were discovered via Sitemaps first compared to 22% via web crawling.

The paper also describes an algorithm that can be used by search engines to prioritize URLs discovered via web crawling and Sitemaps as well. I've covered the high-lights, but I recommend you read the paper if you're interested in some of the finer details.

Friday, April 17, 2009

Looks can be deceiving

It's been busy around here... Spring Sing, Easter, Tax Day, etc.

This morning Steve Baber presented a devotional thought at our computing seminar that I thought I'd share with you all. He talked about how easily our eyes can be deceived. Are you seeing a man on the left or the word Liar?

This is especially true when it comes to how we perceive others. How often do you catch yourself judging someone by their looks, their clothes, the house they are living in and the car they are driving?

James warns against this practice in James 2:1-4:
My brothers, as believers in our glorious Lord Jesus Christ, don't show favoritism. Suppose a man comes into your meeting wearing a gold ring and fine clothes, and a poor man in shabby clothes also comes in. If you show special attention to the man wearing fine clothes and say, "Here's a good seat for you," but say to the poor man, "You stand there" or "Sit on the floor by my feet," have you not discriminated among yourselves and become judges with evil thoughts?
Here are three contestants from Britain's Got Talent that feature some contestants whose appearance is misleading: Susan Boyle, Paul Potts, and Andrew Johnston.

Friday, April 03, 2009

Day 2 at DigCCurr 2009

This was a full day of presentations. One of my favorite panels was on personal digital archiving with Jeremy John, Cathy Marshall, David Pearson, and Andreas Rauber. My presentation seemed to go well... the room was packed with people sitting on the floor. Overall I was very pleased with the conference and met a good number of interesting people.

After the conference ended, I took advantage of the 70 degree weather and took a walk around the UNC campus. I then headed up to Franklin St. where a mass of well-dressed college students were gathering. (Franklin St. is where all the cool places to hang out are located. It's also the place where students jump over bonfires after big UNC wins.) The 2 mile walk back to the hotel was fantastic... the homes on Franklin St. are some of the most beautiful and unique homes I've seen.

Now I'm sitting in my hotel room (11 pm) missing my family while a number of college students stand outside my window talking as if no one else but them were at the hotel. It'll be a lot worse tomorrow night if UNC wins, but I'll be back in Searcy by then.

Update:

Looks like UNC is going to the championship, and the partying on Franklin Street continues.

Thursday, April 02, 2009

I'm at DigCCurr 2009

I flew into Raleigh/Durham late last night, and today I am attending the DigCCurr 2009 conference (Digital Curation Practice, Promise and Prospects) in Chapel Hill, NC. Tomorrow I'll be presenting a paper based on my summer work at LANL: Everyone is a Curator: Human-Assisted Preservation for ORE Aggregations. This was work I did with Herbert Van de Sompel and Michael Nelson (my former adviser at ODU).

There are 270 people registered for DigCCurr, but I only know a handful of them. So it was good to see Michael Nelson this morning getting coffee in the lobby... I had no idea he'd be here. Of course now I have to spruce up my presentation and remove my disparaging remarks about Herbert and Michael. wink

Tuesday, March 31, 2009

Happy birthday, Ethan!

My son is 2 today! He's becoming a big boy, and I'm very proud of him.

Monday, March 30, 2009

Enrollment in computer science is finally increasing

Good news: A survey by the Computing Research Association shows that enrollment in computer science courses in the 2007-2008 academic year was up 6.2%, the first increase since the dot-com bust six years ago. The number of new undergraduates majoring in CS is up 9.5%.

Bad news: Women still only receive 11.8% of CS degrees.

So why are enrollments increasing? Fear of the bad economy? The coolness of the iPhone?

We haven't yet seen an increase here at Harding, but I'm betting we will soon.

Wednesday, March 25, 2009

The Web in a box

The Internet Archive and Sun Microsystems have just announced the launching of a new data center that stores IA's entire web archive and serves the Wayback Machine. According to Brewster Kahle:
This 3 Petabyte (3 million gigabyte) datacenter will handle the 500 requests per second as it takes over the full Wayback load.

Tuesday, March 17, 2009

Workshop on Innovation in Digital Preservation (InDP 2009)

In conjunction with JCDL 2009, Andreas Rauber and I will be hosting the first workshop on Innovation in Digital Preservation (InDP 2009). We are soliciting full and short research papers as well as position papers. Read more about the workshop below and on the workshop website.

Digital Preservation (DP) research is often driven by traditional needs and approaches to solve the challenges arising. This is partially due to the rather traditional settings in which the challenges of obsolescence of digital objects have first been identified and dealt with, as well as partially due to the high levels of quality and auditability that these mostly very professional settings require.

But increasingly we are facing non-traditional DP challenges, ranging from non-traditional data collection (such as the Web, especially Web 2.0) to non-traditional institutions and actors, such as SMEs or private/home users. Additionally, non-traditional approaches to maintain digital objects, such as retargetable binary code or self-aware objects are gaining momentum.

This full-day workshop aims to provide a forum where researchers can share and discuss the latest innovations in DP by non-traditional methods. Topics include but are not limited to:

  • Personal archiving and personal information management
  • Archiving Web 1.0, 2.0, and Deep Web
  • Innovative approaches to preservation actions
  • Self-aware objects
  • Archiving solutions for small institutions
  • Binary retargetable code
  • Disaster recovery
  • Theoretical models of information preservation
  • Value of information and forgetting
  • Preserving electronic art

InDP 2009 will be held in conjunction with the ACM/IEEE-CS Joint Conference on Digital Libraries (JCDL) in Austin, Texas on June 19, 2009.

Saturday, March 14, 2009

Map of Science

This past summer I worked with the Digital Library Research and Prototyping Team at LANL. One of the projects they were working on, a "map of science", was just featured on the Wired Science Blog. The graph below is based on a massive collection of scholarly usage data (click on the image to get a more detailed look at it). Basically, the graph shows how users accessing scholarly work in one field (e.g., Cognitive Science) may also access work in another related field (e.g., Sports Medicine).



You can find more information about this work in:

Clickstream Data Yields High-Resolution Maps of Science by Johan Bollen, Herbert Van de Sompel, Aric Hagberg, Luis Bettencourt, Ryan Chute, Marko A. Rodriguez, Lyudmila Balakireva. Public Library of Science ONE, March 11, 2009.

Wednesday, March 11, 2009

Harding and the Economy

An article just published in the Christian Chronicle reports how the economy is affecting Harding University and some of our other sister institutions. Cascade College is closing their doors at the end of the spring semester (see the screen shot from their website below). Pepperdine University is eliminating 50 full- and part-time staff members as well as men's track and the women's swimming and diving program.


Things at Harding aren't quite as dim. The endowment is down, but no staff or faculty jobs are being cut. What the CC didn't note is that next year's enrollment numbers look really good. There is a budget freeze, and it's been rumored we will not receive any pay raises next year, but there's nothing to loose sleep over.

In general, post-secondary education is usually a winner in tough economic times. Individuals out of work will re-tool to make themselves more competitive. Some states are even putting more money into higher education, realizing the positive, long-term economic impact it can have.

At $423 a credit hour, Harding is not cheap, but it is less expensive than many private universities and many state universities. That's going to help us weather the storm.

Everyone is going to need to tighten their belts a little, but Lord willing, Harding is going to emerge from this economic downturn intact. I pray the same is true for our sister institutions.

Sunday, March 08, 2009

Back from SIGCSE 2009

Scott and I returned to Searcy yesterday after attending the morning paper presentations. We both agreed that this was one of the better academic conferences we had attended.

As I mentioned before, collaborative learning was a huge theme at SIGCSE. Some of the big curriculum pushes included game programming, robotics, and parallel programming. A number of the presentations stressed how introducing games, graphics, and robotics in CS1 would probably help in retention and expanding interest to CS minorities (mostly women). However, many of the presentations also failed to show conclusive evidence that this was true. In fact one of the presenters admitted that he spent so much time discussing peripheral concepts in regards to game programming that there was no time left to teach some of the core concepts.

Ideally, I think it would be very worthwhile for our department to offer intro to programming courses that use either robotics, graphics, or games in their approach. Then incoming freshmen could pick the course that most interested them. Certainly it would be a good recruitment tool. The only problem is we don't have enough majors or teachers to offer so many courses. I may at least try to mix in more of these attention getters in my CS1 course next fall.

Something else I heard repeatedly was how we should be using Python in CS1. I can certainly see some benefits of doing so, but there's a number of benefits to teaching C++ first. One presentation showed that using Python in CS1 was no better than using C++ at preparing students for CS2. Until we see some solid research showing that Python is in fact better at increasing retention, I think we should stay where we are.

Next year's SIGCSE is in Milwaukee where the average high is 34 F this time of the year. Brr.

Friday, March 06, 2009

I'm at SIGCSE 2009

My spring break started a little early this year. Scott Ragsdale and I drove down to Chattanooga, TN, on Wed for SIGCSE 2009. This is the first time I’ve attended the conference, and so far I’ve been very impressed, both with the conference and with Chattanooga.

SIGCSE brings together computer science educators from around the globe to share and discuss the latest in computing education. There are around 1200 participants this year and numerous talks and workshops to choose from.

On Wed night Scott and I attended a workshop entitled Engaging Student Learning Through Virtual World Programming. It was mainly about introducing the world of Second Life. We created avatars and then learned how to navigate the virtual world, create objects, and use the Linden Language scripting language. I wasn’t very impressed with Second Life... it felt like a very dysfunctional, overly sexualized place that I didn’t want to be in for very long (although flying is kinda fun). It’s hard for me to imagine my students liking it much either.

Today’s favorite buzz word was “collaborative learning”. Most presenters felt obliged to use it at least twice in their talk. Despite the overuse, I was quite convinced that students do learn more effectively when they are teaching each other. I’m also convinced that I need to make some changes to my intro to programming classes that makes better use of this fact.

At one of the sessions, I learned how I will not be able to teach iPhone development to my GUI students next fall. I was hoping to teach Objective C and iPhone programming in the final five weeks of the course, but the learning curve is just too steep to teach effectively in a 5 week period, especially when compared with Windows Mobile programming.

I’m too exhausted to list everything I saw today, but it was very worthwhile. And tonight’s reception at the Tennessee Aquarium was fantastic.

(This entry was written Thurs night.)

Saturday, February 28, 2009

My first knol

As I mentioned yesterday, I just wrote my first knol entitled Introduction to Web Search Engines. This article was originally meant for my Internet Development class. I wanted to have them understand some of the technical issues of how search engines work because it affects how a website should be developed to make it Google-friendly. At the same time, I didn't want the article to be overly technical... it needed to convey just enough technical information so my students would get the big picture. Whether I hit that sweet-spot or not is debatable.

I couldn't find any similar articles on the Web (this is close), so I thought it would be useful to put one out there, and I've been eager to try out Google's new knol service. Despite my many frustrations yesterday, it wasn't too bad. I didn't find myself needing to manipulate the raw HTML too much, and the ability to add and manage references was very intuitive.

Yes, the amazing graphics are my own. I know I got skillz. wink

Friday, February 27, 2009

Why I (sometimes) hate cloud computing

Cloud computing offers a lot of positive benefits, namely access to data from anywhere.

But today I hate it.

I realize "hate" is a strong word, and I rarely break it out, but today I must.

I decided to write my first Knol yesterday. Google's Knol system uses an online editor and saves your data in their systems (i.e., in the cloud). After working on my article for some time, the system started having problems saving, but a warning message at the top of the screen warned that Knol would be down for about an hour. So after waiting the hour, I returned to the system and was able to make a lot of progress.

Or so I thought.

This morning when I returned to my article, only the first two paragraphs remained. I accessed the revision system to see if there were previous versions that contained my complete article, but every revision was the same: just two paragraphs. This really jolted me because I had repeatedly saved every so often just so something like this wouldn't happen. I never received a single error message after pressing Save.

Thankfully I had been smart and saved a copy of my article in Microsoft Word... my previous experience with cloud computing told me such a move would be smart. So I didn't loose my cool too much... I just copy and pasted my stuff back into Knol and then worked on some formatting issues.

About 10 minutes after I started editing, I got this error message warning me that my session had expired:


The message suggested I refresh the page. Knowing what I know, this is usually not a good way to repair an "expired" session. But there was nothing else I could do. Sure enough, after refreshing the page, my content was all gone. Back to two paragraphs.

Now I'm hot.

After taking a little walk to calm down, I returned to my office and decided to persist. I think I'm almost done with my Knol now, but I'm still feeling raw. If this is what cloud computing is going to be like, I'd rather stay on the ground. I've never had Word lose my document because my session expired.

Now you may be thinking this is an isolated issue with Knol, but I have had similar losses with Blogger (losing entire blog posts when their system was temporarily inaccessible) and Google Calendar (losing a number of appointments I had typed in but were apparently never saved). Maybe this is more a Google problem than a cloud problem, but if Google can't seem to get it right, who will?

Friday, February 20, 2009

Happenings at Harding

There's a lot going on around here at Harding, so a quick post to bring you up to date:
  1. This weekend in the Benson Auditorium, Hal Runkel will be presenting ScreamFree Parenting. Read more about it here.


  2. Jimmy Allen has retired from teaching. If you are a Harding alum, there's a good chance you took his class on Romans. But Dr. Allen is still around... I played basketball with him just a few weeks ago.


  3. Construction of a new Pizza Hut started a few weeks ago, about 50 yards from the Beebe-Capps entrance into campus. Why Harding was unable to purchase the land, I don't know. It's gonna look tacky, but at least it isn't a used car lot.


  4. If you haven't been spammed by the Alumni Office recently, here's your chance to win an all-expense paid Homecoming weekend at Harding. All you have to do is give the Alumni Office the email address of 5 "missing" alumni. The campaign is called Six Degrees of Harding University.


  5. A group of Harding students joined with others in helping storm victims in north-west Arkansas.


  6. The Harding programming team headed by David Farrow smashed the other business programming teams this past weekend in the Axiom programming contest held in Conway, AR. David was actually the lone programmer since his two teammates were just buddies who were there for moral support. David confirmed my suspicion that a CS-trained programmer is 10 times more effective than a business major that knows how to program. wink


  7. Ethan saw his first Harding basketball game last night. He cheered on the Lady Bisons as they won their 6th consecutive win.

Monday, February 16, 2009

How *not* to implement online security

I have an online account with a bank which shall remain nameless. Let's just call them Amgirl Direct. They use a really "sophisticated" security system which they have apparently leased from a third party named Information Technology, Inc.

Here's how I login to my account:
  1. First I must enter my 9 digit number account which I have not been able to memorize because I use it once a month. So I have to search for it in my email each time.

  2. I then am told I need to answer a security question because the bank doesn't recognize my IP address. (Of course it doesn't... my home computer is assigned a new one periodically by my ISP.) The security question is always the same:

    What is your high school mascot?


    I went to two high schools, and I have no idea which mascot I entered originally. But it doesn't matter... if I type in the mascot of either high school, the answer is always wrong.

  3. After I answer the first security question wrong twice, I'm finally asked for my mother's middle name. Thankfully it recognizes my answer to this question.

  4. Next I'm asked to enter my password. But supposedly my password has something to do with an "authentication image" which is always a white vase. I have no idea why. There's no link to an explanation. It's always the same image, and I have only one password, so I'm left wondering what-in-the-world this vase has to do with anything.

    (Note Information Technology, Inc.'s proud declaration of ownership for their system.)

  5. After entering my password, I'm finally logged in (usually). But be careful! If you ever click the back or forward browser button at any time, you are presented with this most unhelpful error message:

    Error

    A Security Error Has Occurred. Your Online Session Has Expired.
    Possible Reasons Include Double Clicking A Link Or Pressing The Browser's Back Forward Or Refresh Buttons.
    Return To The Login Page To Continue Your Session.


    They "expire" my session for using navigation buttons that most users are accustomed to using. And there is no link to a login page... you just have to re-type Amgirl Direct's original URL and proceed through the steps above once again.

I keep asking myself, is using an online bank with this lousy of a system really worth the 2.25% APY?

Specifying canonical URLs

Last week the big three search engines (Google, Yahoo, and Live Search) announced their support for a new HTML attribute value which will help prevent search engines from indexing duplicate content. Search engines naturally want to avoid crawling and indexing duplicate content because it lessens the quality of search result pages. Google's Webmaster Central Blog has a good write-up about the new rel="canonical" attribute value.

Essentially, the new attribute value will allow a webmaster to tell a web crawler to ignore a page if it is accessible from another URL. So if a I have a single page that is accessible at URLs A, B, and C, I can tell the web crawler that URLs B and C are pointing to the same content as A by placing the following code in the head element of the page:

<link rel="canonical" href="http://foo.com/A" />

When the web crawler grabs the pages using URLs B or C, it will find the given canonical URL A in the header and therefore ignore the contents of the pages since they duplicate page A.

Of course the entire mechanism requires a willing and competent webmaster to implement it. Webmasters who are very concerned about SEO are likely to use it since it will help bolster the PageRank of certain pages. But the rest of us who aren't concerned about our rankings can safely ignore this new functionality.

See also rel="nofollow".

Friday, February 13, 2009

Feel the Nutch burn...

This week I spent all 3 hours of class time showing my Search Engine students how to install, run, and modify Nutch, an open-source search engine written in Java. Since Nutch is new to me as well, I spent several hours last week trying to get familiar enough to walk my students through the time-consuming, error-prone, and laborious process of getting Nutch to run on Windows and in Eclipse.

I have labeled my newbie experience the "Nutch burn." And boy does it.

I followed a couple of tutorials that were pretty helpful, but I ran into several problems that required me to scour the Web looking for solutions. After much trial and effort, I was able to overcome and make some modifications to Nutch in Eclipse. I also got my modifications to run from the command line.

The barrier to entry is so high and the learning curve so steep that it makes me wonder... there's got to be a better way. The goal is for my class to make a major contribution to Nutch. Maybe our contribution could be to make the initial install/edit process just a little easier.

Tuesday, February 10, 2009

Ben Stein speaking at Harding University tonight

Ben Stein will be presenting his thoughts on the economy, etc. tonight at Harding University (7:30pm in the Benson Auditorium). Stein is well-known as an author, entertainer, and humorist. He is especially well-known for the hilarious "Bueller...? Bueller...?" scene in Ferris Bueller's Day Off and more recently for the controversial movie Expelled.

In an ironic twist, Stein was recently uninvited as the commencement speaker at the University of Vermont (technically he uninvited himself). Apparently strong opposition arose from some in the UVA academic community because of Stein's stance in Expelled. The theme of Expelled is that the academic community will shut you out for offering an opinion that differs from the status quo.

Disclaimer: I have not seen Expelled and have no opinion for or against the movie.

Update:

After seeing the talk, here are my impressions: Smart & witty. Loves Sonic. Extremely conservative. Fiercely loyal to Nixon. Not scientifically inclined.

Thursday, February 05, 2009

Why is Facebook hiding network statistics?

A while back I compared the Harding University and Old Dominion University networks on Facebook. But in the last several months, I've noticed that the ability to view network statistics in Facebook seems to have been turned off. I can't seem to find any discussions on the Web about this issue, so either I'm the first one to write about it or I've been over-dosing on crazy pills.

Several months ago, you could see your network's statistics (% male/female, top interests, etc.) by clicking the "Network Statistics" link while browsing your network. The URL looked like this:

http://www.facebook.com/networks/16777927/Harding/

where the number is the network ID assigned by Facebook and Harding is the network's name. When I try to access this URL now, I am redirected to

http://www.facebook.com/editaccount.php?networks

which only allows me to view the networks I'm a part of or join a new one (pictured below).



The interesting thing is that when I searched Google for links to network statistics pages, they apparently have hundreds of them indexed and cached as shown below. But when you click on any of the links, you are routed back to the screen above, and when you click on a cached link, you are told your search "did not match any documents".



It doesn't look like the Internet Archive has any of these pages archived.

So is anyone else able to view their Facebook network statistics? And what would be their motivation for hiding this information?


Update later today:

Somehow I missed it... last May Facebook placed an announcement on all network pages:
Network Pages will be discontinued soon
I was able to view a number of cached network pages with Live Search. Although they didn't have Harding's page cached, they had a number of pages from various US cities. Below is a snapshot of Washington DC's page from 10/14/2008 which includes the warning:


Once Live attempts to re-crawl this page, it will disappear into the bit bucket in the sky. All the user comments will also disappear.

It's really a shame Facebook got rid of these pages as they provided an interesting summary of each network.

Monday, February 02, 2009

Is my desktop too cluttered?

I have students stopping by my office all the time saying hello, asking questions, etc. Almost all of them freak-out when they see my computer desktop as pictured below.


What really gets them is my task bar: two rows of icons, many of them browser-related. In each browser I usually have 2-4 tabs open.

So how do I find anything?

I try to keep my left-most browser icon set to my email, calendar, and RSS/Atom reader. The next browser holds my blog, Blackboard, and Easel (class grading system). The other browser windows are open to a number of web pages related to my work. I realize that I could group multiple instances of browsers into a single button on the task bar, but I hate doing that. Beyond that, the rest is a hodge-podge collection of whatever app I need open: Visual Studio, Eclipse, Putty, Firefox, Chrome, IE, Notepad, Word, Excel, Adobe Reader, WinEdt, and iTunes.

Because I teach 4 classes and work on research, I am constantly having to which from one task to another. I've tried virtual desktop software, but I often need to bounce between unrelated windows which I can't have open in multiple desk tops. Then I'm left bouncing from one virtual desktop to the next, trying to find what I'm looking for. It usually ends up being more trouble than it's worth.

So this is how I operate. It looks ridiculous, but I make it work. By the way, this is also close to how my real desktop looks.

So am I alone on this, or do others have an equally cluttered computer desktop?

P.S. Dear Microsoft- Why can't I move the icons in my task bar? It would be quite helpful if I could reorder them at times.

Friday, January 30, 2009

Fav5 - Jan 30, 2009

My pick of the week's top 5 items of interest:

  1. Researchers at the University of Washington are developing a system for "digitally preserving and authenticating first-hand accounts of war crimes, atrocities and genocide." The system computes a hash of the video so that any changes to the video content will render it un-authentic.


  2. Is the GDrive (Google Web Drive) for real? Scott Gilbertson argues that problems with security and large media files will hinder the GDrive from becoming a killer-app. Not everyone agrees.


  3. April 23,2008: The highest volume of email spam caught by Google on a single day. Google blocked an average of 194 spam messages per user that day.


  4. I just made available a paper on arXiv that I co-authored with Michael Nelson and Herbert Van de Sompel entitled Everyone is a Curator: Human-Assisted Preservation for ORE Aggregations. I'll be presenting this paper at DigCCurr 2009 in April.


  5. This year's Super Bowl pits the Pittsburgh Steelers vs. the Arizona Cardinals. Although I really like Big Ben, I'll be cheering for Kurt Warner and the underdog Cardinals. I'll also be watching the commercials, hoping they're a lot better than last year's.


Thursday, January 29, 2009

View my blog in Facebook

A few weeks ago I added my blog's feed to my Facebook Notes so it would automatically import each posting into Facebook's Notes application. It's easy to do, and it makes it convenient for friends who never leave the confines of Facebook to see what I'm up to.

I've only noticed a fews problems. One is that comments made on my blog aren't imported into Facebook and vice versa. It would be nice if Facebook would merge the two. Also if I embed a video in my blog post, Facebook won't include it in my Note. The last problem is speed: it sometimes takes several hours for my post to show up in Facebook. This is probably because it takes Blogger a while to update my feed and Facebook a while for it to check for changes.

Overall though I think this feature is a great idea.

Now that we can import our data into Facebook, how do we export our data out? I've just written a paper about this topic that is under review. Contact me if you'd like to know more about it.

Friday, January 23, 2009

Fav5

My pick of the week's top 5 items of interest:

  1. Apple's "1984" commercial which introduced the Macintosh, the computer that would popularize graphical user interfaces, debuted yesterday, 25 years ago during Super Bowl XVIII.




  2. Three days ago, Senator Obama was inaugurated as President. According to a post on the Google Blog,
    "From President Bush's first inaugural address in 2001 to his second in 2005, the number of inauguration-related searches increased by more than a factor of ten. From 2005 to today's address, the number grew even more."
    Among the interesting search behavior from the day, the overall volume of search traffic from the US dropped significantly while Obama took his oath... we were all glued to our TV sets.


  3. Having trouble remembering to wash your hands? After you see this you won't.


  4. Even Google is not immune to the economy. This quarter they hired 99 new workers, the lowest number of new hires since going public in 2004. They even canceled their highly touted scientific data hosting service before it went live. Things aren't much better for Microsoft who plans to layoff 5000 workers. Despite the bad news, tech salaries actually increased 4.6% last year.


  5. If you received a message via Facebook from your boss saying you were fired, would you believe it? Also, Facebook is now apparently twice the size as MySpace.

Thursday, January 22, 2009

Goodbye, my "friend"

I've been doing some research on Facebook which has required me to spend a lot more time than usual looking at my Wall and news feed. One friend appears there almost every time I look, and usually it's because he's posted something contentious, designed to provoke his "friends" into an argument. I'm really getting tired of seeing his posts.

So today I've decided to de-friend my first friend. Actually, we're not even true friends... I don't think I've even met the guy. So why do I feel so guilty about removing him? As Facebook warns me, this action is serious... it "cannot be undone." wink

Remove friend
BTW: A colleague of mine told me how he once removed someone from his list of Facebook friends. The de-friended had hundreds of friends, so how would she know? Turns out she had memorized the number of friends she had, and noticing that the number went down by 1, she scanned through her list of friends until she somehow noticed the one name that was no longer there! My buddy was busted!

Friday, January 16, 2009

Fav5

My pick of the week's top 5 items of interest:

  1. A typical Google search generates 7g of CO2. Or maybe not. (Thanks, Dustin.)


  2. CWE/SANS just released a report of the Top 25 Most Dangerous Programming Errors. This is going out to all my programming classes.


  3. The NY Times had this to say about the R programming language:
    "But R has also quickly found a following because statisticians, engineers and scientists without computer programming skills find it easy to use."
    Sorry, but I do have computer programming skills and still find it quite difficult to use, primarily because the documentation is lacking useful examples. That's why I created an R tutorial to help myself and others struggling with the language.


  4. Looks like Warrick, the service I developed a few years ago, is still getting some good press. (Thanks, Burt.)


  5. I found this on Matt Cutt's blog: Mac vs PC. What initially looks like a low-budget production suddenly transforms into footage that looks like it's from a multimillion dollar high-tech Hollywood production.



Thursday, January 15, 2009

Sometimes I hate Travelocity

Yesterday I was booking a flight from Little Rock to the Raleigh-Durham airport. I used Travelocity.com as I frequently do, found a great rate for $174 on Continental, and proceeded to provide all my detailed travel information (address, phone number, frequent flier number, etc.) and my payment info (credit card number, expiration date, etc.). I then went through four screens, meticulously picking out an available seat on each flight near the emergency exit.

After entering all this information and agreeing to their draconian cancellation terms, Travelocity finally asked me to click one final button which would charge the ticket to my credit card. After clicking it and waiting a few seconds, I got this message:
Sorry, but that ticket is no longer available.

I tried to remain calm as I started my search over and selected different Continental flights listed at the same price. I again went through the multiple screens as before, re-entered all my personal information, re-selected the seats I wanted (there were a ton of open seats), and clicked on the final purchase button. Again:
Sorry, but that ticket is no longer available.

At this point I nearly punched my computer. I yelled out something I'm sure most of the faculty heard from their offices. I'm usually not an angry kind of guy, but I was hot.

When I started my search over again, the same flights that had been denied me were still listed as valid selections!

In my anger, I swore I would not give Travelocity my business. I headed over to Expedia where I found the same flights for about the same price. When I selected them for purchase, I again was given an error message that the flights were not available. At least this time I was told before having spent 15 minutes entering all my info and selecting my seats. However, re-doing my search still brought up the same flights.

Hey guys: If you are going to frustrate your users by giving them the option of selecting flights that may or may not actually be available, at least have the decency of removing the unavailable flights from the user's search results once you know they are definitely unavailable!

Secondly, don't ask the user to duplicate their work. There was no reason for Travelocity to make me re-enter all the same personal information a second time, especially when I clicked on the checkbox that told them I wanted them to remember my info!

I realize there was probably some software glitch with Continental's pricing info since it affected both sites, but you should account for these types of errors. Don't waste your users' time. Suggestion to Travelocity and Expedia programmers: read GUI Bloopers by Jeff Johnson and take some good notes.

Eventually I purchased a more expensive ticket on Southwest Airlines from the SWA website. I'm still angry.

Wednesday, January 14, 2009

Famous CS majors

This semester six of my sixteen students (38%) in intro to programming are female. That's probably the highest percentage of females I've ever had in 10+ years of teaching this class. Maybe we have bottomed-out. Unfortunately, several of these females are engineering majors (mechanical or electrical), so I'm doing my best to change their minds and get them to switch to computer science. wink

I've spent the last couple of days in class recounting the brief history of computing, and it occurred to me that CS is the major you really want to have these days if you are looking to make a big splash. Here are just a few examples of guys who at one time or another majored in computer science or something related:
  1. Founders of Yahoo - David Filo (CE, Tulane & Stanford) and Jerry Yang (EE, Stanford)

  2. Founders of Google - Larry Page and Sergey Brin (they dropped out of their CS Ph.D. work at Stanford before graduating)

  3. Founder of Facebook - Mark Zuckerberg (CS, Harvard University)

  4. Founder of Microsoft - Bill Gates (he dropped out of Harvard without declaring a major, but my guess is he would have been CS)

  5. Founder of Napster - Shawn Fanning (CS major before he dropped out of Northwestern University)

  6. Co-Founder of Apple - Steve Wozniak (EECS, UC Berkeley)

I'm sure I've missed a number of famous CS majors (and a number of females), but my point is that CS is the place to be. Or at least it's the major to have before you drop out of school and become disgustingly wealthy.

Friday, January 09, 2009

Fav5

Classes start on Monday. Here's my pick of the week's top 5 items of interest before the storm begins:
  1. Delete 10 of your Facebook friends for a free Whopper. No kidding.


  2. There's an informative article in the NY Times about T.V. Raman and his work at Google to improve technology for the visually impaired. Raman is one of the architects behind AxsJAX, a Google technology to improve the accesibility of AJAX-based web applications. I met Raman a few years ago at the WWW conference in Banff, and I was impressed at how efficiently he seemed to use his computer with the aid of a screen reader.


  3. Here's a reminder of the horrible costs of war and how crazy our world has become: the DOD wants to build an application to allow children to have conversations with their simulated mom or dad who is off to war. Not their actual parent, a simulated version of their parent.


  4. Self-powering cyborg cockroaches. Nuff said.


  5. This week I got back last semester's student evaluations. In general they were pretty good, but it's always the negative comments you remember most, even if they are totally unwarranted. A fellow faculty member tried to cheer me up: teachers that get the best evaluations are either hot or easy. Hmmm... was he trying to tell me I'm not very good-looking? wink

Thursday, January 08, 2009

Harding University plates now available

If you live in Arkansas, you can now obtain Harding University license plates. They cost $35, but $25 goes to Harding for scholarships. I can't wait to get mine. wink

Wednesday, January 07, 2009

Former Harding student dies after motorcycle accident

Nathan Potznick, a 1999 graduate from our CS dept, died a few weeks ago after a routine surgery following a motorcycle accident. Nathan was working for Yahoo at the time.

Nathan's girlfriend notified our dept chair of his death when she saw him listed as a friend in Nathan's Facebook account. I remember Nathan a little... I think he might have taken me for a class since I started teaching in the department in 1997. My prayers go out to Nathan's family.

I ran across this entry on MyDeathSpace.com about Nathan. There's something a little disturbing about this website, but I can't exactly place my finger on it. Maybe I'm just imagining random people speculating about my death on there... it's just a little morbid and weird.

On a side note, how long will it take for Facebook to determine Nathan's account is no longer active and shut it down?


Update on 1/9/2:

What happens to your web stuff when you die? states that Facebook accounts are never closed unless you explicitly ask Facebook to close them.

Tuesday, January 06, 2009

Bible visualizations

Check out the many Bible visualizations created by Chris Harrison. The one below shows 63,779 cross references from one verse to another, represented by colored arcs. The chapters from the Bible make up the horizontal axis, and the vertical bars off the axis are the number of verses in each chapter (that long one in the center is Psalms).

God's Word never looked so beautiful. smile


Thanks to Jeremy Bullock who pointed these out to me.

Saturday, January 03, 2009

Wonderful wake-up surprise

We woke up this morning to find a huge mess in our yard:



The perpetrator probably ran the stop sign on the street facing our house and then plowed right into our yard. Our neighbor heard something around midnight, but we were sound asleep and didn't hear a thing.

I called the police who came out to make a report, and the officer guessed that someone must have towed the perp out which accounted for some of the large dug-out parts nearest our house. I called all the towing companies in town to no avail.

The perp left this behind:


If you know someone missing their trademark red Budweiser cap, please let me know.

Friday, January 02, 2009

Fav5

Hope you had a great Christmas and a good start to 2009. I'm taking advantage of our three week break to spend time with my family, read, write a paper, and prepare for my search engine course.

My pick of the week's top 5 items of interest:
  1. The Z2K problem: Zunes freezing up at midnight on New Year's Eve apparently because 2008 is a leap year.


  2. Shocking new research has confirmed what XBox widows have known for years: men like to play video games because of our neurological desire to conquer.


  3. In this year of economic difficulty, is programming a thing of the past? Not according to Computerworld's annual Forecast survey which finds programming to be the "hottest" skill of 2009. So why would anyone who is already a programmer want to leave it?


  4. Always fun to read for its insight and contentious commentary: Gladney's DDQ.


  5. For a father and user interface aficionado, here's a fun article to read about a three year old son using his dad's iPhone.