headerphoto

New Job Focus

*Warning: Geek content. I won’t be offended if you skip all/most of this.*

We had a small reorg in our test team, and I was one of the people most affected by it. As Martha Stewart says (or so I’ve heard), “It’s a good thing.”

I’m still working on the “Oslo” project which is composed of a tool, a language, and a repository, but now I’m switching from the tool to the language. I’m now the test lead of the front end of the language tool chain. This includes things like MGrammar, MSchema, MGraph and the associated toolset such as the language services for Intellipad.

I view this as a move from one project full of smart people to another project full of smart people. The big difference is that this project is completely open and shared with the public. There are demos, blogs and videos all over the web along with bits you can actually download an install yourself. It’s a small team that moves very quickly using an agile methodology called scrum. There’s a lot of change happening in a short time so I’ve been studying a lot to come up to speed. Part of that means digging out my compiler book from college. I can already hear the groans from some fellow Purdue grads.

Let’s see if I can put this project in some simple (well geek simplified) language: the M family of tools gives you an easy way to define your own domain specific languages. MGraph is the underlying data model. In memory, it’s a semantic graph that you can traverse with some APIs. You can loosely equate this to XML. MSchema is the type system that we use to define the data types. This equates to XSD. Finally, MGrammar defines how we build graphs from your textual domain specific language. MGrammer takes the place of apps like lex and yac or flex and bison and greatly simplifies them. So a quick example would be using MSchema to define types for Customers and Orders. You could then create an MGrammar file to understand a domain specific language like “Bill Buxton ordered 2 widgets for $1.39 each.” The grammar would convert that DSL into an MGraph which is a structured data form which can be traversed by an API or converted straight into SQL statements (INSERT statements for now.) The MSchema file from before can be used to create database tables and then the MGraph would be used to populate that database with rows in the tables. An app called Intellipad really makes these steps easy as you can quickly see the effect that modifying your DSL and MGrammar have on the MGraph output. There are a billion other scenarios and possible outputs but that’s a pretty mainline scenario. Another one would be just using MGrammar to create a parser for your own DSL and then using the MGraph API to compile/run your new language. The SDK contains a sample language which defines a song (ie “EDCDEEEEDDDEGGEDCDEEEEDDEDC”) and then a C# app consumes the MGraph and plays the song.

My new team has a (low traffic) blog and one of the first posts point to a couple quick videos. Both videos feature Gio who is the dev lead I work with. They are short versions of the longer talks at PDC. The MGrammar PDC talk is great if you have 60 minutes and a desire to see this all in action. If you want even more info, check out the Oslo dev center on MSDN. The specs are even published under an open source license.

It’s a lot of new stuff for me to grok, but it’s all starting to click. I’m excited to start testing this stuff and bring even more stability and quality to the next public release.

Comments

# re: New Job Focus

Congratulations! That sounds like an interesting new endeavor. There certainly are a bunch of smart people on that team as well. Have fun.

Friday, February 06, 2009 3:30 PM by MikeD

# re: New Job Focus

Hey Ben, nice to see that your horizons are continuing to expand. And it's nice you can share more about what you're doing. Congratulations. I know you'll do a good job. I hope you enjoying growing into your new position.

Friday, February 06, 2009 5:01 PM by Dudley

# re: New Job Focus

Congrats Ben.  May the new challenge be a rewarding one for you.

Monday, February 09, 2009 10:42 AM by Kevin W.