Clients
L&M Realty Group - nmhousesearch.com

Blog

16 May 14

6:51 pm

Clay Framework Development

Unless you've been following my blog a while, you may not realize there are 2 hierarchies of Clay: the underlying libraries and modules that make up Clay Framework and then the feature level, formerly known as Clay CMS, simply called Clay. Early on in devleopment I would maintain them separately and pull updates into Clay. Over time I stopped maintaining both and began using just the Clay codebase. Once Clay reaches 1.0 status I will trim it down and release the framework as well. This is important because I will then begin moving the framework toward 2.0 and the process will start all over with 2 codebases. As I get closer to 1.0 I can't help but think of what needs to be added or changed. The plans for development of Passage will bring in a whole new dimension to both. It will require a new REST api and several template engine changes, plus some other major core changes. I also hope to build in composer support and a built in code management system. The code management functionality will be split between the framework and the Installer package of Clay. The goal there is to provide a scaffolding system for creating sites and applications, while also providing a built in IDE. Only time will tell if all of that makes it into 2.0 though.
Read

13 May 14

5:03 pm
One of the side projects I'm working on is a github integration tool. Along with showing an activity stream I also hope to build in a change log generator for releases and a hook to create digest blog entries. Just a nice feature to have, but it's also a way to test Data Objects while I build that as well.
Read

05 May 14

2:24 pm

Clay Release Schedule

By the way, I hate doing this, because I never seem to make my deadlines, but I'm doing it anyway.

Clay 0.9.50 to be released on 1 August, 2014.  

Followed by some minor releases and bug fixes.

Clay 1.0 to be released on 1 January, 2015.

There, I set a goal.  Clay 0.9.50 is the milestone release for Data Objects, followed by integration releases and whatever fixes are needed.  I hope to do a release a month from August until the 1.0 release in January.  
Read

2:15 pm

Data Objects: Building Structure

I've been working on Data Objects quite a bit lately, mostly planning, but some code as well.  The idea I have of DO has changed over the years, it started out super complex, then I slimmed it down to a simple library - used to implement my forms - and now, it's going back somewhere in the middle of the two.  I'm beginning to remember why I pulled back and decided to go toward a plugin system first: Data Objects, in it's original idea, is a beast.  It's a gentle beast, but a beast nonetheless. 

I've decided to skip the kid stuff and make it what it was originally intended.  What I've come up with is similar to my original notes, but with a little experience mixed in.  I'm still experimenting, so I don't want to go into to too many details just yet.  The goal has always been to use DO to simplify application development and it's looking like I'm on the right path for that.  I will try to put up a flow chart of how I envision DO to work within applications and display how they should simplify development.  

On a final (if lengthy) note, I want to make something extremely clear.  While inspiration for Data Objects came from Xaraya and perhaps even Drupal's nodes in some ways, Data Objects in Clay have never been intended to replicate DynamicData or Nodes.  Nodes (Drupal) provide an interface to hook in content and provide user input, in it's simplest form, while DynamicData (Xaraya) was intended to extend application (modules in Xaraya) functionality.  I think the problem with both of those is they accidentally discourage application development.  Xaraya was by far the biggest victim of that, as the Articles module (and later the xarPages module) could easily be turned into anything by hooking in DynamicData and editing a few templates.  It was great for the user, but not so good for project growth.  The hope of Data Objects is to provide structure for applications and a means for applications to extend one another.  If all goes well, Clay wont need Plugins or Hooks, you'll simply be able to attach a Comments object to your Blog application object and you'll have comments on your blog posts.  The end all goal for Data Objects is to be able to design an application from the UI, save it, then export it or install it, or both, and use that application to extend the abilities of another.  There will always need to be some development involved, unless everything is just generic, but the end all goal is to encourage application development and make it as easy as possible. 
Read

06 Apr 14

2:13 pm

Gearing Up

I'm gearing up to start work on Clay again.  I had a false start about a month ago, but I've been updating all of my development software today and doing a code review.  It's hard to believe you can forget how something works when you actually made it...  

After delaying my Data Objects implementation to wait for Clay 2.0, I've decided to go ahead with it.  I may or may not finish Plugins, depending on the performance impact of DO.  This decision is based on my lack of development lately, as well as implications for the BeSquishy.com project.  Data Objects will allow applications to run as instances, instead of as stand-alone entities as they do now. It makes a site a little more complicated to administer, but it also opens up the possibility of having multiple web sites running on a single installation of Clay, not just multiple site installations running on a single code base, as we have now.  

I hope to get Data Objects finished rather quickly, implement the menu system (which will use DO), and get it all released. There's a lot more to it than just that, but I'm trying to focus on those three points.
Read

10 Mar 14

5:49 pm
My plans for BeSquishy.com are to offer two different types of services that will hopefully transform the way we think of social media. The first type is much like self powered hosting services already out there, like Wordpress. The difference is an ability to network the individual web sites into social networks that are connected by protocals instead of physicality, fundamentally changing the meaning of the user base. The second service opens up this protocal to be used by any web site with a public ip address. Sounds fun right :)
Read

4:57 pm
I'm hoping to have a Clay release ready soon with plugins ready. From there I dont plan on making a lot of changes to the code base before 1.0 and spending some time pushing out applications. The plugins are a critical piece to reaching that 1.0 milestone.
Read

09 Mar 14

6:34 pm
It's been a while since I blogged, so here ya go. I've been too busy with work the last few months to do much else. That should slow done soon so I'll be around a little more often. I'll be working on Clay again and working toward 1.0 again. I will also be working on a closed beta of BeSquishy.com. I'm hoping that will help push me to finish Clay. It will be used as a web service to compliment Clay and provide professional services built using Clay and Passage.
Read

09 Aug 13

4:00 pm

Clay Status Update

Unfortunately, I missed the July release deadline for the final Clay 1 beta. I'm working on a new road map revision, but I'm hoping to just push it back and month, along with a few adjustments to the milestones. July was a very busy month for me and I was just not able to put the time into Clay that I needed to finish the last beta. It happens.

I'm hoping to finish the Plugins (hooks) functionality and release it whenever it is ready, sometime in August. As I've stated before, Clay 1.0 will be kind of bare in apps and themes, but that just gives it room to grow into 2.0. I'm hoping to have several content apps available by the 1.5 release, which will be the divide into 2.0.

I would have probably had the Plugins functionality closer to completion, had I not been remapping some integration concerns I've had down the road for the Objects application and Data Objects module. Plugins in Clay work similar to plugins for a browser or other desktop applications.  Plugins in Clay allow you to plug in a specific feature offered from one application into another application, such as comments or a hit counter. Data Objects and its front-end, the Objects application, are similar, which has often tempted me to skip the plugin implementation altogether. I've mentioned Objects before, but in a nutshell they are a mixture of container objects and functional properties that can be stacked as needed. An example is a form, where the overall form is a container and each field in the form is added as a property.

The current plan to is continue implementing Plugins and to implement the Objects functionality as a plugin. Eventually, a lot of the functionality now offered as Services will be moved to either Plugins or Object properties and Services will become a lower level background facility.  It's all a progression of implementing new features and migrating current functionality into better suited facilities as they become available.

With school, work, and a family, it's difficult to put as much time into Clay as I'd like. Some help would be nice though.
Read

22 Jun 13

5:50 pm

Clay 0.9.20 Released

I am pleased to announce the latest release of Clay, version 0.9.20.

Download it from our Google Drive here.

This release features a new upgrade tool, built into the Clay Installer. It is the first release that allows a direct upgrade from the previous version. To access the upgrade (or install Clay) go to install.php in a browser. If you are upgrading, an upgrade link will display next to the Web Site Configuration name. 

This release includes several fixes and enchancements, including:
  • Clay Installer fixes
  • Clay's Installer Package now lists all modules and applications affected during an upgrade
  • Several modules and applications were correctly associated as Core items in their info files
  • Sessions data field updated to TEXT instead of VARCHAR (bug fix)
  • Added Plugins module and application (not fully implemented)
  • Added a stylesheet for the pager
  • Performance updates in the Dashboard
  • Performance updates in WYSIHTML5
  • Autoboot Package bug fix (critical)
  • Optimized Privileges module (data caching)
Check out the release and let me know what you think.
Read