Fun With Public Transport Data

I am a transport nerd, and a map nerd, as evidenced by all the previous hackathons I seem to do involving maps.

Thus, when I discovered that Sydney’s public transport system data is available to download, it seemed only logical that I should involve a map somewhere.  The result is a map to show you where you can live if you want to be within “x” minutes of the city by train. I defined the city to be any of the following stations: Central, Circular Quay, Martin Place, Museum, St James, Town Hall, Wynyard.

transport-maps

There are some unexpected results, because the trains don’t stop at all stations for every journey.

For example:

  • The central corridor supported by T2 inner west line and T1 western line has the best density of minimum times across all stations.
  • Getting to the city from Sutherland or Campbelltown is faster than getting to the city from Hornsby or Pennant Hills.
  • Bondi Junction is a measly 7 minutes away!
  • The fastest train to Glenfield is 14 minutes faster than to its neighbouring station, Macquarie Fields.
  • Eastwood station is just 21 minutes to the city, faster than 3 stations on either side of it.
  • Burwood, Ashfield and Petersham – all on the same line – have almost the same minimum travel time at 10 or 11 minutes.

You can explore the map yourself at http://daphnechong.github.io/transport-maps/.  I’d like to do a lot more on it, such as adding the bus and ferry timetables and identifying the individual lines, but it’s a work in progress. If you have any ideas, I’d love to hear them!

Creating a Music Matrix with the Web Audio API

Last week I stumbled on this Tone Matrix, which uses the Web Audio API to generate and play sounds. I got really interested in the mechanics of sound generation and wondered how they did it, but unfortunately, there’s no source… so I decided to learn more about the Web Audio API, and recreate the matrix as an exercise. The source is available on github.

I’ll be running a tutorial for Women Who Code Sydney in July on how this works, and plan to cover some different filters and effects you can run sound through to get more interesting results (the matrix in its current state is pretty basic). There is more mathematics than I had bargained for, but producing a basic sound doesn’t really require a lot of code.

You’ll need to have a fairly recent version of your browser to play with the demo.

Screen Shot 2014-06-18 at 8.14.51 pm

Things I learned:

  • You can use existing sound sources (existing files, microphone) but also generate a sound wave with an Oscillator.
  • It’s a pipeline. Only one thing should output to your speakers.
  • Each audio buffer note can only be played once. You need to recreate each new note to play.
  • Sometimes there are loud ‘click’ noises as you abruptly change the notes through the speakers. You need to cater for this with some filters, or gain (aka volume control).
  • The API has been in development/experimental phase for quite a while and there’s not a lot of comprehensive documentation available. Most of the learning came from code samples.

Some interesting reading:

On Starting Up

I’ve been working on my own project recently, a tourism related startup called Vine Trails. Its aim is to help people understand and navigate Australia’s wine regions based on wines they already like.

I’m really enjoying it so far, and feel like I’ve learned an enormous amount in the last six weeks. I love seeing what’s fun, what’s difficult, and what kind of tasks I enjoy doing.  It’s been an intense, energetic, self-driven and rewarding experience so far, with some occasional bouts of confusion, doubt and contradiction. Learning to manage the emotions around ups and downs is high on my priority list, but discovering that I am a good analytical business thinker is nice.

Hacking to Learn

I’ve learned that a lot of the early stages in a startup are basically hacking things together to learn something about your customer, or your market. It’s known as the “wizard of oz“. As a developer, I really, really, really dislike hacking things if I know I’m going to have to repeat it multiple times, so I found this stage of learning pretty challenging, even though I ultimately found what would/wouldn’t be viable in this process.

Shaving those Seventeen Yaks

I’ve also learned that startups are about balancing learning with action.  It feels like you need to explore seventeen different avenues at the same time, but how do you prioritise them all when you’re just one person? You want to know how big the market is, what’s the likelihood of conversion, what business model would succeed, where you can get the data from, who’s currently a competitor, how is your idea different, what problem are you trying to solve, how do you make it look good cheaply, and ultimately does the customer really want it?

Coding – Not Really That Critical

My biggest surprise is that most of my six weeks has been spent on research/thinking/analysis/adminstration, with only about 20% on code. Here is a sample of technologies or tasks I’ve worked on recently:

Code:

  • Twitter bootstrap
  • jQuery
  • AngularJS
  • Font Awesome
  • Node
  • Neo4j
  • Google Maps technologies

Non-code:

  • Hosting research – Heroku, Amazon, GrapheneDB, Bitbucket
  • Trying to work out a name (this is torture, since most of the internet is parked-up)
  • Reveal.js presentation framework
  • Domain name providers
  • Online wireframing – mockingbird
  • Design and colour schemes – kuler
  • Researching free HTML5 themes
  • Image providers / creative commons implications
  • Cost of freelancing for certain tasks – data entry, design
  • Researching wine regions
  • Writing up itineraries in wine regions (the “wizard of oz“)
  • Co-working spaces and trialling them
  • Building a lean canvas
  • Learning about startup accelerators
  • Looking at business cards
  • Researching statistics on wine tourism
  • Putting together a pitch
  • Going to networking/tech events – How to start up in Sydney, Women Pitch, SheHacks, SydJS, Women Who Code
  • Trying out Google AdWords
  • Researching potential revenue models
  • Registered GoogleApps for business account
  • Working out product/market fit for product iterations
  • Creating a mailing list organisation on Mailchimp
  • Google Analytics
  • Built & customised landing page
  • Investigating grants
  • Data entry
  • Checking out potential new meetups or events that are worth going to

Exploring the startup scene

I’ve enjoyed going to some of the entrepreneurial meetups, co-working spaces and courses around Sydney (at FishburnersGeneral AssemblyTank Stream Labs) to name a few. Taking the time out of your product development to explore the ecosystem is really important, to get exposed to new ideas and meet new people.  I’d even say that not doing this will lessen your chances of success dramatically.

Learning to Delegate, and Learning to Pay

Actually paying for something made me realise there was a lot of value in delegation. I’d rather spend the money on this service to solve my problem instead of trying to do it myself, or trying to shoehorn a free version into what I wanted to do.  There are loads of service providers that will help you bootstrap your idea, for example mailchimp for a free mailing list. It’s just a matter of researching what’s there for free, or deciding you are happy to pay for something that’s well-known that will save you time.

Keeping a Diary

I’ve started keeping a diary, just a sentence or two covering what I did that day, and how I felt.  It really helps to show me what I achieved in the last day/week/month. It’s nice to read over when you’ve had a crappy day.

The Non-Traditional Path

I’ve reached a point where I feel comfortable calling it a “startup”, but a lot of other people were calling it that before I was able to. I felt that there was a certain level of maturity needed to warrant the label “startup”, compared to a hobby you work on in your spare time. There’s also a lot of expectation from other people when you start calling it a “startup” (dealing with comments like “fantastic, tell me when I can buy shares!”)

While I don’t happen to be traditionally employed at the moment, in my mind I actually have a job, and I keep hours that make it feel like I have a job (though I am frequently thinking/researching at night or on weekends too). I appreciate my weekends much more when working on a startup idea. It definitely doesn’t feel like I’ve been on a weekly treadmill that will repeat exactly the same for the next 6 months.

Trying the startup life has freed me up to really think about what I like and want to do. I look at the few months I’ve had off as a chance to learn things I wouldn’t have otherwise, and they’re great. No matter what happens with Vine Trails, I’ve learned a ton.