20 questions/thoughts around MGrammar

I had a great time attending the PDC virtually. Azure, C#, Xaml—these all were cool. The tech I was most excited about was Oslo, specifically building custom DSLs with MGrammar.

Having spent a lot of time in Xaml and C# at Microsoft and migrating to a world of Ruby and JavaScript and HTML/CSS and HAML/SASS, I've had my hands in a lot of tools. And I have lots of questions and thoughts for the community. And, specifically, Chris, Don, Doug, Pinky, and the gang.

When I talk about a 'logical', I'm talking about MSchema in Oslo terminology--at least I think so.

  1. Where  is the MGrammar for C#?
  2. …for VB?
  3. …for CSV?
  4. …for VS Solution files?
  5. …for XML?
  6. Could C#/VB implement their compilers using MGrammar? Should they? Would they?
    • I’m imagining the tools I could write if I had the grammar…and could insert myself in pre-compile stage. Awesome.
    • What an amazing better-together with C#'s new compiler-as-service.
  7. There should be standardized or defacto escape mechanisms for existing grammars.
    • "If you want to inject your own magic into [C#|VB|XML|etc] use this (relatively) safe/constrained notation."
    • I'm thinking about a subset of SASS markup for WPF styles that I could in-line in XAML and have processed at build-time.
  8. Could the MGrammar for XAML just party off the MGrammar for XML?
  9. …could it be written without referring to 'physical' XML, and instead just refer to the XML MSchema model?
  10. If I had a MGrammar for HAML that could generate most of ‘logical’ XML, could I then 'infer' the 'XAML in HAML' using #9?
  11. Will there be tools to go back from a logical model (MSchema) to the input format? I'd like to store data in a logical model, but be able to allow editing via the text format.
  12. How about tools that allow the comparison of two grammars to see if they generate the same MSchema--perhaps with different labels. Perhaps with the ability to convert between them. Perhaps with the ability to identify strict sub- or super-set grammars.
  13. Where is the community site for MGrammar?
    • User-submitted grammars
    • User submitted and verified 'tests' against the grammars
    • Easy tracking of new (and old) versions
    • Easy tracking of forked/related grammars
  14. Want to have MGrammars.com? I registered it for Microsoft. I'll give it to ya'll for free. Just promise to make a great community site.
  15. I'll even build the site for you. It'll give me an excuse to use Azure. I'm happy to offer my consulting services.
  16. Any news with Mono? Is Miguel interested?
  17. Are you making a play to make MGrammar a standard? I've heard yes, but just wanted to confirm.
  18. How is the computer science behind MGrammar? Is it as good/better than existing tools? BNF? Lex/Yacc? Others? Is there a write-up? I'd love to see where MGrammar is pushing the state-of-the-art.
  19. Anyone pushing a normalized Wiki grammar? Like this? Yes, a weird point, but think of how much IQ in the world is stored in Wikipedia and it's next to impossible to parse because MediaWiki format has a bunch of random PHP parsing quirks. A great intern project.
  20. As you can tell, super excited about the project, guys. Keep it up.


Props to Silverlight CLR team: My Common DLL Just Works FTMP

FTMP = For the most part

In Visual Web Developer 2008 Express Edition SP1 .NET XP Live.

  • I created a new Silverlight control library, under my public SVN location.
  • I did the right-click ‘Add Existing Item...’ trick.
  • I navigated to J832.Common and added all of the CS files (except DBUtil and ReaderWriterLockHelper).
  • And I hit build and watch it compile.

The result is a very boring looking directory with great potential: I can now use all of my common tricks in Silverlight, too.

You know, if I happen to be working on something in Silverlight. Hypothetically.


First Project Shipped: What A Lovely Name

It's official.

After an amazing first collaboration with my friends at Jackson Fish Market, What A Lovely Name has launched.

Thanks to...
  • Jenny - what an amazing designer. It was an honor just to be able to set her graphics as div backgrounds.
  • Walter - in a word, brilliant. Turned hours of hacking into moments of enlightenment. He's made me a better [ruby|javascript|css|*nix] hacker and a better engineer.
  • Hillel convinced me to leave a comfortable job at an insurance company and start my own gig--with a story about half-priced pots. I'm not kidding. I'm not sure I would have done it without his encouragement--or prodding. Looking back over what I've done and what I've learned over the last 4+ months, I couldn't be more grateful.
Also thanks to...
  • MacBook Pro for being an amazing piece of hardware, even if it's not the new one.
  • Ruby and Ruby on Rails for challenging my sole devotion to statically typed and compiled languages
  • APIDock for being a great Rails reference.
  • Haml and Sass for making HTML and CSS fun
  • Prototype and script.aculo.us for some amazing Javascript tools
  • ImageMagick for server-side dynamic image generation
  • ssh - I now know how people on Unix get things done
  • git (and for a while Subversion) for version control.
  • pngcrush for making small pngs
  • Capistrano for making deployment easy
  • Mac Ports for making it scary easy to install unix tricks on a mac
  • Firebug for debugging everything. Amazing.
  • Firebox for having an extensibility story that supports things like Firebug
  • Safari for being more stable and more standards-compliant than Firefox a lot of the time
  • VMWare for letting me test IE7 compat without a Windows box
  • IE8 for emulating IE7 so nicely with something approaching reasonable dev tools
  • SliceHost for, well, hosting
  • TextMate for being an amazing editor
  • Skype and Adium for helping me stay in touch
  • Online Coffee Company for keeping me caffeinated
It's been a great ride. Can't wait for the next project.