Showing posts with label UCOSP. Show all posts
Showing posts with label UCOSP. Show all posts

UCOSP status report #2

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  

UCOSP status report #1

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  

UCOSP code sprint day #3

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  

UCOSP code sprint day #2

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  

UCOSP code sprint day #1

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  

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: 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 #12

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  

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  

Code: Test if Apache is working with Ingres

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  

UCOSP: status report #8

I'm trying to get Drupal 7 to talk to Ingres 10 following this here on Windows 32 bit XP home SP3, with PHP 5.3 and Apache 2.2. When I run the script from http://localhost:8080/drupal-6.14/install.php, and it's stucked on

Database configuration
Your web server does not appear to support any common database types.


I have these 2 lines in my php.ini under Apache

extension_dir=C:\php\ext
extenion=php_ingres.dll


The funny thing is Drupal knows about other extension such as php_mysql.dll, but the php_ingres.dll does not, which are also located in C:\php\ext like php_mysql.dll. I have got my version of php_ingres.dll from Grant earlier today since the dll is not up on ESD for Ingres version 10 yet(Thanks so much for Grant again on this).

Apparently, I'm not the only one of the UCOSP students who are still stucked on this. Sarah and Mary has got away from this problem by installing a Linux VM and Evan is still working on it. ARGH, I really want to get this working soon!

Posted byA nerdy girl at 9:31 PM 0 comments  

UCOSP: status report #5

At the meeting today, Evan, Sarah, and I, the three of us discussed the pitfalls of using xampp to make drupal to talk directly with Ingres. They helped me to discoverred that my configuration was not right and my drupal was based on mysql but not Ingres.

Besides, preparing ourselves to build the code, we were comparing our understanding of what exactly is Geospatial. Since we are all not sure if Geospatial is a "specialist" of Ingres or a plugin to Ingres. I can see that we are building the Geospatial code which is one of the branches under Ingres in the repository, and the structure is almost identical to the main Ingres code base, which suggests that it may be the former.

Next week goal: Fix the communication between Drupal and Ingres.

Posted byA nerdy girl at 4:06 PM 0 comments  

UCOSP: status report #3

For this week, I have been getting myself working around with subversion of Microsoft Visual Studio. Ankhsvn is the one that I have got. For next week, since it is packed with midterms, I will keep on working with subversion until next Friday before I'll be resuming my work.

Posted byA nerdy girl at 9:57 PM 0 comments  

UCOSP status report #2

I have been spending this week to get myself familiar with Microsoft Visual Studio and its .NET components. Such as using debugger, watching tutorial videos and demos of how to use the tool to write C code. Next week goal: Build Ingres.

Posted byA nerdy girl at 9:13 PM 0 comments  

UCOSP status report #1

A week after the code sprint, the configurations is still going on. This week I have configured Drupal with the remaining modules left over from code sprint, as well as Ingres. Also I have obtained a copy of Microsoft Visual Studio 2005 and its .NET components for moving on to building of Ingres. Since I'm new to Visual Studio and the .NET framework, I will be spending next week to get myself familiar with Microsoft Visual Studio and its .NET components. If I have time, then I'll move onto the building of Ingres.

Posted byA nerdy girl at 9:05 AM 0 comments  

UCOSP code sprint: day 3, wrap up and thoughts

Today is the last day of code sprint and everyone is wrapping up and give their thoughts. I agreed with our project head Andrew Ross that communications is really important in collaborations. To the very least, "let the community know what you are doing". On top of that, the community itself is a very useful place to get help from and responses to very specific technical questions. Moreover, this way you also can let the community knows more about you, your interest and ability and put you in the right place to contribute. Afterall, coding should be fun!

Another side note, the most rewarding experience from the code sprint is to "pass it on". It feels so excellent to get them up to speed about their tools and technologies sets needed, such as using version controls, IDE, and how to tackle a problem. I saw myself in the past from my teammates, and wished that only if there had been someone in the past who could have told me all these.

Great experience, great people, great talks, great connections, great food... The only bad point that I can come up with is that at the start of the code sprint, the students should have been "sync-ed" with the tools that they need, regardless if they are familiar with them or not, such that they can spend the time more usefully on things that would be valuable to be done face to face.

Posted byA nerdy girl at 3:50 PM 0 comments  

UCOSP code sprint: day 2

Today our task was to let the CMS, Drupal, to know about the following modules: GMap, Location, OpenLayers. I am new to Ingres and find it would be helpful if there is an "all in a page step by step tutorial" out there for newbies like me. So there you go!

Tutorial for newbies to start working on Ingres Geospatial on Windows XP 32 bit

  1. Every step in the following should be done with the latest update/release
  2. Step through the guide in the movie to download and install Ingres. If you are using home edition, make sure that the Windows'user name that you are logged in with does not contain any space.
  3. Get Xampp - A tool with PHP, Apache, etc and all the necessary configurations in one package.
  4. Note that "//xampp/htdocs/" is the root of your "website".
  5. Get and install Drupal.
  6. Know more on how to use Drupal.
  7. Get the following modules: OpenLayer, Location, and GMap, and let Drupal know these modules exists by following these configurations.
  8. After the modules, checkout the code from repository at http://code.ingres.com/ingres/main.
  9. Build the code that you have checked out by following this here.

Posted byA nerdy girl at 9:47 AM 0 comments  

UCOSP code sprint: day 1

We started off 9am in the morning, with a demo by Andrew Ross about Ingres and valuable advices for our later career. After the lunch, our task for today is to get Apache, PHP, and configured them to work with each other, as well as to get Drupal installed.

I already have the first three on my machine from a all in one package that I have for quite a while: XAMPP. I went smooth myself for the installation back then, but there are various problems encountered by my teammates.

On top of the issue that I had with installation of Ingres. I found that the usability of installation process also has room to be improved for newbies. I would prefer myself not to spend 3 straight days at the code sprint to get every plugin and features into their own place, but use my time more usefully with everyone else. Nevertheless, I had a good time with them!

Posted byA nerdy girl at 6:43 AM 0 comments