Browse Source

GraphServer post

Thomas Dy 11 years ago
parent
commit
1d495b5336

+ 2 - 1
output/2013/index.html

@@ -36,7 +36,8 @@
         <!--Body content-->
         <div class="postbox">
         <h1>Posts for year 2013</h1>
-        <ul class="unstyled"><li><a href="../posts/transit-wand.html">[2013-07-14 13:45] Transit Wand</a>
+        <ul class="unstyled"><li><a href="../posts/graphserver.html">[2013-07-23 14:48] GraphServer</a>
+            </li><li><a href="../posts/transit-wand.html">[2013-07-15 22:45] Transit Wand</a>
             </li><li><a href="../posts/fare-data.html">[2013-07-13 21:15] Fare Data</a>
             </li><li><a href="../posts/gtfs-editor.html">[2013-07-10 11:30] GTFS Editor</a>
             </li><li><a href="../posts/open-trip-planner.html">[2013-07-09 23:16] Open Trip Planner</a>

+ 1 - 1
output/assets/js/tag_cloud_data.json

@@ -1 +1 @@
-{"programming": [7, "/categories/programming.html"], "lets-debug": [1, "/categories/lets-debug.html"], "philippine-transit-app": [7, "/categories/philippine-transit-app.html"]}
+{"programming": [8, "/categories/programming.html"], "lets-debug": [1, "/categories/lets-debug.html"], "philippine-transit-app": [8, "/categories/philippine-transit-app.html"]}

+ 1 - 1
output/categories/lets-debug.xml

@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<rss version="2.0"><channel><title>Pleasant Programmer (lets-debug)</title><link>http://pleasantprogrammer.com</link><description></description><lastBuildDate>Sun, 14 Jul 2013 21:28:42 GMT</lastBuildDate><generator>nikola</generator><docs>http://blogs.law.harvard.edu/tech/rss</docs><item><title>GTFS Editor</title><link>http://pleasantprogrammer.com/posts/gtfs-editor.html</link><description>&lt;html&gt;&lt;body&gt;&lt;p&gt;Link: &lt;a href="https://github.com/conveyal/gtfs-editor"&gt;https://github.com/conveyal/gtfs-editor&lt;/a&gt;&lt;/p&gt;
+<rss version="2.0"><channel><title>Pleasant Programmer (lets-debug)</title><link>http://pleasantprogrammer.com</link><description></description><lastBuildDate>Tue, 23 Jul 2013 15:34:46 GMT</lastBuildDate><generator>nikola</generator><docs>http://blogs.law.harvard.edu/tech/rss</docs><item><title>GTFS Editor</title><link>http://pleasantprogrammer.com/posts/gtfs-editor.html</link><description>&lt;html&gt;&lt;body&gt;&lt;p&gt;Link: &lt;a href="https://github.com/conveyal/gtfs-editor"&gt;https://github.com/conveyal/gtfs-editor&lt;/a&gt;&lt;/p&gt;
 &lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt; they really meant under development&lt;/p&gt;
 &lt;p&gt;When I first saw the source of GTFS Editor, I was ecstatic. They used &lt;a href="http://playframework.com/"&gt;Play framework&lt;/a&gt;!!! Not only that, they're targeting PostgreSQL as the main database. Those are our favorite tools for building webapps at By Implication. I was a bit sad though, when I saw it was on the 1.x release of Play though. I did have some experience with that release, but not as much compared to 2.x.&lt;/p&gt;
 &lt;p&gt;Getting it to actually run though, wasn't very pleasant. The initial setup was easy enough. Get &lt;a href="http://www.playframework.com/download"&gt;Play 1.2.5&lt;/a&gt;, install Postgres with PostGIS, clone the repo and create backing database in Postgres. Some minor additional steps you need are to create the PostGIS extension on the database. The schema is automatically generated and applied by Play so that should be all that's necessary. Wonderful. Then, run play, open a browser, go to &lt;a href="http://localhost:9000"&gt;http://localhost:9000&lt;/a&gt;, compilation error. Fantastic.&lt;/p&gt;

+ 2 - 1
output/categories/philippine-transit-app.html

@@ -37,7 +37,8 @@
         <div class="postbox">
         <h1>Posts about philippine-transit-app</h1>
             <a href="philippine-transit-app.xml">RSS</a>
-        <br><ul class="unstyled"><li><a href="../posts/transit-wand.html">[2013-07-15 22:45] Transit Wand</a>
+        <br><ul class="unstyled"><li><a href="../posts/graphserver.html">[2013-07-23 14:48] GraphServer</a>
+            </li><li><a href="../posts/transit-wand.html">[2013-07-15 22:45] Transit Wand</a>
             </li><li><a href="../posts/fare-data.html">[2013-07-13 21:15] Fare Data</a>
             </li><li><a href="../posts/gtfs-editor.html">[2013-07-10 11:30] GTFS Editor</a>
             </li><li><a href="../posts/open-trip-planner.html">[2013-07-09 23:16] Open Trip Planner</a>

+ 6 - 1
output/categories/philippine-transit-app.xml

@@ -1,5 +1,10 @@
 <?xml version="1.0" encoding="utf-8"?>
-<rss version="2.0"><channel><title>Pleasant Programmer (philippine-transit-app)</title><link>http://pleasantprogrammer.com</link><description></description><lastBuildDate>Mon, 15 Jul 2013 23:00:09 GMT</lastBuildDate><generator>nikola</generator><docs>http://blogs.law.harvard.edu/tech/rss</docs><item><title>Transit Wand</title><link>http://pleasantprogrammer.com/posts/transit-wand.html</link><description>&lt;html&gt;&lt;body&gt;&lt;p&gt;Link: &lt;a href="https://play.google.com/store/apps/details?id=com.conveyal.transitwand"&gt;http://transitwand.com&lt;/a&gt;&lt;/p&gt;
+<rss version="2.0"><channel><title>Pleasant Programmer (philippine-transit-app)</title><link>http://pleasantprogrammer.com</link><description></description><lastBuildDate>Tue, 23 Jul 2013 15:34:46 GMT</lastBuildDate><generator>nikola</generator><docs>http://blogs.law.harvard.edu/tech/rss</docs><item><title>GraphServer</title><link>http://pleasantprogrammer.com/posts/graphserver.html</link><description>&lt;html&gt;&lt;body&gt;&lt;p&gt;Link: &lt;a href="http://graphserver.github.io/graphserver/"&gt;http://graphserver.github.io/graphserver/&lt;/a&gt;&lt;/p&gt;
+&lt;p&gt;One other routing webapp I saw was GraphServer. It's actually more of a general purpose Graph library which supports GTFS and OSM data than an actual dedicated routing software like OpenTripPlanner. It's also based off python and C instead of Java, so it feels a lot less heavy.&lt;/p&gt;
+&lt;p&gt;The instructions on the website are already pretty good. There are just some minor errors with it. Where it says &lt;code&gt;gs_gtfsdb_build&lt;/code&gt;, you should actually use &lt;code&gt;gs_gtfsdb_compile&lt;/code&gt;. Also, when running &lt;code&gt;gs_osmdb_compile&lt;/code&gt; you might need to use &lt;code&gt;-t&lt;/code&gt; for tolerant in case you follow the instructions on chopping up the original OSM data.&lt;/p&gt;
+&lt;p&gt;A nice suggestion from the GraphServer instructions was to crop the OSM data to minimize the graph size. This is actually quite helpful if you downloaded the entire Philippine OSM dump. It reduced the original 900MB file to 135MB which was a lot more workable. I did hit a problem with their instructions though. The linked version of osmosis is an old one, which doesn't support 64-bit ids. The &lt;a href="http://wiki.openstreetmap.org/wiki/Osmosis"&gt;latest version of Osmosis&lt;/a&gt; easily did the job though.&lt;/p&gt;
+&lt;p&gt;The actual routing though, was not exactly good. I only tried one route which should normally take 1-2 transfers, it suggested a route which involved 4+ transfers. It also didn't provide any alternate routes aside from that one. I'm not sure if it's a limitation of the provided routeserver, but I didn't bother checking if it supported parameters which might provide better routes.&lt;/p&gt;
+&lt;p&gt;I think graphserver could be useful, but it seems more involved than say OpenTripPlanner. There do seem to be people who use graphserver for their routing apps, but for the bounds of the contest, or just as a side project, it might require too much effort.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</description><guid>http://pleasantprogrammer.com/posts/graphserver.html</guid><pubDate>Tue, 23 Jul 2013 06:48:29 GMT</pubDate></item><item><title>Transit Wand</title><link>http://pleasantprogrammer.com/posts/transit-wand.html</link><description>&lt;html&gt;&lt;body&gt;&lt;p&gt;Link: &lt;a href="https://play.google.com/store/apps/details?id=com.conveyal.transitwand"&gt;http://transitwand.com&lt;/a&gt;&lt;/p&gt;
 &lt;p&gt;Overall, this was the simplest of the &lt;a href="http://philippine-transit.hackathome.com/use-this-code/"&gt;open-source transit tools&lt;/a&gt; to actually get up and running. There's already a deployed instance of the server, and you can easily download the phone app via the &lt;a href="https://play.google.com/store/apps/details?id=com.conveyal.transitwand"&gt;Play Store&lt;/a&gt;. Even running the server by yourself didn't have any of the hiccups I had with GTFS Editor.&lt;/p&gt;
 &lt;p&gt;The phone app is actually quite simple. It allows you to capture a trip, which will record your GPS coordinates as you ride public transit. It also allows you to mark points of the trip where you stop and also how long the stop took. Lastly, it allows you to record embarking and disembarking passengers which is potentially useful for ridership data.&lt;/p&gt;
 &lt;p&gt;After doing a capture session, you can review the data on the phone. It will plot out the route on a map, with markers for the stops. You then either delete the data if it looks wrong, or you can upload it to the Transit Wand server. Uploading involves registering an account, but it's free and you don't even actually need to put in a username or anything. It simply registers the phone's IMEI on the server and gives you a 6-digit identifier.&lt;/p&gt;

+ 2 - 1
output/categories/programming.html

@@ -37,7 +37,8 @@
         <div class="postbox">
         <h1>Posts about programming</h1>
             <a href="programming.xml">RSS</a>
-        <br><ul class="unstyled"><li><a href="../posts/transit-wand.html">[2013-07-15 22:45] Transit Wand</a>
+        <br><ul class="unstyled"><li><a href="../posts/graphserver.html">[2013-07-23 14:48] GraphServer</a>
+            </li><li><a href="../posts/transit-wand.html">[2013-07-15 22:45] Transit Wand</a>
             </li><li><a href="../posts/fare-data.html">[2013-07-13 21:15] Fare Data</a>
             </li><li><a href="../posts/gtfs-editor.html">[2013-07-10 11:30] GTFS Editor</a>
             </li><li><a href="../posts/open-trip-planner.html">[2013-07-09 23:16] Open Trip Planner</a>

+ 6 - 1
output/categories/programming.xml

@@ -1,5 +1,10 @@
 <?xml version="1.0" encoding="utf-8"?>
-<rss version="2.0"><channel><title>Pleasant Programmer (programming)</title><link>http://pleasantprogrammer.com</link><description></description><lastBuildDate>Mon, 15 Jul 2013 23:00:09 GMT</lastBuildDate><generator>nikola</generator><docs>http://blogs.law.harvard.edu/tech/rss</docs><item><title>Transit Wand</title><link>http://pleasantprogrammer.com/posts/transit-wand.html</link><description>&lt;html&gt;&lt;body&gt;&lt;p&gt;Link: &lt;a href="https://play.google.com/store/apps/details?id=com.conveyal.transitwand"&gt;http://transitwand.com&lt;/a&gt;&lt;/p&gt;
+<rss version="2.0"><channel><title>Pleasant Programmer (programming)</title><link>http://pleasantprogrammer.com</link><description></description><lastBuildDate>Tue, 23 Jul 2013 15:34:46 GMT</lastBuildDate><generator>nikola</generator><docs>http://blogs.law.harvard.edu/tech/rss</docs><item><title>GraphServer</title><link>http://pleasantprogrammer.com/posts/graphserver.html</link><description>&lt;html&gt;&lt;body&gt;&lt;p&gt;Link: &lt;a href="http://graphserver.github.io/graphserver/"&gt;http://graphserver.github.io/graphserver/&lt;/a&gt;&lt;/p&gt;
+&lt;p&gt;One other routing webapp I saw was GraphServer. It's actually more of a general purpose Graph library which supports GTFS and OSM data than an actual dedicated routing software like OpenTripPlanner. It's also based off python and C instead of Java, so it feels a lot less heavy.&lt;/p&gt;
+&lt;p&gt;The instructions on the website are already pretty good. There are just some minor errors with it. Where it says &lt;code&gt;gs_gtfsdb_build&lt;/code&gt;, you should actually use &lt;code&gt;gs_gtfsdb_compile&lt;/code&gt;. Also, when running &lt;code&gt;gs_osmdb_compile&lt;/code&gt; you might need to use &lt;code&gt;-t&lt;/code&gt; for tolerant in case you follow the instructions on chopping up the original OSM data.&lt;/p&gt;
+&lt;p&gt;A nice suggestion from the GraphServer instructions was to crop the OSM data to minimize the graph size. This is actually quite helpful if you downloaded the entire Philippine OSM dump. It reduced the original 900MB file to 135MB which was a lot more workable. I did hit a problem with their instructions though. The linked version of osmosis is an old one, which doesn't support 64-bit ids. The &lt;a href="http://wiki.openstreetmap.org/wiki/Osmosis"&gt;latest version of Osmosis&lt;/a&gt; easily did the job though.&lt;/p&gt;
+&lt;p&gt;The actual routing though, was not exactly good. I only tried one route which should normally take 1-2 transfers, it suggested a route which involved 4+ transfers. It also didn't provide any alternate routes aside from that one. I'm not sure if it's a limitation of the provided routeserver, but I didn't bother checking if it supported parameters which might provide better routes.&lt;/p&gt;
+&lt;p&gt;I think graphserver could be useful, but it seems more involved than say OpenTripPlanner. There do seem to be people who use graphserver for their routing apps, but for the bounds of the contest, or just as a side project, it might require too much effort.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</description><guid>http://pleasantprogrammer.com/posts/graphserver.html</guid><pubDate>Tue, 23 Jul 2013 06:48:29 GMT</pubDate></item><item><title>Transit Wand</title><link>http://pleasantprogrammer.com/posts/transit-wand.html</link><description>&lt;html&gt;&lt;body&gt;&lt;p&gt;Link: &lt;a href="https://play.google.com/store/apps/details?id=com.conveyal.transitwand"&gt;http://transitwand.com&lt;/a&gt;&lt;/p&gt;
 &lt;p&gt;Overall, this was the simplest of the &lt;a href="http://philippine-transit.hackathome.com/use-this-code/"&gt;open-source transit tools&lt;/a&gt; to actually get up and running. There's already a deployed instance of the server, and you can easily download the phone app via the &lt;a href="https://play.google.com/store/apps/details?id=com.conveyal.transitwand"&gt;Play Store&lt;/a&gt;. Even running the server by yourself didn't have any of the hiccups I had with GTFS Editor.&lt;/p&gt;
 &lt;p&gt;The phone app is actually quite simple. It allows you to capture a trip, which will record your GPS coordinates as you ride public transit. It also allows you to mark points of the trip where you stop and also how long the stop took. Lastly, it allows you to record embarking and disembarking passengers which is potentially useful for ridership data.&lt;/p&gt;
 &lt;p&gt;After doing a capture session, you can review the data on the phone. It will plot out the route on a map, with markers for the stops. You then either delete the data if it looks wrong, or you can upload it to the Transit Wand server. Uploading involves registering an account, but it's free and you don't even actually need to put in a username or anything. It simply registers the phone's IMEI on the server and gives you a 6-digit identifier.&lt;/p&gt;

+ 15 - 0
output/index.html

@@ -33,6 +33,21 @@
     <div class="span2"></div>
     <div class="span8">
     
+        <div class="postbox">
+        <h1><a href="posts/graphserver.html">GraphServer</a>
+        <small>  
+             Posted: <time class="published" datetime="2013-07-23T14:48:29+08:00">2013-07-23 14:48</time></small></h1>
+        <hr><p>Link: <a href="http://graphserver.github.io/graphserver/">http://graphserver.github.io/graphserver/</a></p>
+<p>One other routing webapp I saw was GraphServer. It's actually more of a general purpose Graph library which supports GTFS and OSM data than an actual dedicated routing software like OpenTripPlanner. It's also based off python and C instead of Java, so it feels a lot less heavy.</p>
+<p>The instructions on the website are already pretty good. There are just some minor errors with it. Where it says <code>gs_gtfsdb_build</code>, you should actually use <code>gs_gtfsdb_compile</code>. Also, when running <code>gs_osmdb_compile</code> you might need to use <code>-t</code> for tolerant in case you follow the instructions on chopping up the original OSM data.</p>
+<p>A nice suggestion from the GraphServer instructions was to crop the OSM data to minimize the graph size. This is actually quite helpful if you downloaded the entire Philippine OSM dump. It reduced the original 900MB file to 135MB which was a lot more workable. I did hit a problem with their instructions though. The linked version of osmosis is an old one, which doesn't support 64-bit ids. The <a href="http://wiki.openstreetmap.org/wiki/Osmosis">latest version of Osmosis</a> easily did the job though.</p>
+<p>The actual routing though, was not exactly good. I only tried one route which should normally take 1-2 transfers, it suggested a route which involved 4+ transfers. It also didn't provide any alternate routes aside from that one. I'm not sure if it's a limitation of the provided routeserver, but I didn't bother checking if it supported parameters which might provide better routes.</p>
+<p>I think graphserver could be useful, but it seems more involved than say OpenTripPlanner. There do seem to be people who use graphserver for their routing apps, but for the bounds of the contest, or just as a side project, it might require too much effort.</p>
+            
+    <p>
+        <a href="posts/graphserver.html#disqus_thread" data-disqus-identifier="cache/posts/graphserver.html">Comments</a>
+
+        </p></div>
         <div class="postbox">
         <h1><a href="posts/transit-wand.html">Transit Wand</a>
         <small>  

+ 94 - 0
output/posts/graphserver.html

@@ -0,0 +1,94 @@
+<!DOCTYPE html><html lang="en"><head><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta charset="utf-8"><meta name="description" content=""><meta name="author" content="Thomas Dy"><title>GraphServer | Pleasant Programmer</title><link href="../assets/css/bootstrap.min.css" rel="stylesheet" type="text/css"><link href="../assets/css/bootstrap-responsive.min.css" rel="stylesheet" type="text/css"><link href="../assets/css/rst.css" rel="stylesheet" type="text/css"><link href="../assets/css/code.css" rel="stylesheet" type="text/css"><link href="../assets/css/colorbox.css" rel="stylesheet" type="text/css"><link href="../assets/css/theme.css" rel="stylesheet" type="text/css"><link href="../assets/css/custom.css" rel="stylesheet" type="text/css"><!--[if lt IE 9]>
+      <script src="http://html5shim.googlecode.com/svn/trunk/html5.js" type="text/javascript"></script>
+    <![endif]--><link rel="alternate" type="application/rss+xml" title="RSS" href="../rss.xml"></head><body>
+<!-- Menubar -->
+<div class="navbar navbar-fixed-top">
+    <div class="navbar-inner">
+        <div class="container">
+
+        <!-- .btn-navbar is used as the toggle for collapsed navbar content -->
+        <a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
+            <span class="icon-bar"></span>
+            <span class="icon-bar"></span>
+            <span class="icon-bar"></span>
+        </a>
+
+            <a class="brand" href="../">
+            Pleasant Programmer
+            </a>
+            <!-- Everything you want hidden at 940px or less, place within here -->
+            <div class="nav-collapse collapse">
+                <ul class="nav"><li><a href="../archive.html">Archives</a>
+            </li><li><a href="../categories/index.html">Tags</a>
+            </li><li><a href="../rss.xml">RSS</a>
+
+                </li></ul><ul class="nav pull-right"><li>
+    <a href="graphserver.md" id="sourcelink">Source</a>
+    </li>
+
+                </ul></div>
+        </div>
+    </div>
+</div>
+<!-- End of Menubar -->
+<div class="container-fluid" id="container-fluid">
+    <!--Body content-->
+    <div class="row-fluid">
+    <div class="span2"></div>
+    <div class="span8">
+    
+    <div class="postbox">
+    
+    <h1>GraphServer</h1>
+
+    <hr><small>
+        Posted: <time class="published" datetime="2013-07-23T14:48:29+08:00">2013-07-23 14:48</time>
+        
+
+        
+          |  More posts about
+            <a class="tag" href="../categories/philippine-transit-app.html"><span class="badge badge-info">philippine-transit-app</span></a>
+            <a class="tag" href="../categories/programming.html"><span class="badge badge-info">programming</span></a>
+
+    </small>
+    <hr><p>Link: <a href="http://graphserver.github.io/graphserver/">http://graphserver.github.io/graphserver/</a></p>
+<p>One other routing webapp I saw was GraphServer. It's actually more of a general purpose Graph library which supports GTFS and OSM data than an actual dedicated routing software like OpenTripPlanner. It's also based off python and C instead of Java, so it feels a lot less heavy.</p>
+<p>The instructions on the website are already pretty good. There are just some minor errors with it. Where it says <code>gs_gtfsdb_build</code>, you should actually use <code>gs_gtfsdb_compile</code>. Also, when running <code>gs_osmdb_compile</code> you might need to use <code>-t</code> for tolerant in case you follow the instructions on chopping up the original OSM data.</p>
+<p>A nice suggestion from the GraphServer instructions was to crop the OSM data to minimize the graph size. This is actually quite helpful if you downloaded the entire Philippine OSM dump. It reduced the original 900MB file to 135MB which was a lot more workable. I did hit a problem with their instructions though. The linked version of osmosis is an old one, which doesn't support 64-bit ids. The <a href="http://wiki.openstreetmap.org/wiki/Osmosis">latest version of Osmosis</a> easily did the job though.</p>
+<p>The actual routing though, was not exactly good. I only tried one route which should normally take 1-2 transfers, it suggested a route which involved 4+ transfers. It also didn't provide any alternate routes aside from that one. I'm not sure if it's a limitation of the provided routeserver, but I didn't bother checking if it supported parameters which might provide better routes.</p>
+<p>I think graphserver could be useful, but it seems more involved than say OpenTripPlanner. There do seem to be people who use graphserver for their routing apps, but for the bounds of the contest, or just as a side project, it might require too much effort.</p>
+    
+    <ul class="pager"><li class="previous">
+            <a href="transit-wand.html">← Previous post</a>
+        </li>
+    </ul><div id="disqus_thread"></div>
+        <script type="text/javascript">
+        var disqus_shortname ="pleasantprog";
+            var disqus_url="http://pleasantprogrammer.com/posts/graphserver.html";
+        var disqus_title="GraphServer";
+        var disqus_identifier="cache/posts/graphserver.html";
+        var disqus_config = function () {
+            this.language = "en";
+        };
+        (function() {
+            var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true;
+            dsq.src = 'http://' + disqus_shortname + '.disqus.com/embed.js';
+            (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
+        })();
+    </script><noscript>Please enable JavaScript to view the <a href="http://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript>
+
+    
+
+    </div>
+
+    </div>
+    </div>
+    <!--End of body content-->
+</div>
+<div class="footerbox">
+    <a rel="license" href="http://creativecommons.org/licenses/by-sa/3.0/deed.en_US"><img alt="Creative Commons License" style="border-width:0" src="http://i.creativecommons.org/l/by-sa/3.0/80x15.png"></a> © 2013 Thomas Dy - Powered by <a href="http://nikola.ralsina.com.ar">Nikola</a>
+</div>
+
+
+
+            <script src="../assets/js/jquery-1.7.2.min.js" type="text/javascript"></script><script src="../assets/js/bootstrap.min.js" type="text/javascript"></script><script src="../assets/js/jquery.colorbox-min.js" type="text/javascript"></script><script type="text/javascript">jQuery("a.image-reference").colorbox({rel:"gal",maxWidth:"80%",maxHeight:"80%",scalePhotos:true});</script></body></html>

+ 20 - 0
output/posts/graphserver.md

@@ -0,0 +1,20 @@
+<!-- 
+.. link: 
+.. description: 
+.. tags: philippine-transit-app, programming
+.. date: 2013/07/23 14:48:29
+.. title: GraphServer
+.. slug: graphserver
+-->
+
+Link: [http://graphserver.github.io/graphserver/](http://graphserver.github.io/graphserver/)
+
+One other routing webapp I saw was GraphServer. It's actually more of a general purpose Graph library which supports GTFS and OSM data than an actual dedicated routing software like OpenTripPlanner. It's also based off python and C instead of Java, so it feels a lot less heavy.
+
+The instructions on the website are already pretty good. There are just some minor errors with it. Where it says `gs_gtfsdb_build`, you should actually use `gs_gtfsdb_compile`. Also, when running `gs_osmdb_compile` you might need to use `-t` for tolerant in case you follow the instructions on chopping up the original OSM data.
+
+A nice suggestion from the GraphServer instructions was to crop the OSM data to minimize the graph size. This is actually quite helpful if you downloaded the entire Philippine OSM dump. It reduced the original 900MB file to 135MB which was a lot more workable. I did hit a problem with their instructions though. The linked version of osmosis is an old one, which doesn't support 64-bit ids. The [latest version of Osmosis](http://wiki.openstreetmap.org/wiki/Osmosis) easily did the job though.
+
+The actual routing though, was not exactly good. I only tried one route which should normally take 1-2 transfers, it suggested a route which involved 4+ transfers. It also didn't provide any alternate routes aside from that one. I'm not sure if it's a limitation of the provided routeserver, but I didn't bother checking if it supported parameters which might provide better routes.
+
+I think graphserver could be useful, but it seems more involved than say OpenTripPlanner. There do seem to be people who use graphserver for their routing apps, but for the bounds of the contest, or just as a side project, it might require too much effort.

+ 3 - 0
output/posts/transit-wand.html

@@ -65,6 +65,9 @@
     <ul class="pager"><li class="previous">
             <a href="fare-data.html">← Previous post</a>
         </li>
+        <li class="next">
+            <a href="graphserver.html">Next post →</a>
+        </li>
     </ul><div id="disqus_thread"></div>
         <script type="text/javascript">
         var disqus_shortname ="pleasantprog";

+ 6 - 1
output/rss.xml

@@ -1,5 +1,10 @@
 <?xml version="1.0" encoding="utf-8"?>
-<rss version="2.0"><channel><title>Pleasant Programmer</title><link>http://pleasantprogrammer.com</link><description></description><lastBuildDate>Mon, 15 Jul 2013 23:00:09 GMT</lastBuildDate><generator>nikola</generator><docs>http://blogs.law.harvard.edu/tech/rss</docs><item><title>Transit Wand</title><link>http://pleasantprogrammer.com/posts/transit-wand.html</link><description>&lt;html&gt;&lt;body&gt;&lt;p&gt;Link: &lt;a href="https://play.google.com/store/apps/details?id=com.conveyal.transitwand"&gt;http://transitwand.com&lt;/a&gt;&lt;/p&gt;
+<rss version="2.0"><channel><title>Pleasant Programmer</title><link>http://pleasantprogrammer.com</link><description></description><lastBuildDate>Tue, 23 Jul 2013 15:34:46 GMT</lastBuildDate><generator>nikola</generator><docs>http://blogs.law.harvard.edu/tech/rss</docs><item><title>GraphServer</title><link>http://pleasantprogrammer.com/posts/graphserver.html</link><description>&lt;html&gt;&lt;body&gt;&lt;p&gt;Link: &lt;a href="http://graphserver.github.io/graphserver/"&gt;http://graphserver.github.io/graphserver/&lt;/a&gt;&lt;/p&gt;
+&lt;p&gt;One other routing webapp I saw was GraphServer. It's actually more of a general purpose Graph library which supports GTFS and OSM data than an actual dedicated routing software like OpenTripPlanner. It's also based off python and C instead of Java, so it feels a lot less heavy.&lt;/p&gt;
+&lt;p&gt;The instructions on the website are already pretty good. There are just some minor errors with it. Where it says &lt;code&gt;gs_gtfsdb_build&lt;/code&gt;, you should actually use &lt;code&gt;gs_gtfsdb_compile&lt;/code&gt;. Also, when running &lt;code&gt;gs_osmdb_compile&lt;/code&gt; you might need to use &lt;code&gt;-t&lt;/code&gt; for tolerant in case you follow the instructions on chopping up the original OSM data.&lt;/p&gt;
+&lt;p&gt;A nice suggestion from the GraphServer instructions was to crop the OSM data to minimize the graph size. This is actually quite helpful if you downloaded the entire Philippine OSM dump. It reduced the original 900MB file to 135MB which was a lot more workable. I did hit a problem with their instructions though. The linked version of osmosis is an old one, which doesn't support 64-bit ids. The &lt;a href="http://wiki.openstreetmap.org/wiki/Osmosis"&gt;latest version of Osmosis&lt;/a&gt; easily did the job though.&lt;/p&gt;
+&lt;p&gt;The actual routing though, was not exactly good. I only tried one route which should normally take 1-2 transfers, it suggested a route which involved 4+ transfers. It also didn't provide any alternate routes aside from that one. I'm not sure if it's a limitation of the provided routeserver, but I didn't bother checking if it supported parameters which might provide better routes.&lt;/p&gt;
+&lt;p&gt;I think graphserver could be useful, but it seems more involved than say OpenTripPlanner. There do seem to be people who use graphserver for their routing apps, but for the bounds of the contest, or just as a side project, it might require too much effort.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</description><guid>http://pleasantprogrammer.com/posts/graphserver.html</guid><pubDate>Tue, 23 Jul 2013 06:48:29 GMT</pubDate></item><item><title>Transit Wand</title><link>http://pleasantprogrammer.com/posts/transit-wand.html</link><description>&lt;html&gt;&lt;body&gt;&lt;p&gt;Link: &lt;a href="https://play.google.com/store/apps/details?id=com.conveyal.transitwand"&gt;http://transitwand.com&lt;/a&gt;&lt;/p&gt;
 &lt;p&gt;Overall, this was the simplest of the &lt;a href="http://philippine-transit.hackathome.com/use-this-code/"&gt;open-source transit tools&lt;/a&gt; to actually get up and running. There's already a deployed instance of the server, and you can easily download the phone app via the &lt;a href="https://play.google.com/store/apps/details?id=com.conveyal.transitwand"&gt;Play Store&lt;/a&gt;. Even running the server by yourself didn't have any of the hiccups I had with GTFS Editor.&lt;/p&gt;
 &lt;p&gt;The phone app is actually quite simple. It allows you to capture a trip, which will record your GPS coordinates as you ride public transit. It also allows you to mark points of the trip where you stop and also how long the stop took. Lastly, it allows you to record embarking and disembarking passengers which is potentially useful for ridership data.&lt;/p&gt;
 &lt;p&gt;After doing a capture session, you can review the data on the phone. It will plot out the route on a map, with markers for the stops. You then either delete the data if it looks wrong, or you can upload it to the Transit Wand server. Uploading involves registering an account, but it's free and you don't even actually need to put in a username or anything. It simply registers the phone's IMEI on the server and gives you a 6-digit identifier.&lt;/p&gt;

+ 23 - 23
output/sitemap.xml

@@ -6,117 +6,117 @@
                         http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd">
  <url>
   <loc>http://pleasantprogrammer.com</loc>
-  <lastmod>2013-07-14</lastmod>
+  <lastmod>2013-07-23</lastmod>
   <priority>0.5000</priority>
  </url>
  <url>
   <loc>http://pleasantprogrammer.com/2013/</loc>
-  <lastmod>2013-07-14</lastmod>
+  <lastmod>2013-07-23</lastmod>
   <priority>0.5000</priority>
  </url>
  <url>
   <loc>http://pleasantprogrammer.com/2013/index.html</loc>
-  <lastmod>2013-07-14</lastmod>
+  <lastmod>2013-07-23</lastmod>
   <priority>0.5000</priority>
  </url>
  <url>
   <loc>http://pleasantprogrammer.com/archive.html</loc>
-  <lastmod>2013-07-14</lastmod>
+  <lastmod>2013-07-23</lastmod>
   <priority>0.5000</priority>
  </url>
  <url>
   <loc>http://pleasantprogrammer.com/assets/</loc>
-  <lastmod>2013-07-14</lastmod>
+  <lastmod>2013-07-23</lastmod>
   <priority>0.5000</priority>
  </url>
  <url>
   <loc>http://pleasantprogrammer.com/assets/css/</loc>
-  <lastmod>2013-07-14</lastmod>
+  <lastmod>2013-07-23</lastmod>
   <priority>0.5000</priority>
  </url>
  <url>
   <loc>http://pleasantprogrammer.com/assets/css/images/</loc>
-  <lastmod>2013-07-14</lastmod>
+  <lastmod>2013-07-23</lastmod>
   <priority>0.5000</priority>
  </url>
  <url>
   <loc>http://pleasantprogrammer.com/assets/css/images/ie6/</loc>
-  <lastmod>2013-07-14</lastmod>
+  <lastmod>2013-07-23</lastmod>
   <priority>0.5000</priority>
  </url>
  <url>
   <loc>http://pleasantprogrammer.com/assets/img/</loc>
-  <lastmod>2013-07-14</lastmod>
+  <lastmod>2013-07-23</lastmod>
   <priority>0.5000</priority>
  </url>
  <url>
   <loc>http://pleasantprogrammer.com/assets/js/</loc>
-  <lastmod>2013-07-14</lastmod>
+  <lastmod>2013-07-23</lastmod>
   <priority>0.5000</priority>
  </url>
  <url>
   <loc>http://pleasantprogrammer.com/categories/</loc>
-  <lastmod>2013-07-14</lastmod>
+  <lastmod>2013-07-23</lastmod>
   <priority>0.5000</priority>
  </url>
  <url>
   <loc>http://pleasantprogrammer.com/categories/index.html</loc>
-  <lastmod>2013-07-14</lastmod>
+  <lastmod>2013-07-23</lastmod>
   <priority>0.5000</priority>
  </url>
  <url>
   <loc>http://pleasantprogrammer.com/categories/lets-debug.html</loc>
-  <lastmod>2013-07-14</lastmod>
+  <lastmod>2013-07-23</lastmod>
   <priority>0.5000</priority>
  </url>
  <url>
   <loc>http://pleasantprogrammer.com/categories/philippine-transit-app.html</loc>
-  <lastmod>2013-07-14</lastmod>
+  <lastmod>2013-07-23</lastmod>
   <priority>0.5000</priority>
  </url>
  <url>
   <loc>http://pleasantprogrammer.com/categories/programming.html</loc>
-  <lastmod>2013-07-14</lastmod>
+  <lastmod>2013-07-23</lastmod>
   <priority>0.5000</priority>
  </url>
  <url>
   <loc>http://pleasantprogrammer.com/galleries/</loc>
-  <lastmod>2013-07-14</lastmod>
+  <lastmod>2013-07-23</lastmod>
   <priority>0.5000</priority>
  </url>
  <url>
   <loc>http://pleasantprogrammer.com/galleries/index.html</loc>
-  <lastmod>2013-07-14</lastmod>
+  <lastmod>2013-07-23</lastmod>
   <priority>0.5000</priority>
  </url>
  <url>
   <loc>http://pleasantprogrammer.com/galleries/transit/</loc>
-  <lastmod>2013-07-14</lastmod>
+  <lastmod>2013-07-23</lastmod>
   <priority>0.5000</priority>
  </url>
  <url>
   <loc>http://pleasantprogrammer.com/galleries/transit/index.html</loc>
-  <lastmod>2013-07-14</lastmod>
+  <lastmod>2013-07-23</lastmod>
   <priority>0.5000</priority>
  </url>
  <url>
   <loc>http://pleasantprogrammer.com/listings/</loc>
-  <lastmod>2013-07-14</lastmod>
+  <lastmod>2013-07-23</lastmod>
   <priority>0.5000</priority>
  </url>
  <url>
   <loc>http://pleasantprogrammer.com/listings/index.html</loc>
-  <lastmod>2013-07-14</lastmod>
+  <lastmod>2013-07-23</lastmod>
   <priority>0.5000</priority>
  </url>
  <url>
   <loc>http://pleasantprogrammer.com/posts/</loc>
-  <lastmod>2013-07-14</lastmod>
+  <lastmod>2013-07-23</lastmod>
   <priority>0.5000</priority>
  </url>
  <url>
   <loc>http://pleasantprogrammer.com/uploads/</loc>
-  <lastmod>2013-07-14</lastmod>
+  <lastmod>2013-07-23</lastmod>
   <priority>0.5000</priority>
  </url>
 </urlset>

+ 20 - 0
posts/graphserver.md

@@ -0,0 +1,20 @@
+<!-- 
+.. link: 
+.. description: 
+.. tags: philippine-transit-app, programming
+.. date: 2013/07/23 14:48:29
+.. title: GraphServer
+.. slug: graphserver
+-->
+
+Link: [http://graphserver.github.io/graphserver/](http://graphserver.github.io/graphserver/)
+
+One other routing webapp I saw was GraphServer. It's actually more of a general purpose Graph library which supports GTFS and OSM data than an actual dedicated routing software like OpenTripPlanner. It's also based off python and C instead of Java, so it feels a lot less heavy.
+
+The instructions on the website are already pretty good. There are just some minor errors with it. Where it says `gs_gtfsdb_build`, you should actually use `gs_gtfsdb_compile`. Also, when running `gs_osmdb_compile` you might need to use `-t` for tolerant in case you follow the instructions on chopping up the original OSM data.
+
+A nice suggestion from the GraphServer instructions was to crop the OSM data to minimize the graph size. This is actually quite helpful if you downloaded the entire Philippine OSM dump. It reduced the original 900MB file to 135MB which was a lot more workable. I did hit a problem with their instructions though. The linked version of osmosis is an old one, which doesn't support 64-bit ids. The [latest version of Osmosis](http://wiki.openstreetmap.org/wiki/Osmosis) easily did the job though.
+
+The actual routing though, was not exactly good. I only tried one route which should normally take 1-2 transfers, it suggested a route which involved 4+ transfers. It also didn't provide any alternate routes aside from that one. I'm not sure if it's a limitation of the provided routeserver, but I didn't bother checking if it supported parameters which might provide better routes.
+
+I think graphserver could be useful, but it seems more involved than say OpenTripPlanner. There do seem to be people who use graphserver for their routing apps, but for the bounds of the contest, or just as a side project, it might require too much effort.