Tag Archive: open source

Adventures at OSCON

I spent the week of July 25th in the Oregon Convention Center. No, it wasn’t a secret SQL Server event; I was at OSCON. OSCON is the Open Source Convention hosted by O’Reilly (you may know them as the publisher with animals on most of their books). The best part is that I wasn’t just attending – this year I was one of the small number of speakers who were selected to speak at OSCON (only 1 in 7 were selected).

Speaking: Refactoring SQL

I spoke about Refactoring SQL (PDF slides). I’ve given this talk a few times in the past and this was by far the most comfortable I’ve been with the material as well as the most nervous I’ve ever been. The room I was in seemed like a cavern, but could probably hold around 300 people. By the time I started talking, it was around 40% full.

I’ve received 3.33 stars out of 5 over 9 ratings. I’m secretly hoping more people will pop in and rate me a 5, but I’m not holding my breath. A few people didn’t learn anything in the talk – I’m sorry. A few people learned a lot – WOOHOO! A lot of people said they loved my slides – hell yeah!

To everyone who attended my talk: thank you. I appreciate it. The slides are online, so download them and take a look. A few people stuck around to ask questions, offer suggestions, and just say “thanks for presenting.” A double thanks to you folks.

Attending

OSCON was split into three separate conferences this year – the main OSCON track (Wednesday through Friday) and then two new mini-conferences on Monday and Tuesday (OSCON: Data and OSCON: Java). As a speaker, I got access to the entire week, so I went hog wild and attended every session that I could.

Instead of writing up every session that I attended, I think it’s better to run over the themes that I noticed as I went from presentation to presentation.

The First Theme: Technology Doesn’t Matter

You might think that speakers would be pushing their favorite technology, language, or library through a technology conference. In this case, you’d be wrong. Throughout keynotes one message was clear: technology doesn’t matter. There was a focus from Microsoft, Google, and a host of other companies that the technology stack wasn’t as important as choosing the right tool for the job and making your data available through well-documented APIs, protocols, and standards.

That message continued outside of the keynotes. Very few presenters gave overviews of their favorite language, library, or feature. Almost every talk I attended was about how to solve a problem.

The Second Theme: Never Stop Exploring

One of O’Reilly’s biggest pushes is that we never stop exploring. The keynotes were full of speakers who challenged what they knew and what they were told. Ariel Waldman’s talk on Hacking Space Exploration gave examples of how we could involve ourselves in space exploration every day – from teaching kids about science, putting your own astronauts into orbit, to getting a job at NASA. Many regular sessions covered how companies solved problems, or came up with new products, by continually exploring the world of software, hardware, and human interaction.

The Third Theme: Simple is Good

Simple is good.

Simplicity doesn’t always sit well with people. We want more features, more bells, more whistles, and more fins. Complexity leads to software that’s difficult to maintain, difficult to operate, and difficult to get people to use.

Etsy are famous for releasing code frequently. One of the ways that they’re able to do this (apart from being crazy) is by releasing the simplest code possible. By deploying simple solutions, Etsy are able to carefully monitor their releases and make sure that things are still going well by only shipping simple changes. By focusing on the smallest unit of code possible, they can isolate bugs and roll out changes 30 or more times a day.

The Fourth Theme: Monitor Everything

Humans generate huge amounts of data. But it’s our interactions with hardware and software that generates even more data. Every time you hit a web page, tens or hundreds of requests are made to load images, read from external web sites, and do who knows what else. All of those interactions are logged somewhere. The only way to know when anything is going wrong is to monitor everything.

There are a lot of frameworks that we can use to monitor software in the application tier, and there are a lot tools out there to let DBAs monitor the database as well. In order to have an accurate view of a complex application, it’s necessary to instrument everything. SQL Server has hundreds of instrumentation points, Windows has even more. OS X alone has around 60,000 instrumentation points. Shouldn’t we be adding them to our application as well?

Bonus Round

It turned out that a few people I know from Basho were at the conference. Kendra and I met up with them before things started and I got to make a few new friends at Basho. It’s always fun to get together with geeks and talk about whatever comes to mind. Throughout the week, I met a lot of great people, both from the Portland area and from around the world. One of the best things about conferences is that you get to rub elbows with luminaries in your field and make friends with people like you, who are just trying to do their job from one day to the next.

Jeremiah Peschka

Jeremiah Peschka has worked as a database and emerging technology expert at Quest Software where he researched new trends and technologies in the world of data storage. Over the course of his career he’s worked with companies across many industries as a system administrator, developer, and DBA. He’s been involved with all aspects of application development and deployment. He likes cheesecake, coffee, and ice cream.

More Posts - Website

Follow Me:
TwitterFacebook

Just One More Thing… Introducing CorrugatedIron

I like to share what I know. That’s why earlier this year, I contributed some code to the Riak function contrib. Since then, I’ve been quietly becoming an independent consultant, starting a business, and working on a big chunk of code. I’m proud to release to the world CorrugatedIron.

More NoSQL for .NET

If you’ve been paying any attention at all (please say you pay attention to me), you’ll have noticed that I like to find fun and interesting ways to use and abuse data. You’ve also noticed that a lot of my interest lies in Riak. When I discovered Riak, there was a very good Ruby library, Ripple, some Java and Erlang libraries, and two .NET libraries that seemed a bit dead in the water.

I saw a lot of promise in Riak – it’s a distributed key/value database and it’s incredibly fault-tolerant. But the downside for many developers, especially developers who work with the Microsoft stack, was that there was no good way to connect to Riak. What that really means is that there was no good way for me to bring Riak to the masses of Microsoft developers and IT pros. Luckily, I had a plan.

I Love It When a Plan Comes Together – Developing Corrugated Iron

Through the Basho folks, I got in touch with OJ Reeves. OJ had started work on a C# library for Riak. Well, he’d started in his head. We emailed back and forth (he has an interesting take on the exchange), and nothing happened. I started a company, he had barbecues and ate shrimp with people named Bruce. In April, we decided to stop slacking off and write some software.

We wrote code quickly and threw it away even faster. We wrote and broke unit tests daily. Interest grew and we decided that we needed a date. We chose July 25th – it’s the first day of OSCON and it was a hard and fast date to get software out the door.

Throughout the development process, OJ and I have joked about strong opinions held loosely. Change is good, challenge is good; having a healthy respect for each other is good. Working with a developer on another continent taught me a lot about evaluating ideas, careful communication, and my own skills as a developer. OK, some of that’s a lie. There were many emails, Skype chats, and pair programming sessions via Webex, but through it all we maintained a respect for each other and a willingness to build and tear down code as many times as necessary to make a feature work.

Where is CorrugatedIron Now?

The whole idea behind CorrugatedIron is to make it easier for .NET developers to use Riak in their applications. SQL Server does many things really well, but there are some things that RDBMSes just aren’t good for. CorrugatedIron opens up choices for .NET developers.

The documentation isn’t where we want it to be and the code isn’t tested as thoroughly as we’d like, but we have working samples. I put some working into building a Session State Provider for ASP.NET (a great use of Riak, by the way) and OJ wrote several sample applications and configuration samples.

What Does It Mean To Me?

I’ve enjoyed working on this project for a few reasons. It’s given me the chance to write code outside of SQL Server. I didn’t realize how rusty I was with C# until I started working on CorrugatedIron. After a few weeks I was right back into it and I’ve been slowly working my way through many of the topics that I missed over the last few years. The best way to learn something is to do it.

The other big reason, for me, is giving something back. I’ve used open source software a lot throughout my career. While I can’t give back directly to many of the projects I’ve worked on, I’m able to give back by writing code and sharing it with the world.

What Next? ###

If you want to get started with CorrugatedIron, or you think you might know a developer who’d like to experiment, grab the source, download some binaries, install the NuGet package, and write some code. This is open source, so if there are missing features, issues you’re running into, or problems you’re having, hit us up on github, fork the repository, and get contributing!

Jeremiah Peschka

Jeremiah Peschka has worked as a database and emerging technology expert at Quest Software where he researched new trends and technologies in the world of data storage. Over the course of his career he’s worked with companies across many industries as a system administrator, developer, and DBA. He’s been involved with all aspects of application development and deployment. He likes cheesecake, coffee, and ice cream.

More Posts - Website

Follow Me:
TwitterFacebook