PostGIS topology ISO SQL/MM complete

October 14th, 2011

PostGIS implementation of the ISO SQL/MM Topology-Geometry model is finally complete.

The SQL/MM model is just a portion of the whole topology support, but an important one, including schema definition and functions to create and populate the schema with primitive components (nodes, edges, faces).

In addition to the base model, PostGIS adds a TopoGeometry data type for use wherever you would normally use a Geometry type, except the former will be defined by references to primitive, shared, topological components.

The work on SQL/MM topology for PostGIS 2.0 was mainly funded by the Land Management department of the Tuscany Region as part of a larger project aimed at enhancing effectiveness of free software tools already in use within the institution for the management of the topographic database (chapeau!).

But more work is needed to make it easier to convert your layers to topological layers, your Geometries to TopoGeometries. Because I know you want to generalize your vectors in a topologically consistent way, don’t you ? And you want to edit the boundaries just once. And do you want to waste all that space for your triangles ?

Feature freeze for 2.0 will be by the end of November. Drop a note ASAP if you’d like to help with getting the enhanced TopoGeometry constructor shipped with it.

GEOS 3.3.1 released

September 27th, 2011

The first bugfix release in the 3.3 branch of GEOS was released today.

Anyone running 3.3.0 is recommended to upgrade. Changes can be read here, package can be downloaded here.

By the way… did you try the PHP binding yet ? Configure with --enable-php to take a look !

Hack fever 2 : super mario sound

September 7th, 2011

I was supposed to leave for holidays on August 1st, but a summer fever held me back.

As it became traditional, I took the chance to do some Gnash hacking, approaching a bug that made playing Super Mario Bros unpleasant. The mario sound didn’t stop on game over thus overlapping with the new sound started for the new game. Annoying.

Super Mario

After some research the help came from Jan Flanders, an usual attender of the #gnash IRC channel. He pointed out that calling .stop() against an unattached Sound object should stop all playing event sounds. It took a couple of days from there to an automated testcase and a fix.

You can now Enjoy Your Mushrooms !

Getting just the tip of a remote git branch

June 7th, 2011

As projects move their code under git control, people get frustrated about being unable to do most basic operations they are used to perform with SVN or CVS. That’s a fact, so let’s see if I can relief some pain by sharing what I know or learn as I crawl the learning curve myself.

Yesterday I’ve met with Markus Neteler and he was complaining about being unable to checkout the release branch of QuantumGIS without filling up his laptop hard drive. He got me curious, so here are some numbers and a recipe.

An SVN checkout as of April 30  is 281 Mb in size, 1 of which being the .svn directory.

A full git clone at time of writing (June 7) is 330 Mb  in size, 200 of which being the .git database and  130 being the working copy (the “checkout”).

A full git clone contains all the data available in the original repository. Once you get the clone, you have all the branches and all the history. no need for any more bandwidth.

But Markus was only interested in a single branch, not the whole set, and he wanted no history either. So he could cloned just the objects referenced by the commit known as the release-1_7_0 branch and no further parents (back history). Here’s how you do:

 git clone --depth 1 --branch release-1_7_0 \
The resulting shallow repository (the .git directory) is 110 MB in size. Add 133 MB of working directory (yes, release-1_7_0 is 3 MB bigger than master) for a total of 243 MB disk space used.

  1. A shallow repository (one with short history) cannot be further cloned, but here are no problems pulling updates from the origin nor producing patches or pushing changes.
  2. If you don’t know in advance the name of the branch you can query it from the remote repository using git ls-remote
  3. Every git command has a manual page in the form: git-command (ie: man git-ls-remote)
Happy learning !

GEOS 3.3.0

May 31st, 2011

GEOS 3.3.0 is out:

This release introduces a fair amount of new C-API interfaces and a brand new PHP binding. Full details in the NEWS file:

As with any release since 3.0.0 there is complete binary compatibility with clients linked against the C-API. These include, but are not limited to, PostGIS. For a list of known clients: (add yours, if not already listed!)

GEOS is a C++ port of the JTS Topology Suite. This release targets version 1.12 of the library, but doesn’t reach full feature parity yet. Missing JTS functionalities:

  • Densifier class
  • Geometric similarity detection package (HausdorffSimilarityMeasure, AreaSimilarityMeasure)
  • MinimumDiameter.getMiminumRectangle()
  • Triangulation API
  • VoronoiDiagramBuilder
  • createSquircle and createSuperCircle in GeometricShapeFactory
  • MinimumClearance class
  • nearestNeighbours method to STRtree
  • RandomPointsBuilder / RandomPointsInGridBuilder
  • KochSnowflakeBuilder
  • SierpinksiCarpetBuilder

If you’d like to sponsor development of any of the above items (or others) for next feature release of GEOS (3.4.0) please drop me a note.

Software libero e tecnologie partecipative

May 30th, 2011

Lunedi’ 6 Giugno 2011 alle 20:30 presso la sede dell’ associazione Cubibi’ di Ispra si terra’ un’ incontro aperto sul software libero e le tecnologie partecipative.

[ via Madonnina del Grappa, 40-48 - Ispra. 6 Giugno 2011 ore 20:30 ]

L’ incontro e’ rivolto a tutti coloro che coltivano la propria curiosita’ come una risorsa e vogliono scoprire qualcosa in piu’ sugli strumenti elettronici che mediano sempre piu’ le nostre attivita’ personali e sociali estendendone o limitandone le possibilita’, aiutando od ostacolando la nostra capacita’ di scelta.

UPDATE: qui il materiale per stampare il volantino.

PostGIS / GEOS / MapServer with git

April 27th, 2011

I’ve setup git mirrors of PostGIS, GEOS and MapServer SVN repositories updated hourly. You can clone the git repositories and re-attach to the SVN ones with this simple script (untested):

for repo in postgis geos mapserver; do
  git clone git://${repo}.git
  cd ${repo}
  git svn init${repo}/trunk
  git update-ref refs/remotes/git-svn refs/heads/master
  git svn fetch
  cd -

After that you can run git svn rebase to get changes from SVN or git pull to get changes from GIT (may be one hour late)

Happy hacking !

Why Political Liberty Depends on Software Freedom More Than Ever

March 11th, 2011

I’ve spent a few days adding Italian subtitles to a video recording of the speech given by Eben Moglen at FOSDEM 2011 about privacy, freedom and net neutrality.

I would have liked to embed the video right here, but these advanced friendly systems make everything so… ehm… difficult !

Well, take a look at the simple version of it 🙂

Hack Fever

September 24th, 2010

Got seasonal flu this week, forcing me home… Nothing better for some Gnash hacking !

I had this itch to scratch for degradation of experience in playing the wonderful Winterbells game.

It started in June when I realized that Gnash-0.8.8 could not start the game properly and was suspiciously slower than 0.8.7. In late July I put playback under profile and found out that the performance penalty was introduced by a compatibility fix (property name case in SWF up to 6).

So, with high temperature and kid at school, I resolved to do something about it: first I fixed the startup problem, then I created an objecturi git branch to proof-test caching of lowercase property keys as a mechanism to improve lookups.

Now it’s friday and flu is over, so I need to clean up and put the toys away.

Luckly, we are talking about free  (as in freedom) software, so it’s easy to find friends caring about the toys and happy to play togheter! So I had a chat with Ben resulting in a proper plan, and he agreed to go on playing some more and cleanup afterwards.

Ain’t Free software wonderful ?

Feed the bats

April 22nd, 2010

My bats are gone with the spring, leaving behind what looks like delicious food!

These insects came out from who knows where and filled up the walls of our house.

They do look like Clothing Moths and probably are, but contrary to what wikipedia says they don’t seem to prefer low light as we often see them around light bulbs.

This invasion is mining our will to remain in the house, which is a pity as there’s a wonderful garden out here and flowers are popping out on a daily basis :/