Thursday, January 6, 2011
State of the Guide
The Wiki is gone. I had copied text out and started editing it in LyX (like Microsoft Word but waaay nerdier). Between then and now, no one edited the content there. That's okay. But now the flavor of collaboration has changed.
I hadn't planned to tackle layout or content. Layout is feeding the whole ball of wax to psmerge after trying to get the margins right with psnup.
One of the seeds this project grew from was a flier R asked me to write (she was too busy) addressing novice's concerns about cycling and serving as a sort of FAQ or guide. I created that ages ago and named it "Ride Your Bike". It was rejected for the purpose of the event it was created for but remained a topic of discussion -- what would you tell new cyclists? That's now the "Getting Started" section. Still, through every discussion about the project, someone was going to write every chapter, never me. R did write a few, and R, T and myself went back and forth endlessly on one chapter, Vehicular Riding, the safety goop. T and I are mutually horrified by the beliefs and attitudes of the other.
The rest of the content is my attempt at being brief mixed with little things I wanted to tell people new to cycling Phoenix, plus whole cloth art from R and fliers from TBAG. Really, I should apologize if it looks like something is there. That's an illusion, and a cheap, accidental one.
Early on in the project, we debated using the MAG map versus the Open Street Maps data. Using the MAG map would mean either lots of tedious manual processing of vectors in Illustrator or else obtaining the GIS data the map was created from. MAG was unresponsive to requests and I was un-invited to help nag. The downsides to using Open Street Maps was that none of the bike lanes were actually marked up in it and the renderers for it all generated bitmap output, not vector data. C, being a purist, strongly argued for vectors while I argued for not biting off an amount of work that we're unlikely to actually do. Unsurprisingly, C got busy, and wrangling the PDF vector data proved terribly time consuming. Time passed. Meanwhile, MAG continues to not send us GIS data, the mountain bike guys continue to not write their chapter, and so on.
The result of all of this is that I was left without a task to do on a pet project. I'm too rusty to even think of illustrating it. I'm not writing the prose. I'm not doing the maps. I'm not doing the layout. This sucks, I thought. Deciding that he doing the maps in Illustrator was too much work and too closed to collaboration, I decided to start playing with it. At first, it was playing with vector stuff to add to Illustrator and import in and get fancied up with the rest of the stuff.
The map generator started life as a toy that rendered GPX data taken from bikely.com. I had a toy map of the Phoenix area comprised entirely of mapped rides, and life was grand. I showed it to C and asked him if he could get back to me on which vector formats Illustrator could import, explaining that we had plans to mark up routes to and fro (eg from Phoenix to Tempe) in bikely and mash those up with the bike maps. I never heard back, even after asking again, twice. I coldn't even occupy myself with an importer for Illustrator. Life's a bitch.
It learned how to classify different roads for suitability for cycling, and then how to draw street name labels that followed the curve of the road. That I did on the way to, at, and on the way back from the bear cabin. It learned how to logically join road segments for the sake of computing the length of a way, and then got a rendering backend that colored roads according to a metric computed from their length and suitability-for-cycling classification. It got a backend for rendering just canals and other specialized things. Then it re-learned how to suck in GPX data and mark it up over top of the streets.
Then I started entering bike lanes into Open Street Maps' potlatch editor and fixing up the rendering of the renderer.
Learning PostScript and playing with Open Street Map's amazing technology has been fantastic, as has playing with ideas for generating bike maps.
The map generator is still not great, as far as map renderers go. It doesn't draw features such as mountains, rivers and parks in any identifiable way and it's dumb about road label placement. Lmg looked in on it once and suggested an algorithm for label placement that I still need to investigate. I've been hoping the matter would just go away. I guess I can use different pattern fill types for different things such as mountains and parks and dry river beds. Anyway, work is needed before it can compete with the other renderers.
You can kind of, almost, barely read the street name labels when the middle 60% of the area covered by the MAG map is tiled across four panels on two pages. That's most of the MAG map drawn on two sheets of paper, with more street names labeled than the MAG map does. This pleased me greatly. One of my goals was to labels more streets than the MAG map does.
Some more goals: easily import GPX data for mashing up with maps; elevate long back-roads to the same status as designated bike routes and roads with bike lanes; show people cool things they can bike to in their own neighborhood and how to get there; contribute to OSM; ... and I've accomplished those things.
C managed a gorgeous hipster compton + college town map from the MAG data in Illustrator but not only did I have no way to edit it, I couldn't even manage to break it in two halves so it could get assembled with the other pages into a booklet. It was pre split in half inside of the one page, which is useless. I continued to use it until the other zoomed-in maps were done. I planned to keep it there as a placeholder, hopefully encouraging C to continue work, but I decided to just do two more maps in the crappy local style. C's First Friday map is still a "notebook" page at the end.
I ran into problems along the way: flpsed picked a fight with psmerge. Making up labels in maps with flpsed was not sustainable. Too quickly I'd want to regenerate the map. I had to write a utility to move the flpsed annotations from one .ps to another. Getting margins even remotely right was a pain. PostScript data was coming from all over the place and each program contributing to the book had a very different system for margins. psnup adds some extra but in the end, I had to turn that way down and mostly re-touch-up the margins of each individual chunk (map data, prose, imported fliers, etc).
I'm not sure if anyone else wants their name on this any more. I finally showed it to R and the response was less than enthusiastic. She suggested forking the project and I heartily agreed. I'm still open to ways I can apply programming and my silly heuristics to this idea.
I did at one point warn people that I was grabbing the ball and running with it with the aim of making a "version zero" proof of concept. After a while, I corrected that, saying that "The Phoenix Bike Guide According to Scott" was probably a better name. Unveiling my work to my co-conspirator confirmed that. As I told R, I haven't been able to reach consensus on one part of this with one person working on it through the entire process.
I really wanted to apply what I'd learned in developing open source software: Use open formats. Build in a system of collaboration. Do the simplest thing possible, at least to start with, and then work to improve it. Get the ball rolling first and let what's there, rather than a promise, attract collaborators.
In particular, "do the simplest thing possible" should have made this project absolute cake. The Mill City Pigs Eye Bike Guide has hand-drawn maps. I should have, from the beginning, used the bitmap tiles from opencyclemaps' rendering of the OSM data and marked up bike lanes in potlatch, then wrote code to draw GPX routes right over top of that, right on the bitmap data. That would have looked better, been more collaborative, and easier to do fun programmatic stuff with than the Mill City Pigs Map's system. Probably. And so much faster than hand drawing maps. The old Unix PostScript tools (psbook, psnup, etc) make mini-publishing tasks extremely easy. I didn't manager the faster bit but the rest is still go. Mill City Pigs Eye has an awesome history of St.Paul Minneapolis and more destinations with better blurbs than I do, but I think my maps are better if for no other reason than it's fun and easy to mash up with them.
Even though I don't agree with T on any aspect of the Vehicular Cycling chapter, hashing out arguments with him was invaluable to me in forming my own position. R provided feedback, content, and enthusiasm at the early stages. Despite the rocky start, the guide, as it stands, wouldn't exist without them.
It is possible to collaborate on this, kind of. Email me for details. You'll need to have LyX installed. It's available for Mac, Win and Linux and other platforms. Or else you can add more bike lanes at openstreetmaps.org, using the potlatch editor. Or mark up routes in bikely and send me the link. Or send photographs or illustrations. Or just send feedback, locations of hazards, suggestions for destinations, or bug reports.
I hadn't planned to tackle layout or content. Layout is feeding the whole ball of wax to psmerge after trying to get the margins right with psnup.
One of the seeds this project grew from was a flier R asked me to write (she was too busy) addressing novice's concerns about cycling and serving as a sort of FAQ or guide. I created that ages ago and named it "Ride Your Bike". It was rejected for the purpose of the event it was created for but remained a topic of discussion -- what would you tell new cyclists? That's now the "Getting Started" section. Still, through every discussion about the project, someone was going to write every chapter, never me. R did write a few, and R, T and myself went back and forth endlessly on one chapter, Vehicular Riding, the safety goop. T and I are mutually horrified by the beliefs and attitudes of the other.
The rest of the content is my attempt at being brief mixed with little things I wanted to tell people new to cycling Phoenix, plus whole cloth art from R and fliers from TBAG. Really, I should apologize if it looks like something is there. That's an illusion, and a cheap, accidental one.
Early on in the project, we debated using the MAG map versus the Open Street Maps data. Using the MAG map would mean either lots of tedious manual processing of vectors in Illustrator or else obtaining the GIS data the map was created from. MAG was unresponsive to requests and I was un-invited to help nag. The downsides to using Open Street Maps was that none of the bike lanes were actually marked up in it and the renderers for it all generated bitmap output, not vector data. C, being a purist, strongly argued for vectors while I argued for not biting off an amount of work that we're unlikely to actually do. Unsurprisingly, C got busy, and wrangling the PDF vector data proved terribly time consuming. Time passed. Meanwhile, MAG continues to not send us GIS data, the mountain bike guys continue to not write their chapter, and so on.
The result of all of this is that I was left without a task to do on a pet project. I'm too rusty to even think of illustrating it. I'm not writing the prose. I'm not doing the maps. I'm not doing the layout. This sucks, I thought. Deciding that he doing the maps in Illustrator was too much work and too closed to collaboration, I decided to start playing with it. At first, it was playing with vector stuff to add to Illustrator and import in and get fancied up with the rest of the stuff.
The map generator started life as a toy that rendered GPX data taken from bikely.com. I had a toy map of the Phoenix area comprised entirely of mapped rides, and life was grand. I showed it to C and asked him if he could get back to me on which vector formats Illustrator could import, explaining that we had plans to mark up routes to and fro (eg from Phoenix to Tempe) in bikely and mash those up with the bike maps. I never heard back, even after asking again, twice. I coldn't even occupy myself with an importer for Illustrator. Life's a bitch.
It learned how to classify different roads for suitability for cycling, and then how to draw street name labels that followed the curve of the road. That I did on the way to, at, and on the way back from the bear cabin. It learned how to logically join road segments for the sake of computing the length of a way, and then got a rendering backend that colored roads according to a metric computed from their length and suitability-for-cycling classification. It got a backend for rendering just canals and other specialized things. Then it re-learned how to suck in GPX data and mark it up over top of the streets.
Then I started entering bike lanes into Open Street Maps' potlatch editor and fixing up the rendering of the renderer.
Learning PostScript and playing with Open Street Map's amazing technology has been fantastic, as has playing with ideas for generating bike maps.
The map generator is still not great, as far as map renderers go. It doesn't draw features such as mountains, rivers and parks in any identifiable way and it's dumb about road label placement. Lmg looked in on it once and suggested an algorithm for label placement that I still need to investigate. I've been hoping the matter would just go away. I guess I can use different pattern fill types for different things such as mountains and parks and dry river beds. Anyway, work is needed before it can compete with the other renderers.
You can kind of, almost, barely read the street name labels when the middle 60% of the area covered by the MAG map is tiled across four panels on two pages. That's most of the MAG map drawn on two sheets of paper, with more street names labeled than the MAG map does. This pleased me greatly. One of my goals was to labels more streets than the MAG map does.
Some more goals: easily import GPX data for mashing up with maps; elevate long back-roads to the same status as designated bike routes and roads with bike lanes; show people cool things they can bike to in their own neighborhood and how to get there; contribute to OSM; ... and I've accomplished those things.
C managed a gorgeous hipster compton + college town map from the MAG data in Illustrator but not only did I have no way to edit it, I couldn't even manage to break it in two halves so it could get assembled with the other pages into a booklet. It was pre split in half inside of the one page, which is useless. I continued to use it until the other zoomed-in maps were done. I planned to keep it there as a placeholder, hopefully encouraging C to continue work, but I decided to just do two more maps in the crappy local style. C's First Friday map is still a "notebook" page at the end.
I ran into problems along the way: flpsed picked a fight with psmerge. Making up labels in maps with flpsed was not sustainable. Too quickly I'd want to regenerate the map. I had to write a utility to move the flpsed annotations from one .ps to another. Getting margins even remotely right was a pain. PostScript data was coming from all over the place and each program contributing to the book had a very different system for margins. psnup adds some extra but in the end, I had to turn that way down and mostly re-touch-up the margins of each individual chunk (map data, prose, imported fliers, etc).
I'm not sure if anyone else wants their name on this any more. I finally showed it to R and the response was less than enthusiastic. She suggested forking the project and I heartily agreed. I'm still open to ways I can apply programming and my silly heuristics to this idea.
I did at one point warn people that I was grabbing the ball and running with it with the aim of making a "version zero" proof of concept. After a while, I corrected that, saying that "The Phoenix Bike Guide According to Scott" was probably a better name. Unveiling my work to my co-conspirator confirmed that. As I told R, I haven't been able to reach consensus on one part of this with one person working on it through the entire process.
I really wanted to apply what I'd learned in developing open source software: Use open formats. Build in a system of collaboration. Do the simplest thing possible, at least to start with, and then work to improve it. Get the ball rolling first and let what's there, rather than a promise, attract collaborators.
In particular, "do the simplest thing possible" should have made this project absolute cake. The Mill City Pigs Eye Bike Guide has hand-drawn maps. I should have, from the beginning, used the bitmap tiles from opencyclemaps' rendering of the OSM data and marked up bike lanes in potlatch, then wrote code to draw GPX routes right over top of that, right on the bitmap data. That would have looked better, been more collaborative, and easier to do fun programmatic stuff with than the Mill City Pigs Map's system. Probably. And so much faster than hand drawing maps. The old Unix PostScript tools (psbook, psnup, etc) make mini-publishing tasks extremely easy. I didn't manager the faster bit but the rest is still go. Mill City Pigs Eye has an awesome history of St.Paul Minneapolis and more destinations with better blurbs than I do, but I think my maps are better if for no other reason than it's fun and easy to mash up with them.
Even though I don't agree with T on any aspect of the Vehicular Cycling chapter, hashing out arguments with him was invaluable to me in forming my own position. R provided feedback, content, and enthusiasm at the early stages. Despite the rocky start, the guide, as it stands, wouldn't exist without them.
It is possible to collaborate on this, kind of. Email me for details. You'll need to have LyX installed. It's available for Mac, Win and Linux and other platforms. Or else you can add more bike lanes at openstreetmaps.org, using the potlatch editor. Or mark up routes in bikely and send me the link. Or send photographs or illustrations. Or just send feedback, locations of hazards, suggestions for destinations, or bug reports.
Subscribe to:
Comments (Atom)