top | item 7216034

Show HN: I wrote a very niche ebook about GTFS public transit data

50 points| qzervaas | 12 years ago |gtfsbook.com | reply

31 comments

order
[+] dougmccune|12 years ago|reply
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|12 years ago|reply
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'

[+] prawn|12 years ago|reply
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/

[+] bambax|12 years ago|reply
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...

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?)

[+] spathon|12 years ago|reply
Cool, is it the general bus system in frans including the small local buses? I just started a creating a small app for the local bus in town built with NodeJS and AngularJS.
[+] jmnicolas|12 years ago|reply
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|12 years ago|reply
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|12 years ago|reply
This is great...wish I had it a year ago when I started working with GTFS. My latest project at http://yrtbustracker.com (Canada)
[+] qzervaas|12 years ago|reply
Thanks! Looks good, have you thought about overlaying the shapes when you select a bus?
[+] bdferris|12 years ago|reply
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|12 years ago|reply
Glad to hear! I know how you feel, seems like all I do is look at GTFS feeds.
[+] jbrooksuk|12 years ago|reply
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|12 years ago|reply
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|12 years ago|reply
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|12 years ago|reply
What differentiates your book from the reference?

https://developers.google.com/transit/gtfs/reference

[+] qzervaas|12 years ago|reply
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|12 years ago|reply
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|12 years ago|reply
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|12 years ago|reply
Although it's not my niche, it looks quite interesting and the sample chapter is very clear. Congrats!
[+] spathon|12 years ago|reply
This is perfect now when I just started importing timetables to SQL :) Will give the book a try
[+] qzervaas|12 years ago|reply
Glad to hear - hope you find it useful!