Greg Brown is one of our MVBs here at DZone. He regularly writes about his open source projects, HTTP-RPC and MarkupKit, so I thought I'd catch up and find out more about the projects and how he balances a day job with side projects.
DZone: Hey Greg, what's your work background?
Greg: I'm currently an iOS developer at American Well in Boston, Massachusetts. Prior to this I did mostly Java development, both on the client and the server.
DZone: How did you get involved in open source projects?
Greg: A few years back, I co-founded Apache Pivot, an open-source RIA framework for Java. But in general, I just like to share code. If I write something that I think might be of use or interest to someone else, I'll put it out there. GitHub has made it really easy to do that.
DZone: Do you still work on Apache Pivot?
Greg: No, I haven't contributed to Pivot in a long time. I'm still really proud of what we created, but it was time to move on
DZone: Can you explain what HTTP-RPC does? What are the common use cases? How does it differ from competitors?
Greg: HTTP-RPC is a way to implement cross-platform web services that combines the flexibility of SOAP with the simplicity of REST. I've been a REST advocate for many years, but sometimes it's just more convenient to think in terms of "methods" than "resources". Like SOAP, HTTP-RPC allows you to define your own verbs - you're not limited to create/read/update/delete (CRUD) operations. However, like REST, HTTP-RPC uses human-readable URLs and JSON rather than complex XML messages and generated stub code. This makes it very easy to see what's actually going on between the client and the server, which (from my experience) can be critical when you're building and testing complex distributed systems.
DZone: What are your future plans for the project?
DZone: What was the inspiration for MarkupKit?
Greg: MarkupKit was inspired by a number of markup languages I've previously worked with including MXML (Flex), XAML (.NET), and FXML (which I created while part of the JavaFX team at Oracle). I've always liked the concept of "declaring" the structure of a user interface rather than creating it programmatically or with a visual design tool. For one thing, markup makes it really easy to visualize the resulting output. It also makes it easy to recognize differences between revisions.
When I started doing iOS development, I was surprised that something similar didn't exist for that platform, so I decided to try to build it myself.
DZone: Is it difficult keeping it up to date with SDK changes?
Greg: So far, this hasn't been a huge challenge. We'll see what happens next year when iOS 10 comes out. :-)
DZone: What advice would you give to developers thinking of creating an open source side project?
Greg: First, do your research. If someone else is working on something similar, you're probably better off collaborating with them than starting from scratch.
Second, make sure your code is well-documented and thoroughly tested. If no one can figure out how to use it or it's full of bugs, you're not going to get much traction.
Finally, talk or write about it as much as you can. From my experience, this is the hardest part of open-source development. Without a dedicated marketing team, it's hard to make people aware of what you've built. Find people with problems you think your project can solve, and show them how what you've done can help them.
DZone: One last question, how do you balance work, life and then all these side projects?
Greg: I just squeeze the side stuff in where I can - nights, weekends, on the train, etc.