QCubed Server Migration
Folks,
We'll be migrating the qcu.be server - and all related services (Trac, SVN, etc) to a server kindly donated by Piranha Method. The website will be inaccessible for about 24 hours. We'll let you know as soon as that's completed.
Thanks!
-Alex and the rest of the Core Contributors
QCubed 1.1.1 and 1.0.2 released!
Folks,
I'm pleased to announce the refresh of both of our product lines: QCubed 1.0 and 1.1. As you know, QCubed 1.0 is a branch that's meant to preserve perfect backward compatibility with our predecessor, QCodo; on that branch, we only do bugfixes. QCubed 1.1 is heavily reworked and has tons of new features, and most importantly, supports plugins authored by the community.
Today, we're announcing the official promotion of QCubed 1.1 product line into our STABLE BUILD. QCubed 1.1.1 is the new stable build.
QCubed 1.0.2 is the "legacy maintenance" release. We no longer recommend building new production systems on top of it - use that release only to patch your existing sites. Build all new sites on QCubed 1.1.1.
So, what's new in the 1.1.1 release? A bunch of stuff! The details are in the changelog, but here is a sneak peak:
- Integrated jQuery 1.4 and latest jQuery UI bits, signifying our long-term commitment to the jQuery framework.
- Resolved a myriad of little PHP 5.3 and E_STRICT issues.
- Finally resolved all backward-compatibility problems with QDateTime::__toString(). This has been a contentious issue; we found a solution that made literally EVERYONE happy.
- Added a new little component, QTimer, that lets you do lightweight debugging. See it in action.
Go download these new bits and let us know what you think! And of course, don't forget about the plugins - there's 20+ already!
API Documentation Pipeline Created
Folks, I'm pleased to let you know that QCubed finally has an automated pipeline for generating API documentation. Without further ado: http://api.qcu.be. It's the documentation of the latest bits in the 1.1 branch; it gets regenerated nightly. Remember that it's not the "hottest" thing out there at this point (the design is not ideal, many classes aren't documented perfectly yet), but we're most certainly on our way to better documentation.
The old API docs site, http://qcu.be/doc/api/hierarchy.html, will be retired shortly.
Looking forward to your feedback!
Plugins pouring in!
Folks, it's been less than a week since QCubed 1.1 has been released, and plugins are pouring in already! I am SO excited to be a part of this amazing community. Just in these past few days, we got 5 new plugins contributed. We're already at 20! Check out the plugin repository!
One plugin that I'm particularly excited about is QFlot. It's a QCubed control that encapsulates an excellent jQuery-based plotting library, Flot.

Take a look at it in action: see how easy it is to create a bar chart or a time series chart.
QCubed 1.1 is ready!
I'm jumping out of my pants - that's how freaking excited I am.
The biggest project of this community, QCubed 1.1, a major functionality release, is now DONE. We spent over 6 months on this baby. And we are SO proud of what we got done as a result.
This project started as a humble effort to keep QCodo alive. We wanted to build trust in the community, allowing everyone to continue developing on this great framework - knowing that there's someone out there who can help troubleshoot issues and fix some most critical bugs.
We've accomplished that with QCubed 1.0 release series.
But now, the times are different. We want more - we want the QCubed framework to stand on its own. We want to leverage the enormous potential of the community of developers that built businesses on this framework - to let each pitch in with some of their code, because as we found out, lots of this stuff can be reusable.
We stood beside our biggest tenet: there MUST be multiple owners for the project. Not a single person should be in a position to slow down or stop the development, no matter if the fall under a bus and disappear into the ether. This approach, while slower than having one king-of-the hill, ensures the long-term survival and growth.
Today, this approach gives its first, beautiful fruits.
Without further ado, here it is: QCubed 1.1, download it here. There's a crapload of new stuff there:
- PLUGINS! There's already 15 plugins written by developers like you - and it's ridiculously easy to install those plugins, thanks to the brand new Plugin manager.
- Light integration of jQuery: it's now very easy to include jQuery into your project. Note that you don't have to include it, though (by default, jquery js files are not in your HTML).
- New directory structure that ensures security and provides for ease of future upgrades. Do expect some pain if you want to transition a QCubed 1.0 or QCodo project to 1.1 - here's a tutorial that explains the migration process.
- Configuration checker: a tool that runs when you first install QCubed and verifies the prerequisites, also helping you configure QCubed settings.
The full changelog is here, check it out. Remember that QCubed 1.1 is a development release at this point - we do not recommend using it for production systems. That said, the core contributors team is committed to iterating on it to actually make it production-ready.
We're looking forward to your feedback on these new bits! Thanks so much for your continued support! Leave us a comment here and let us know what you think!
.. or, if you feel like jumping right in, write a plugin for a piece of code that others might find useful - plugin creation process is extensively documented, and it's actually really easy. Intro tutorial is here, there are others linked from it.
Fantastic New Plugins
- QGoogleMap by scottux is a very easy way to embed a Google Map onto your QCubed application.
- QTabPanel by enzo offers a hot jQuery tabbing control (did you know that jQuery is another big pillar of the 1.1 release?). Check it out!
QCubed 1.1 Release Date + Dev Pushes every Friday
Folks,
We're thrilled to report that the core development team agreed upon the release date and a narrowed down set of objectives for 1.1. It is our goal to get the 1.1 code complete by August 1st. The biggest goal of this release is jQuery integration, the plugin system, documentation/examples, and overall refactoring to ensure maintainability. Many of these goals are already completed - as of today, 58 tickets have been resolved for 1.1; some require work still.
Here's the list of tickets currently open for 1.1: http://trac.qcu.be/projects/qcubed/report/9.
Do you want to help? We really need you to! Here are some instructions; we would appreciate any kind of involvement - bug fixing, code review, test, report bugs.. It all counts. Join us in the chat room every Friday; from now on until 1.1 is out the door, every Friday is the day of QCubed! :-)
At 8am Pacific Time every Friday, the team of core contributors will have a sync-up, discussing the plan of attack in the chat room. The remainder of the day is the QCubed Dev Day - fixing bugs, testing, writing documentation... Pushing the 1.1 release closer to done. Join us! We need your help.
A few new examples
Folks,
By popular demand, I've added a few examples to the QCubed 1.1 codebase - and in the process, improved some of the components that were touched by these:
- Controls in QDataGrids. Every week or so we have someone asking how to make it happen - there's now a tutorial about that.
- Moving the /includes folder outside of __DOCROOT__. Many QCubed developers have done this to increase the security of their system, or to share a QCubed installation between two applications. This tutorial explains how to set this up - really easy, by the way.
- Unattended install for plugins. There was a blog post about it, but I want to make sure it's all documented in the right / permanent place: in the examples site.
As always, I'm very much looking forward to your feedback!
QObjectDiff is now a plugin
Folks - a quick note that I refactored yet another component that doesn't quite belong to the QCubed core to be a plugin in and of itself. It's QObjectDiff - a plugin that lets you determine which fields have changed in a QForm since the user last saw it: which fields did they edit?
Here's the demo, and of course you can get to play with it yourself in QCubed 1.1 SVN bits.
The full list of available plugins is here: Plugin Directory.
As always, we're very much looking for your feedback on both the plugins, and the infrastructure - and we encourage you to try writing a plugin! It's really easy, and it's the plugin creation process is documented extensively.
QCubed 1.1: Plugin System Improvements + FCKEditor Plugin
Folks, I'm pleased to let you know that I've made some more improvements to the plugin system based on the early feedback from the community. In the latest SVN of 1.1, you'll see the following mods:
- Early plugin validation: it's easy to mistype the name of the included file in install.php... The plugin system will now tell you early that something is wrong
- Plugin architecture now allows you to register entire directories as components in your install.php file... If you want to see an example of how it's done, check out the install.php for QFCKEditor.
- QPluginInstaller error reporting system revamp. It was pretty broken :-).
- Automating plugin installations: there's now a file under _devtools that lets you do an "unattended install" of the several plugins at once, so that you don't have to click-click-click on the Plugin Manager. Just place any of the plugin .zip files under includes/tmp/plugin.install, and launch the assets/_core/php/_devtools/plugin_unattended.php file in your browser. That utility will attempt to install every one of the plugins in that folder, and give you detailed status on the results.
Also, you'll notice that the QCubed examples site now hosts the examples for all plugins.
And, the plugin repository now has links to the demos of all plugins.
Wait, I almost forgot - QFCKEditor is now a plugin :)
