Member project spotlight: Gorma by Ted Price
Each month, members of The Great Code Club are taught the basics concepts about an entirely new field via screencasts and given a demo project to complete and inspire them.
One of the many projects of the club teaches the basics of building a database. Mainly how indexes are used in MySQL, Postgres, Mongo, Redis and friends.
Ted Price, a Ruby developer and member of the club, is on fire! He recently started working on his own datastore in Go: Gorma. Previously, following another project from the club, he created a Virtual Machine, also in Go.
He told me:
I get giddy waiting for the next project on the Great Code Club. This has been one of the most fun and exciting parts of my programming life.
I asked him a few questions about his latest project and his experience with the club.
What is Gorma and how will it be different from other datastores?
What I envision – Gorma is still in its infancy – is a lightweight in-memory store, with fast search via indexing, that has the option of persistence given a set of triggers (number of keys, elapsed time, etc). I am use a number of stores on a daily basis – postgresql, redis, mongo – and I would like to see what happens when I whittle a data store down to its essence, and allow it to remain in process.
What inspired you to create Gorma?
I watched the [club] videos and wanted to try my hand at creating a B-Tree based indexes in Go. As a rubyist, for several years, I have enjoyed playing with all types of datastores from those mentioned above to LevelDB, Sqlite, and Daybreak. I started a company with a friend and we needed performance and redundancy in that order. I found myself, for better or worse, heavily relying on Ruby’s in-memory hash. Daybreak takes this hash-primitive-as-a-datastore to a reasonable level. You smash Daybreak with fast searching via indexing then write it in Go…well, I think you have a match made in heaven.
What would you say to someone who wants to start a side-project but doesn’t know where to start or stay motivated?
Just start! Find a group of friends or colleagues who you can hang with and hack together and keep yourselves driven. Meetups are great for this. One can tell by the commit logs that Gorma is progressing slowly, as I have some of my other side projects jockeying for priority. That’s alright. Life happens. Stick with your projects! Have fun! And if you get stuck, ask for help. If you are in the Chicagoland area, you can find me on the githubs or at the ChicaGoLang meetup, I will be glad to hack with anyone.
Did the Great Code Club help you with your project? How?
The club has been an invaluable piece of my lateral learning and development process. From game development to grammars, parsing, and beyond, GCC has discussed topics that I may have been interested in at one point in time, but simply never had the time to dig into. The club’s videos, and pace, make it a breeze to follow and learn, whatever your skill level. It gives us, voracious coders, enough knowledge to get starting, but leaves the landscape, of where to take each project, completely open. I am always happy to see new projects, like this months “Building a Front-end Web Framework,” in my mailbox. I only wish I had more time to develop!
Thanks to Ted for his awesome projects and for inspiring everyone in the club!