A few weeks ago I sent Amyloo a few pointers to the website framework docs for Frontier as a clue as to how to experiment with CSS in the design of a template for the browser-based NewsRiver user interface. Now, she’s reached a point where she’s thinking (apparently) about how to make the results of her exploration available to other users. This is always a tricky spot, if you move too fast you end up with a bad design and either have to live with it, or live with breakage. I almost always decide to live with it, because breakage is too painful, and you also lose the trust of the people you want to work with. So I like to go-slow, think, and consider the alternatives carefully, and most important, look at prior art because there may already be a solution to the problem.
Now Amy is moving quickly (and that’s good) because when I looked at her post a few hours ago I said “Oh she just needs to know about file.readWholeFile,” but now I see she’s found it, and has built a layer around it, but I’m not sure that the layer actually buys you very much. I am also reluctant to create new verbs at the top-level of the scripting namespace, there aren’t many of those, because there always seems to be a context, and this gives you a way to create a new verb to stand alongside the earlier verb, without having to klooge things up too badly. Long story, hard to explain, but top-level verbs are usually not a good idea.
Amy asks if this framework is for Manila, actually it predates Manila. Our software is built in layers, and the layers came in years, like the rings of trees or the brain of a lizard. The stuff Amy is looking at was done in 1996, when Frontier took the turn from being a Mac-only system scripting environment to being a web content management system. Some people still think that was a bad idea, but that was almost ten years ago, a lot has been built since then. Even so, what we did in 1996 was good enough to basically provide the user interface for NewsRiver 0.3, and give Amy a way to explore the wonderful world of Fronteir content management. Adding Manila to the mix would complicate matters considerably, because Manila is substantially more ambitious than the website framework, which is what she’s working in. (Also, Manila is not open source, so that makes it somewhat more difficult to explore this way, unless you have the money to buy a license.)
Now, the question of whether or not the input data should come from the file system or not is an interesting one. There are other choices.
|1. It could come from the Internet. In Manila we had a macro called includeHttp (there I go breaking the rule I talked about above, it could have been called manila.includeHttp, so we could have borrowed the concept wholesale wihtout confusion, calling the new macr newsRiver.includeHttp, or some such). If we used something like that here, we could still get stuff from files, because file paths can be represented by URLs.|
|2. Another possibility is to get the content from the object database. This sounds a bit more hairy than it actually is. You could have a command in a menu somewhere that says Open My CSS, and an outline window would open and it would say NewsRiver CSS. You’d edit it, and refresh your NewsRiver site in the browser, and boom, the change would be instantly visible. Now the user wouldn’t really be sure exactly where the CSS resides. But then they don’t have to worry about where it is. I do this in a bunch of places in the OPML Editor, and so far haven’t heard too many complaints. (Check out the Open Log Outline command in the Community menu for an example.)|
Anyway, I’m not sure how much sense this makes. My teaching technique is to just string the words together and let people get confused and maybe read it again and it’ll be less confusing until all this stuff is second nature. It’s very cool that the Class of 2006 is starting to take an interest in the underpinnings. This is a good sign, and it’s a path I’ve been down quite a few times before. I’m hoping that people from earlier incarnations of the community will come back in at some point and express some opinions about how we should evolve here, of course in a constructive and helpful way.