I'm trying to decide if I want to make the Dashboard a default app or if I want to create a new System Admin service that acts like a content hook. The service would keep the apps broken up better, providing an interface for administration of Core apps. The other side is there aren't a lot of Core apps, so it wouldn't be that hard to hard code it into the Dashboard. But then, that makes it harder on someone of they want to create a different dashboard that uses the same service hooks other apps provide to the current Dashboard. More than likely I'll settle for some kind of admin function that loads the Core apps into the dashboard for now. The main thing is to provide an administrative interface that will allow you to have a starting point after an install.
I'm excited about Traits being added to PHP 5.4. That is something I've used workarounds by having abstract classes that simply add in a method. It works the same, but having the traits make the code easier to follow and opens up inheritance.
I finally got around to coding some last night. Fixed some bugs, which is hard when you can't remember how your own code works. It's also hard when you don't finish something and months later have to go back and figure out what was left. To add to that, I lost some code and am using a backup, so some of the code was finished and I had to rewrite it again. I am making progress at least :)
5:41 amSee a Warning?
Yes, I know about it. It was fixed long ago in the codebase. I guess my host finally upgrade PHP. That should go away once I do the site refresh.
5:38 amTruly IDE
Intregrated Development Environments are essential in streamlining and maintaining software, even though a plain text editor is still my preference most of the time. One of the planned development strategies of Clay is to implement a data transport library to transfer and authenticate data between hosts. There are several potential and desired uses for such a system, but one such use is an IDE built into a package in Clay. The package would be a web-based development environment, using its own interfaces for testing code output. The code could be created anywhere, even developed simultaneously by multiple developers. When the code is ready to deploy or ready to test on a different server, the data transport system could be used to authenticate the developer and deploy the code. The same could be done for data to/from a database, to create backups, or for replicating web sites across multiple servers. The IDE could be setup to be used with version control tools or as a seudo version control system, requiring developers to checkout and checkin code as it progressed. There are many exciting choices and considerations when you are building a framework designed to be only as much as you need it to be.
5:18 amFuture Theming
Currently, themes are separate from applications, although they are an integral part of the template selection process. Themes control the content central to a page, even while an application can determine which theme or page template will be displayed. I've left a lot of the options for theming in Clay on the drawing board, in the hope that people will join the discussion and help determine the future of theming in Clay. While options not offered aren't really options, the absence of a specific requirement for theming opens up a free avenue to explore and build upon. For instance, a theme today can be a page template and a stylesheet. There is no installation, only a boot loader setting to specify the default theme. I left it that way so I can use developer input to create the best possible theming system or leave it open for developers to choose/create their own options. One thing I would like to do is create an application that is used for creating and customizing themes from within the Clay package. That would create some overhead that doesn't exist with simply using a standard theme, but also make up for it with an extensible tool set for theming a site. There is a lot of work left before such an application is feasible or maintainable, but as ClayCMS and potentially other packages mature, I believe it would be a venerable asset to ClayCMS. Most modern content management systems do offer such tools, but I'm thinking more along the lines of a DreamWeaver built into the website, creating templates and stylesheets used for dynamic content, loaded dynamically as they become available. Clay's application object already supports full template overrides from the theme, so no underlying code changes would be necessary. That is the kind of flexibility I was wanting when I began building the Clay Framework.
4:57 amNext couple of Months
February is probably going to be a busy month, so I'm not sure how much time I'll have for development. The good news I've finally settled into my Dev environment a little better, so I have made some progress. Once I have time to run a full line of tests on my current code, I'll be doing a refresh here and pushing ClayCMS to the github repo on github.com/clay. I know there are a few things that need to be fixed/tweaked. From there I plan to keep this site updated with the current codebase and begin doing some releases. I will more than likely release small pieces at a time. My plan right now is to release Clay Framework, followed by the Installer, and probably a few packages, tests, and themes. I'm going to have to stick to Alpha release mode until I have more documentation. I don't plan to stay in beta for long on Clay Framework. It is intended to be light so most of the new functionality will come from packages and tested from there. Hopefully by March i'll have clay-project.com up and running and begin building in some community features. Also sometime in March I hope to announce a big project that will give Clay some attention. My hope is that project will help drive Clay faster and further than its gone so far.
6:09 amMore Dev Environment Chan
Well, I finally got Eclipse set back up with git support. Pushed a few changes to github. Have been working on a major namespace overhaul on the framework and now Fedora has updated Eclipse. I can't seem to get egit to update and even the PHP code editing seems broken. Guess I'm going to try NetBeans. Its time like these I miss Windows and PSPad, but hopefully temporarily.
2:23 amSite Refresh
As I finish setting up the repos and testing the latest ClayCMS code, I'll be updating this site and launching the Clay Project site. I may do a full refresh of this site, depending how badly an upgrade goes (this is a very early version of ClayCMS). Its the first big test of my upgrade code, so I'm going to try the upgrade regardless. If the blog becomes emptier in the coming weeks, then you know what happened :)
2:16 amClay Project News
I've begun the project and repo changes on github, you can find them on http://github.com/clay. Sorry, I don't have links enabled since I haven't pushed the new blog app to the site yet. What I've done is create 2 new repos, clay-framework and clay-installer. These repos will be mostly for developers who do not use all of Clay. I haven't updates the clay repo on github.com yet, the old one is still there. What I'll be doing is keeping the repos updated individually, pushing and pulling updates as they come and merges. More repos are coming, but the main idea is to use the clay repo as a pool and merging changes into. The individual repos will allow transitions to come more smoothly and provide SDKs or a sort to developers. The hope from using all of these repos is to provide branches that go from slim to full to accommodate different needs for developers and users. Clay will end up being a suite that offers the functionality of the more stable packages and user contributions. My current contribution is ClayCMS, which is a package and libraries that offer content management features and applications.
After swapping development environments, losing almost 6 months work of Clay development code due to a combination of backups being auto saved to the wrong partition and the following hard drive failure (development code and backups were on the same drive, mistakenly), being away for a month, and some really busy work weeks, Clay is getting back in full swing. I'm going to work around the code losses and try to remember the changes as I push forward. I'm also setting up a private cloud on my hosted server and will be doing a reset of the git repository on github, with mirrors on sourceforge or google code. I messed up and didn't push a lot of changes to github because of the transitions the code was going through. I'm working on a repo strategy to divide up the project, probably resulting in up to 4 different repos to support the full Clay project. I've been wanting to do that for a while, it should allow me to have the framework separate and branch it in a way that will allow continued advancement. Tomorrow i hope to get new repos setup and possibly do some more organizing, but that depends on how much time I end up with.
I really only have a few small things left and I can upgrade ClayCMS on this site. The dashboard is my favorite new addition and the services functionality is going to be a killer feature to promote ClayCMS. Once the upgrade is here I can finish the Clay Autoboot package and begin launching multi sites. Then Clay will finally have a project web site and maybe it can see a little community growth. I have lots of ideas that will hopefully provide some inspiration for community projects with Clay.