Monday, March 25, 2002


Digital Rights: Would you like some?

If so, then make sure you read Dan Gillmor's article.  And after you read it, if you are inclined, then take some action.  Waiting for Congress to figure out how how the digital world is supposed to work is like letting Colonel Sanders babysit your chickens....

[Ernie the Attorney]
4:25:21 PM      

  • Find a better way to manage a glossary then using a config file
  • Create macros; maybe using javascript
  • Find the simplest way to create a template for a sophisticated theme - like Radio's transmitter
  • Try Eprise Visual Links for editing content from the browser
  • Find somebody to talk to about this; I still cannot gain access to the Eprise Custome Support website

11:38:07 AM    Google It!  

One of my early beefs with Eprise Participant Server is that it does not contain a glossary. or does it? Armed with the knowledge of creating my own config files and accessing them using merge strings (which are dynamically rendered as content) I set off to create my own glossary. My aim was to create a config file that contained glossary definitions. Just links to web pages, for the moment. This file could be easily maintained by content authors. Authors can reference these glossary items using merge string syntax. Thus, <a href="<$client.item.ScriptingNews>">Scripting News</a> will, on rendering, dynamically substitute the link to Scripting News.

This works, but is not ideal so long as EPS must be restarted (requiring a reboot, it appears) to pick up config file changes. My next goal is to find a more dynamic way of doing this. Maybe using the EPS database and/or its ability to evaluate javascript expressions during page rendering.
11:29:19 AM    Google It!  


Eprise Participant Server seems to rely heavily on text configuration files. This is kind of nice; you can add your own files because Eprise will automatically load any *.cfg file in its \config directory at startup. Every thing in the config files is exposed as a merge string using a nice dot notation. More on this in a moment. The downside: Since Eprise is running as an ISAPI filter it is very difficult (impossible?) to unload and restart. You would think that stopping the IISAdmin service (and W3C Service) would suffice. Nope. The ISAPI Dlls appear to remain loaded. I am still looking for a technique better than rebooting the server - the only reliable approach I have found this far!

The Eprise doc on addressing config file definitions is a bit confusing. For example, I have defined a config file containing a defintion for item.ScriptingNews. The definition resides in a config file named glossary.cfg. Contrary to what the docs imply, the config file name is not part of the variable's name. Rather, this variable is addressed in merge string notation as <$config.item.ScriptingNews>
11:21:32 AM    Google It!  


Eprise Participant Server can run in two different modes: virtual or physical. In both, EPS runs as an ISAPI filter (Note: I am going to focus on just the Microsoft implementation), dynamically serving pages out of its own database. In the latter, pages are published to a directory to be served by IIS.

The virtual model is nice if you need to dynamically create pages. Like maybe customize a page for a target audience (personalization). However, it does cost you some performance. I cannot back up this finding with any numbers, but before I joined this team they had tried the virtual model and found EPS could not handle our public website; it was overwhelmed. So, we are using the physical model.
11:09:16 AM    Google It!  


In the past I have said some not nice things about Eprise as a Content Management System. In an internal manifesto I also suggested that we (a group of developers responsible for our company's website) had become a bottleneck to our site's content authors because of poorly divided responsibilities in our CMS. I have launched an internal project to look at better ways of using Eprise and improving the division of responsibilities such that our content authors have full control over the development of content.

My first step is getting a better understanding of Eprise. You know what? It is a better tool than I thought. Not great, but better than we have allowed it to be. News and tips forthcoming.
11:00:38 AM    Google It!  


Law is basically common sense, or it should be.... [Ernie the Attorney]
10:37:25 AM      

Another favorable review of FineGround's Condenser.
9:46:20 AM      

Somebody from FineGround got hold of our Marketing group, claiming they could provide a 2.5x improvement in the performance of our website. I checked their website and found a claim for 10x performance improvements without requiring any modifications to a website. That kind of claim always makes me skeptical. I found a Network World Fusion review of FineGround's Condenser product. The review suggests that the product can be difficult to get up and running, relies heavily on client-side javascript, but does deliver improved performance. Anybody have experiences they want to share before I jump in?
9:29:03 AM    Google It!  

I am not looking to make money from web services as a software rental model. Nor am I looking for free services that I can use to build my own applications from. I have a much more practical use for web services. I use them to simplify the connections between web servers and application servers. Since web services use HTTP as a transport (generally), they are easy to load balance across multiple servers using existing devices (e.g. Foundry ServerIron).

There is another benefit here, a subtle one. Web services decouple the web server from the application server. For anybody that has used Microsoft's Distributed COM to connect a web server to an app server this is a big deal. With web services the web server is not bound to a single application server. Anybody already using HTTP to front-end application components won't care about this. However, those who are bound to a specific machine in their current architecture will care a lot. Web services provide flexibility. They improve the robustness of your architecture through load balancing and the elimination of single points of failure. They reduce web/app server binding configuration problems by providing indirection through a DNS and, possibly, a network switch.

While these benefits apply to two or more cooperating organizations (the web services marketing point for some vendors), they apply just as well within a single organization. I think this is where we will see early adoption of web services. They make our jobs, as software developers, easier while improving the applications we build.
9:04:48 AM    Google It!