hey ppl I’m doing amazin-ive officially lost 5 lbs my 1st wk with http://newtrend.tumblr.com/diets FaceBook listed article. Has anyone else tried it? If not, I HIGHLY recommend!
I’ve finally decided to put a lot of the more tedious Clay development aside for a week or two and just build some simple applications. I’ve built lots of test case applications, but very few I would consider using on a web site. I’m using the ClayCMS package for the applications, mainly so I can test a lot of code that was written based on theory, without any actual test cases. So far I’ve found a few flaws and fixed them, mostly within the ClayCMS libraries. I’ve also realized a better way to handle application initialization and template handling from within another application. That is why I wanted to focus on potential production applications and broaden my assessment of the current Clay codebase.
So far the application setup class is working well, although it has been a pain to strategically work in database table creation and population from the installer stand point. I have chosen a few core applications that handle the basics and left the core very small. Users to roles to privilege assignments and validations are all handled through a set of security library classes fronted from a Security application. The Apps application handles application configuration, installation, removal, and upgrades. The System application handles system wide settings and configurations.
I plan to put ClayCMS on my personal web site sometime this week. At first it’ll be just a simple blog application on the front end, but it’s a start. As things develop I’ll push the changes to the site and keep testing. In the beginning there won’t be any user interaction, but I plan to allow that soon. Most of the things I test on my site will be temporary there and end up being refreshed and moved to other web sites. Hopefully this will motivate me to do some repo cleaning and get some of the code that has been piling up pushed to GitHub.
I plan on doing a few beta releases of Clay this summer and this testing will hopefully iron out some of the issues. I’m hoping this will also give people a glimpse of what Clay can do and build a little interest. I’m also writing some documentation as I work, so there’s another good excuse to back off from the Clay libraries for a little while.
I have a son! David III, born this morning at 9:09 am, 9 lbs 8 oz, 20 3/4 in long. He’s a big boy :)
The more I experiment with my ClayDO (DataObject) library, the more ways I’ve found to use it. I have been putting off implementing short URL support in Clay, partly because I want it to be flexible enough for developers to implement their own URI schemes. The other day I stumbled upon a way to implement them in ClayCMS and so far I am leaning toward the idea. DO supports dynamic object abstraction from various data sources, one of which is of course a database. While experimenting with ways to map object relationships in a database I discovered I could use parent objects for building a URL to the content they provide. By having a couple of fields in the object table to map a URL to an object and it’s HTTP data (or query string), I can use URLs mapped to objects much like Drupal uses nodes. Furthermore, I can map different types of HTTP requests to variations of the same object, for things such as web services APIs or XML feeds.
The downside so far is the amount of data dependencies and collisions when an object is mapped incorrectly. Also, too many object aliases can slow down the initialization, as it has to seek out a matching object alias and determine hierarchy when more than one alias exists. The upside is an extremely flexible URI capability and a reduction in regular expressions or procedural URL mapping. I’ve also spent some time attempting to reduce the amount of work it takes to implement the object models within an application, while providing as much transparency as possible. The biggest gain, though, is that the object mapping transfers directly to the application using it, so even if the short URLs aren’t being used, the object relationships are still available.
I seriously doubt ClayDO will be used in the first ClayCMS release, which will be released as a Clay Installer package within Clay 0.6.5. The ClayDO library will, however, be a part of the framework starting with that first release. More to come on all of that.
I’ve been working on the Data Objects library for Clay; so far it just has an abstract object class that I’ve extended to build a form generator. The Data Objects concept is based on Xaraya’s DynamicData functionality. The abstract class contains some basic methods for building object sets, which are for various types of data handling, such as the form generator. It works by forming an object that acts as a container, through abstraction, which you can then assign other objects. In the form generator, there are objects called ‘properties’ of various types. Properties extend the original abstract class, so they too can be containers, depending on their intended purpose.
The form generator class acts a container that you assign various form controls, which are properties. There are also container properties, such as a fieldset, that you can assign controls to as well. One of the ways I’ve diverged from the Xaraya approach is the ability for each object to specify its own output template. The template method calls the application object’s template method, which means any requested templates can be overridden by a theme.
I’m still playing around with the concept and trying to make it as flexible as possible, without adding any unnecessary complexity. I’ve experimented with it in the past, but this approach seems to be the best so far. The plan is for Data Objects to be a library outside of the base Clay library, perhaps even standalone. After some more experimentation, I plan to begin using it to build the Dynamic Data application and services into ClayCMS. I also plan to use it for the ClayCMS blocks system, but Dynamic Data may be able to handle that tasking as well.




