February 2012
2 posts
3 tags
Usability and Open Source Software
Related to my yesterday rant about QGIS and usability: I’ve been reading an article called “Usability and Open Source Software” article and it has a lot of interesting points. It’s a little bit dated (year 2002), but I think most issues remain the same even now after 10 years. Here are some highlights I find interesting (but you should read the whole article): If this...
Feb 20th
3 tags
On QuantumGIS And User Experience
Intro Looks like my morning rant tweet “QGIS needs a usability expert. Or a whole team of them.” has caused a little storm in the GIS community. I haven’t really expected any feedback on this, so i guess I can say that Twitter is the King. I’ve already e-mailed some of my views to the first QGIS person that contacted me (Nathan Woodrow), but for the sake of open...
Feb 19th
November 2011
1 post
2 tags
Maperitive Beta: Subpixel Accuracy
Even though most of Maperitive work I’m doing lately is done in a separate branch that will come out as a brand new Maperitive 2.0 release some time in the beginning of 2012, I do occasionally implement some quick enhancements to the currently “unofficially” released Maperitive beta. I’ve just uploaded a new beta version with a couple of neat features, one of which I will...
Nov 28th
3 notes
October 2011
2 posts
6 tags
Maperitive: 3D Export
The latest Maperitive beta (download it from here) now contains a new command called export-3d, which generates a 3D mesh using the digital elevation model and places the map texture on top of it. The 3D model is exported into a COLLADA format, which can be imported into various 3D programs (Google SketchUp is the one I mostly used, it’s free). Quick How-To The quickest/easiest way to...
Oct 19th
23 notes
5 tags
Maperitive: maperipy Progress
WARNING: this is one of those teaser-posts - you get to hear about the cool new features, but you won’t be able to try them out, at least not very soon. Introduction In the last few weeks since the beta release I’ve been working on a custom job involving Maperitive. I won’t go into details about the job itself, but the important thing is that this job was an opportunity for...
Oct 11th
September 2011
5 posts
4 tags
Maperitive Beta Update
DOWNLOAD LINK: http://maperitive.net/beta/Maperitive-1.1.2001.zip I’ve just released an update of the Maperitive beta (it’s the same download link and build number). This update has a few nasty bugs fixed and a couple of new features. Label Collision Detection Maperitive now detects if two or more labels overlap. In case of overlaps the label with lower priority is removed....
Sep 21st
10 notes
5 tags
New Maperitive Beta Release
DOWNLOAD LINK: http://maperitive.net/beta/Maperitive-1.1.2001.zip A new release of Maperitive (branded as build 2001) is finally here - albeit in beta form. I wanted to release the new stuff I was working on since May, but I didn’t want to wait for everything to be totally finished. But let’s start with some… Notes about this release you should be aware of NOTE 1: This beta...
Sep 18th
1 note
5 tags
maperipy: Maperitive API for Python - A First...
A few days ago I started implementing maperipy, a Maperitive API for Python. It turns out to be a quite uncomplicated thing to do, compared to all infrastructure stuff I’m working on for the next Maperitive release, so it’s a kind of a relaxation between all the hard work. The API is still very young and unsophisticated, but I’m very excited about it, because it could provide a...
Sep 13th
8 tags
Maperitive Tutorial: Generating OSM Map For Adobe...
In this tutorial you will learn how to produce a vector map based on OpenStreetMap data and then export it to SVG format suitable for editing in Adobe Illustrator. SVG export is one of the most useful features Maperitive provides and I’ve spent a lot of time tweaking the code so that Illustrator can handle the exported SVGs. NOTE: the tutorial has been written for Maperitive build 1228....
Sep 7th
36 notes
6 tags
Maperitive Tutorial: A Hiking Web Map In Ten Easy...
I’ve been asked a lot of times to write some tutorials for Maperitive, so I finally decided to write one. In this tutorial you will learn how to make a hiking web map (like this one) with OpenStreetMap data and SRTM DEM data for hillshading and relief contours. Don’t worry - it is not that difficult to do. NOTE: the tutorial has been written for Maperitive build 1228. Some...
Sep 7th
6 notes
July 2011
1 post
Visual Studio Tip: Running Your Build Scripts...
This is really obvious and simple, but I never got the idea until now when I’m doing a bit of cleaning of my Maperitive code and trying some new approaches. For all of the projects I’m working on I have the same basic convention: a Build.bat batch script which builds the release version of the solution, including all the testing and packaging. Build.bat is always stored in the...
Jul 22nd
May 2011
1 post
4 tags
Line Rendering Artifacts
I’m investigating ways of removing nasty little rendering bugs which occur when Maperitive draws something that should be a continuous polyline, but has to be rendered in several separate segments because these segments belong to different layers of painter’s algorithm. Here’s the bug under the microscope: I’ve turned the transparency to visualize the actual endings of...
May 9th
6 notes
April 2011
7 posts
Time To Take That Jump?
I didn’t have full-time revenue when I was doing this part-time. But it’s amazing. Once you have the time to focus on something, the opportunities that you hadn’t had time to notice before suddenly open up. Just the act of making something your focus almost makes your goal come to fruition. For years you think “too risky, too risky” and then once you make that jump, things fall in place. ...
Apr 14th
4 tags
No, It's Not Google Earth
It’s Maperitive with the new MapQuest OpenAerial map layer, actually. Cooming soon.
Apr 10th
1 tag
Made By Bureaucrats, For Bureaucrats
Whoever thinks putting 8+ tabs of input screens, each with 10 or more input fields and 10 or more buttons for each project issue is a good way of tracking projects, has never seen a successful development project in his/her life. Whoever thinks creating a Windows-like Web application, slow to load and to render is a good idea, has never seen a good Web GUI and never experienced a user-friendly...
Apr 6th
1 tag
Stupid Software Screenshot
Does it really, really think I will let it close all that apps in the middle of my work? That’s plain stupid. I’m donating a piece of code to Microsoft: if (countOfProgramsToClose > 5) doNotCloseAndRequireRestart = true; else { ShowTheAnnoyingDialog(); DoOtherAnnoyingThings(); }
Apr 6th
How To Write Fast Code →
“So there is no way, really, to make code go faster, because there is no way to make instructions execute faster. There is only such a thing as making the machine do less.” (via The Endeavour)
Apr 4th
5 tags
Maperitive: Python Scripting Introduction
The upcoming release of Maperitive comes with a new and exciting feature: Python scripting. What I’ll describe here is just an initial introduction of Python into Maperitive and right now is more of an experimental nature. I have great plans with Python, but there is still a lot of work to do and I wanted to release something to users so they can test it out and give some...
Apr 2nd
2 tags
Maperitive: Line Feature Label Placement Explained
This is a quick description of how Maperitive places labels on line features (streets, rivers etc.). The system is likely to change in the future, so make sure you read the online docs for the latest info. Currently Maperitive tries to fit the text into the width of the street, but there are several rendering properties (see the Default rules as an example) which control this: Maperitive...
Apr 1st
4 notes
March 2011
16 posts
2 tags
A Little Agile Gem
Are story points an excuse for teams not being able to estimate correctly in days/hours? It is not an excuse but a reality that it is a waste to attempt arriving at an accurate number in days or hours for a User Story. The amount of effort and time required to arrive at such a number trades off against the benefits of estimating in days/hours. Moreover estimating in days/hours often...
Mar 30th
5 tags
Fill Textures In Maperitive
Playing with fill textures in #Maperitive. Just some random forest noise: Coming up in the next release…
Mar 30th
1 tag
Mar 22nd
1 tag
Mar 21st
Stacktrace or GTFO →
Mar 21st
1 note
1 tag
Mar 20th
1 tag
Mar 19th
2 tags
A little GIS maths →
Mar 19th
1 note
1 tag
Mar 18th
5 tags
Python's try-except-else-finally Block
Started reading IronPython in Action to get acquainted with my language of choice for Maperitive scripting. While browsing through the book, I noticed a little gem I complained was missing in C# a few days ago (code stolen from here): try: f = open(arg, 'r') except IOError: print 'cannot open', arg else: print arg, 'has', len(f.readlines()), 'lines' f.close() And the...
Mar 18th
2 notes
1 tag
Mar 18th
Mar 17th
IronPython In Maperitive Action
An example experimental snippet of Python code that I’m using to test the IronPython integration with Maperitive rendering rules: text-func : e.GetTagValue('name').upper().replace('E','I') It uses the name tag, converts it to uppercase and then replaces all E’s with I’s. Stupid, I know. Stay tuned for something more intelligent.
Mar 12th
Maperitive's Birthday Post →
Mar 12th
3 tags
OSM Relations Or Seven-Headed Monsters
The more I delve into trying to find a good generic way of handling OSM relations in Maperitive, the more I get the feeling it’s a waste of effort. Relations are just too abstract and require some implicit (and external) semantic knowledge for a map renderer to be able to handle them properly. Example? Look at multipolygon relations on the OSM wiki. They contain a lot of external knowledge...
Mar 11th
1 tag
try...success...catch...finally block wanted in C#
Yesterday I complained about wanting such a block in C#. Why? Here’s the situation (not too common, but it happens): try { OpenTheFridgeAndTakeChocolate(); CutChocolateIntoPieces(); } catch (SomethingFailedException ex) { GoToChocolateStore(); } finally { CloseTheFridge(); } The problem I’m having is that I only want to go to store if I cannot find the chocolate in...
Mar 11th