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.
1:19 amWinter Projects
As the Summer here in the Great North winds down, I've been itching to get back into developer mode. I have several Clay-based projects I want to work on. I'm hoping to launch the clay-project.com website soon, with some nice project management features, including hosting for Clay-based projects. The site will use ClayCMS. I'm also planning on a relaunch of BeSquishy.com, starting out with a bookmark service and later expanding to a suite of more social oriented applications. My goal is to one day promote Clay for commercial applications as a free open source platform, so I have a few projects I want to launch on that front as well. Two of the projects I've blueprinted a little are a maintenance data system (for managing equipment and operational scheduling and workflows) and an online education system for distance learning. That may sound like a strange combination, but coming from a military background, they are actually tightly linked if you consider a maintenance environment. There are so many things I want to do and so little time. Fortunately Clay is stabilizing and I can focus on the fun stuff instead of writing apps for a system that wont support them in a few months. I think once that clay-project.com site is up and running you'll get a better idea of exactly how much I want to do with this platform I've spent so much time working on.