Firefox 3 drops this Tuesday
Good news. With all the new features and performance improvements, I’m guessing I’m not the only one looking forward to this release.
Good news. With all the new features and performance improvements, I’m guessing I’m not the only one looking forward to this release.
Neat post by Matthew Perry. I couldn’t help but run the same command:
$ history|awk '{a[$2]++ } END{for(i in a){print a[i] " " i}}'|sort -rn|head
188 cd
151 svn
113 vi
88 ll
60 sudo
53 more
40 make
40 ./dd.py
30 ./run_test.py
30 ls
dd.* is my tempfile name prefix for quick and dirty scripts. run_test.py is from running the MapServer msautotest regression test suite when developing and testing code.
What does your shell history look like?
Between a dual boot and a MacBook, I have started to have bookmark synchronization issues.
I came across Foxmarks, a neat bookmark synchronizer for Firefox. Essentially, your bookmarks are placed on a central server so you can fetch them from wherever. The only change that I made was removing some internal / sensitive bookmarks which I wouldn’t necessarily want to be “out there”, so I stored those locally.
Pretty easy!
OGC service standards (such as WMS, WFS, WCS, SOS) support something called updateSequence. In short, this value represents an identifier which clients (catalogs, applications, etc.) can use to maintain their local copy up to date. This saves clients from fetching and parsing an entire (sometimes hefty) Capabilities XML document in cases where the server has not made any updates.
Thanks to a recent enhancement, MapServer now supports updateSequence for WMS Server, WFS Server, WCS Server, and SOS Server. Support is triggered by mapfile metadata MAP/WEB/METADATA/ows_updatesequence. The value can be a string, integer or ISO8601 timestamp.
We initially thought of using the mtime of the mapfile, but this may not have been the most indicative. What if other files (pointed to by the mapfile) are modified, and not the mapfile? What if the mapfile is touch’d and and no content changes are made? For this reason, we went with a user-specified value. Basically, if the user knows the purpose updateSequence, they can use it and manage it at their own discretion.
I suppose the OGC could have allowed using the HTTP Last-Modified header, however that may get slippery in terms of semantics.
Give it a shot! I’d be interested in hearing how this works with existing catalogues and applications. The enhancement seems to be passing the CITE tests initially (let’s keep our fingers crossed!). At any rate, it is fun to code an enhancement like this. It’s also nice to have dedicated tests to all the use cases surrounding updateSequence within msautotest/wxs/.
Some of the MapServer developers may have been getting more than their share of trac notifications this week. This is partly because I’ve taken the last few days to sift through many tickets which have no milestone attached to them. Between old issues, bugs that have since been fixed, etc., it was nice to clean house a bit. They contributed to ~20 tickets being closed just this week! It’s amazing to see how many old school tickets there are lying around in trac. I try to commit to a once a month sift of trac for the oldies, but sometimes goodies 🙂
That’s how I take my coffee 🙂 You may have heard of Tim Hortons — a mecca for coffee shops in Canada. Many of us are lost without it during our morning commute. Even though they are seemingly everywhere, there are times when you just can’t find one.
A friend of mine pointed me to a forum working on collecting locations of all Tim Hortons locations in Canada and the US. Wouldn’t it be great to upload these to a GPS which supports GPX format? Or to visualize in Google Earth, for example?
This is easily done using open source geospatial tools. OGR supports the reading and writing of a number of formats, including GPX, KML, GeoJSON, Shapefile, and so on. Here’s how:
<OGRVRTDataSource> <OGRVRTLayer name="th"> <SrcDataSource relativeToVRT="1">./th.csv</SrcDataSource> <GeometryType>wkbPoint</GeometryType> <LayerSRS>WGS84</LayerSRS> <GeometryField encoding="PointFromColumns" x="Longitude" y="Latitude"/> </OGRVRTLayer> </OGRVRTDataSource>
Transform to your heart’s content:
$ ogr2ogr -f KML ./th.kml ./th.ovf
$ ogr2ogr -dsco “GPX_USE_EXTENSIONS=YES” -f GPX ./th.gpx ./th.ovf
I’ve bundled up a zipfile of various formats for use as an example — have fun!
Since I did this last year, I thought I’d try this again for 2007. Here’s a lowdown for my 2007:
In other news:
So as 2008 quickly approaches, here are a few things I’m looking forward to:
So that’s it from here. I wish you and your loved ones the very best in the holiday season and for 2008!
This past week has seen alot of activity in MapServer’s SOS Server Support. Remember when I posted about DataBlock? Well, Assefa did a great job in initially implementing this, and you can see the results in action right here. I’m going to be working on ensuring the XML conformance as per the SOS and OM standards, but it’s great to see this working!
This weekend, I added POST support. The SOS standard states that POST must be supported for all requests (except for GetCapabilities, which may be GET only). As a result, both GET and POST are now supported for all requests. I used libxml2‘s XPath support to parse the requests. XPath is an awesome way to parse XML! Support is not fully completed yet, as eventTime, result, and featureOfInterest are still yet to be implemented for POST (they are implemented for GET).
It will be interesting to see the mileage DataBlock gets. Especially seeing that now MapServer SOS presents a nice compact option to disseminate observation data over the web.
As part of MapServer’s support for standards-based interfaces, the SOS Server support is coming along quite well. With SOS 1.0.0 now adopted (although the schemas and standards document are not on the OGC public website yet), this provides a good opportunity to update the SOS support (which was previously at 0.0.31 and 0.1.2). This also was also a good time to move some of the GML code out of mapogcsos.c and into modular functions within mapgml.c.
Fresh off the press, check it out.
Modified: 17 September 2007 15:24:13 EST