[pgrouting-dev] DBSP first try problems

Hi Razequl,

I finally have some time to look at your code, but have run into a small build problem.

woodbri@mappy:~/work/pgrouting-git/gsoc-bdsp$ git clone git://github.com/zibon/pgrouting.git
Initialized empty Git repository in /u/work/pgrouting-git/gsoc-bdsp/pgrouting/.git/
remote: Counting objects: 1930, done.
remote: Compressing objects: 100% (743/743), done.
remote: Total 1930 (delta 1189), reused 1882 (delta 1151)
Receiving objects: 100% (1930/1930), 685.37 KiB | 1112 KiB/s, done.
Resolving deltas: 100% (1189/1189), done.
woodbri@mappy:~/work/pgrouting-git/gsoc-bdsp/pgrouting$ cmake .
-- The C compiler identification is GNU
-- The CXX compiler identification is GNU
-- Check for working C compiler: /usr/bin/gcc
-- Check for working C compiler: /usr/bin/gcc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- POSTGRESQL_EXECUTABLE is POSTGRESQL_EXECUTABLE-NOTFOUND
-- Found PostgreSQL: /usr/include/postgresql/8.3/server, /usr/lib/libpq.so
-- Boost version: 1.34.1
-- Found the following Boost libraries:
Boost headers were found here: /usr/include
Output directory for libraries is set to /usr/lib/postgresql/8.4/lib
-- Found PGROUTING_CORE core: /home/woodbri/work/pgrouting-git/gsoc-bdsp/pgrouting/core/src
Installation directory for libraries is set to /usr/lib/postgresql/8.4/lib and for SQL files is set to /usr/share/pgrouting
CMake Error at CMakeLists.txt:117 (SUBDIRS):
   subdirs Incorrect SUBDIRS command. Directory: extra/trsp does not exists.

-- Configuring done
woodbri@mappy:~/work/pgrouting-git/gsoc-bdsp/pgrouting$ ls extra/
bdsp CMakeLists.txt driving_distance tsp

So you can see that there is no extra/trsp directory in your repository. Do you need to add, commit and push that to your remote?

Also don't forget your report, its Friday again. :slight_smile:

Thanks,
   -Steve

OK, my temporary fix was to comment out the subdir:

#SUBDIRS(extra/trsp)

-Steve

On 6/29/2012 12:59 PM, Stephen Woodbridge wrote:

Hi Razequl,

I finally have some time to look at your code, but have run into a small
build problem.

woodbri@mappy:~/work/pgrouting-git/gsoc-bdsp$ git clone
git://github.com/zibon/pgrouting.git
Initialized empty Git repository in
/u/work/pgrouting-git/gsoc-bdsp/pgrouting/.git/
remote: Counting objects: 1930, done.
remote: Compressing objects: 100% (743/743), done.
remote: Total 1930 (delta 1189), reused 1882 (delta 1151)
Receiving objects: 100% (1930/1930), 685.37 KiB | 1112 KiB/s, done.
Resolving deltas: 100% (1189/1189), done.
woodbri@mappy:~/work/pgrouting-git/gsoc-bdsp/pgrouting$ cmake .
-- The C compiler identification is GNU
-- The CXX compiler identification is GNU
-- Check for working C compiler: /usr/bin/gcc
-- Check for working C compiler: /usr/bin/gcc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- POSTGRESQL_EXECUTABLE is POSTGRESQL_EXECUTABLE-NOTFOUND
-- Found PostgreSQL: /usr/include/postgresql/8.3/server, /usr/lib/libpq.so
-- Boost version: 1.34.1
-- Found the following Boost libraries:
Boost headers were found here: /usr/include
Output directory for libraries is set to /usr/lib/postgresql/8.4/lib
-- Found PGROUTING_CORE core:
/home/woodbri/work/pgrouting-git/gsoc-bdsp/pgrouting/core/src
Installation directory for libraries is set to
/usr/lib/postgresql/8.4/lib and for SQL files is set to
/usr/share/pgrouting
CMake Error at CMakeLists.txt:117 (SUBDIRS):
   subdirs Incorrect SUBDIRS command. Directory: extra/trsp does not
exists.

-- Configuring done
woodbri@mappy:~/work/pgrouting-git/gsoc-bdsp/pgrouting$ ls extra/
bdsp CMakeLists.txt driving_distance tsp

So you can see that there is no extra/trsp directory in your repository.
Do you need to add, commit and push that to your remote?

Also don't forget your report, its Friday again. :slight_smile:

Thanks,
   -Steve
_______________________________________________
pgrouting-dev mailing list
pgrouting-dev@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/pgrouting-dev

Hi Steve,
It is great that you got some time to review the code. I have trsp in my local folder but I found it is not in the git. I will commit that again. And yes, commenting trsp subdirs should work. Also as I have not done any work on that folder, you should be able to review my work. All my codes are in the bdsp folder.
Thanks for your time. I am waiting to learn more from you.

  • Razequl

On Fri, Jun 29, 2012 at 11:10 PM, Stephen Woodbridge <woodbri@swoodbridge.com> wrote:

OK, my temporary fix was to comment out the subdir:

#SUBDIRS(extra/trsp)

-Steve

On 6/29/2012 12:59 PM, Stephen Woodbridge wrote:

Hi Razequl,

I finally have some time to look at your code, but have run into a small
build problem.

woodbri@mappy:~/work/pgrouting-git/gsoc-bdsp$ git clone
git://github.com/zibon/pgrouting.git
Initialized empty Git repository in
/u/work/pgrouting-git/gsoc-bdsp/pgrouting/.git/
remote: Counting objects: 1930, done.
remote: Compressing objects: 100% (743/743), done.
remote: Total 1930 (delta 1189), reused 1882 (delta 1151)
Receiving objects: 100% (1930/1930), 685.37 KiB | 1112 KiB/s, done.
Resolving deltas: 100% (1189/1189), done.
woodbri@mappy:~/work/pgrouting-git/gsoc-bdsp/pgrouting$ cmake .
– The C compiler identification is GNU
– The CXX compiler identification is GNU
– Check for working C compiler: /usr/bin/gcc
– Check for working C compiler: /usr/bin/gcc – works
– Detecting C compiler ABI info
– Detecting C compiler ABI info - done
– Check for working CXX compiler: /usr/bin/c++
– Check for working CXX compiler: /usr/bin/c++ – works
– Detecting CXX compiler ABI info
– Detecting CXX compiler ABI info - done
– POSTGRESQL_EXECUTABLE is POSTGRESQL_EXECUTABLE-NOTFOUND
– Found PostgreSQL: /usr/include/postgresql/8.3/server, /usr/lib/libpq.so
– Boost version: 1.34.1
– Found the following Boost libraries:
Boost headers were found here: /usr/include
Output directory for libraries is set to /usr/lib/postgresql/8.4/lib
– Found PGROUTING_CORE core:
/home/woodbri/work/pgrouting-git/gsoc-bdsp/pgrouting/core/src
Installation directory for libraries is set to
/usr/lib/postgresql/8.4/lib and for SQL files is set to
/usr/share/pgrouting
CMake Error at CMakeLists.txt:117 (SUBDIRS):
subdirs Incorrect SUBDIRS command. Directory: extra/trsp does not
exists.

– Configuring done
woodbri@mappy:~/work/pgrouting-git/gsoc-bdsp/pgrouting$ ls extra/
bdsp CMakeLists.txt driving_distance tsp

So you can see that there is no extra/trsp directory in your repository.
Do you need to add, commit and push that to your remote?

Also don’t forget your report, its Friday again. :slight_smile:

Thanks,
-Steve


pgrouting-dev mailing list
pgrouting-dev@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/pgrouting-dev


pgrouting-dev mailing list
pgrouting-dev@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/pgrouting-dev

Hi Razequl,

(Jinfu, I have not had a chance to look over your code yet, but to the extent that the comments below might apply to your code, you might want to consider this as input to you also.)

I am not going to try and review you actual algorithm, because I'm not sure I can add any value or insights to it. The following are observations and recommendations as opposed to requirements.

Regarding your project, the code looks very clean and easy to read, but it does not have many/any comments describing what it is doing or how it works. I am equally negligent in this area with a lot of my code, but have found that over time a regret not adding the comments when I write the code originally because it requires more work to figure it out later. Also when others have to read it and make changes for any reason it is great to have the comments to help understand the code. Also since this code will be publicly available to a very wide audience this says a lot about you to these people.

We have not really figured out how we want to do testing yet. I know Jay did some initial test infrastructure, I have taken a couple of stabs at trying to work out some method for doing this. There are multiple levels of testing and it might mean that we have different infrastructure for each. When Roni developed the core TRSP algorithm, he had a local test bed which consisted of a C/C++ main commandline tool, that could read in a text file that defined a graph, restrictions, test cases and results. Basically these very much followed the output of the SQL needed to feed the SQL function to invoke the command. So the main would read in the text file, run the algorithm and display the results and exit. This worked totally outside the postgresql environment. This made it easy to run in the debugger and made it easy to verify the correctness of the core algorithm. Unfortunately this never got checked into the source tree so we don't have it today. One of the advantages of this approach, was that when a bug was reported, we could easily run the SQL commands to create the text files for input, then run the test program. If the results were the same as the SQL results then we knew the problem was in the core algorithm and it could easily be debugged. If the test results were good then we knew that the problem was in the wrapper code that I wrote and I could then tackle debugging that.

It would be nice to have a directory like extra/bdsp/test/ that contained test files, and a target to build extra/bdsp/src/dotest and a a target for make test that would run all the tests in the test directory using dotest and would report pass/fail for each test.

This might be something that you and jinfu and maybe Jay would get involved to collaborate for some extra karma points :). Before you commit to something like this make sure you can meet the requirements of your projects. If you can work it into your own project then that would be fine also and we can review and refactor what you have done for pgRouting as a whole later after GSoC.

Next I will install you code and try to run it against some of my graphs.

Great job so far, keep up the good work.

Thanks,
   -Steve

On 6/29/2012 9:46 PM, Razequl Islam wrote:

Hi Steve,
It is great that you got some time to review the code. I have trsp in my
local folder but I found it is not in the git. I will commit that again.
And yes, commenting trsp subdirs should work. Also as I have not done
any work on that folder, you should be able to review my work. All my
codes are in the bdsp folder.
Thanks for your time. I am waiting to learn more from you.

- Razequl

On Fri, Jun 29, 2012 at 11:10 PM, Stephen Woodbridge
<woodbri@swoodbridge.com <mailto:woodbri@swoodbridge.com>> wrote:

    OK, my temporary fix was to comment out the subdir:

    #SUBDIRS(extra/trsp)

    -Steve

    On 6/29/2012 12:59 PM, Stephen Woodbridge wrote:

        Hi Razequl,

        I finally have some time to look at your code, but have run into
        a small
        build problem.

        woodbri@mappy:~/work/ pgrouting-git/gsoc-bdsp$ git clone
        git://github.com/zibon/ pgrouting.git
        <http://github.com/zibon/pgrouting.git&gt;
        Initialized empty Git repository in
        /u/work/pgrouting-git/gsoc- bdsp/pgrouting/.git/
        remote: Counting objects: 1930, done.
        remote: Compressing objects: 100% (743/743), done.
        remote: Total 1930 (delta 1189), reused 1882 (delta 1151)
        Receiving objects: 100% (1930/1930), 685.37 KiB | 1112 KiB/s, done.
        Resolving deltas: 100% (1189/1189), done.
        woodbri@mappy:~/work/ pgrouting-git/gsoc-bdsp/ pgrouting$ cmake .
        -- The C compiler identification is GNU
        -- The CXX compiler identification is GNU
        -- Check for working C compiler: /usr/bin/gcc
        -- Check for working C compiler: /usr/bin/gcc -- works
        -- Detecting C compiler ABI info
        -- Detecting C compiler ABI info - done
        -- Check for working CXX compiler: /usr/bin/c++
        -- Check for working CXX compiler: /usr/bin/c++ -- works
        -- Detecting CXX compiler ABI info
        -- Detecting CXX compiler ABI info - done
        -- POSTGRESQL_EXECUTABLE is POSTGRESQL_EXECUTABLE-NOTFOUND
        -- Found PostgreSQL: /usr/include/postgresql/8.3/ server,
        /usr/lib/libpq.so
        -- Boost version: 1.34.1
        -- Found the following Boost libraries:
        Boost headers were found here: /usr/include
        Output directory for libraries is set to /usr/lib/postgresql/8.4/lib
        -- Found PGROUTING_CORE core:
        /home/woodbri/work/pgrouting- git/gsoc-bdsp/pgrouting/core/ src
        Installation directory for libraries is set to
        /usr/lib/postgresql/8.4/lib and for SQL files is set to
        /usr/share/pgrouting
        CMake Error at CMakeLists.txt:117 (SUBDIRS):
           subdirs Incorrect SUBDIRS command. Directory: extra/trsp
        does not
        exists.

        -- Configuring done
        woodbri@mappy:~/work/ pgrouting-git/gsoc-bdsp/ pgrouting$ ls extra/
        bdsp CMakeLists.txt driving_distance tsp

        So you can see that there is no extra/trsp directory in your
        repository.
        Do you need to add, commit and push that to your remote?

        Also don't forget your report, its Friday again. :slight_smile:

        Thanks,
           -Steve
        ______________________________ _________________
        pgrouting-dev mailing list
        pgrouting-dev@lists.osgeo.org <mailto:pgrouting-dev@lists.osgeo.org>
        http://lists.osgeo.org/ mailman/listinfo/pgrouting-dev
        <http://lists.osgeo.org/mailman/listinfo/pgrouting-dev&gt;

    ______________________________ _________________
    pgrouting-dev mailing list
    pgrouting-dev@lists.osgeo.org <mailto:pgrouting-dev@lists.osgeo.org>
    http://lists.osgeo.org/ mailman/listinfo/pgrouting-dev
    <http://lists.osgeo.org/mailman/listinfo/pgrouting-dev&gt;

_______________________________________________
pgrouting-dev mailing list
pgrouting-dev@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/pgrouting-dev

Hi Steve,
Thanks for your comments. Here are my feedbacks:

  • I completely agree with you with the commenting issue. I will add more comments in the code, specially what each of the function does. I think it will be very helpful to people reading the code.

  • Actually I do have a test code that reads input from text file call the function in the same manner the sql does, get the result and writes it back to another text file. I did this for my own debugging purpose, never thought it will be helpful for others. But from your remark, I am thinking that this can be easily turned into a nice testing tool and can be added with the main codes. I need to clean up and modify the existing code and I think then I can add it with my project. Currently I am busy with the A* implementation. Once it is finished, I will give one or two days on the testing code.

  • Please let me know the results of your test and your experience on it.

  • Razegul

On Sun, Jul 1, 2012 at 1:09 AM, Stephen Woodbridge <woodbri@swoodbridge.com> wrote:

Hi Razequl,

(Jinfu, I have not had a chance to look over your code yet, but to the extent that the comments below might apply to your code, you might want to consider this as input to you also.)

I am not going to try and review you actual algorithm, because I’m not sure I can add any value or insights to it. The following are observations and recommendations as opposed to requirements.

Regarding your project, the code looks very clean and easy to read, but it does not have many/any comments describing what it is doing or how it works. I am equally negligent in this area with a lot of my code, but have found that over time a regret not adding the comments when I write the code originally because it requires more work to figure it out later. Also when others have to read it and make changes for any reason it is great to have the comments to help understand the code. Also since this code will be publicly available to a very wide audience this says a lot about you to these people.

We have not really figured out how we want to do testing yet. I know Jay did some initial test infrastructure, I have taken a couple of stabs at trying to work out some method for doing this. There are multiple levels of testing and it might mean that we have different infrastructure for each. When Roni developed the core TRSP algorithm, he had a local test bed which consisted of a C/C++ main commandline tool, that could read in a text file that defined a graph, restrictions, test cases and results. Basically these very much followed the output of the SQL needed to feed the SQL function to invoke the command. So the main would read in the text file, run the algorithm and display the results and exit. This worked totally outside the postgresql environment. This made it easy to run in the debugger and made it easy to verify the correctness of the core algorithm. Unfortunately this never got checked into the source tree so we don’t have it today. One of the advantages of this approach, was that when a bug was reported, we could easily run the SQL commands to create the text files for input, then run the test program. If the results were the same as the SQL results then we knew the problem was in the core algorithm and it could easily be debugged. If the test results were good then we knew that the problem was in the wrapper code that I wrote and I could then tackle debugging that.

It would be nice to have a directory like extra/bdsp/test/ that contained test files, and a target to build extra/bdsp/src/dotest and a a target for make test that would run all the tests in the test directory using dotest and would report pass/fail for each test.

This might be something that you and jinfu and maybe Jay would get involved to collaborate for some extra karma points :). Before you commit to something like this make sure you can meet the requirements of your projects. If you can work it into your own project then that would be fine also and we can review and refactor what you have done for pgRouting as a whole later after GSoC.

Next I will install you code and try to run it against some of my graphs.

Great job so far, keep up the good work.

Thanks,
-Steve

On 6/29/2012 9:46 PM, Razequl Islam wrote:

Hi Steve,
It is great that you got some time to review the code. I have trsp in my
local folder but I found it is not in the git. I will commit that again.
And yes, commenting trsp subdirs should work. Also as I have not done
any work on that folder, you should be able to review my work. All my
codes are in the bdsp folder.
Thanks for your time. I am waiting to learn more from you.

  • Razequl

On Fri, Jun 29, 2012 at 11:10 PM, Stephen Woodbridge

<woodbri@swoodbridge.com mailto:[woodbri@swoodbridge.com](mailto:woodbri@swoodbridge.com)> wrote:

OK, my temporary fix was to comment out the subdir:

#SUBDIRS(extra/trsp)

-Steve

On 6/29/2012 12:59 PM, Stephen Woodbridge wrote:

Hi Razequl,

I finally have some time to look at your code, but have run into
a small
build problem.

woodbri@mappy:~/work/ pgrouting-git/gsoc-bdsp$ git clone
git://github.com/zibon/ pgrouting.git

<http://github.com/zibon/pgrouting.git>

Initialized empty Git repository in
/u/work/pgrouting-git/gsoc- bdsp/pgrouting/.git/
remote: Counting objects: 1930, done.
remote: Compressing objects: 100% (743/743), done.
remote: Total 1930 (delta 1189), reused 1882 (delta 1151)
Receiving objects: 100% (1930/1930), 685.37 KiB | 1112 KiB/s, done.
Resolving deltas: 100% (1189/1189), done.

woodbri@mappy:~/work/ pgrouting-git/gsoc-bdsp/ pgrouting$ cmake .

– The C compiler identification is GNU
– The CXX compiler identification is GNU
– Check for working C compiler: /usr/bin/gcc
– Check for working C compiler: /usr/bin/gcc – works
– Detecting C compiler ABI info
– Detecting C compiler ABI info - done
– Check for working CXX compiler: /usr/bin/c++
– Check for working CXX compiler: /usr/bin/c++ – works
– Detecting CXX compiler ABI info
– Detecting CXX compiler ABI info - done
– POSTGRESQL_EXECUTABLE is POSTGRESQL_EXECUTABLE-NOTFOUND
– Found PostgreSQL: /usr/include/postgresql/8.3/ server,
/usr/lib/libpq.so
– Boost version: 1.34.1
– Found the following Boost libraries:
Boost headers were found here: /usr/include
Output directory for libraries is set to /usr/lib/postgresql/8.4/lib
– Found PGROUTING_CORE core:
/home/woodbri/work/pgrouting- git/gsoc-bdsp/pgrouting/core/ src
Installation directory for libraries is set to
/usr/lib/postgresql/8.4/lib and for SQL files is set to
/usr/share/pgrouting
CMake Error at CMakeLists.txt:117 (SUBDIRS):
subdirs Incorrect SUBDIRS command. Directory: extra/trsp
does not
exists.

– Configuring done

woodbri@mappy:~/work/ pgrouting-git/gsoc-bdsp/ pgrouting$ ls extra/
bdsp CMakeLists.txt driving_distance tsp

So you can see that there is no extra/trsp directory in your
repository.
Do you need to add, commit and push that to your remote?

Also don’t forget your report, its Friday again. :slight_smile:

Thanks,
-Steve


pgrouting-dev mailing list

pgrouting-dev@lists.osgeo.org mailto:[pgrouting-dev@lists.osgeo.org](mailto:pgrouting-dev@lists.osgeo.org)
http://lists.osgeo.org/ mailman/listinfo/pgrouting-dev
<http://lists.osgeo.org/mailman/listinfo/pgrouting-dev>


pgrouting-dev mailing list
pgrouting-dev@lists.osgeo.org mailto:[pgrouting-dev@lists.osgeo.org](mailto:pgrouting-dev@lists.osgeo.org)
http://lists.osgeo.org/ mailman/listinfo/pgrouting-dev

<http://lists.osgeo.org/mailman/listinfo/pgrouting-dev>


pgrouting-dev mailing list
pgrouting-dev@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/pgrouting-dev


pgrouting-dev mailing list
pgrouting-dev@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/pgrouting-dev