Yay, SQL implementation in action!

I am always interested in coding and stepping through the code in a DBMS in action and my dreams have finally come true!

As a continuation of the work that I have been doing from last term, other than the error handling of the SQL functions, this semester it's clear that I will be implementing 6 SQL functions embedded in Ingres using the GEOS library with my mentor Alex Trofast.

Posted byA nerdy girl at 3:23 PM 0 comments  

I'm back with Ingres again

After spending a semester with the Ingres community, I have decided to stay with the team for another semester with Andrew Ross and the Geospatial team.

Other than me, this time we also have Sara Castaneda Danaher(University of Virgin Islands) as a returning student, Lim Goh(University of Waterloo), Xiaoxiao Li(University of Waterloo), Henry Chow(University of British Columbia), and Anthony McCallum(University of British Columbia).

I'm already looking forward to the code sprint that will be 2 weeks from now :)

Posted byA nerdy girl at 2:32 PM 0 comments  

Screencast showing building GEOS and Geospatial as a non-root user in action on Linux

The following video is done with GEOS 3.2.0, compiled in gcc 4.3 and g++ 4.3 on Debian as a non root user.

Posted byA nerdy girl at 8:23 PM 0 comments  

UCOSP: 2009 fall term final thoughts

It was a valuable experience to work on the Ingres Geospatial project along with the community. The most valuable ones are not those that I got from the coding, but the co-operation, management, and more importantly, my weakness.

This project is challenging to me since I am the only University of Toronto student working with Ingres and one of the very few UCOSP students who have been grouped with a partner who is not under the same university. In order to co-operate well, I need to know more about the expectation from students at that university from which my partner is in, need to understand more about their work load level, schedules of the semester, etc, which is totally different from the group projects/assignments that I have ever done.

Although it was upsetting when I have not heard anything from my assigned partner until the end of term, because of that I caught the valuable chance to co-operate with other Ingres students as well as the community, and made myself comfortable with the style of the day to day working experience at Ingres.

I would give myself a grade 80 out of 100, with the reasons as follows.

Things that went went well

  • Get myself to be familiar by the Ingres community at IRC, which always guide me back to the right track when I went side ways.
  • Let the Ingres community see the scope of work that Andrew has assigned each of us to when the grading scheme is finalized such that the community has a better picture about the UCOSP students.
  • Attended most of the meetings and updated Andrew and/or my mentors whenever there's news from me.
  • Helped out with the other UCOSP students who are also under Ingres the best that I can, either on IRC or skype.
  • Kept track of and jotted down the solution to the roadblocks that I encounter during the installation and configurations stage, also some cheat sheets for newbies like me to refer to understand the bigger picture more.
  • Organized meetings with UCOSP students at their needs to update each other when normal meetings are cancelled.
  • Updated several wiki pages which had parts that are irrelevant/outdated as I digged deeper about Geospatial.

Things that could have done better
  • Should have contacted Andrew discussing about the organization of the course back in the summer.
  • Although I have mentioned to the Ingres community, but I should have raised the concern about non-responsive partner to the school earlier.
  • Should have better time mangagement, especially at peaks of assignments/midterms/exams.


After this term, I am more assure of my interest about project management and software architectural design, as well as about my abilities and weakness.

Posted byA nerdy girl at 7:29 PM 0 comments  

UCOSP: status report #14

Back on Wednesday, I have committed the "guiding patch" into the repository. I followed these steps, confirmed with the Ingres community that this is how I should be working for development:

  1. Go to https://bugs.ingres.com/ to create a ticket as "New enhancement" for development. The ticket system is not only used for bugs, but also development purpose.
  2. do "svn commit --username=yourUserName /path/to/file.s -m=#123456 your description", where 123456 is the ticket number that you have created
  3. commit 1 fix/small feature at a time
  4. after committing, send off a quick email notifying everyone that something has just committed.


Other than that, I have also been reading on this knowing more about the structure of the Ingres code.

As for my understanding now, the current development is currently focusing on improving the robustness of this following part.
adu – This is where most of the actual expression and function semantics live. ADU contains code for string functions, date functions, coercions, and more.


For the rest of the week, I'll be working closely with Chuck Thibert on the small part that he's also working on.

Posted byA nerdy girl at 6:26 PM 0 comments  

UCOSP: status report #13

I have successfully built the code checked out from Geospatial,
with the dependencies of xerces 2.8 headers, libraries, jam, pax, and pam-devel, GEOS 3.2.0 libraries on Debian as a non-root user.

As I was running runbuild.sh, I ran into problems about the build script could not pick up some libraries(GEOS, LD) on the fly. It turned out to be the case that the path variables are runtime variables, it doesn't influence the linker. In another words, the path variables tell the build script where to find libraries when then are running, while the linker varibales tell the build script where to find the library when it's linking. The most updated code is adjusted such that it simplifies the process for non-root user to compile code.

Before running runbuild.sh, a non-root user need to:

export GEOS_LOC="/path/to/geos-3.2.0rc1/lib"
export GEOS_INC="/path/to/geos-3.2.0rc1/include"
export LD_LIBRARY_PATH=$GEOS_LOC:$LD_LIBRARY_PATH

Besides, if you are not using default libraries, such as using xerces 2.8 instead of 2.7, you need to put the following line to $INC_ROOT/src/tools/port/jam/bldenv
export XERCVERS=28


Chuck Thibert has provided me with a patch which comes with the adjustment for non-root users to start my first try to apply a patch. Alex Trofast and Andrew Ross also provided me with a diff that serves as a guide for me to go through the proper process of building a patch.

Now that I have already applied the patch from Chuck and successfully build Geospatial code. Next, apply the diff!

Posted byA nerdy girl at 7:02 PM 0 comments  

A couple of notes when compiling Geospatial with GEOS, GDAL, MapServer

I have been following this to compile Geospatial under a Debian environment. There are a couple of notes that I want to make

  • As of date 2009-11-15, thanks to Frank Warmerdam, the above wiki says "--with-python" under the configuration of GDAL. However, it is still not clear why the python is required for GDAL. Since MapServer does not use it, and ogr2ogr does not require it. And that python extension for GDAL picks up gcc instead of g++ when make is run and to the point of compiling c++ code.
  • For the configuration of Mapserver, there is a more detailed description for getting the libraries that Mapserver needs to be build on. That provides the links in 1 place where to get: --with-ogr --with-gd=/usr --with-libiconv=/usr/local --with-png=/usr --with-proj --with-php=yes -with-agg=/usr --with-freetype --with-regex=system

Posted byA nerdy girl at 12:57 PM 0 comments