I spent the weekend attending Pycon Canada where I gave a talk on Pl/Python. I want to thank the conference organizers for putting on an excellent conference. I am told that this was the first time Pycon had a regional conference in Canada and that it was put together by a group of volunteers in less than 6 months.
One of my favourite parts of local/regional conferences held on weekends is that they tend to attract attendees who are passionate about computers and technology. The people who I spoke with at the conference were there because they wanted to be there,not because there boss wanted them to be there, and either loved Python or wanted to learn more about it. I’ve attended many great PostgreSQL conferences over the past few years but it was nice to spend sometime talking with people from broader development backgrounds.
In my discussions with people at the conference I noticed a trend. People I spoke with who are working at companies that did Python development tended to be using PostgreSQL. The ones that weren’t currently using PostgreSQL were using MySQL and talking about moving to PostgreSQL or were apologetic for still being on MySQL. The MySQL users were often apologizing before I told them that I was a PostgreSQL contributor. Some of the MySQL users also mentioned that they were using non-Oracle forks like Percona.
This was in contrast to the people at the Python conference that described their workplaces as doing primarily Java development. The Java development shops tended to be using Oracle or SQL Server. I admit that the sample size of of the Java developers wasn’t that big (this was a Python conference after all) but my observations are worth keeping in mind since they might be indicating a pattern. Other people have commented about the popularity of PostgreSQL in the Ruby community.
I wonder how much of this observations is because older written in Java are already using SQL Server/Oracle and there hasn’t been a strong enough driver to change to PostgreSQL. While newer software projects are tending to choose Python or Ruby over Java and at the same time picking a FLOSS database such as PostgreSQL where they don’t have to worry about migrating a legacy application.
My talk on writing stored functions in Pl/Python was well received. A lot of people saw appeal in being able to write their stored functions in Python instead of pl/SQL but that shouldn’t be a surprise considering this was a Python conference.
My slides are available here, the video of the talk is posted at pyvideo
A few months ago I wrote a blog post on compiling FireFox for the powerpc on Debian Linux. I had built Firefox 9 when I was writing that post and in the intervening months, thanks to the Mozilla rapid release cycle, Firefox 16 has been released. Does Firefox 16 still build on the powerpc with Debian Squeeze?
- I downloaded the latest firefox source code from mozilla
- This time I didn’t need to apply any patches for the powerpc.
- When I ran ./configure followed by ‘make’ as described in my post on Firefox9 I encountered a compile error.
syntax error in VERSION script when trying to build libraries in the subdirectories under security/nss/lib such as util (libnssutil).
The issue is that the mapfiles such as security/nss/lib/util/nssutil.def that are included in the source tree are not suitable as input files to the linker but need to be pre-processed first. The rules to process the ‘MAPFILE’ are defined in security/coreconf/Linux.mk and are invoked by a rule in security/coreconf/Rules.mk that build a proper mapfile by running the mapfile distributed in the source tree (such as nssutil.def) through sed and grep to produce a file that can be passed to the linker.
The make rule takes a mapfile $(MAPFILE_SOURCE)=nssutil.def and generates $(MAPFILE)=nssutil.def from it. If you try building firefox as I describe above it will put the output files in the same directory as the input files. This means that the sed/grep rule won’t be executed because the target (nssutil.def) is already present and isn’t older than the dependency (nssutil.def), itself.
If you instead
- Set the shell environment variable MOZ_OBJDIR to be a directory other than the source directory
- Put your configure options in the file .mozconfig, as described in the Mozilla build instructions
- Run make -f client.mk
firefox 16 will build successfully. The issues I encountered with the version script shouldn’t be specific to the powerpc or debian.
Last year I attended and wrote about FOSS4G 2011 in Denver. The 2012 FOSS4G event was supposed to take place in Beijing this September. Last month OSGEO announced that the conference was cancelled.
Cameron Shorter has posted a detailed analysis on how the conference fell apart. His post does a great job of looking at the sequence of events that lead up to the current situation.
Read the rest of this entry »
Posted: August 5, 2012 in Uncategorized
Tags: agile, community, infrastructure, mono-rail, open source, politics, project-management, scrum, software, software infrastructure, technology
Software infrastructure is a lot like municipal infrastructure such as highways, subways, and stadiums. Everyone likes to enjoy the benefits but we seem to have difficulties on when to build it, what to build, or how to pay for it.
Read the rest of this entry »
Posted: May 22, 2012 in openstreetmap, postgresql, Presentations
Tags: fosslc, gis, mapnik, maps, openstreetmap, osm, pgcon, postgis, postgresql, qgis, tilemill
Slides from my 2012 PGCon presentation Making your Own Maps are now available
The presentation covered
- Common reasons people render their own maps
- Where to get OpenStreetMap data and how to load it into your PostGIS database
- How to use Tilemill to design your own map style
- How to render map tiles, both statically and dynamically
- How to use OpenLayers to display your map
The presentation was recorded. I will update this post when the recording comes online.
I’ve been a regular attendee of PGCON since the first year it was held in Ottawa. Like past years I enjoyed the conference and I would like to thank Dan Langille for putting together another first-rate conference. My favourite part of PostgreSQL conferences is meeting and reconnecting with users people in the community.
Updated: The video is available here
Peninsula Lake, Huntsville Ontario
I have published a new version of the Peninsula Lake map. This edition includes new cartography and map updates based on my survey work last summer.
I had written the previous map style in Cascadnik, a CSS like language that translates to mapnik XML. Cascadnik has since been replaced by Carto so I have decided to rewrite the map style using TileMill (Map design software that uses Carto and Mapnik).
One of my goals while redesigning the map was to put to use what I have learned about cartography over the past year. The original PenLake map style was based on a sample Cascadnik style adapted to my colour scheme, nautical features and a print scale. The new style was designed by me from scratch to focus on
- The lake and nearby rivers, streams and marshes
- Recreational attractions around the lake including hotels and golf courses
- Roads near the lake
- The water depth of the lake including suspected rocks
This style is much smaller than the previous one ( the style is less than 300 lines of CSS) and it behaves well at different zoom levels between 12 and 18. I suspect the number of layers can still be further reduced for faster rendering times.
I have made a web version of the map available on Peninsula Lake Map my map hosting site. The map tiles are currently being served by MapBox.
Some of the water depth data in this version of the map is based on observations I manually made while kayaking on the lake in the summer of 2011. I have tried to correct this data to match the sounding datum used by the CHS in their observations. I don’t expect the observations taken by me with a kayak, rope and a tape measure to match the accuracy of the CHS with their fancy sonar but we have to work with the equipment that we have available to us. The depths on the map should be based on a datum of 913 feet.
The Source code is still available from github