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!
Tagged with: Framewerk |
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.
Tagged with: Framewerk |
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.
Tagged with: Framewerk |
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.
Tagged with: Framewerk |
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.
Tagged with: Framewerk |
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.
Tagged with: Framewerk |
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.
Tagged with: 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.
Tagged with: Framewerk |
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.
Tagged with: Framewerk |
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.
Tagged with: Framewerk |
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);