2004.04.30

Boost Spirit and Hyperworx  -  @ 309 (02:04:39 EDT)
Toying around with Boost Spirit as it seems like the the way to write several little Domain-Specific Language (DSL) parsers that are needed to complete a functional set of plug-in filters that implement a useful set of recombinant building blocks for generating web interfaces using the soon to be released Hyperworx Platform project (lots more on this later). Spirit is very, very cool although it's clearly going to take an investment to become proficient. That's okay --- time spent learning Boost libraries is time well spent. At least that's been my experience so far. So anyway, on to the reason why I fired up the blog this morning...

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

PDFCreator  -  @ 200 (23:04:07 EDT)
Cruising around on SourceForge I noticed the PDFCreator project. This is a slick program that presents itself as a Windows printer making it possible to convert nearly anything that's printable into a PDF file. That's cool!
Character encodings  -  @ 288 (01:04:16 EDT)
I bookmarked Joel Spolsky's article Unicde and Character Encodings some time ago resolving to go back and read it completely when I had the time. Well I didn't have the time, but read it and found it useful and humorous.

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

How to get thrown out of a Venture Capitalist's office  -  @ 234 (00:04:06 EDT)

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

Skype is awesome  -  @ 218 (00:04:31 EDT)
For the past several months, I've been using Skype extensively for both business and personal calls over IP. It works extremely well and the multi-point conference feature is slick. Experiments with various H.323 and SIP phones worked fairly reliably to some endpoints but not to all. For example, using the Xten SIP client worked well between my house here in Maine and folks in Massachusetts for example. However, calls to Taiwan and the U.K. were simply unreliable. Not so with Skype due to their use of P2P peering to affect route optimization. It will be interesting to see what types of services and fees Skype rolls out over the coming months. Meanwhile, I'm saving a ton of money on long distance charges and that makes me a happy camper.

If you aleady have Skype installed, Skype Me!

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

0.059 - [powered by b2]

4 sp@mbots e-mail me