ColdBricks 1.0 Documentation

Well, its been an interesting few days after the release of ColdBricks. I am happy to see that it has generated a certain amount of interest in the ColdFusion community, and for what I've seen there was a definite desire to see more open source CMS solutions - I just say the more the better!

One of the main problems that people have pointed out in these days is the blatant lack of documentation for both HomePortals and ColdBricks. And they are right!! both projects can look a bit daunting without knowing what is what and where is everything. I've spent the last several months slaving myself over the code and really didn't had the time to focus on the documentation side. So now that the code for both projects is out in the wild I have tried to put a little bit of extra effort to produce at least 'some' documentation.

Thus, the first draft of the ColdBricks User's Guide is now available for download. This draft only contains the first three chapters of the entire guide. The chapters included are:

1. Overview 2. General Information 3. Getting Started

However this chapters provide a general overview of ColdBricks, its relation with HomePortals, how everything is organized and some quick reference guides on how to get to each part of the application.

This is a very early release and may very well have some typos and other bugs that need to be fixed, but I wanted to have something out quick for anyone that wanted to get their feet wet with ColdBricks. On the next few days I will continue working on the remaining chapters and publish the Guide when is ready.

The users guide can be obtained from the downloads area from the ColdBricks website.

In the meantime just play with it and have fun!

ColdBricks 1.0

So it's official, my new venture is now live and open to the public. ColdBricks is a free and open source content management system specially tailored for highly modular websites like portals and dashboards. The current version runs on ColdFusion 7, 8 and Railo 2 (still having problems with BlueDragon though).

[More]

HomePortals 3 Portal Framework

Well, after several years of going back and forth with this project, I finally decided to share it with everyone and release my little baby as an open source project. HomePortals is a framework or platform for creating and running portals in ColdFusion. Most of the features in HomePortals focus around modularity, reusability of visual components, and personalization.

Besides providing the framework, conventions and APIs for creating the sites, HomePortals also acts as a 'runtime' or 'rendering' engine. All pages in a HomePortals application are actually XML documents that describe the elements and modules to display as well as their layout and arrangement. The HomePortals engine is responsible for reading, parsing and rendering the actual pages based on the specifications of the given XML documents. This is a little bit like MXML in Flex, but in ColdFusion.

I have succesfully tested HomePortals in ColdFusion MX 7, ColdFusion 8 and Railo 2. I have not yet had the chance to try it out in BlueDragon.

I created a small site for this project, where you can download the framework, a sample application and find some documentation. The URL for the site is http://www.homeportals.net

HomePortals has an LGPL license, which means that the library itself has to remain open source and any changes have to be shared, but it can also be used by non open source applications as an external library or component of the application.

If someone wants to try HomePortals out I'd really like to hear some feedback.

Another related project I will be releasing soon is ColdBricks... but I'll talk about that some other time :)

Daemon Divertimento: Creating Background Processes in ColdFusion

I've been always fascinated by the idea of software daemons, like tiny green gnomes lurking in the insides of the computer just waiting to quickly and silently take care of multiple tasks. When ColdFusion 8 came out with the new CFThread tag, for some reason one of my first thoughts was if I could use this tag somehow to create my own ColdFusion-based "daemons". I wondered what would happen it you created a thread and fired it off on an endless loop, always checking for some condition or some occurrence to act on. Of course, after having developed ColdFusion pages for so long, the idea of an infinite loop in CF only brought images of chaos and servers crashing to my mind; however the curious and mischievous mind in me prompted me to just try it out and "see what happens".

[More]

Sneak Peek: ColdBricks

Well, I think is time for a first sneak peak of a project I've been working on for the last few months. The project name is "ColdBricks" and is basically a cross between a Website generation app and a CMS.

Here is a screen cast of myself using ColdBricks to create a simple "Start Page" application. If you don't hear any sound, don't worry, I didn't had a mic at hand; but I guess the video explains itself. Basically I log into the application, create a new site, open the site to mess around with some of the editing features of ColdBricks and then launch the site.

Stay tuned for more ColdBricks info in the following weeks...

CFImage and PJPEG Images

I am currently porting a website from classic ASP into CF8 and one of the features that this site had was an automatic generation of thumbnails; so I used the wonders of CFImage (and some caching know-how to decrease the performance hit) to implement this, but then I ran into a very annoying limitation of CFImage, namely the inability to handle certain jpeg images.

For some images, whenever I attempted to read them from the file system using CFImage I would get the following error back:

Not a JPEG file: starts with 0x42 0x4d
An exception occurred while trying to read the image.

The weird thing was that I could see these images in the browser without a problem, and they even appeared as regular jpeg images. Then I remembered about progressive jpeg images, which is a particular type of JPGs but are designed to be displayed as if the image quality increases as it is being loaded.

However pjpeg is not one of the readable types by ColdFusion, so after some tinkering around, I found an interesting thing and I'm not sure if this is a bug in CFImage or not: Reading one of these images using will throw the error mentioned above, BUT if I created the image using imageNew() passing the binary contents of the image file then CF creates the image object without complain!

So I modified my thumbnail generation script so that whenever it finds one of these unreadable JPG images, it will then read the binary contents of the image, create a new image using the image data and then overwrite the source image with the newly created image, resulting in a normal JPEG image that can now be read without problems.

The relevant part of the script is this:

<cfif not isImageFile(expandPath(href))>
   <!--- image is not a valid image file (for CF), may be a pjpeg file,
      so we will attempt to convert it to a readable type --->

   <cffile action="readbinary" file="#expandPath(href)#" variable="strFile">
   <cfset oImage = imageNew(strFile)>         
   <cfimage action="write" destination="#expandPath(href)#" source="#oImage#" overwrite="yes">
</cfif>

href is the location of the image in the site. Hopefully someone will find this useful.

BugLog 1.3 Out of Beta

This is a short post just to announce that version 1.3 of BugLog is now out of the beta phase and available for general download at RiaForge.

There are only minimal modifications from the beta release, basically some inconsistencies with the field lengths on the SQL Server scripts, but other than that the code is the same.

If you had any problem with the beta version and didn't report it before, let me know here or via the forum at RiaForge and I'll take care of it.

Enjoy!

BugLog 1.3 Beta 2

Well, I've been busy today working in a ton of fixes for BugLog 1.3 and have now a second release of the beta for 1.3.

This beta fixes issues mostly with MSSQL and also other things that I overlooked (damn those last minute changes!!!) and never tested properly. Also I fixed an issue with the MSSQL database scripts and also another one with the rules processor.

The full list of bug fixes:

• BugLog was looking for its config xml files using the wrong name (now both xml config files have the .xml.cfm extension so that hey are hidden from direct browsing)

• Formatting of table names was not working in MSSQL

• Code to detect CF8 when inserting records was not working

• The process of obtaining the ID of the last inserted record was not working properly for MSSQL

• The SQL statement that performed a search on the log entries was using date parsing functions that were specific for MySQL and MSQL was failing. Now it uses the appropriate functions depending on the db type.

• SQL scripts were creating a wrong foreign key relationship (only for the MSSQL 2000 and 2005 scripts)

• Rule processing subsytem was not updated to use the new dao layer

I want to thank Joe Danziger from AjaxCF for all the help in testing and reporting several bugs specially related to MSSQL code.

Here is the new beta, so feel free to download and play with it.

ExpandPath() : "/" vs "//"

I just discovered something rather curious that was driving me crazy. I was trying to use cfdirectory to obtain the files on the webroot directory using a variable named "path", which was supposedly set to contain the value "/" for the relative mapping to the web root. However cfdirectory was constantly giving me the contents of its own root directory instead of the webserver's root directory --really weird stuff!

After some inspecting I realized that my path variable contained the value "//" instead of just "/". I don't remember seeing it in any documentation but apparently, for the ExpandPath() function, the string "//" is sort of a shorthand for the ColdFusion's own root directory, while the string "/" is used (as expected) for the web server's root.

Just something to keep in mind!

BugLogHQ 1.3 - Beta Available

I've been working this weekend on an update to BugLogHQ, mostly to fix several issues with database access.

Here is the beta release for BugLogHQ 1.3. Download, unzip, try it out, and let me know any bugs you find.

The changes for this release are pretty much all internal to the functioning of BugLog; basically I re-did the way the application interacts with the back end data storages; also added some caching functionality that will improve the performance of the listener and finally made some changes to the main BugLogHQ application (yes, the one with the pretty charts :) ) to improve the performance especially when you have already a lot of bugs.

Enjoy!

More Entries

BlogCFC was created by Raymond Camden. This blog is running version 5.9. Contact Blog Owner