

Show HN: I wrote a very niche ebook about GTFS public transit data - qzervaas
http://gtfsbook.com

======
dougmccune
Congrats on getting it out there! My only quick feedback is that 80 pages
split into 20 chapters feels off to me. A 4 page "chapter" is something more
akin to a "section" or some other unit. The sample PDF has the first two
chapters, each of which are basically a page each (plus a large image). I'd
recommend redefining your definition of "chapter" and restructuring into
fewer/longer chapters. As it is it doesn't feel like there's actually much
meat there, particularly for a $30 PDF.

As I think about it more, a simple restructuring might not be enough for that
kind of price. $30 is more than the retail price for a lot of 300+ page
technical books (years ago I wrote a 400 page book with a print version that
retailed for $30).

~~~
qzervaas
Thanks for the feedback - this had crossed my mind also, but I ultimately
called them chapters as they are logical places to split the content.

As far as the pricing goes, my rationale was to price based on the value it
can provide and then take into account how niche the topic.

Some of the content in there took me many many hours to figure out for myself
(so thousands of dollars at an hourly rate).

Offset this with (in my opinion) a fairly small pool of potential buyers, this
seemed about the break-even point on the project.

On a side note, you can get $5 using the offer code 'metro'

~~~
bambax
> _On a side note, you can get $5 using the offer code 'metro'_

Damn, I read this after I'd already bought the book!! ;-)

~~~
qzervaas
Thanks for buying! Sorry about that, but I'm unable to issue a partial refund
unfortunately

~~~
bambax
Yeah, no problem ;-)

------
prawn
For anyone else also unaware, GTFS is General Transit Feed Specification -

"The General Transit Feed Specification (GTFS) defines a common format for
public transportation schedules and associated geographic information. GTFS
"feeds" allow public transit agencies to publish their transit data and
developers to write applications that consume that data in an interoperable
way."

[https://developers.google.com/transit/gtfs/](https://developers.google.com/transit/gtfs/)

------
bambax
Wow. I'm building an app for route planning / public transport in France, the
first version of which was in full-JS and won a competition from RATP:

[http://data.ratp.fr/fr/actualites/article/finale-de-
lopendat...](http://data.ratp.fr/fr/actualites/article/finale-de-lopendatalab-
la-ratp-recompense-2-ap.html)

We have now moved the route-planning part to a server in C++ but we want to
move it back to the client using something like Xamarin/C#. Any thougths on
this?

Will definitely buy the book! (No Paypal, though?)

~~~
qzervaas
Sounds awesome if you can get a trip planner working in JS! The usual go-to is
OTP ([http://www.opentripplanner.org/](http://www.opentripplanner.org/)), but
you should also check the relatively new RRRR. More info here:
[https://github.com/bliksemlabs/rrrr](https://github.com/bliksemlabs/rrrr)

As for my book, I'm selling through Gumroad, which I believe only allows
credit card payments.

~~~
bambax
> _Sounds awesome if you can get a trip planner working in JS_

It was really a horrible hack that took into account only lines and stops (no
trip times, transfer times, schedule, etc.) but as a simple visual app, and in
the context of a hackathon, it worked.

It was even featured as "Google Map of the week" on the Google Geo blog before
it was even showed to RATP

[http://googlegeodevelopers.blogspot.fr/2013/08/interactive-m...](http://googlegeodevelopers.blogspot.fr/2013/08/interactive-
map-of-paris-metro.html)

But now we need to "muscle up" the routing part and so are leaving JS
completely (however if the data can be reduced significantly it would be
interesting to go back to it someday).

OTP is much too big to ever migrate on a mobile device; will definitely check
out rrrr; what do you use yourself?

~~~
qzervaas
I play around a lot with OTP. I'm really interested in rrrr. I'd really like
to code something super-easy to configure and run in Go though

------
jmnicolas
I did an internship in a bus company several years ago and we finally
abandoned the idea of GTFS because they (Google) were so uptight about the
correctness of the data.

We had a few trips that were non consistent (the average speed was something
like 150 km/h - 93 mp/h) that we couldn't do anything about and they refused
to integrate those data.

Several bus stops were also too close (they were apart of a narrow street) and
were generating warnings every time.

I wish I had this book back then.

~~~
qzervaas
Interesting, I've heard similar stories of agencies having trouble with Google
Transit compatibility. Aside from the edge cases, it is a very robust
specification that is able to handle a majority of situations.

Side note: my book is about consumption of GTFS feeds rather than generation
of them

------
albumedia
This is great...wish I had it a year ago when I started working with GTFS. My
latest project at [http://yrtbustracker.com](http://yrtbustracker.com)
(Canada)

~~~
qzervaas
Thanks! Looks good, have you thought about overlaying the shapes when you
select a bus?

~~~
albumedia
Thanks...I'll consider adding it in the future.

------
bdferris
As someone who does nothing but hack GTFS all day, your book brought a smile
to my face :) Amazing how far GTFS has come.

~~~
qzervaas
Glad to hear! I know how you feel, seems like all I do is look at GTFS feeds.

------
jbrooksuk
I wonder when they'll release their flight data. I'm very interested in this
as my work for a travel company has recently included building dynamic
packages. Having flight availability on the scale that Google has would be of
most use to us!

------
ekpyrotic
Well done qzervaas! Please keep us updated on your success. I would be very
interested to hear how many copies of this book you managed to sold - and your
margins. I wonder whether writing in such a niche is profitable.

~~~
qzervaas
This post on HN generated about 2,700 views on the product page, and low
double-digit sales.

Sales have so far covered my direct expenses (domain registration, cover
design, copy editing), although I kept these costs as low as possible.

Profit margin can only be determined by the value I put on my time. It will
take a little while to cover this but the GTFS spec isn't going anywhere so
I'm confident this book will be relevant for quite some time.

------
fogleman
What differentiates your book from the reference?

[https://developers.google.com/transit/gtfs/reference](https://developers.google.com/transit/gtfs/reference)

~~~
qzervaas
Thanks for asking: it does include the GTFS, but then provides additional
discussion over aspects that are not necessarily clear or potentially
confusing for newcomers.

It also covers the fact that many agencies interpret the spec differently and
explains things to look out for.

The final half of the book shows how to optimize the data from a feed so it
will perform more efficiently in an SQL database (for instance, showing how to
reduce the number of points in a shape)

------
rmc
I like how you've included an index in the sample chapter. It shows what else
is in the book. How did you generate that? What tools did you use to write the
book?

~~~
qzervaas
Thanks for asking - I wrote the book using LibreOffice and used the Table of
Contents, Indexing, and cross-referencing functionality.

In actual fact: \- I wrote the first half of the page in Apple pages \- I
couldn't cross-reference so I moved to Word for Mac \- This worked well, but I
couldn't export the PDF with internal links \- I converted to LibreOffice \-
This exported with external links

To create the sample, I then opened in Preview, deleted all the internal
pages, dragged in the "call to action" page, then saved.

LibreOffice worked well for the most part, although there were a few little
funky things that didn't work how I wanted them to (e.g. justified text puts
extra spacing between letters as well as words. Also, indexing a word
sometimes makes the alignment go all screwy, for some unknown reason)

------
zzleeper
Although it's not my niche, it looks quite interesting and the sample chapter
is very clear. Congrats!

------
spathon
This is perfect now when I just started importing timetables to SQL :) Will
give the book a try

~~~
qzervaas
Glad to hear - hope you find it useful!

