Since I finished making Clay Framework/ClayCMS PHP Strict Standards compliant, as my goal was for this next week, I have a few more goals. I still want to work on the Blocks system, but I need to work on the manuals some more and at least document the recent changes. Off an on I will probably work on changing CF's namespaces to match the folder structure. That is something that will be done in a separate branch, so it wont affect anything else until it's time to merge the changes. I also want to work on the Services Manager and Privileges Manager. Those are going to be lengthy projects, so the more I can hammer away the better. Still lots to do. I'm sure I'll think of other things to work on too, I think it is getting time to do a code audit again and make sure everything is still good to go. I want to have some releases very soon, at least of CF, perhaps even ClayCMS at this rate. At the very least I would like to get ClayCMS worthy to push out onto Github.
I worked on the Dashboard some more last night. I added the System app service hook and it has a few options I'm working on still. It will be where you set system settings, such as Theme, default Application, Site name, slogan, copyright info, etc. It also has a section that displays information about your PHP/Server, using phpinfo().
I finished my goal for the week of making Clay Framework/ClayCMS PHP Strict Standards compliant. There wasn't alot to fix. The major change from that was I split the template() method off from \application\object and added a Static method to \application. It complicates the code a little more, but provides better way to extend the template engine as well.
I set up a temporary fix to the HTML filter, so it should make it's debut in the next site update (within the next week - according to my bi-weekly update goal). It affects performance a little, which I hate, but I guess it's a necessary evil. From initial testing, it adds about 0.05 seconds to load time, which isn't much, but is taking me above me goal of 0.1 seconds max (around 0.13). I'm hoping to find a speedier solution. Right now it validates the HTML, makes sure it is structured properly (starting/closing tags, completed attributes, etc), strips unallowed attributes from tags, and strips unallowed tags. That's quite a bit, but it is dealing with something that must be handled safely.
Windows 8 isn't that bad. The Metro UI is a pain, but once I realized what the keyboard shortcuts were it became kind of convenient. I just had how they basically made it another desktop, instead of combining the regular desktop and the Metro apps seemlessly. I set up a couple of share drives in a few minutes and now the wife and I each have about 300Gb of network storage to play with (with another 300Gb still unpartitioned). Remote desktop on Linux always seems to be slow as mud for me, but Windows 8 is extremely responsive. It's very fast anyway, but I can't tell a difference between remote and physically sitting at the computer. I remember when Linux ran faster on that computer, but Windows 8 can hold its own in performance. Granted, it is pretty much a bare install, as I'm using it as a file server. Anytime I've ran Linux on it, it would be running several databases and servers on top of whatever I was working on.
I worked on the Dashboard some last night. I've been working on getting administrative features in the dashboard. I have the Application manager (add/remove) and the beginning of the App settings manager (settings for all apps). I fixed a few display bugs in the dashboard that didn't show up until the layout was pushed a little (the Apps manager uses a grid to show/categorize the apps). A lot of CSS changes back and forth and back and forth, most of it ended up being fixed with a simple "right:0;" haha. The content was flowing well beyond the right edge of the screen and sometimes would jumble up instead of extending the height of the page. The dashboard just opens at the top of the page above the current page and that makes the positioning a little trickier. Mix in several different style sheets controlling the same styles and things get confusing. Anyway, I had a nice CSS refresher after not using it that much the last year or so. This week I plan to finish the Apps Settings and begin working on the System administration portion. I'll probably work in a few Blocks experiments as well.
Until recently Clay Framework was unintentionally suppressing PHP errors, which meant I missed a few little coding errors. I figured out why the errors were suppressed, so now that is fixed, it's time to fix the errors. My goal for this next week is to make CF PHP Strict standards compliant, which means there are no notices about coding style. PHP has for a long time been a very non-strict language, but it is transitioning toward strict and that is a good thing. When I enabled E_STRICT error reporting earlier there were only a few things I had been doing that threw the non-compliance notices. Unfortunately those few things were rather prevalent in the code base. I'll chalk that up to learning and adapting. They should be easy fixes, it'll just take some time to replace it throughout the code base. I guess pursuing Strict compliance is at least better than ignoring it.
So I installed Windows 8. The installation was fast and had very few options. I let it run for about 30 minutes and when I came back it was ready to create an account. It gives you the option of signing in with a Windows Live account (email address), but Live.com appears to be down for maintenance so I haven't tried that yet. The metro desktop is, well, I don't like it. It's a pain to multitask and as far as I can tell they just dumbed it down to the point my 3 year could use it. As far as I can tell, from 10 minutes of using Win 8, there's no easy way to close a Metro App. I had to use the Task Manager, which has had a decent upgrade. Everything is full screen, one app at a time. The good thing is there is still a regular desktop, but they aren't tied together and the desktop seems to just be for accessing the file system and things like that. There is no Start menu. So, after 10 minutes, I don't like it, yet. It's free (right now) and I can finally use my 1 TB hard drive for network file sharing, which I could never get to work with Windows 7 Home and Fedora. It's free, I can use it for network storage, and, well, it's free.
The Windows 8 'Beta' was released yesterday. I had been trying Fedora for the past 6 months or so. I was growing tired of Gnome 3 and had considered buying a copy of Windows 7 or going back to Ubuntu. When I saw Tuesday night that Windows 8 preview would likely be released on the 29th Feb, I decided I'd give it a shot. It's free and it doesn't expire until Jan 2013 (estimated).
Since I am finished with my goal for the week, already, I think I'll spend the rest of the week working on the Dashboard and on a new Blocks system. By Dashboard, I mean adding support for the Dashboard to applications, so I can actually manage settings, users, privileges, applications, etc through the Dashboard. The blocks will be an ongoing experiment, but finishing that should be a goal for an upcoming week soon. I'll probably spend a little time working on the CF documentation as well, if I have time.
I've uploaded the newest ClayCMS theme here. It's called simplestyle_4, based an HTML template of the same name. There is a link in the footer to the site that offers the template. I'd like to design a new theme myself, but this is still a huge step up from what I had on here before.
Working on themes always makes me think of Blocks. I think a blocks system will be in an upcoming Goal Week very soon.
I've been working on my new theme for Goal Week. It's based on an open source template, since I don't have time to entirely design one myself. It's looking really nice and already puts this one to shame, which I did design. Of course this theme, named empty, is supposed to be an example theme - simple and to the point. I think I spent all of an hour putting it together and most of that was improving application templates. Anyway, I've spent a few hours adapting the open source template I downloaded and it should be ready in a few days. I'll probably put it on the site once it's finished (which is relative since nothing is ever finished).