Archive for October 2008
Day 2 of OOPSLA I spent time in a workshop, but perhaps a bit more time than I should have. There was a lot of great dialog and ideas thrown about during the first half of the day, but the second half of the day I didn’t really contribute much and should have excluded myself. Argh… lesson learned I guess. The workshop wasn’t bad… just didn’t get much value out of it in the second half.
Yesterday was pretty interesting. Mark Lehner gave an interesting speach on archeology and software development. In the second half of the day I went to a very awesome tutorial by Linda Rising on how to promote change within your organization. It’s the first time I have been to one of Linda Rising’s sessions and I must say she is a very great speaker and does a great job at organizing activities that keep people focused and help them learn… I’m surprised that I still retain in my mind all the patterns she mentioned.
I missed the BoF sessions last night.. but luckily I think the ones I am interested in are tonight.
Well, yesterday was an exciting start to OOPSLA. We missed the morning sessions due to a misunderstanding of the schedule, but attended the tutorial lunch and had some very interesting discussions. We originally sat with a professor that we had engaged in conversation about the state of object oriented programming as currently taught by universities, as well as the debate between teaching theory and practice. Of course, I’ll always say that a university that teaches students just what they need to get a job should be called a vocational school. But that’s just me.
However, the subject of our discussion quickly changed to agile development and we were also joined by a couple people who had just left a tutorial on Agile Best Practices. Lots of good discussions took place, and I think it was pretty helpful elaborating our experiences with XP to people who had just started practicing pair programming. My advice? Get Continuous Integration running ASAP! For some reason this practice always gets overlooked, and for the two and half years I have been at Carfax we overlooked it for way too long, opting to run all unit tests and all the automated user acceptance tests manually before each commit (this sometimes took on average half a day to do). It’s best to reduce that pain and just get CI up and running… leaving you to run the unit tests and related acceptance tests, commit, and keep working, with CI coming back to bug you if you broke something unrelated.
After lunch, I went to Textual DSLs – Concepts and Tooling. It started great because it was the first time I had attended a session where the presenters gave you a CD to install something pre-setup (in this case, eclipse with EMF and EMF related plugins) and it just worked. The presenters gave a brief overview of DSLs… basic stuff really if you’ve read the handful of books out there (if you haven’t, I’d recommend Fowler’s DomainSpecificLanguage as a starter). Specifically, this session was focused on the creation of an External DSL.
So to start, they dove right in and showed an example external DSL they had already written. What impressed me here was that their DSL, while homebrew, had full syntax highlighting, autosense, and syntax checking. Of course, they moved really quickly through this part, and I felt dumb because I didn’t quite grasp what they were doing at first. Luckily, one of the presenters finally announced “now we’ll show you how to use this thing.” Hehehehehe.
Anyway, the framework they presented us is called Xtext (as a side note, there is some excellent documentation on theOpenArcitectureware site). It was pretty sweet! Before long, I was able to start playing with adding my own syntax rules (which are very flexible and powerful). For fun, I even created a syntax rule that basically said you can’t have a label name that is the reverse of an existing label name.
The cool thing (which I have never seen before) was that you’d write/modify the grammar rules, generate xtext artifacts, and then run as eclipse application. This caused a new eclipse instance to launch, and I could create a new project named after my DSL project (in this case, new -> project -> myDSL project) that had the syntax rules in place. Of course, the coolest thing was that everything involved with parsing the DSL and what not was almost completely hidden… it did most of the work for you, but you had the option to get under the hood and tweak whatever you need to change.
It was pretty sweet… I’ll have to find a very short project now so that I can learn it better!
Well that’s it for day one.. not too exciting, but fun nevertheless. Today I plan on attending one of the following in the morning session:
- Spring + OSGi = Spring Dynamic Modules
- Challenges: Agile Values Meet Different Value Systems
- Design Patterns: The Next Generation
The Spring + OSGI one interest me because there has been a lot of buzz in the industry lately about OSGi, but I honestly have not really set aside some time to devote to learning it much, and the time that I did set aside for it I was at a loss as to where to start. The two workshops fascinate me a great deal, and I am sure that I could have something to contribute too!
Just woke up, and getting ready to attend day one of OOPSLA2008. I have to say… I am really really hoping to see/learn something that totally floors me. Luckily this year I have an All Access Pass, so I can basically attend anything I want, versus a select few tutorials as I did back in 2006.
Looking over today’s schedule, I am thinking of attending Architecture As Language and Design Stories, with the possibility of swapping one of those out for DesignFest… although I have attended DesignFest TWICE before and have suggested to Than she might have fun attending it. Heh, my agile ideals were considered pretty radical by the first DesignFest group I was in, I wonder if Than will meet the same amusing resistance?
Anyway, I’m pretty excited about today!