Crazy Framewerk Changes

Posted on August 14, 2007

In working to optimize Framewerk to run on a site as large as myYearbook.com and our related sites, we've found several bottlenecks which we're now working to resolve. Some of the bottlenecks can be attributed to our hardware; for example, on our very cool Isilon NAS setup, there is a NFS penalty for file stat operations, and the Framewerk engine does its fair share of file stats.

As part of the cleanup we’re doing the following:

  • Adding a base level fFile class which will allow for transparent engine level caching using Shared Memory functions (shmop).
  • Unifying as much of the XML subdirectory into one file. fRegistry has been completely rewritten to allow for nesting and arrays of nodes to support moving configuration.xml into registry.xml
  • Caching maps of file locations that are used both at the base level class location and at the fTheme XSL, CSS and JavaScript auto-location detection routines.

In part of gearing all this up, and wanting to get Framewerk to a releasable state, the development team decided that we would pare the distribution down to a core framework without applications and to remove any database dependence for the core framework. The applications are not going away, they are just being moved to a satellite project level. As part of the base installer, the user will be prompted for their requirements, such as should database support be installed, what kind of user backend should be installed, if any, etc.

In addition, one of the ideas being tossed about is to add a function hook mechanism to fObject and fSingletonObject classes.

As such, the trunk of svn is once again unstable, but should become stable enough for a beta real soon. Keep an eye out for updates!

PrivatePaste.com Site Updates

Posted on January 05, 2007
I've coded a new version of PrivatePaste.com using the Framewerk engine.  New features include encryptable and expiring pastes, pastes by hostname and file uploads.

Out with the old, in with the new

Posted on June 03, 2006
After maintaining the same blog index, images, videos, etc for a few years, I\'ve decided it\'s time for a fresh start.  I\'ve setup a new instance of Framewerk and I\'m currently working on a new design and populating the new site.

Unfortunately previously linked content will no longer be available, and I have no intention of making it available.  I will be adding a new gallery system for my photography and will make it full of web 2.0 ajax goodness.

Synced Against SVN

Posted on February 06, 2006
I've synced up my site to run against Framewerk SVN HEAD once again, so this is the lastest and greatest.  One of the new features is direct FCKEditor integration for file uploads of Images, Links, and Flash.  This is achieved through the TFileStorage class which stores data attributed to the objects that instanciated it in the database.  TFileStorage is meant to be a universal in-database file storage mechanism.  It has been also been implemented in the CMS Images area where previously the CMS stored the images on its own.

Valencia Hills Community Church

Posted on December 30, 2005
I've finished with stage one of the redesign and reimplementation of the ValenciaHills.com website. The next step will be to implement the PodCast sermon downloads and go through and setup some specific sections for the different ministries.

TLadder - Lazy Add, Edit, and Remove

Posted on December 23, 2005

Sure the acronym is cheesy, but I just committed to SVN an object that automatically builds administration back-end interfaces by passing a table name to it. Sure the screenshot is a bit simplistic, but it can handle 4 different types of fields right now, and I will be adding support for additional field types. It works by querying the table structure and dynamically building lists and forms. It is aware of the primary keys, non-nullable fields, and the like.

The TLadder object requires only two lines of code to use, though you can always use overrides to make things look nicer. To use TLadder one simply does: $ladder = new TLadder('table_name'); $output = $ladder->build();

Future plans include migrating the interface to use XSL for display, adding additional field type support, and adding support for foreign key auto-detection and turning fields with foreign keys into drop down fields with the contents of the dropdown populated from the foreign key data.

XMLRPC Weblog Ping Support

Posted on December 15, 2005
I've just completeed adding genetic support for XMLRPC weblog ping support for Technorati, Ping-O-Matic and Weblogs.com and Yahoo! Blo.gs. When enabled, it will send out a ping every time you post a new article letting these services know you have new content on your weblog / articles section of your Framewerk powered site.

Google Maps, meet Framewerk

Posted on December 13, 2005
Jumped into the Google Maps API today and came up with this. By taking the city and state location from the user data it gets the latitude and longitude for each users city and then adds those users to the map. I'll be adding this object to the Addons repository.

New Website

Posted on December 05, 2005
Out with the old and in with the new. I've finally decided to retire my old site and start over with a new one. This is pretty bare for now, but I will be migrating the photo gallery and maybe a few other features into this site. I'll probably end up retiring the pgsql.gavinroy.com site as well in the near future and roll the items there into posts here.

This new site is running the SVN HEAD version of Framewerk in it\'s near beta state. We have approximately 20 open tickets right now and are making progress daily. I\'ve been working on new Docbook formatted, XML based documentation using XSL:FO and apache fop 0.9.

I\'ll be adding more blog like capabilities to this in the near future with both the ability to comment and for trackback entries.

Switch to PHP 5.1.1 Now

Posted on November 28, 2005
If you needed a reason to switch to PHP 5.1 besides Framewerk, how about speed improvements. In some testing I'm doing right now on the use of single vrs double quotes and such, I've found that PHP 5.1.1 is up to 3 times faster than PHP 4.4.0 on the same hardware. That's a significant speed improvement if you ask me. More details to come.

Gentoo 2005.1, MySQL vrs Oracle, PostgreSQL 8.1 and Random PHP Stuff

Posted on October 12, 2005
Anecdotal stories about installing Gentoo 2005.1, a bit on Oracle's purchase of InnoBase, PostgreSQL 8.1, and what I've been working on this week in PHP.

#2 - OS/X, PDO, and Framewerk

Posted on October 01, 2005
In my second podcast I cover my impressions of OS/X after using it for six months, PHP's new PHP Data Objects, Framewerk, tracking down segfaults in PHP, and a new website project idea.

Framewerk TUser

Posted on September 28, 2005
&tLast night I added what I think is one of the cooler features in Framewerk last night. The TUser object when initialized with an id or username in the constructor loads the user data as attributes of the object. If you change them, it will automatically save them when it's destroyed. If you initialize by passing nothing to the constructor, it creates a new user. If you update the attributes, it changes them, if you don't, it just removes all reference to the new user. It makes for very easy interaction for dealing with user data.

// Return a formatted user name and email
$user = new TUser(1);
echo $user->returnFormattedName() . "<br />";
echo $user->email.
unset($user);

// Add a new user
$user = new TUser();
$user->username = 'testuser';
$user->email = 'some@email.com';
unset($user);

October already?

Posted on October 01, 2004
Wow does time fly! Not a lot new on this end, Michelle and Eden are visiting her family in Idaho for a week so I've been hanging around the house by myself. Wow it feels big and empty! Last night I watched Eternal Sunrise of the Spotless Mind with Jim Carrey. It was a great movie, one of the better movies I've seen. It's told very well, the directing and cinematography was great, and the story was cleverly told. Thus far I've been fairly lazy with my alone time. I think I may end up working on the house this weekend, I'd like to have the house fixed up in unexpected areas for when Michelle returns. Framewerk is coming along nicely, have had new outside interest, and several sites are being setup using it. It's been exciting to see how it's received.

I've been really stuck in a music rut lately listening to only Modest Mouse and Pink Floyd. I did buy the new Queen Latifah - The Dana Owens Album release, and Les Claypools Big Eye in the Sky. Both are pretty good, they just haven't grabbed me, that is they make good background music. Now before you go "Gavin, you bought a Queen Latifah album?" let me preface that it's not a rap album but rather an album of various Blues and other covers. She's got a great voice.

I've been enjoying my photography and camera, but I sure wish money wasn't an object so I could get this bad boy. I got a request on DeviantArt for a large version of one of my prints which is pretty exciting. It will be my third print that I've sold.

New Progress on Framewerk

Posted on July 23, 2004
I made some good progress on Framewerk v2 overall in the past week, despite being sick yesterday :). If i'm able to keep up this pace I should have a version will a full working CMS, configuration editor, permissions management, and user management by the end of next week.