Let's back off of the Perl/Tcl menagerie for a second. Story, the software behind this blog and the core of EFX Content Management, is in need of a rewrite. The first version was just an experiment. So, like, how far do I take it?
Well, it may need to wait. The format of a Story file probably won't change, so nothing is lost. There are other fish to fry...
I need to work on the publishing software (i.e. automated FTP) as well as the submission software. Bricolage works this through a web server, but I don't want to go that heavy. I've been thinking about a simple daemon that monitors for changes and then (re)publishes the website every few hours (if there is a change). How does stuff change? Well, here is an idea: email.
What if the monitor software polls (POP or IMAP) an email account for submissions. It has to be smart about parsing email, but that is no real big deal. Content submission is downloaded into the proper EFX content directory and the software is invoked to rebuild the website. Heck, you could even use email to kick off a publish job.
I like the idea of polling for email. This could be done every hour. I don't want this thing (EFX) to turn into a internet exposed server application... Now, I just need to work out the details and pick an implementation language (Perl or Tcl). Tcl has a very experimental IMAP client while Perl has a couple of clients in CPAN (and I hope at least one is fully cooked). Both languages have solid POP client implementations.
Permalink | Thursday, November 17 12:17 PM
I've been thinking about programming languages lately. Well, to be honest, I am probably always thinking about programming languages. This particular thought bubble involves the consideration for other programming languages being used inside of EFX.
Right now, EFX is written in 100% Tcl. But, that may be something of a small problem....
So, what are the impure thoughts? Well, what if I provide an unholy integration of Perl and Tcl? At a minimum, this would allow a developer to call Perl or Tcl from the EFX system -- whatever feels the most comfortable.
There is a Tcl binding for Perl in CPAN. I feel like giving it a try: Run the current EFX Tcl codebase under the control of Perl and allow the Tcl code to invoke Perl code too! At worst it could run like a dog. At best, it gives me (and any future EFX programmers) the benefit of both worlds. Code your templates in Perl or Tcl!
Permalink | Monday, November 14 10:49 PM
I need to stay focused on why I am building EFX. It's easy to be distracted by such things as adding features to this blog or pondering whether or not I chose the appropriate programming language. (EFX is written in Tcl, by the way!)
EFX was developed to help a school maintain the content of their website.
That's it -- in a nutshell. All else are side effects. However, I also need to remember why I went down this path to begin with (i.e. why not use Bricolage, or Zope or something else): EFX is suppose to make maintaining a website very easy.
With that in mind, I probably should list a few achievable goals:
There. Simple goals. Now stay focused, Todd!
Permalink | Monday, November 14 10:50 AM
This is my first attempt at doing an RSS feed for the expiremental EFX development log. If this works, things should really start shaping up!
Doing the RSS feed prompted me to make minor tweaks to efx. In particular, I needed a way to make efx:foreach silent. That is, I didn't want to output the hosting element for the command. I will have to look into how useful this is for other efx commands...
Permalink | Thursday, November 10 1:52 PM
I'm still working on the basics. The template markup processor is about 450 lines of Tcl. I'm hoping to keep it small.
As a good test, I'm trying to get a modest sized site up (approx 40 pages). It was the driver behind creating many of the features of EFX: the template system, the calendar, the story engine (which powers this blog) and a navigational system (for link generation).
Permalink | Tuesday, November 08 12:00 AM
This blog will track the development of the EFX Content Management System (CMS). EFX-CMS is a simple CMS based on a very simple markup engine called EFX.
Permalink | Tuesday, November 08 12:00 AM