Archive for category Computing Education
So the term has come to a close and I thought I’d give a short retrospective of my time working on POSIT. First of all, I’d like to thank all the people involved in UCOSP for making it what it is and letting us be involved in it. I know I’ve found it to be a very educational and rewarding experience, and I think the other students on my team feel the same way.
We started off the term with an experimental version of POSIT that had been rebuilt with a pluggable architecture that would hopefully make it a lot easier to customize the app according to clients’ needs. However, since the new architecture was fairly new, the actual functionality was pretty rough. For this reason, our UCOSP team spent much of the early part of the term helping Ralph and Rachel out with testing and patching bugs while they continued to build features back into the new architecture. As POSIT got incrementally nicer each week, we would then gleefully load the new version onto our phones and do horrible things to it until it broke.
Later in the term, as POSIT was getting more stable, we each chose individual projects to expand POSIT’s functionality. All of us eventually decided on function plugins for the app, which I believe have already been discussed by other members of my team. Here’s an overview of what my teammates have accomplished:
Twitter Plugin – Stanley had a neat idea early in the term to combine POSIT with Twitter. His plugin uses the Twitter4j library to give users the ability to post finds to their Twitter accounts. The wiki page for Stanley’s plugin is available here: http://code.google.com/p/posit-mobile/wiki/TwitterFunctionPlugin
Camera Plugin – POSIT’s camera functionality is one of the things I found most striking about the app when I was first introduced to it. Gordon’s plugin puts the ability to take pictures and associate them with your find back into the app using the new architecture. Find out more about it on the plugin’s wiki page: http://code.google.com/p/posit-mobile/wiki/Camera_plugin_with_syncing
Tracker Plugin – Another nifty feature that was begging to be added back in is POSIT’s tracker functionality. It provides the ability to track the path of someone’s expedition when using the app. This was Kalin’s project, and you can read about it here: http://code.google.com/p/posit-mobile/wiki/Tracker_Activity_Walkthrough
Location Aware To Do Reminder Plugin – Without disparaging anyone else, I think Eric’s plugin is probably the coolest. His To Do plugin allows you to set reminders for yourself that are linked to a find’s location. It monitors your own location and will alert you when you are in close proximity to the reminder location. You can read all about it on the wiki page: http://code.google.com/p/posit-mobile/wiki/To_Do_Reminder_Walkthrough
SMS Plugin – This was my plugin, so forgive me if I spend a disproportionate amount of time talking about it. I wanted to do something similar to what was done with the version of POSIT used in Haiti. The deployment of wireless Internet in Haiti isn’t exactly ubiquitous, so for them it was important that they be able to share data without relying on the Internet. For this reason, they built a whole synchronization system that used SMS messaging. My plugin’s functionality is a bit simpler than that. I implemented SMS functionality merely as a way of sending and receiving a single find over SMS. The tricky part about this was that, while the Acdi Voca app knew exactly what its Find object looked like, I had to contend with the fact that the user might be using a Find Plugin about which I don’t know the details. I’m pretty happy with the result, and my hope is that the code I have written will also be of help to anyone who wants to extend POSIT’s SMS functionality even further. The wiki page I created for the plugin is here: http://code.google.com/p/posit-mobile/wiki/SMSFunctionPlugin
And that just about wraps up everything I have to say! Thanks everyone again for letting me be involved with this. I think it’s great what you guys are doing and I wish you the best of luck in future terms.
A firsthand account from the UCOSP Code sprint in Totonto on XX. by POSIT project team members :
UCOSP (Undergraduate Capstone Open Source Projects) gives students all across Canada the opportunity to work together and collaborate on joint open source projects. One of the great projects of UCOSP is POSIT, an android application from the Humanitarian FOSS project.
Since many of the students in UCOSP are from different regions of Canada, the wonderful steering committee of UCOSP organized a 3-day code sprint, held in Toronto, for students to meet face to face and familiarize themselves with the projects together. Members of the POSIT project, Gordon, Stanley, Ryan, Kalin, and Eric were all extremely excited to attend the code sprint; some even traveled from Vancouver and Edmonton to Toronto.
On the first day of code sprint, we devised a tentative plan for the next three days, based on our supervisor Professor Ralph Morelli’s agenda. Since working on POSIT was our first time working in an Android development environment, we decided to set up the Java Android environment and work through Google’s online tutorials to really understand the structure and workflow of an Android application. We have found that the Notepad Tutorial (http://developer.android.com/resources/tutorials/notepad/index.html) was particularly helpful because not only did it show us the standard Android framework, it also introduced the Java SQL database, which was essential in understanding the inner-working of the POSIT application.
One of the biggest challenges of working with team members all around Canada is effective team communication and efficient project coordination. We were thus grateful that, during the second day of the code sprint, our supervisor Ralph showed us many tools that we could utilize to easily collaborate and share with the team online. Such tools include online POSIT wiki and ticketing system where we can report and resolve issues encountered in using POSIT; and Mercurial for managing POSIT’s online code repository. With the help of Ralph, we also successfully deployed the demo POSIT application on our phone to test out its basic features.
Ralph also mentioned that he and POSIT’s past development team decided to overhaul POSIT’s overall framework to make it a more agile and configurable application. He introduced us the concept of “plug-in”, with one “plug-in” being its own separate application that has different user interface and supports one or more data types (texts, images, videos, etc). He also shared with us his vision on how users could simply configure the “plug-in” online and our code base would auto-magically generate a brand new version of POSIT with the specifications defined in “plug-in”.
We were all very excited with the idea of configurable application, but in order to get there, we needed to first understand the structure of the existing POSIT code base. On the last day of code sprint, Ralph pointed us to some fundamental POSIT framework and we each read through a part of the POSIT code base. Before we all left for our lovely home city, we had set up the date for our weekly Skype meeting so that we could update each other on our progress and coordinate project features.
Throughout the three days of code sprint, we all felt like we had accomplished a lot. We were so glad to meet each other face to face and were given the opportunity to work on such a great project. We really look forward to collaborating with each other and we cannot wait to see what our final POSIT application will be like.
Posting from The Tor blog: (https://blog.torproject.org/blog/weather-change)
Announcing the vastly improved Tor Weather!
The new weather incorporates many new features designed to make it far more useful to relay operators new and old.
The new Tor Weather now checks the current consensus and can notify the relay operators if:
- their node is offline for a specified period of time,
- their node has been seeing very little usage,
- their node’s Tor version is out of date,
- and if they’ve passed the threshold to receive a free Tor t-shirt.
This complete re-write and enhancement of Tor Weather was done by Professor Danner’s students during their summer The Humanitarian Free and Open Source Software at Wesleyan University course. Thanks to Jeff, Kate, and Michael for designing, coding, and testing this new Tor Weather release. Thanks to our own Kaner for mentoring the students and integrating their changes into the infrastructure.
Just wrapped up an interesting project with five students from various universities in Canada as part of the UCOSP project (Undergraduate Capstone Open Source Project). UCOSP was the brainchild of Greg Wilson of the University of Toronto and is now managed by Karen Reid and Michelle Craig (Toronto) and Eleni Stoulia (Alberta). It’s a great project, although it is currently limited to Canadian universities.
My participation involved mentoring five students — 2 from University of Toronto, 2 from Waterloo, and 1 from Alberta — who signed up to work on our POSIT/Android project. The project kicked off with a weekend code sprint in October at the University of Toronto. I brought 5 Android phones with me and we spent the weekend getting the phones set up and getting up to speed on POSIT. The students were all very capable and, despite having no prior experience with Android, they managed to fix several simple bugs and/or implement a few simple enhancements during the weekend.
After a couple of weeks, the students each proposed specific projects and spent the rest of the semester working on them. We meet for a weekly half-hour Skype chats where we discussed various issues. We used POSIT’s Google code repository to manage and document the work. Here’s a list of the projects with links to the students’ code and write ups:
- Edward Bassett (Alberta) — Adding a map Find feature.
- Greg Knox (Toronto) — Adding a search Find feature.
- Derek Bachelor (Toronto) — Adding search and other features to Map Finds.
- Yang Han (Waterloo) — Upgrading POSIT mobile-server synchronization feature.
- Anna Komorova (Waterloo) — Explicit syncing between phones using Bluetooth.
Overall this was a great experience. The various contributions to POSIT were substantial and significant. I hope the students got as much out of it as I did. HFOSS should initiate something like this for our schools.
Stormy Peters, executive director of the GNOME project, has a regular column in the Open Source Business Review (OSBR) and invited me to submit a column on HFOSS and other efforts to introduce FOSS into higher education. The column is available here in the April 2010 edition.
The HFOSS Project was well represented at the Fall 2009 Undergraduate Science Symposium held at Trinity College. Students from Trinity and Wesleyan presented posters on their summer projects. Read the rest of this entry »
Between May 18 and July 24th, 2009, we conducted the second NSF supported Humanitarian Free and Open Source Software (HFOSS) Summer Institute. We had a total of 12 student participants from 5 colleges (5 from Trinity College, 5 from Wesleyan University, 1 from University of Hartford, and 1 from University of Connecticut). With a sister institute at Connecticut College with 3 students.
Below is a brief summary of the development projects our interns worked on. The students were engaged in developing free and open source software for seven different humanitarian projects. Four of the projects (Sahana, OpenMRS, InSTEDD and GNOME) are well-established international projects; two are custom software developments for the New York City Office of Emergency Management and the Hartford Public Library; and one is a project to develop a Google-Android-based portable handset device for use in crisis management.