#mapnik log: Friday 13, March 2009

2009 | 03

previous | next
00:31:45 <springmeyer> hmm, cmarqu: you around?
00:32:03 <springmeyer> just broke away and am going to try to implement this watcher thingy
00:33:26 <springmeyer> I've always thought it would reload the whole script process and in that case should happen actually in the 'liteserv.py' httpd server
00:34:07 <springmeyer> but I guess we're talking only about the mapfile right - no need to reload other config options
00:35:47 <cmarqu> Yes, only the style file.
00:36:43 <springmeyer> okay. and I figure xml/mml watching will be off by default
00:36:50 <springmeyer> but able to be set to true in the config?
00:36:54 <springmeyer> sound reasonable?
00:36:57 <cmarqu> Probably.
00:37:04 <cmarqu> Yes, cool.
00:37:24 <cmarqu> Oh, is mml support coming? :)
00:37:31 <springmeyer> already there :)
00:37:39 <cmarqu> Whoa.
00:37:47 <cmarqu> Gotta update.
00:37:49 <springmeyer> took two lines of code :)
00:38:35 <springmeyer> whoops: 3 lines :)
00:38:37 <springmeyer> http://bitbucket.org/springmeyer/tilelite/changeset/fbb83836aafe/#chg-tilelite.py_newline113
00:40:53 <cmarqu> What, a font-family line without DejaVu?
00:41:46 <springmeyer> uups :)
00:46:18 *** ninja_ (n=pankur@nat/yahoo/x-e2043d49f975863e) has joined #mapnik
00:53:47 <springmeyer> hmmm. I wonder about clearing the layers and styles before reloading the mapfile
00:54:30 <springmeyer> cmarqu: are you running mapnik trunk?
00:54:46 <cmarqu> springmeyer: As of ~2 weeks ago.
00:54:50 <springmeyer> okay
00:55:02 <springmeyer> I've added a map.remove_all() in trunk
00:55:21 <springmeyer> which will clear all styles and layers from memory in the c++ core
00:55:46 <springmeyer> useful here, just trying to think if other code in tilelite is trunk only...
00:59:04 <springmeyer> ah ya, the buffer size is trunk only
00:59:37 <springmeyer> so you must have upgraded just before starting to use TileLite
01:02:55 <cmarqu> Yes, surely. I am using tilelite since more than 4 weeks I think
01:03:34 <springmeyer>  okay, ready for testing: http://bitbucket.org/springmeyer/tilelite/changeset/abfdcbdaf2e3/
01:05:03 <springmeyer> needs some improvement being more careful with threads but it should do the job at least
01:05:31 <springmeyer> I assume you are just running with liteserv.py still at this point - no deployment with mod_wsgi?
01:06:34 <cmarqu> Right.
01:07:32 <springmeyer> okay
01:07:48 <springmeyer> so I just made the sample tilelite.cfg have the mapfile watching off by default
01:07:53 <springmeyer> (missed that in the last commit)
01:08:32 <cmarqu> Works as before at least. Will try the style change monitoring tomorrow (2am here)
01:08:56 <springmeyer> wow. get to sleep! :)
01:09:27 <cmarqu> But maps are so awesome! :)
01:09:49 <springmeyer> agreed!
01:24:24 <ninja_> hey guys
01:36:48 <cmarqu> Good night. Dane, thanks for the quick implementation!
01:42:59 <ninja_> hey springmeyer do you have any idea if mapnik can generate high res images , 300 dpi ?
02:57:13 *** scruggs has quit (Read error: 110 (Connection timed out))
02:57:23 *** scruggs_ has quit (Read error: 110 (Connection timed out))
03:18:38 *** scruggs (n=chris@72-161-114-33.dyn.centurytel.net) has joined #mapnik
03:19:58 *** scruggs_ (n=chris@72-161-114-33.dyn.centurytel.net) has joined #mapnik
04:52:05 <springmeyer> hey ninja_: just got back for my soccer match
04:52:27 <springmeyer> for sure mapnik can do 300 dpi
04:53:07 <springmeyer> if you believe that dpi is a real thing :)
04:53:26 <springmeyer> cmarqu: no problem, that had been bugging me too
05:19:50 <ninja_> hey springmeyer:
05:20:05 <ninja_> hmm , so high res images can be done
05:20:27 <ninja_> nothing different right ? should be the same way as anything
05:22:01 <springmeyer> ya, mapnik assumes a ppi of around 91 pixels/inch
05:22:30 <springmeyer> so to get close to 300 ppi you just multiply by that
05:23:35 <springmeyer> or if you are lazy (like me) you can think in paper sizes and then fetch the cooresponding pixels needed to match that size given 300 dpi
05:23:50 <springmeyer> with 'print2pixel.py': http://mapnik-utils.googlecode.com/svn/sandbox/print2pixel/
05:24:26 <ninja_> sounds awesome springmeyer
05:24:47 <springmeyer> mapnik surely does not embed any exif information in output png/jpegs, but I've thought about adding that to print2pixel
05:25:32 <springmeyer> since some print/photoshopy folk like the embedded # even though it is kinda a falsehood
05:25:50 <springmeyer> you should be able to do:
05:25:58 <springmeyer> sudo easyinstall http://mapnik-utils.googlecode.com/svn/sandbox/print2pixel/
05:30:14 <ninja_> ill try that tomorrow morning thanks for that , i have to leave now .. thanks again springmeyer
05:30:19 <ninja_> will let you know how i go with it
05:30:28 <springmeyer> no problem, cheers
05:30:38 *** ninja_ has quit ()
07:06:08 <dodobas> yello
07:44:44 *** xcacou (n=aga@AToulouse-157-1-22-249.w86-201.abo.wanadoo.fr) has joined #mapnik
08:47:36 *** xcacou has quit (Read error: 113 (No route to host))
08:48:11 *** xcacou (n=aga@AToulouse-157-1-22-249.w86-201.abo.wanadoo.fr) has joined #mapnik
09:14:43 *** dodobas has quit (Read error: 60 (Operation timed out))
09:16:35 *** dodobas (n=dodobas@open.geof.hr) has joined #mapnik
09:56:19 *** dodobas has quit (Remote closed the connection)
09:56:23 *** dodobas (n=dodobas@open.geof.hr) has joined #mapnik
10:47:39 *** stamf_ (n=stamf@116.73.233.220.exetel.com.au) has joined #mapnik
13:11:55 *** aub (n=aubrey@70.107.236.83) has joined #mapnik
13:23:12 *** xcacou has quit (Remote closed the connection)
13:25:37 *** xcacou (n=aga@AToulouse-157-1-22-249.w86-201.abo.wanadoo.fr) has joined #mapnik
17:07:02 *** xcacou has quit (Remote closed the connection)
17:16:43 <springmeyer> cool... http://code.google.com/p/postgis/issues/detail?id=123
17:48:21 *** jburgess_ has quit (Remote closed the connection)
18:30:54 *** sanjiv (n=chatzill@115.241.203.193) has joined #mapnik
18:49:53 *** sanjiv has quit ("ChatZilla 0.9.84 [Firefox 3.0.7/2009030422]")
18:52:27 <aba> hm, can I say "keep the ratio of size intact" in css (i.e. not saying "make this line 1 pixel width in these zoom levels, 2 pixel in those, ....)?
20:59:06 <cmarqu> springmeyer: Gah. Was going to try the mml support in tilelite, but now realised that I am doing postprocessing on the generated XML (Cascadenik doesn't parse non-ascii stuff in ... uh... selectors)
21:04:25 <springmeyer> how are you doing the post-processing?
21:04:39 <springmeyer> aba: I'm not sure, but good question!
21:04:50 <springmeyer> aba: let me know when you find out the answer :)
21:06:28 <cmarqu> springmeyer: sed :)
21:07:10 <cmarqu> I'm doing some very simplistic "encoding" of umlauts that I'm reverting with sed
21:07:19 <springmeyer> okay, so not python  :)
21:07:44 <cmarqu> Also, it doesn't like "osmc:symbol", so I'm writing "osmc_symbol"
21:07:57 <springmeyer> migurski is conference going currently - is there a cascadenik ticket for this?
21:08:02 <cmarqu> No, not python. I'm hoping mike will fix the issue at some point
21:08:16 <cmarqu> Yes, a very old one.
21:08:50 <cmarqu> I tried to debug it myself, but it seems to be a problem with the 3rd party cssparser thingie
21:09:02 <springmeyer> ah, I see
21:09:24 <springmeyer> I remember mike saying something about wanting to not have to use cssutils
21:09:32 <springmeyer> perhaps that was related
21:09:37 <cmarqu> It's not just a matter of specifying the encoding
21:09:41 <cmarqu> Maybe
21:17:14 *** jlivni has quit (Read error: 104 (Connection reset by peer))
21:32:48 <cmarqu> springmeyer: Oh, a problem with the style file watching. Mine is quite big,  and apparently tilelite starts reading it when it is still being written, leading to XML problems.
21:33:28 <cmarqu> I thought it would recover,  but it doesn't.
21:34:25 <springmeyer> cmarqu: ewwww
21:34:38 <cmarqu> http://rafb.net/p/FZCfpZ96.html
21:34:56 <springmeyer> ya, that especially with calling cascadenik each to could get ugly
21:34:56 <cmarqu> Ok, it just finds the file empty apparently.
21:36:07 <springmeyer> hmmm, hold on tho-
21:36:13 <springmeyer> '/home/colin/mapnik/osm_teczno_customized.xml'
21:36:25 <springmeyer> that is not the result of cascadenik is it?
21:36:44 <springmeyer> oh, nevermind
21:37:02 <cmarqu> Yes, it is.
21:37:02 <springmeyer> you are'nt using cascadenik due to that ascii bug - that's right
21:37:34 <springmeyer> ( i mean the automated output of cascadenik called via TileLite which would be a temp file I think)
21:37:42 <cmarqu> I am using cascadenik, but I produce XML and postprocess that
21:37:49 <cmarqu> Right
21:37:51 <springmeyer> right, forgot for a moment
21:38:10 <springmeyer> so, let me think here...
21:38:40 <springmeyer> TileLite is constantly trying to load the xml while you are editing...
21:39:14 <springmeyer> and for a variety of reasons the load_map() could fail
21:39:28 <cmarqu> Well, it won't change while editing, but when compiling with cascadenik
21:39:53 <cmarqu> It would when it watched the mml file though
21:40:16 <springmeyer> right, it shouldn't (but many file editors may be saving in the background I figure)
21:40:26 <cmarqu> So it maybe shouldn't drop its internal info unless it could successfully load new stuff
21:40:55 <springmeyer> sure, sounds reasonable
21:40:56 <cmarqu> Well, my *fingers* are constantly saving in the background. Can't help it. :)
21:41:11 <springmeyer> ah :)
21:42:39 <springmeyer> how about we 1) wait 1-2 seconds before sensing a changed/saved mapfile before actually reloading
21:43:34 <springmeyer> and 2) set the thread to recover even if the load_map() fails
21:43:36 <cmarqu> Would work.
21:43:47 <cmarqu> Even better (in addition)
21:49:14 * springmeyer stops his other django servers running on port 8000 and starts hacking sleep into TileLite...
21:51:23 <cmarqu> No need to hurry though!
21:51:28 <springmeyer> ewww segfault
21:58:38 *** jlivni (n=josh@76.14.74.234) has joined #mapnik
22:09:54 <springmeyer> cmarqu: ready to test my sleepy code?
22:10:53 <cmarqu> Pulling.
22:10:59 <springmeyer> the renderer will now also lock up until the mapfile is reloaded to avoid a render thread hitting mapnik while the mapfile is still being brough into memory
22:11:16 <springmeyer> okay, cool one sec and I'll push
22:14:37 <springmeyer> go for it
22:19:11 <cmarqu> Hmm. I had pulled away the style file from it when there were still tiles to render. The rest of the tiles just got grey.
22:24:15 <cmarqu> I then gave it a new good file, but the tiles are still grey
22:24:15 <cmarqu> Ctrl-C+restart made it work again
22:29:27 <cmarqu> It now did this even when there were no tile in the render queue
22:34:58 <cmarqu> Ooops. Sorry. I did not install the new files. :/
22:37:41 <springmeyer> just pushed on more change now that improves the watcher logic with a max_failures variable
22:37:42 <springmeyer> http://bitbucket.org/springmeyer/tilelite/changeset/01a41a5784c5/
22:37:48 <springmeyer> on/one
22:42:05 <cmarqu> Uhm. I somehow lost my modified openlayers.html
22:47:41 <cmarqu> Ok, I did not, bu the centering on my preferred location doesn't work anymore.
22:50:53 <springmeyer> i borked it for you sorry
22:51:44 <cmarqu> Ah-ha!
22:51:59 <cmarqu> I was using map.zoomToExtent(new OpenLayers.Bounds(...))
23:02:57 *** aub has quit (Read error: 110 (Connection timed out))
23:20:07 *** D3f0 (n=defo@190.176.192.239) has joined #mapnik
23:23:10 *** aub (n=aubrey@cpe-72-227-134-148.nyc.res.rr.com) has joined #mapnik
23:23:38 *** D3f0 has quit (Read error: 104 (Connection reset by peer))
23:26:46 *** D3f0 (n=defo@190.176.192.239) has joined #mapnik
23:26:54 *** D3f0 has quit (Remote closed the connection)
23:30:55 *** stamf__ (n=stamf@116.73.233.220.exetel.com.au) has joined #mapnik
23:32:32 <springmeyer> cmarqu: ya sorry about that, I did intend to commit the openlayers.html
23:33:02 *** stamf_ has quit (Read error: 145 (Connection timed out))
23:33:03 <springmeyer> but, best likely to keep your own version when I make that mistake again :)
23:33:22 <springmeyer> mercurial is nice for that, you can commit it locally without ever pushing the file
23:33:29 <springmeyer> and then it is versioned if you wish
23:43:05 <cmarqu> Yeah, I know the theory of distributed VCSes,  but haven't really used them
23:43:19 <cmarqu> I'm happy if some of my colleagues at work use SVN
23:43:51 <springmeyer> I hear you :)
23:43:54 <cmarqu> How do I revert to an old revision in hg?
23:44:10 <springmeyer> hmmmm...
23:44:22 <cmarqu> hg up -r 17 openlayers.html it would be in SVN
23:45:11 <springmeyer> looks like
23:45:22 <cmarqu> abort: please specify just one revision
23:45:25 <cmarqu> it says.
23:45:26 <springmeyer> hg update -r asdflaksdjflakshg;lasjhga
23:47:01 <springmeyer> wierd
23:47:06 <springmeyer> works for me
23:47:17 <springmeyer> do $hg log to get a revision #
23:47:21 <cmarqu> Ah, I should use revert for a single file
23:47:32 <springmeyer> hg update -r 21
23:47:37 <springmeyer> that works here
23:49:31 <cmarqu> The revert also blew away my local changes, but created a openlayers.html.orig
23:50:24 <springmeyer> maybe check out a second clone for development?
23:51:12 <cmarqu> It's only that file, I can just keep a copy.
23:53:36 <springmeyer> okay
23:53:59 <springmeyer> so cmarqu: other than me messing up your OL file is the TileLite watcher working now?
23:54:12 <cmarqu> Still need to test that.
23:58:53 <cmarqu> Oh. I was going to claim that it doesn't, but I now see it's not called watch_map anymore but watch_mapfile.
23:59:03 <cmarqu> Is watch_interval still current?
23:59:27 <springmeyer> yep