The City of Bloomington is a strong supporter of community source, open source, open standards and open data. We have been a leader in the adoption of Open311, an open standard for managing non-emergency service requests from constituents such as filling potholes, removing graffiti, replacing street lights, etc. Our Google Summer of Code projects have helped us expand our existing suite of Open311 tools which includes a lightweight CRM with Open311 API and an iOS Open311 client. These projects and others can be found in the Code for America Commons.
GeoReporter for AndroidPrior to joining Google Summer of Code, we had completed an iOS Open311 client but desired an Android version as well. Fransiska Putri Wina Hadiwidjana approached Bloomington through the Open311.org email list. Her interest in Open311 led her to our Open311 Toolkit and she asked if we would consider participating in Google Summer of Code. Fransiska wrote our Android version of the app. We owe Fransiska not only for her work product this summer, but for making our whole experience with Google Summer of Code possible as it would probably not have occurred to us to make this leap without her nudging. She introduced changes that streamlined our user experience and her source code will be the foundation for a full release in Google Play later this year. Her user interface improvements will be back ported to the iOS app as well.
Aashish Mittal worked on KME GeoReporter. Aashish had worked previously with the Sakai Open Source Project, also under the Kuali banner. He started learning the KME framework and researching the Open311 specification and from there helped define a better approach to web service usage in KME itself. His work in this area will pay dividends for all KME tools. After working on the web services refinements, Aashish built the Open311 tool and completed the web service integration with the City of Bloomington's Open311 API. The outcome and final product will now be integrated back into the KME SVN trunk and become available worldwide for anyone using the KME framework.
This has been an inspiring experience for us and we hope it motivates other city governments to embrace the economy of open source software. We look forward to additional ways to apply all that we have learned this summer. Many thanks to the Google Open Source Team and to Google Summer of Code for this rewarding partnership.
By Rick Dietz, Director of Information & Technology Services and Google Summer of Code Administrator, City of Bloomington, IN
Sage is an open source mathematical software environment that aims to provide everything that mathematicians, scientists, researchers, and students need for their work or study. The basic philosophy of Sage is to combine many established software packages under one umbrella, but to also implement powerful and unique algorithms in its own library.For Google Summer of Code our project ideas encompassed a wide range of topics, ranging from low-level coding to advanced and highly abstract mathematics, and also non-mathematical proposals to improve the user-interface. The following is a short summary of our student’s projects.
Lina Kulakova -- Polynomial factorization over finite fields Lina worked on implementation of fast algorithms for polynomial factorization over finite fields. She implemented three different algorithms: basic Cantor-Zassenhaus, Berlekamp, and Kaltofen-Shoup. For automatic choice of the best algorithm, she wrote profiling code for two polynomial modules. Now both modules for small and large characteristics have three factorization algorithms and a function that chooses the best one for each given polynomial.
Titus Nicolae -- Faster symbolic expressionsThe aim of the project was to improve the performance of Pynac. Pynac is a fork of GiNaC to support direct linking with Python, and is the primary library for symbolic expressions in Sage. The project involved writing wrappers to the underlying arithmetic libraries to replace the current Python types provided by Sage. Titus defined a suite of tests for benchmarking future releases of Pynac. Now he is working on implementing a wrapper for rational number types by using FLINT as a backend and he will soon implement the other number types.
Jan Pöschko -- Lattices and Voronoi cellsJan created a framework for lattices. Since lattices arise in many different areas of mathematics such as algebra, geometry, cryptography, and coding theory, it is good to have one common place to put in various lattice algorithms. During the summer, Jan also wrote code for calculating the Voronoi cell of a lattice. This is a core algorithm that supports many other algorithms, including an algorithm to solve closest vector problems, which he also implemented.
We congratulate all three of our students and their mentors for successfully completing their ambitious projects!
By Harald Schilly, Sage Google Summer of Code Organization Administrator