Monday, September 28, 2009

Mobile Computing offered in Spring 2010

This spring I will be co-teaching with Gabriel Foust a new course called Mobile Computing (COMP 475) for 3 credit hours. The course will cover programming the iPhone and Google Android operating systems and development of mobile web applications. The course will meet from 3 to 4:15 pm on Mon and Wed. The prerequisite for this course is Data Structures (COMP 245).

Foust and I are excited to be offering this course for the first time. I hope it will become a course we offer on a regular basis in the future.

Thursday, September 24, 2009

Google: We're sorry...

I tried to access my school email account this morning, and I got this error screen:



It says:
"We're sorry... but your computer or network may be sending automated queries. To protect our users, we can't process your request right now."
Google is sorry again that their automated query detector has been tripped. At least they aren't accusing me of having a virus this time.

Anyone else seeing this? Apparently yes.

Monday, September 21, 2009

Archive your Facebook account with ArchiveFacebook

It's finally here... a tool to archive your Facebook account. I've talked about the development of this tool in previous posts. It's a Firefox add-on called ArchiveFacebook which allows you to create a complete off-line, browseable archive of your Facebook account. ArchiveFacebook will archive your Wall, photos, messages... your entire life which has been recorded in Facebook.

You may not believe this, but Facebook will not always be around. Your Facebook account will not always be accessible. It's up to you to archive your data before it lands in the big bit-bucket in the sky.

Thanks to Carlton Northern who worked on this project for the past 6 months and to Michael Nelson who helped direct the development work.

Thursday, September 17, 2009

Facebook - content is currently unavailable

Someone tagged me in a photo on Facebook yesterday, but when I click on the link I received in my email, I get the very "helpful" error message:
This content is currently unavailable

The page you requested cannot be displayed right now. It may be temporarily unavailable, the link you clicked on may have expired, or you may not have permission to view this page.




If the page is temporarily unavailable, I should try again and again and again to access it. But if the link has expired, I am wasting my time trying to access it again and again. And if I don't have permissions, how do I get it? There's no helpful tip given as to how to get permission to view the image.

Surely Facebook could tell me which of these is the true problem and suggest what I do next.

I would qualify this as a variation of GUI blooper #28.

Tuesday, September 08, 2009

Summer reading

Here's a list of the books I finished reading this summer. I'm looking for some titles to read next, so feel free to leave me a recommendation.

The Seven Faith Tribes by George Barna. This book is subtitled, "Who They Are, What They Believe, and Why They Matter," but I think a more accurate description of the book would be "Who They Are and How They Better Get Along Before All Hope Is Lost". Barna uses his massive amounts of survey data to identify seven faith tribes of America: Casual Christians (making up 2/3 of all Americans), Captive Christians (16%), Jews (2%), Mormons (1.5%), Pantheists (1.5%), Muslims (.5%), and Skeptics (11%). Barna outlines 20 shared values between the tribes (e.g., represent the truth well, develop inner peace and purity, seek peace with others, etc.) and calls all tribes to band together and push these values into the media, government, and families, to advance our common national interests. While I admire Barna's call to us all to unite and help our country, the lack of implementation specifics left me somewhat skeptical.

Outliers by Malcolm Gladwell. This book is an informative and entertaining weaving together of various studies and anecdotes that shed light on the (often overlooked) significant factors that lead to success. There's an excellent chapter (Ch 2) that talks about Bill Joy and other computing luminaries which is worth reading, even if you don't want to read the whole book.

Blink by Malcolm Gladwell. I enjoyed Outliers so much that I was inspired to read Blink. It focuses on the abilities and distractions caused by our unconscious minds. Gladwell focuses on "thin-slicing", the ability to determine what is important from just a very small amount of information, and how it can be influenced by prejudice and stereotypes. I enjoyed Blink, but not as much as I did Outliers. Tipping Point is next on my list.

The Bravehearted Gospel by Eric Ludy. Christianity has gone soft over the years, and Ludy calls for us to reclaim the Truth of the Bible. I really enjoyed the rallying cry, but I'm still digesting this one.

Surprised by Hope by N. T. Wright. OK, I've been reading this for more than a year and still have about 50 pages to go. It's tough reading but, Wright makes a good case that a Christian's hope should be based on the future resurrection, not "going to heaven." If you enjoy thinking deeply about eschatology, this book is for you.

Tuesday, September 01, 2009

Did You Know? 2009

This video by Jeff Brenman, karl Finch and Scott McLeod illustrates just how much today's world is changing, especially in regards to technology. Some facts from the video that should really hit home with my computer science students:
"It is estimated that 4 exabytes (4.0x10^19) of unique information will be generated this year.That is more than the previous 5,000 years. The amount of new technical information is doubling every 2 years. For students starting a 4 year technical degree this means that half of what they learn their first year of study will be outdated by their third year of study."
Interesting facts, but I can't say I totally agree with the conclusion (in bold). New information doesn't necessarily replace old information. Technologies do change, but the underlying ideas change at a much slower pace.

Friday, August 28, 2009

Vote for my SXSW panel proposal!

Kelly Elander (professor in the Communications dept at Harding) and I are wanting to offer a panel at SXSW 2010 called How Educators Teach Web Skills: You're Doing What? There are over 2000 proposals, and only 300 will be chosen.

We need your vote!

Please vote for our panel by clicking the thumbs-up icon. Voting will close on Friday, September 4, at midnight.

Monday, August 24, 2009

How to be a successful student in CS

Today is the first day of the fall semester here at Harding. It's always exciting to see all the students back from the summer, and there's so much hope for the semester that you can almost feel it in the air.

I was recently sent a questionnaire from The Wall Street Journal asking me what it took for a student to be successful in computer science. I thought today would be an excellent day to share my responses.


Generally speaking, what actions can students take to prepare themselves to succeed in your class or similar classes?

Give plenty of time outside of class to do homework and review that day's information. Use your time wisely in class by taking good notes and asking questions when something doesn't make sense. Start on assignments as early as possible to give yourself plenty of time in case you run into difficulties later; this will allow you to seek help before it is too late and will enable you to get your assignments turned in on time.


Based on your knowledge of your college/university overall, what should incoming students do to generally be successful in school? (Success includes academic success, social success, career success, or however you wish to characterize it.)

Be prepared to spend lots of time wresting with the difficult material. Do not overload yourself with a full-time job while you are a full-time student unless absolutely necessary. Get to know the people who sit next to you in class... they can be of great help when you miss class or need some extra help. Do your best to maintain a good relationship with the professor... visit him/her outside of class and show interest in the subject matter; professors enjoy students that show interest in the class and are more likely to write you a great letter of recommendation when you are seeking employment.


If you could tell parents one thing to help their children succeed in college, what would it be?

Let them fight their own battles, but be there for them if they get in over their heads. Your child is becoming a man/woman and needs to know how to be independent. Hopefully you've already started your child down that road, and college is another step along the road.


What qualities or activities differentiate your best students from others?


The best students sit up front and pay attention. They start on their assignments early and refuse to give anything than their best. They take responsibility for their own learning and don't rely purely on the professor to spoon-feed them all the information they need to be successful in class.


If a student knew nothing about your discipline, how would you describe it to him/her?

It is the study of how to make computers do extraordinary things. It encompasses graphics, artificial intelligence, web development, video games, mobile computing, algorithmic thinking, and many other aspects that touch the lives of every living being. It is the future.

How would you "sell" your discipline to a student trying to decide what to major in? (For instance, what do students like best about this discipline? What might be most surprising?)

If the student seemed right for a computer science major (showed mathematical prowess and the ability to think logically), I would tell them that CS pervades every other science and field and is in desperate need of talented young people. It is hard to imagine a field more significant to the future of the world than CS; medicine, economics, education, physics, chemistry, biology, entertainment, and farming all are significantly impacted by advances in CS. The job market for software developers (many CS graduates take this route) has rarely been better, and software engineers have higher overall job satisfaction than most any other profession.

Saturday, August 01, 2009

Misunderstanding Markup comic strip

If you're confused about the difference between XHTML 1.0, 1.1, 2 and HTML 5, you should read this entertaining comic strip by Jeremy Keith. This will be required reading for my Internet Development classes.

Thursday, July 16, 2009

Report on InDP in D-Lib Magazine

My report on the Innovation in Digital Preservation workshop (InDP 2009) has just been published in D-Lib Magazine. Overall I think the workshop was a success, although we really missed not having Andreas Rauber there. I'm not sure if I'll be the one to lead the 2nd InDP, but I hope there will be one in the future.

Thanks to Spencer Lee (Virginia Tech) who filmed the workshop and created a virtual presence for InDP in Second Life, where the memories of InDP will last forever (or five years, whichever comes first). Below are some screenshots from Second Life that Spencer sent me.




Wednesday, July 15, 2009

What are you doing this summer?

I've been asked a number of times what I'm doing this summer since I'm faculty and have no classes to teach. Last summer I was doing research in Los Alamos, but this summer has been very different. A lot of my time is spent at home, getting adjusted to life with a newborn and toddler and helping Becky get some extra sleep in the mornings.

Professionally, I've presented a few papers at a conference, co-chaired a workshop, and am working on a paper about my search engine courses.

But most of my working days are spent producing a series of instructional videos for Introduction to Programming with C++ (2nd ed) by Y. Daniel Liang. You can sample a video I made just this week on file I/O. I'm not sure if the videos will be available to book owners only or made freely available on the book's website. I'll hopefully wrap these up by end the end of July and then start on videos for Liang's Introduction to Java (8th ed).

I'll be preparing soon for my Games Programming course. This course has only been offered once at Harding before, and it was taught by Dana Steil who is currently away working on his PhD. I'm excited about teaching this courses, but it's also a lot of work to teach a class for the first time, and it's a little disconcerting that I will likely not get to teach it again since Dana will likely want the course back when he returns.

So that's my summer. What are you doing?

Update:

I'm no longer doing Liang's Java book. I didn't finish the C++ videos until Aug... where does the time go?

Friday, July 10, 2009

Power.com: Give me your Facebook data!

TechCrunch is reporting that Power.com is suing Facebook over their lack of data portability. Power.com is a service which allows you to aggregate your various social networks into a single location, but Facebook's data, as indicated in their Terms of Service, is still off-limits to them. Disregarding the restrictions, Power.com tried using the Facebook API and screen-scraping to get their data until being sued earlier in the year by Facebook.

This is exactly what I've been working on (with a graduate student at ODU) for the last few months. But I'm doing this to preserve the data, not necessarily to aggregate it along with other social networks. However, there's no reason why a preserved Facebook account could not be uploaded into another service.

My guess is my approach won't be looked at kindly by Facebook, but they'll probably leave me alone since I'm only providing a service for individuals to archive their account, and I'm not aggregating the data to my own server.

Tuesday, July 07, 2009

Email Preservation Parser

Here's an excerpt from an email announcement I received from Riccardo Ferrante (Smithsonian Institution Archives) about a tool for preserving email. It was one of the tools developed by the Collaborative Electronic Records Project (CERP).
The Email Parser migrates an email account and its messages into a single XML file using the Email Account XML Schema developed in collaboration with the North Carolina State Archives and the EMCAP project.

The CERP Email Parser migrates an email account in MBOX format into XML, using the schema to preserve the full body of messages, together with their attachments, and keeps intact the account’s internal organization (e.g., an Inbox containing subfolders labeled Policies, Special Events, and Projects). The CERP team successfully preserved email accounts from a variety of applications including Microsoft Outlook, AppleMail, LotusNotes, and Netscape. All email messages retain their full header content, in contrast to some tools produced in earlier research efforts.

Monday, June 22, 2009

Elrod on Twitter and Iran

I just found out that Harding Professor Mark Elrod was interviewed just a few days ago by Jessica Dean on KATV-7 about Iranians using Twitter (see the video below). Just a few months ago David Adams was interviewed by THV-11 about the history of the flu. Looks like the vast expertise of our history dept is starting to get tapped by the local press. wink

Thursday, June 18, 2009

I'm at JCDL 2009 in Austin

JCDL 2009 is about to wrap up. It's been a good conference with some interesting presentations, and I've enjoyed catching up with old friends. The conference is being held on the UT campus... short on grass but big on buildings. I think the UT football stadium is more impressive than many NFL stadiums I've visited. I guess that's what happens when you win a few national championships.

I especially enjoyed the two panels. The first panel, What should we preserve from a born-digital world?, basically came to the conclusion that everything should be saved. I concur... disk space is cheap, and it's hard to know what will truly be valuable years from now. I also enjoyed hearing about Megan Winget's work in preserving games.

The second panel, Google as Library Redux, discussed the unfortunate conclusion of Google's lawsuit with publishers and authors, agreeing to a settlement instead of pressing the court to settle the bigger questions in regards to copyright, orphaned works, etc. One of the more provocative statements came from Michael Lesk who said JCDL was irrelevant because there were no attendees from Google, Amazon, Microsoft, etc. We are being ignored. Ouch. But he may be right. I see plenty of guys from Google et al. at the WWW and SIGIR conferences.

I gave a couple of talks this year (see my slides below). There was a lot of interest particularly in my Facebook paper, What Happens When Facebook is Gone?, where I discuss the ramifications of having all our data locked-up in the walled garden of Facebook. Carlton Northern, a graduate student at ODU, is currently working on a Facebook archiving add-on for Firefox, and hopefully it will be available soon.




My second paper, A Framework for Describing Web Repositories, is work pulled from my dissertation. In it I discuss how we can view web repositories (everything from a search engine cache to a web archive) in a more abstract manor. I propose some new terminology and an API that web repositories could/should implement to be helpful to clients accessing the repository's contents.




Tomorrow I'll be co-hosting a the InDP 2009 workshop. It's an all-day event, and I'll be flying home late tomorrow night. It'll be good to be back with the family.

Tuesday, June 09, 2009

I think I'm going to be sick...

No need to blatantly lie to your professor anymore... a new "service" helps students deceive their professors by giving them a corrupted file to turn-in, possibly buying them a few more hours or days to work on their assignment. When the professor goes to access the assignment and notices the submitted file was corrupted, he'll just ask the student to re-submit her file. The student is happy to oblige, and this time she submits the completed assignment to the unsuspecting professor.

I'm not sure if I'm more sickened by the thought of someone developing such a service or the thought that they are likely to be quite successful.



Update on 6/22/09

I thought about this problem a little more, and there's really a simple solution for the technically-inclined.
  1. Have the student produce an MD5 hash of the file before it is emailed or submitted to the professor, and have the student email the hash to the professor.

  2. If the received file is corrupted, the professor should produce an MD5 hash of the file. If it matches the hash from the student, he received the correct file, so the student's original file was corrupted. Let him bring in his laptop and show you how his file could be opened successfully on his machine since it won't open on yours. Probably he won't be able to, so give him a zero.

  3. If the submitted file's hash does not match the submitted hash, the file got garbled in transmission or the student did not email the correct hash. The student should just resubmit the file... eventually the received file's hash should match the original hash. If the student is not able to produce a file that matches the original hash, he's either incompetent because he did not properly create the original hash, or he modified the original file (which he shouldn't do if it's finished), or he's trying to cheat. Either way, give him a zero. (Wow, I'm mean!)

Tweet this: Manor one of 20 developers to follow

Elijah Manor, one of our Harding CS graduates, was just listed in 20 Developers to Follow on Twitter. Very cool.

Thursday, June 04, 2009

Google Squared & Wolfram Alpha

Structuring the world's unstructured data... this is the future of search. These last few weeks have seen some impressive attempts to do just this by Wolfram Alpha and Google Squared.

Wolfram Alpha, which launched on May 18, is pulling results from their highly curated, massive database which is likely built atop massive (possibly unstructured) data sets. Google Squared, launched on May 12, is pulling results straight from the unstructured Web. These two approaches are complementary, but they are also competitive.

I'll provide just a couple of examples.

Below is Wolfram Alpha's answer to the query passing touchdowns Dallas Cowboys, Denver Broncos. Wolfram Alpha is providing a graph of data they probably acquired from a trusted source (they give some source information, but nothing specific).



The same query against Google Squared won't produce a very useful result. But a query for NFL teams results in a table of results pulled from a variety of websites. The data making up the first row is from www.detroitlions.com, a travel website, Wikipedia. Why they are not just taking information from a single trusted site like NFL.com is anyone's guess... it likely has to do with making their search algorithms more generic.


Give these search engines a try and let me know what you think.

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.