2004.04.30
Reading through Joel de Guzman's explanation of Closures, it occurred to me that this technique could be applied within the context of Boost Graph Library visitor implementations to eliminate a lot of snarly logic. Further, it occurred to me that Spirit itself might be usefully applied to the task of writing generic graph algorithms to spin a response to Jeremy Siek's challenge to "Explore the use of Algorithm Objects as an alternative to the current approach with visitors."
Basically the idea is to use a Spirit scanner to implement the specific graph traversal algorithm, Spirit rules to implement triggers on vertex and edge properties, and Spirit semantic actions to accomplish the tasks currently performed inside of BGL visitors. Whereas currently BGL algorithms provide a clean mechanism for re-using specific search and traversal algorithms that fire events into a visitor, visitor implementations appear monolithic (and often quite snarly) compared to what we might be able to accomplish with rules and semantic actions. If my understanding is correct, at a high level of abstraction a BGL algorithm is just a scanner and a visitor is just a hard-wired set of rules/semantic actions. To me it seems that replacing visitors with Spirit rules/actions makes sense in terms of added design / re-use flexibility and overall readability. Perhaps someone else has already thought of this? I'm going to have to think about this one some more. Maybe try a few experiments. Hmmm...
2004.04.29
Now back to untangling Boost.Config, 7.1 Intel C++ Compiler, and STLport wchar_t support issues so I can complete my upgrade to C++ Boost v1.31.0.
Paranthetically, the only thing I don't like about the C++ Boost project is that every time I grok another library, I no longer like the way I've designed and imlemented my code. Perhaps someday I'll win the lottery and be free to invest as much time as it takes to Boost my brain into high orbit.
Remind me to figure out why I have to use a character entity reference to type a '+' when composing b2 a blog entry. Boy that's annoying.
2004.04.28
This month's issue of SD Times contained an interesting editorial by Dan Foody, CEO of web services management company Actional entitled The Darwinian Approach to Software Reuse. Although Foody's ideas about Darwinian software development are interesting, his proposed approach of setting multiple teams loose to develop full-blown solutions to similar problems sounds impractical and potentially hugely expensive. Notwithstanding, I loved his lead-in retrospective on efforts to establish effective software re-use paradigms - particularly his comments about how to get thrown out of a meeting with Venture Capitalists.
For as long as software engineering has been practiced, there’s been a vision that achieving the Holy Grail of software reuse was “just around the corner.” Every new technology generation was supposed to have solved this problem once and for all. Functional programming, object-oriented programming, components, service-oriented architectures—the list goes on. But, if we were to survey software engineers today versus 20 years ago about how close we are to this elusive goal, we’d probably find that we aren’t really any closer today than we were back then. There’s definitely been a lot of credibility lost in our industry because of this. The quickest way to get yourself booted out of any venture capitalist’s office is to say you’ve got an idea for a product that will solve software reusability once and for all.
This is entirely consistent with my own personal experiences unfortunately.
Ray Ozzie's great piece on Software Platform Dynamics details his observations about the difficulties of bootstrapping a platform ecosystem. Given the dearth of speculative risk capital over the past several years, it seems I've undertaken an entirely insane quest trying to get Encapsule Systems off the ground. What's a guy to do when surrounded by skeptics? Misoneism be dammed. Not so long ago there was no option but to take your ideas and go live in a dishwasher box on the edge of the park. However, in these days of cheap broadband and emerging commercial models for open source projects, perhaps there's an outside chance of getting my work in front of people who understand/appreciate it. First step is to actually publish some detailed information about what I've been working on for the past three years. A new website and public demo of Encapsule Systems' Hyperworx(tm) Platform is in the works. Stay tuned for more details.
I wonder if I can get a cable modem installed in my box in the park?
2004.04.27
If you aleady have Skype installed,

If not, grab the client from Skype.com and add me, "encapsule", as a new contact.
