Sunday, March 30, 2008

Summer of Code: A New Twist

I wrote a few weeks ago about the summer of coding fun that surely lies ahead. I outlined my desire to "continue the quest of supporting non-CSS fonts in Inkscape" and discussed the limitations that some aspects of the Pango font management system have, and how they were preventing Inkscape from using all available fonts. I recently submitted an application that outlined my potential summer, starting with the legalization of flowed text (deemed a priority by some senior community members) and then continuing with research into solutions to the fancy font problem. So if all goes well and I am accepted, then I could have another summer full of text fun.

But wait... there's more!

The twist is that I now have another interesting project to apply for this summer. My friend Christian, who after participating as a student in three summers of code has decided he should mentor this time around, recently worked on using the Wii remote for head tracking for molecular visualization, and then on alternate means of doing the tracking, such as using face recognition. He wants several aspects of his project, dubbed MolViz, to be refined and then used by the wider Python community. You can find more information about that on the Python Software Foundation's GSoC ideas page.

The interest I have in this project revolves around one of my favorite topics of late - augmented reality! I would like to implement a new mode of head tracking, using augmented reality markers attached to a user's forehead. This method is cheaper than using a Wii remote in that one need only print out a simple pattern and attach it to their head, yet more accurate in real time than face recognition would be. Python programmers could greatly benefit from such a head tracking option for applications that need to work quickly but have a high degree of accuracy and consistency, such as games.

So I went ahead and applied for this project, too.

The truth is that I would love to work on both projects, but the possibility of not working on Inkscape admittedly feels strange, almost guilt-ridden. So I have vowed to myself that, after GSoC is done, I will try to keep up with open source development by working on Inkscape at least once a week. I have had such goals in the past but was never able to reach them, thanks to heavy course loads and so on. However, for the next 4-16 months (however long it takes), I will be working on my thesis, so I should finally have maximum levels of flexibility for a while. With this in mind, I choose to specifically not hope for one project or the other, but wait and see what happens.

Thursday, March 27, 2008

Donor Dinner

Last night, I had the privilege of attending the 11th Annual Donor's Dinner, hosted by Carleton University at the Museum of Civilization, Gatineau, Quebec. The theme was "Making Things Happen," and it was an opportunity to recognize and thank the many donors who have contributed to making Carleton great. Many students attended so the donors could learn about how their generosity has made a real impact in their lives.

The evening was an opportunity to dress nicely, as well, which was a welcome change to the student dress code of "whatever I find in a hurry as I run out the door." It wasn't ball gowns or anything like that, but the business casual getups still looked sharp.

Cocktail hour started things off with hors d'Ĺ“uvres and wine. I knew one other person from computer science there, so we chatted for a while until a couple of donors approached us (I guess it was obvious enough that we were both students!). I ended up talking to the wife about "women things," which I surprisingly rather enjoyed. She got married right before starting her Masters, just as I did this summer. She has five children, which I'm pretty sure I don't want, and one daughter is getting married this summer herself! It was really interesting hearing her stories of periodically moving to France for her husband's schooling.

At the end of that conversation we were ushered to our tables, which were all preassigned. I sat across the table from a couple from Research in Motion in Waterloo, but didn't get much of a chance to talk to them. I do remember asking about the processing power of their Blackberry (it was a Curve), because they mentioned it had both a camera and a GPS. Hmm, I wonder if it would be fast enough to run the real time mapping application I want to develop? Also at the table was Luc Lalonde of Carleton's Foundry Program (and other innovation related things). I got a chance to discuss my map application to him in more detail, and he seemed to like the idea.

The official program was a good length (and by that I mean, relatively short!). There were two speeches that I felt were particularly good. Truly short and sweet -- straight from the heart. The first was from David Azrieli, whose remarkable donation will help the dreams of up and coming architects come true. Dr. Azrieli, currently 85 and an honorary recipient of a PhD, graduated from Carleton's Master of Architecture program himself... at age 77! The second speech was from a student who has benefited greatly from the financial support of donors. Collin Haba comes to Carleton from Rwanda on scholarship with the dream of becoming a journalist. He wants to be a part of the rebuilding taking place back home post-genocide, and having a more trained media is an important aspect of this.

As the evening (and prime rib dinner) came to a close, I reflected on how lucky I have been to benefit from the financial support made possible by these admirable philanthropists. I hope I have made the most of the opportunities made possible by not needing to work part time to finance my studies, and I hope I can continue to do so.

Friday, March 21, 2008

Undergrad Issues These Days

The current executive of our School of Computer Science's undergraduate society, the Carleton Computer Science Society, recently held a town hall event. The idea with town halls is to round up as many undergraduate students as possible and discuss issues relevant to them. Concerns would be passed on to (and hopefully acted upon by) the school's administration and the society.

Though I am now a graduate student, I still attended, but this time around as Google Ambassador. I feel that these opportunities to have your voice heard are very beneficial to all students, but many don't bother to attend. Throw in some free pizza and the turnout is sure to excellent!

Some of the issues raised were important, and probably transcend our school. I thought I'd pick a couple and give my thoughts on them here.

First up is the co-op program. Co-op at Carleton used to exist solely in the School of Computer Science when it started in the early eighties. Now there are many programs across the university that have a co-op option, and co-op even has its own department.

To get a job through co-op, students look through a database of descriptions that are matched to the degree programs employers are looking to hire from. Employers have a relatively long time frame in which to submit their descriptions and ask for applications and resumes in return. So one company might have a deadline in late February while others might wait until early April. But here's the catch: students have only 48 hours after an offer is made to decide whether they want to accept it.

Some students voiced their concern over this. What if you wanted to see whether you were going to get an offer for another job you interviewed for, and that you wanted more, but you couldn't find out within the 48 hours? You risk losing the first offer on the chance of getting the second. If the more desirable offer ends up falling through, you end up back at square one.

The first thought is to wonder why we don't use the ranking system in place at other universities. In this model, there are rounds of applications and interviews. At the end of the round, both students and employers rank their top three choices (or so), and then students and employers are matched based on the ranks. Based on comments and complaints by several students I know who went through this ranking system, it is far from ideal as well, since the end goal is simply to match as many students as possible with employers.

So somebody suggested a compromise: either make sure bunches of offers are sent out together once a week, or make the acceptance deadline longer so students can wait on other offers. I like both these ideas. I was pretty lucky when I was in co-op, but I know far too many people who took jobs they were way overqualified for in fear of not finding another. Hopefully this suggestion makes it to the co-op office.

As a bit of a side note, I still hear many students say they don't bother enrolling in co-op because it's easy enough to find their own jobs, so why should they pay the fees and have the hassle of writing a work-term report? I don't know what it's like now, but in the past, it was often the case that some big-name companies generally only hired through the formal co-op program. In theory, the students who were eligible for co-op had achieved a certain scholastic standard, so they knew the pool of candidates would be better than the general student population. Also, for some companies, it used to be that actual co-op experience instead somehow counted for more than general summer job experience, or that being in their co-op program during school would be the only way to get in full time later. I'm really curious as to whether this is still the case anywhere.

On to the second issue. I was actually a bit surprised to see this as a recurring theme during the discussions. It turns out that students feel pretty disconnected from their profs. They have a hard time finding out about their research interests, and often don't feel comfortable approaching them outside of class (how approachable they end up being seems to depend at least partially on their teaching style in the classroom). Actually, I'm not as surprised about the disconnect as I am about how much they care about it.

Last year, when I was president, the CCSS started an initiative dubbed the Espresso Lunch. The idea actually came from a recently graduated alumnus who hoped we could provide an informal setting, supplemented with espresso and treats, where senior undergraduates, graduates, and professors would gather to discuss research interests. The lunches ran all last year and the first half of this year.

These events were moderately successful. In some cases, we managed to have profs bring interesting demos of their research, like their robots, or augmented reality setups. Students really flocked around to find out more in those cases. But other weeks, the same profs and students attended, and I'm not sure how much they really learned about each others' interests.

I really hope that next year's CCSS executive can come up with new ways to help bridge this gap between students and profs. Maybe they can hold slightly more formal research presentation days, so students can see more cool stuff like the robots. Perhaps a different few profs can present every month or two.

There are, of course, many other topics that were discussed at this edition of the town hall, but listing off more would just become boring. So I will leave you with these to ponder. Think about whether these are/were problems at your school, and how you might fix them. I'd be more than willing to pass on any suggestions you leave in the comments.

The Amazing Quadruped Robot

An engineering friend brought my attention to a video so amazing that I just had to share it.

Imagine a robot that can tackle challenging terrain like rocky paths, icy roads, leafy or snow-covered hills, and even a haphazard pile of concrete blocks. In places where you would slip and probably fall, the robot seems to always manage to regain its balance. Even if you give it a nice big kick in the side.

Sound like science fiction?

Meet Boston Dynamics' BigDog. As you will see in the video below, this machine can do all this and more -- while carrying a load of over 300 lbs!

(Image from Boston Dynamics website)

While watching this video, I was completely in awe. The sensors this machine must have... it's just mind-boggling. The way that it recovers from loss of balance is nothing short of impressive.

The video also gave me a bit of a creepy feeling. This robot could be a star in the next big sci-fi horror movie!

Without further ado, meet BigDog:

Sunday, March 9, 2008

Summer Coding Fun Ahead

This year's Google Summer of Code official announcement has come and gone. Would-be participating open source organizations are applying in a flurry to be one of the relative few that will become mentors to hundreds of students this summer. And me? I'm hoping to propose more work on Inkscape's text tool to go with what I did last summer.

In particular, I would very much like to continue the quest of supporting non-CSS fonts in Inkscape. In the current build, I have an extra custom CSS attribute added to text elements that holds the full name of the font used. Without this, font information can be lost, since CSS can store a font family and only a limited number of style and type attributes. Fancy font variants will have style and type values that simply can't be represented, and so some generic alternative will be used. Other than the obvious problem of dumbing down more interesting fonts, you can imagine that the general style and type defaults might not even exist for this family, making it completely unusable.

So we store the whole font name to ensure that no information is lost. Unfortunately, Inkscape internally makes use of the Pango font system, which seems to - you guessed it - only support fonts that CSS can support. Fonts are represented in memory with Pango structures, and the system is fairly heavily intertwined with Inkscape font code. I would not suggest removing Pango from the Inkscape equation, so this leaves me with one choice: see if we can expand Pango to include a bigger variety of fonts!

I have contacted the Pango folks on their mailing list, and am awaiting their reply. I am trying to find out whether this expansion would be desirable for Pango. For all I know, there could be some philosophical or even technical barriers to doing it. If I get some good news back, I would like to propose working on this expansion during this year's Summer of Code. Ultimately, this would mean being able to support some cool fonts in Inkscape.

I will let you know what happens!

Tuesday, March 4, 2008

A Good Budget for Students

The federal budget was just passed by the Parliament of Canada today, and I am rather pleased with it. You can find all the details on their main web page, but I just wanted to point out two aspects that I think are really great for students.

First up is the tax free savings account initiative. Owners of such an account will be able to save up to $5000 a year however they wish (be it stock, cash, or whatever). Then, when the money grows in the account, it will not be taxed. That means no tax on the interest, and no capital gains tax on stocks. When it comes time to withdraw the money, which can be anytime at all, that too will be tax free.

Hmm, sounds an awful lot like an RRSP, you might be thinking. Not quite. When you withdraw from an RRSP, you have to pay tax on the money then. This makes withdrawing from an RRSP before retirement pretty much impossible as your tax bracket tends to be much higher at that point.

So what's so great about this for students? Well, anybody over 18 can open one of these accounts, so your parents, grandparents, or you (if you're old enough) can put money away for school, grow it tax free, and withdraw it when you need it. This is a powerful incentive to save up for post-secondary education (or even grad school if you make it that far) and help avoid debt in the future. Or, if you are a current student with just a little bit extra wiggle-room, it makes it easier to put some money away to help you hit the ground running once you're done.

The second piece of good news will excite the top students intending to pursue a PhD. The Canada Graduate Scholarship will now amount to $50,000 and be available to the top domestic and international students interested in doctoral studies. If I'm not getting the names confused, the NSERC Canada Graduate Scholarship was previously about $35,000 for doctoral students. This is a significant jump and a huge incentive to be the best and continue on in school!

There seems to be a lot about students in this year's budget, but I haven't analyzed any other parts of it, so I can't really comment. I have shared with you what excited me. Why not let me know what caught your attention?