Skip to content

Instantly share code, notes, and snippets.

View springmeyer's full-sized avatar

Dane Springmeyer springmeyer

View GitHub Profile
@springmeyer
springmeyer / trace.txt
Created November 19, 2012 19:38
pj_init overhead in mapnik rendering in ~800 samples
+ ! : | 73 mapnik::feature_style_processor<mapnik::agg_renderer<mapnik::image_32> >::apply_to_layer(mapnik::layer const&, mapnik::agg_renderer<mapnik::image_32>&, mapnik::projection const&, double, std::set<std::string, std::less<std::string>, std::allocator<std::string> >&) (in libmapnik.dylib) + 200 [0x12790d368]
+ ! : | + 38 mapnik::proj_transform::proj_transform(mapnik::projection const&, mapnik::projection const&) (in libmapnik.dylib) + 46 [0x127ac178e]
+ ! : | + ! 38 mapnik::projection::projection(mapnik::projection const&) (in libmapnik.dylib) + 30 [0x127ac0f8e]
+ ! : | + ! 33 mapnik::projection::init() (in libmapnik.dylib) + 30 [0x127ac0efe]
+ ! : | + ! : 33 pj_init_plus_ctx (in libmapnik.dylib) + 273 [0x127d49ed1]
+ ! : | + ! : 29 pj_init_ctx (in libmapnik.dylib) + 975 [0x127d4a2df]
+ ! : | + ! : | 5 pj_ell_set (in libmapnik.dylib) + 510 [0x127d4991e]
+ ! : | + ! : | + 5 pj_pa
@springmeyer
springmeyer / rgb2hsl.cpp
Created November 15, 2012 00:58
rgb -> hsl and rgb -> hsv conversion with boost::gil
#include <boost/gil/gil_all.hpp>
#include <boost/gil/extension/toolbox/hsv.hpp>
#include <boost/gil/extension/toolbox/hsl.hpp>
#include <iostream>
void pc(std::string name, unsigned r, unsigned g, unsigned b) {
std::clog << name << ": " << r << "," << g << "," << b << "\n";
}
void rgb2hsv(unsigned sr, unsigned sg, unsigned sb,
@springmeyer
springmeyer / tilemill-win-internals.md
Created November 8, 2012 23:22
Details on how TileMill is packaged for windows desktop

TileMill on windows details

Setup

  • visual studio 2010 32 bit
  • works on Windows XP -> Windows 8 without any code changes
  • client-server model - no fancy integration between browser window and server
  • node v0.8

Overview

@springmeyer
springmeyer / encoding-speeds-miniz.txt
Created November 1, 2012 22:30
PNG encoding perf with mapnik + miniz
~/projects/mapnik5[master]$ python tests/python_tests/image_encoding_speed_test.py
avg: 0.9307ms | min: 0.9543ms | total: 9.6828ms | len: 4883 <-- blank png:z=1:s=huff
avg: 0.9310ms | min: 0.9696ms | total: 9.8421ms | len: 4883 <-- blank png:z=1
avg: 0.9410ms | min: 0.9553ms | total: 9.6979ms | len: 4883 <-- blank png:z=1:s=filtered
avg: 0.9539ms | min: 0.9726ms | total: 9.8690ms | len: 4883 <-- blank png:z=1:s=rle
avg: 0.9868ms | min: 1.0032ms | total: 10.179ms | len: 8020 <-- solid png:z=1
avg: 0.9880ms | min: 1.0043ms | total: 10.190ms | len: 8020 <-- solid png:z=1:s=huff
avg: 0.9889ms | min: 1.0056ms | total: 10.204ms | len: 8020 <-- solid png:z=1:s=rle
avg: 0.9930ms | min: 1.0061ms | total: 10.218ms | len: 8020 <-- solid png:z=1:s=filtered
~/projects/mapnik5[master]$ python tests/python_tests/image_encoding_speed_test.py
avg: 1.7251ms | min: 1.7440ms | total: 17.581ms | len: 252 <-- blank png8:z=1:c=50:m=h
avg: 1.7259ms | min: 1.7590ms | total: 17.745ms | len: 252 <-- blank png8:z=1:m=h
avg: 1.8541ms | min: 1.8691ms | total: 18.836ms | len: 139 <-- blank png8:m=h:t=2
avg: 1.8680ms | min: 1.8894ms | total: 19.064ms | len: 139 <-- blank png8:m=h:t=1
avg: 1.9321ms | min: 1.9497ms | total: 19.654ms | len: 139 <-- blank png8:m=h
avg: 1.9769ms | min: 2.0092ms | total: 20.241ms | len: 252 <-- blank png8:z=1
avg: 1.9769ms | min: 2.0077ms | total: 20.219ms | len: 252 <-- blank png8:z=1:c=24
avg: 1.9781ms | min: 2.0123ms | total: 20.268ms | len: 252 <-- blank png8:z=1:m=o
@springmeyer
springmeyer / label-example.xml
Created October 31, 2012 22:50
How to ensure Text labels are rendered on top of other features with Mapnik
<!-- this will not work -->
<Style name="nepopulated">
<Rule>
<Filter>[SCALERANK]=1</Filter>
<TextSymbolizer size="8" dy="2" fill="grey" fontset-name="book-fonts" halo-radius="1">[NAMEASCII]</TextSymbolizer>
<LineSymbolizer stroke="grey" stroke-width="1"/>
</Rule>
</Style>
<Layer name="nepopulated" status="on" srs="+init=epsg:4326">
@springmeyer
springmeyer / valgrind.txt
Created October 31, 2012 21:43
node-blend palettes @3765d9bb04162dadea0553bc0d2e0bb35f0b0cc9
ubuntu@ip-10-196-0-40:~/node-blend$ valgrind --leak-check=full node test.js
==8475== Memcheck, a memory error detector
==8475== Copyright (C) 2002-2011, and GNU GPL'd, by Julian Seward et al.
==8475== Using Valgrind-3.7.0 and LibVEX; rerun with -h for copyright info
==8475== Command: node test.js
==8475==
==8475== Warning: set address range perms: large range [0x3a8b6354000, 0x3a8d6354000) (noaccess)
==8475== Thread 3:
==8475== Conditional jump or move depends on uninitialised value(s)
==8475== at 0x73164E0: inflateReset2 (in /lib/x86_64-linux-gnu/libz.so.1.2.3.4)
@springmeyer
springmeyer / valgrind.txt
Created October 31, 2012 21:42
node-blend master @1ce7618f621003cf524438f47346ef13abf5e6aa
ubuntu@ip-10-196-0-40:~/node-blend$ valgrind --leak-check=full node test.js
==8843== Memcheck, a memory error detector
==8843== Copyright (C) 2002-2011, and GNU GPL'd, by Julian Seward et al.
==8843== Using Valgrind-3.7.0 and LibVEX; rerun with -h for copyright info
==8843== Command: node test.js
==8843==
==8843== Warning: set address range perms: large range [0x320507d19000, 0x320527d19000) (noaccess)
==8843== Thread 3:
==8843== Conditional jump or move depends on uninitialised value(s)
==8843== at 0x72D74E0: inflateReset2 (in /lib/x86_64-linux-gnu/libz.so.1.2.3.4)
@springmeyer
springmeyer / image-pool.diff
Created October 25, 2012 05:40
tilelive-mapnik image pool
diff --git a/lib/render.js b/lib/render.js
index cd74f80..dec3af2 100644
--- a/lib/render.js
+++ b/lib/render.js
@@ -1,6 +1,7 @@
var mapnik = require('mapnik');
var _ = require('underscore');
var Step = require('step');
+var Pool = require('generic-pool').Pool;
@springmeyer
springmeyer / node-mapnik-lucid-crash.txt
Created October 24, 2012 21:30
node-mapnik grid rendering errors and crash on lucid
devseed@gai-gain:~/danetest/mapnik$ node -v
v0.8.9
devseed@gai-gain:~/danetest/mapnik$ mapnik-config -v
2.1.0
devseed@gai-gain:~/danetest/mapnik$ which mapnik-config
/usr/bin/mapnik-config
devseed@gai-gain:~/danetest/mapnik$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 10.04.3 LTS