11 Feb 18
I've been really busy lately, so I haven't had time to work on Clay or many other projects. I did manage to get in a little work on Clay 2 this weekend, mostly in the installer. I've rewritten a lot of the configuration handling and cut out quite a bit of almost duplicate code (code that isn't exactly for the same purpose, but functions the same). Once I have the installer working, I'm going to finish Clay 1.3.0 and try to get it on the site.
Since Clay 2 is based on 1.3, instead of 1.1 like we have here, I have to make sure the upgrade path here is compatible with Clay 2. Clay 1.x officially ends with 1.3.x, so the current build of Clay is actually 1.4 (confusing, I know). What that likely means is, eventually, I'll upgrade this site to a pre-2.0 version, but it'll be from the 2.0 repo. That will likely be around 1.7, which is the first planned beta.
I've never managed Clay this way, but it is allowing me to make the next major version really different from the previous, so I'd say it's working. With the changes we have planned and only supporting the latest version of PHP, Clay 2 will be one of the most modern and cutting edge CMS' around.
21 Jan 18
I have the new template engine working in Clay 2, it's based on the one from Clay 1, but also is fairly different. Clay 1 uses the application object for all templates, including the theme. Clay 2 has it's own class for the theme and templates, which makes the code easier to read and understand context in templates. This of course means, for the first time, there is no backwards compatibility. Clay 2 is already much smaller and uses 1/10 of the memory Clay 1 uses now. Most of that gain is from having smaller application objects and less overhead with a new configuration module.
14 Jan 18
I've been working on the Clay 1 rewrite to Clay 2. It's going to be significantly different. Clay 1 was rewritten so many times that a lot of spaghetti code crept in over the years. All of that should be resolved and Clay 2 will be much easier to maintain. I'm also dropping a few low-level features, such as the standalone installer and it's packages. I wish I'd known that last month when I converted the Installer to the new front-end, but I'm sure I can transition some of it to the new system, it'll still need an installer.
Clay 2 will be configuration driven, just as Clay 1, so it's mostly implementation changes and not necessarily philosophy changes. I'm still following my own line, it's not a copy of anything else out there. Hopefully it'll work out as planned right now, because I already love the simplicity forming. I thought Clay 1 was simple, but I've been told that was because I lived in it for 10 years. Clay 2 is actually simpler, more modular, and has a smaller footprint.
I will be developing and maintaining Clay 1.3 for as long as is needed until Clay 2 gets here. This isn't one of my year long rewrites without an update, Clay 1 is still alive, I'm just starting on the next chapter as well.
09 Jan 18
I created a new private repo for Clay 2 today. It will be a complete backend rewrite, with a new file structure, namespaces, installer, and strict types. The frontend will be based on Clay 1.3+, everything else will be touched in one way or another, and it'll like it.
07 Jan 18
The fan on my aging laptop is dying, so I ordered a new fan and decided to do some upgrades. I've installed SSDs for several people, including my wife's laptop, but I was running an OEM HDD, mainly because the thing just won't die. Well, one of the upgrades is SSD. It's amazing how much faster it is. I'm also doubling my RAM (to 16gb), but it hasn't arrived yet. I'm kind of questioning the need for it now, but I have ran at 80% usage before, somehow. Maybe the upgrades will breathe some new life into some otherwise aging hardware. I should have switched to an SSD a long time ago. I used to always switch out OEM RAM, but when I bought the laptop it was the fastest computer I'd ever owned.
This is the first time in almost a decade I haven't had dual boot with Windows and Linux. I rarely boot to Windows, but I like to have it if I need it. I may just run a virtual machine with Win10 if I need it now.
I bought an external enclosure for my old HDD, mostly intended for backups. No use wasting a drive. If you haven't made the jump to SSD, it's definitely worth it.
02 Jan 18
Documenting Clay has me thinking about improvements beyond 2.0. I have a while before I get to 2.0, but I like to look ahead; I like to know what I'm writing will eventually look like. Originally 2.0 was supposed to just be front-end updates. I shifted some of the 2.x updates to 1.x because I finished what I had originally wanted to call 2.0 so quickly.
While that all means 2.0 will take a little longer, it gives me an opportunity to make 3.0 even better. For 2.x I will be rewriting a lot of the base classes that make up applications and themes, using their object models more effectively, and recreating a debug layer that will give a developer a better understanding of what is going on behind the scenes. The debug layer hasn't been updated in years and is now only helpful if there is an error. My plan is to give developers a visual demonstration of the data flow and a profiler that gives them insight in how things are working behind the scene.
This will all be possible by moving the data flow out of the current array system and into a central template data object. That move will also shrink the application object and the amount of logic required to determine output. Finally, it aligns better with the features I'm building into 1.x for 2.0 and simplifies template data overall.
I have to finish these docs and 2.0 before I can move on to that, but I should have a good plan when the time comes.
01 Jan 18
I've been adding documentation to Clay, it's way over due. My goal is to have a readme file in every folder and then a readme file for at least all of the files in the Clay core. I dug up some of my old docs to see if I could use any of them, unfortunately I've rewritten Clay so many times most of them were obsolete.
While documenting Clay I'm also updating code comments and running a generator to document that way as well. I prefer inline comments, which generators don't pick up, so unfortunately it won't replace the need for readme files. It does however give a more verbose view of how Clay works, so I see an advantage to having both.
My goal is to document all of Clay, which will take some time. It'll also give me a thorough code review, so as always, docs are worth the trouble.
30 Dec 17
I updated ClaySS to use iotaCSS 1.5. I'll probably update to the latest version of iotaplate soon, but that's a little more work so not sure when I'll get to it.