UCOSP status report #2
Friday, February 5, 2010
For the past 2 weeks, I have been working with the first 2 patches, issimple and isempty, with the first one committed and second one pending for approval. These patches are compiled based on the latest from the GEOS library repository after the people working on it fixed the building issue, and applied the patch sent by my mentor Alex Trofast.
Next moving on, I'm going to work closely with Sara on the SEP testing and hopefully and compile a set of steps for newbies to QA for Ingres.
Wiki pages that I have been reading about.
http://community.ingres.com/wiki/Test_Developer
http://community.ingres.com/wiki/SEPGUIDE
Posted byA nerdy girl at 9:37 AM 0 comments
Labels: Eva Wong, Geospatial, Ingres, status report, UCOSP, winter 2010, Wong I Wa
UCOSP status report #1
Friday, January 22, 2010
For the first week, I have tried stepped through the code in Ingres using the build that is generated by ./runbuild.sh -g after a clean along with gcc.
For the first patch isempty, I have the diff patch that I have so far to Andrew, Alex, and Sara. I have got a confirmation from Alex that the patch Right now I'm currently stuck on some build error that is at this point unknown to me.
I have followed the exact same steps for this way of clean build.
In $ING_ROOT:
rm -rf release install build logs tools
./runbuild.sh -c
cd src
rm -rf `svn stat | grep ? | awk '{ print $2'`
runbuild.sh -g
However, the build gave me the following error
grep --color -n error ./logs/jam_01_23_10_0309.log
1384:/data/g7iwwong/geospatial/src/common/adf/adg/adgoptab.c:1106: error: 'ADO_ISEMPTY_CNT' undeclared here (not in a function)
1385:/data/g7iwwong/geospatial/src/common/adf/adg/adgoptab.c:1106: error: 'ADZ_ISEMPTY_FIIDX' undeclared here (not in a function)
Posted byA nerdy girl at 12:47 PM 0 comments
Labels: Eva Wong, Geospatial, Ingres, status report, UCOSP, winter 2010, Wong I Wa
UCOSP code sprint day #3
Monday, January 18, 2010
Today both the Geotools and Ingres group continued to explored the unanswered questions in their heads. We also had an hour of wrap up after lunch on what's good/bad about this meeting up.
I found the code sprint well-organized and yet elastic to different needs for different groups. I have also learnt more about the different curriculum from different schools, their strength and weakness. I am also able to get most of the discussion about sync'ing the knowledge among the team, the flow of the term, contacts, communication channel and job allocation done at this code sprint, which will definitely ease my work for the rest of the term.
Schedule of this term total = 11 weeks
Meeting: Every Friday
Where: GTalk/Skype/Google Wave
Blogs: Update 1 summarized blogpost to UCOSP per week after the meeting
Week 1(22 Jan 2010): Eva: figure out how to debug the code, and complete the 1st patch: isEmpty. See Ingres in debugging mode in action(attach gcc and run on top of Ingres?). Sara: figure out how to add test cases, how the connections are made in between the test_suite and the ingres geospatial code base, structure of the test suite for geospatial, what are the files that are needed to be modified in order to test the functions that Eva writes.
Week 2(29 Jan 2010): the 2nd patch: IsEmpty
Week 3(5 Feb 2010): testing of the first 2 patches
Week 4(12 Feb 2010): the 3rd patch: Overlaps
Week 5(19 Feb 2010): the 4th patch: NumPoints
Week 6(26 Feb 2010): testing of the 3rd, 4th patches
Week 7(5 Mar 2010): ----
Week 8(12 Mar 2010): the 5th patch: X
Week 9(19 Mar 2010): the 6th patch: Y
Week 10(26 Mar 2010): testing of the 5th, 6th patches
Week 11(2 Apr 2010): Video of seeing the SQL running in action
Posted byA nerdy girl at 12:23 PM 0 comments
Labels: code sprint, Geospatial, Ingres, UCOSP, winter 2010
UCOSP code sprint day #2
Saturday, January 16, 2010
Today we continue to explore the unanswered questions left over from yesterday. These are the things that I have explored
OGC stands for opengeospatial consortium, and GEOS is an implementation of the OGC specification. It is formed by a set of companies who have invested their time to have set out a standard for geospatial information systems and databases. GEOS implements part of the SFS standard and Ingres uses it for geospatial manipulation and calculation. The patch Alex sent sends me extends GEOS to support more of the standard so that Ingres can use the GEOS.
Functions instances to implement:
- IsSimple,
- IsEmpty,
- Overlaps,
- X(on points only),
- Y(on points only),
- NumPoints (on linestring only)
Files to change:
- adgoptab.roc
- fi_defn.txt
- aduint.h
- adfops.h
- adupoint.c
- adffiids.h
Following the standard that is quoted from OpenGIS Implementation Specification for Geographic information - Simple feature access:
Organization: Open Geospatial Consortium Inc.
Date: 2005-11-22
Reference number of this document: OGC 05-134
Version: 1.1.0
Category: OpenGIS® Implementation Specification
Editor: Keith Ryden
SQL functions on type Geometry
IsEmpty(g Geometry) : Integer
The return type is Integer, with a return value of 1 for TRUE, 0 for FALSE, and –1 for UNKNOWN corresponding to a function invocation on NULL arguments.
TRUE if this geometric object corresponds to the empty set
IsSimple(g Geometry): Integer
The return type is Integer, with a return value of 1 for TRUE, 0 for FALSE, and –1 for UNKNOWN corresponding to a function invocation on NULL arguments.
TRUE if this geometric object is simple, as defined in the Geometry Model
SQL functions that test spatial relationships
Overlaps(g1 Geometry, g2 Geometry) : Integer
The return type is Integer, with a return value of 1 for TRUE, 0 for FALSE, and –1 for UNKNOWN corresponding to a function invocation on NULL arguments.
TRUE if the intersection of g1 and g2 results in a value of the same dimension as g1 and g2 that is different from both g1 and g2 Integer
SQL functions on type Point
X(p Point) : Double Precision
return the x-coordinate of Point p as a double precision number
Y(p Point) : Double Precision
return the y-coordinate of Point p as a double precision number
SQL functions on type LineString
NumPoints(l LineString) : Integer
return the number of Points in the LineString
Posted byA nerdy girl at 12:23 PM 0 comments
Labels: code sprint, Geospatial, Ingres, UCOSP, winter 2010
UCOSP code sprint day #1
Friday, January 15, 2010
Today Andrew started off the day with explaining to the group of Ingres UCOSP students the general overview picture of how a user at the browser level, Tomcat, GEOServer/Map Server, Geotools and Ingres DMBS fit together. It's decided that the 4 students from University of Waterloo and University of British Columbia work on the Geotools communication with the Ingres DBMS, and that me working on the implementation of SQL functions while Sara test them out.
We have also decided the goal of the code sprint for the Geotools group to figure out where the code that need to be modified sit, what are the road blocks, and what is the schedule of the work for the rest of the team. It's clear for the Ingres SQL group what need to be done, so the goal of the code sprint will be having 1 patch completed and if not, what is the road block to it and the schedule fo the work for the rest of the team.
We had pizza lunch and I met with some sponsors who is those that support us financially. I have also talked in person to some other graduate students and professors who I have been talking to on IRC/mailing list in previous term, and they are working on the analysis of the performance of Ingres. Hope that I can learn more from them/together for this semester!
Posted byA nerdy girl at 12:19 PM 0 comments
Labels: code sprint, Geospatial, Ingres, UCOSP, winter 2010
Yay, SQL implementation in action!
Tuesday, January 5, 2010
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
Labels: Alex Trofast, Eva Wong, Geos, Geospatial, Ingres, Wong I Wa
I'm back with Ingres again
Monday, January 4, 2010
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
Labels: Geospatial, Ingres, UCOSP
Screencast showing building GEOS and Geospatial as a non-root user in action on Linux
Friday, December 11, 2009
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
Labels: build, compile, Eva Wong, Geos, Geospatial, Ingres, linux, UCOSP
UCOSP: 2009 fall term final thoughts
Thursday, December 10, 2009
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
Labels: Eva Wong
UCOSP: status report #14
Tuesday, November 24, 2009
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:
- 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.
- do "svn commit --username=yourUserName /path/to/file.s -m=#123456 your description", where 123456 is the ticket number that you have created
- commit 1 fix/small feature at a time
- 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
Labels: Eva Wong, Geospatial, Ingres, status report, UCOSP
UCOSP: status report #13
Wednesday, November 18, 2009
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
Sunday, November 15, 2009
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
UCOSP: status report #12
Friday, November 13, 2009
I have talked with the system administrator, Greg, Andrew, IRC to get me enough quota for the C code to build the code.
I am right now working on the install of the components and build the Ingres code hopefully within this weekend.
Posted byA nerdy girl at 7:03 AM 0 comments
Labels: Ingres, status report, UCOSP
Running install.php of Drupal on Ingres
Friday, November 6, 2009
There are a couple of things to be watch out for before you run the install script:
- Make sure that you have enable the rewrite module in Apache. To do this, uncomment the following line in \\Apache\conf\httpd.conf
#LoadModule rewrite_module modules/mod_rewrite.so
- We need to make sure Drupal will be able to use the modules. To do so, make sure we have these variables set to the following values, if not, then change them:
- Options Indexes FollowSymLinks
- AllowOverride All,
- Order allow,deny
- Allow from all
- Options Indexes FollowSymLinks
- Since it may take longer than 30 seconds to run the install.php, therefore, we'd better change the maximum execution time in the php.ini located in where the command php -i gives you, to the following line: max_execution_time = 120
- Make sure that you have the database with the name drupal created in Ingres by the following command: createdb drupal. For Windows user, this will create a database namely drupal with the username system. The command: createdb -uyourusername drupal will create a database with the DBA -uyourusername. By default, for Windows user, createdb -uyourusername drupal, where yourusername is not your windows account name, then you need to type destroydb -usystem drupal or destroydb -uyourusername drupal to delete the database
While you are installing, you should
- Put drupal as your database name
- Put username system if your Apache is running as a service, otherwise, put the usename that you've set your apache to be running as.
- There you go :)
Posted byA nerdy girl at 9:42 AM 0 comments
Fix: Drupal on Ingres, install.php warnings
Wednesday, November 4, 2009
While running the install script of Drupal on Windows XP, I came across the following warnings.
warning: ingres_query() [function.ingres-query]: Error: 7 - Unable to close non-result resource statement in /some_path_of_mine_where_drupal_sits/
Here is a list of actions that you can try out to make the list of warnings go away:
- You might want to make sure that you have entered the correct user name (user name that apache runs as). Follow this to check if your Apache is running as a service or locally. If it is running as a service, put system as the user name, otherwise, put the windows account user name.
- You might want to destroydb/createdb again because error messages during install could mess with it.
- You might find it takes forever to delete the database, try restarting apache and goes again.
If all these don't work, try consulting the IRC channel #ingres :)
Posted byA nerdy girl at 2:49 PM 0 comments
Labels: Drupal on Ingres, install.php, warnings
Fix: Drupal on Ingres,Your web server does not appear to support any common database types.
As of date 2009-Nov-04, Ingres support has not been integrated into the main Drupal product yet.
So when you run install.php under Drupal, if you "Your web server does not appear to support any common database types." Checkout the code from Ingres: http://code.ingres.com/apps/drupal/trunk instead of getting from Drupal.org
Posted byA nerdy girl at 8:42 AM 0 comments
Labels: Drupal on Ingres, Your web server does not appear to support any common database types
Basic sql tutorial in Ingres
Posted byA nerdy girl at 7:26 AM 0 comments
Configuring Apache, PHP, Ingres on Windows Vista
Tuesday, November 3, 2009
After getting Apache, php, ingres talking to one and other, still no luck in letting Drupal know about Ingres. I need to identify the problem before another round of midterm marching up to me :(.
Today, I digged up another document for the sets of configuration for Apapche, Php, and Ingres for Windows Vista.
Posted byA nerdy girl at 4:21 PM 0 comments
Labels: apache, configuration, Ingres, php, Windows Vista
Fix: Errno 3502, no GRANT or GRANT compatible permit exists
aka, UCOSP: status report #12
Here is a piece of php code that I ran to check I can execute query under my web server.
There it prints this error message:
no GRANT or GRANT compatible permit exists
Reason:
By default, when you create a database, the access to the database is public.
By default, when you create a table/view/procedure the access is restricted to the owner.
You will need to do "grant select on the_table/view/procedure_you_want to public". For convenience, I did "grant all on test" and ran the code above. Remember you will NEED TO log off the database where that table is sitting in order for the above code to work :)
Posted byA nerdy girl at 10:32 AM 0 comments
Labels: 3502, no GRANT or GRANT compatible permit exists, status report, UCOSP
Code: Test if Apache is working with Ingres
Friday, October 30, 2009
The following is a piece of code that will help to see if Apache is talking to Ingres
error_reporting(E_ALL);
$link = ingres_connect("your_whatever_database_name")
or die("Could not connect");
echo "Connected successfully
";
?>
Ingres by default creates database with the access type public. If you explicitly put in a user name or password as parameters to ingres_connect for public database, it will fails to connect.
Now that I know Apache is talking to Ingres, next Drupal!
Posted byA nerdy girl at 10:53 PM 0 comments
Labels: apache, Ingres, status report, test, UCOSP