Monthly Archives: January 2007

Thesis Submission and Acknowledgements

Today I submitted my PhD thesis for examination. The accomplishment won’t sink in until a few more days, but I feel good about it nontheless. It has taken me close to 4 years to complete, which breaks down to about three and a half years of research and development, plus six months of thesis writing. I have produced a thesis dissertation, two journal papers, a book chapter, six conference papers, and several thousand lines of code.

The thesis dissertation marks the end of a long and eventful journey for which there are many people that I would like to acknowledge for their support along the way. Above all I would like to acknowledge the tremendous sacrifices that my parents made to ensure that I had an excellent education. For this and much more, I am forever in their debt. It is to them that I dedicate this dissertation.

I am indebted to Rafael Calvo, my supervisor, for guidance on this research topic, and on research and life in general. Thank you also for ensuring my continuous funding for the first three years of my studies. I am also grateful to Lina Markauskaite from the CoCo Lab at the Faculty of Education for providing sage advice on the design and analysis of the survey-based questionnaires used to collect data for this dissertation. Thank you both.

I am very grateful to Ron Johnston and John Currie for allowing me to trial Dotfolio within their course ENGG1803 Professional Practice. Without their support I would not have had the opportunity to evaluate my software within the largest engineering course at the University of Sydney. Thank you to all the students in ENGG1803 who voluntarily and anonymously evaluated the software.

This research also benefited tremendously from the many friends at the University of Sydney. Special thanks to Juan Jos’e Garcia Adeva, Ernie Ghiglione, David Peterson, Adam Ullman, Saul Carroll, Mark Gordon, and Cibby Pulikkaseril for countless hours spent discussing fruitful ideas over cups of coffee at the campus caf’e and schooners of beer at the Rose. Thanks also goes to Aiman Turani, Daniel Zhang, Sabrina Zhang, and Sergio Freschi from the Web Engineering Group (WEG) for contributing valuable ideas and discussion in our WEG meetings.

I would also like to acknowledge and thank the entire OpenACS developer community. Their feedback and advice has been instrumental in shaping the software for this project.

Finally, I would like to thank my partner Kim Tran for her endless love and encouragement throughout this entire journey. Without whom I would have struggled to find the inspiration and motivation needed to complete this dissertation.

Managing rails versions

You can use rake to manage rails versions in the vendor/rails directory of your rails project. This is useful for freezing your project to a particular version of rails. This solves a problem that many rails developers faced when their hosting providers upgraded rails on the servers, and subsequently broke all the rails apps running on the servers. Freezing to a specific version of rails means that the hosting providers can upgrade rails on the server without affecting your application.

Use any of the following rake commands to copy a version of rails into your vendor/rails directory.

rake rails:freeze:edge
rake rails:freeze:edge REVISION=100
rake rails:freeze:edge TAG=rel_1-2-1
rake rails:freeze:gems

The last rake command above will copy the local gems version of rails into vendor/rails. Whereas the other commands will checkout a version from the Rails subversion repository.

The above rake commands should be followed with an update as follows.

rake rails:update

BarCampSydney

I just signed up for BarCampSydney. It is an ad-hoc unconference, which is a kind of conference but without a set agenda and expensive registration fees. I came across it a while ago, but decided to signup after seeing Bruno Mattarollo’s name in the list of attendees. Bruno used to be a member of the OpenACS community, which I was an active participant of as well. It will be good to catch up with Bruno.

The blurb for BarCampSydney is as follows:

The first BarCamp is being held in Australia this year! BarCamps, those crazy unconferences, will be held in states across Australia at the same time on the 3rd and 4th of March. BarCampSydney is calling you!

NO SPECTATORS, ONLY PARTICIPANTS

When you come, be prepared to share with BarCampers.
When you leave, be prepared to share it with the world.

BarCamp is an ad-hoc unconference born from the desire for people to share and learn in an open environment. It is an intense event with discussions, demos and interaction from attendees. Anyone with something to contribute or with the desire to learn is welcome and invited to participate.

What’s Next?

Sign up on the wiki, check out the blog, tell all your friends, prepare your presentation, ask your company if they’re interested in sponsoring…

Remember to backup your thesis!

I am at the stage where I am proof-reading and making minor revisions to my phd thesis. I have also submitted my thesis to my supervisor for feedback and criticism. This means at least one more round of changes after receiving the thesis back from my supervisor, presumably with red ink all over it!

At this point I have become obsessed with backups. I would hate for my thesis to be lost due to hard disk failure, etc. Don’t laugh, it has happened twice to people in my research group.

I am thankful to have used latex for my thesis, as it saves the content in a text file. This saves you from worrying about corrupted binary files if you are foolish enough to write your thesis using MS Word. My thesis writing environment comprises of TexShop (sometimes TextMate) in conjunction with BibDesk (bibliography manager) on OS X. I also use OmniGraffle for drawing my diagrams. These are some of the most productive tools I’ve used for generating my thesis.

Another advantage for using latex is that you use any text editor to edit the content for years to come, and you can also use a version control system – such as CVS or Subversion – to track changes. Using a version control system is also useful for working on your thesis on different computers. This kind of acts as a distributed backup strategy, as I now have checked out working directories on three computers, and the main repository residing on a server is backed up on to tape. Furthermore, I use StrongSpace for additional rsync backups of my thesis and all supporting files.

Spending time and money on a bulletproof backup strategy for your thesis is highly recommended. Otherwise if your computer dies and you weren’t backing up, then you have pretty much wasted the last three or four years of your life doing a PhD.

Goodbye Gmail, Hello Joyent

I really wish that I found this posting in the Joyent Forums earlier. It tells you how to set up email and web domain aliasing to your Joyent account.

I purchased a Mixed Grill bundle from TextDrive which included hosting, online storage for secure backups, and Joyent collaboration applications. To access your joyent applications you have to go to http://username.joyent.net, and your resulting email address would be username@username.joyent.net, which to me doesn’t look that great.

So I came across the above forum posting which shows you how to set up an alias for username.joyent.net, so that you can access your joyent applications from home.yourdomain.tld, and your emails will be username@yourdomain.tld.

If your hosting is with TextDrive, then all you need to do is submit a ticket requesting that they add an MX entry for smtp.joyent.net, and a CNAME entry for home.yourdomain.com that points to username.joyent.net.

You then have to go to your Joyent Customer Control Panel and click on the Domains tab. This allows you to add a web domain and an email domain. Your web domain will be home.yourdomain.com, and your email domain is yourdomain.com. You should also select the “this is the primary domain” option.

Finally, make sure that the email aliases set up for yourdomain.com in your TextDrive webmin match the usernames of the users in your Joyent account.

All this means I can finally make use of my massive Joyent quota, which is about 50 times bigger than my Gmail account!

The other advantage of using the Joyent account is that it has IMAP, which Gmail doesn’t have. So I can access my email not only from an ajax web application, but also from a desktop mail client. The settings for your IMAP client are:

imap server: imap.joyent.net
smtp server: smtp.joyent.net
username: yourname@yourdomain.joyent.net

The Mixed Grill specials at TextDrive apparently end on 15 January 2007. If you are looking for great hosting, service, generous quotas, and a friendly community, then I highly recommend TextDrive.