Learn about the online Game. Check out the Army's new interactive PC game. Its free!
Learn about the online Game. Check out the Army's new interactive PC game. Its free!
It is the most powerful rapid application development web-based server available.
It just happens to be open source and free!
My project, PHPortal, is a PHP replication (not scale just scope) of Zope as a homage and to spread the word. Mainly also to provide something similar for web shared hosting accounts.
Zope has so much coolness that after 5 years playing with it I have yet to discover and completly get my head around all of its awesomeness.
Zope's widespread success has to do with its; a. learning curve, b. accessibility.
Solutions are more widespread shared hosting account support for people to easily and affordabily use it for real-world purposes.
The learning curve is definetely coming down. A good idea might be for Zope to trim the entire interface, not just a skin but a toned down management, simpler the better, minimalize and make it a bit hipper looking. Zope lacks a nice interface it looks too much like a file folder system than a purposefull application.
Beleive it or not most people want something for a specific purpose sometimes doing too much is not good.
A easily repurposefull management interface for zope (not just skins) that are application specific (Zope that does one thing, not back end focused, user interface usage focused) i.e. a complete help desk solution, knowledege base, news application etc.. would make the clamor for it also much greater.
The goal I beleive should be to embed Zope greatness for easier, quicker, more purposefull distribution and use.
Now, I know this can already be done to Zope easily, which is good, but it isn't done enough, known, or shown. Complete Zope Application specifc management Interfaces examples of use.
For example, being able to ship a Zope that is all ready to be used to manage an employee directory both front and back end. The managment for the above should also be focused and designed specifically for that use.
In other words a Zope man interface for non-developers and a specific use.
Also, I am sure when it is made clear how to do the above easily many developers would be happy to create Zope repurposed app-specific UIs that can be distributed at standalone costs for Zope Corp or each other.
My other project, Xpc, is a JSP replication because I like the developer focused templating layer of the XML custom tags and the Java Bean components as well as the compilation of the templates. Again same reason to bring this functionality to the large number of shared web hosting accounts.
I believe the core (low-end) internet users (regular paying users) are those who pay anywhere between $5-$30 / month for a shared web hosting account. That is the core audience for web developer products and services. From real-time weather, stock prices etc...
The high-end paying internet users are the big cash cow corproations anyone in the fortune 500. They have much greater technological needs and are willing to pay for two things; 1. ability, 2. support.
Whomever can provide those two things the best gets the customer, price is irrelevent for the big cos in regards to technology since it is so amorphous, they care more about support services and out of the box capabiltiies that they seek.
Now here is where the intersection occurs.
The webmaster in the low-end gets a job at the high-end customer, he can then influence from the inside-out purchasing due to his personal experiences. It is kind of like embedded advertising.
As I getting ready for this month's PHPortal version release (0.2.7) I am already gearing up for the next month's dev run.
I am hoping to finally start into object model arrays as abstraction layers to programming to enable independent workflow processes that are interactive and wholly dependent on each other.
The first shot at this will be with web user interfaces specifically with regards to management interfaces for template tools.
Template tools include:
1. Template Parser
2. Template Compiler
3. Template Editor (wysiwyg html editors, xml wysiwyg editors, template placeholder form editors)
4. Template Mapping
5. Template Layout Control (placeholders, editable regions)
6. Template Layers
7. Template Sets (themes)
8. Staticize Template (generate static versions)
Template layers and their workflow processes is an unusually unmentioned yet important topic in large organizations.
This article "Template Layers and workflow processes" explains in greater detail the concepts behind the template management tool Web UI I am creating with an abstraction object model array layer.
This again delves into Montros.org theory if not a bit prematurely.
Later I will write about management interface shells and the best way to make them. A few focus points will be replication, usability, and navigation.
This is not about security nor about even what we will use the management UI for that is why it is called a shell.
I will literally be discussing the finer points in the creation of management web UIs in a very generic manner not specific to any purpose of use.
I will learn C# and dot NET this week. ShardDevelop is pretty cool even though it ships with absolutely no samples.
Visual GUI creators with no samples is like shooting for fish in the atlantic.
This brings up the great learning curve issues with repect to learning new languages.
"Do not call us violent or we will kill you!"
I installed my beta database caching class and integrated it into the PHPortal db abstraction layer as a optional mechanism needing manual on and off calls.
This is Smart Caching for database recordsets but my version 1.0 that i'm running local is much smarter.
The beta smart DB cacher is smart because it is not timed based caching instead it is action based. A select statement is retrieved and or cached. All other table altering statements delete any db.table related cached queries that exist.
It is smart since it is not time based, it is usefull to enhance database load performace, but the 1.0 is still better because it is not based on db.table but instead on the actual queries and rows affected so it is more of a performace enhancer than just db.table specific to be db.table.row specific in Smart Database Caching.
The main reason I haven't integrated the 1 is that the layer I use local is different than the PHPortal one. The version 1 requires complete query parsing which on my local db layer is easier than the PHPortal one for one simple reason my local layer uses arguments to form queries isntead of the regular raw reception and execution. A real DB layer should never accept a raw query only arguments that each layer will form independently into the query that it executes.
This and the template compiler and template app tools (template 2 static, template sets, layout control, template mapping etc...), the PHP JSP replication class template class compiler and other new innovations I created this past month are all culimating. In my next dev runs I hope to spend some focus time back in the facing realms.
I still have several small fixes before my monthly version release of PHPortal (0.2.7). This release is not as big as the two - three previous but definetely just as important as the rest.
Off the top of my head some of the changes include:
1. New local centralized non-active-x help system as compared to the previous remote active-x one.
2. New Vhost object type to allow for virtual hosting so you can administer more than one domain within one administration UI.
3. First stab at associating tables with objects instead of the common object referencing. Big advantage instead of each object being referenced to another table row we can associate an entire table with one object row.
3. Template compiler, caches parsed templates as native PHP scripts for performance boosting. Haven't yet attempted it within raw templates (from var strings) as compared with flat file names mainly because it is clearer to automatically tell if the template, when static, has been updated past the compiled file date. We have a DB object modified date propertu for checking raw templates and it will be implemented just haven't tried yet.
4. Added events for copy_Object, cut_Object, and paste_Object. Might be useful to create import and export events as well that can be handled by the requested object and or type.
5. Db caching has been added but won't be fully integrated into the core until the next public release (0.2.8).
6. The initial testing for URI Method stacking has begun by allowing objects that contain Path Info data and are of type folder to be handled by their app. It may sound a bit confusing and it still is fresh to me too but this is already helpful and used by the new HelpSys object and all of its corresponding object types. Method stacking is similar to Object referencing that is normally done inline within a Object type container (i.e. Document type) except all by a URI. such as /about/printView If printView is a method object it is called after the about object is loaded and before any output is returned to the user. Multiple methods are allowed and all are based on the requesting users access permissions settings.
7. Initial Windows testing has begun and PHPortal should now be able to be auto-installed on them too, still requires htaccess, php 4.2x, and mysql 3.23x.
There are still a couple of major developments that PHPortal has not yet implemented that need to take place before an initial version release, we are still beta. Such as, Undos, Take Ownership Methods, Full Versioning Integration, Method Stacking URIs, Massive code cleanup, major documentation, and more friendly User Interface variations. Not just skin or template theme options (which would be good too) but ultimately complete interface manipulation via template layout controls. This will be easy by separating data manipulation code and data presentation code not just separation of content code and design but the real nitty gritty so we can start creating object models.
I have been testing some instances of the 'form' core class static version (not from a db) to be used as a configuration editor does not look likely to make it into this release hopefully the next one.
Finished the new PHPortal Help System.
No more active-x.
Objects are centralized in the shared tables and associated to the main objects table via the xpc_apps one.
I still have to move the majority of help files (over 100) to these new tables.
I'll explain how to associate tables with Objects in PHPortal later.
Html Array Editor:
Created and still initially testing a html array editor that allows you to add, edit, delete, move up, and move down keys or nodes.
It uses unique floats as keys.
I love the array language construct specifically due to my infatuation with abstract array object models. I love Models and modeling (Montros.org). I guess it is the infinite recursive nature and simple strength of it that attracts me to it.
Got some simple VBscript code (active-x) to make any textarea into a spellchecker via the word.document object that checks for the word version availalbility between Word 97, Word 200, and Word xp.
My new development run is geared towards user interfaces.
Site Management UI.
App Management UI.
User Management UI.
Security Managment UI.
Template Managment (themes , editor) UI.
This new run so late in the month after a previous dev run might conflict with the regularly scheduled PHPortal version releases at the beginning of each month.
I have finally updated this site, added a new initiall documentation page.
Montros is a Object model (recursive multi-dimensional array) and Object controller (class that recursivelly calls, handles, and stores the returns from all your classes) useful in creating an abstract interface to your classes.
You don't need to extend classes simply abstract each of them, use the Montros model to bring them together and execute your model as a code run.
Montros executes your code based on your array model which contains class names, class arguments, class method, class method arguments and class method event handlers (i.e On and Un) for a class method which can contain another Complete class model recursively.
The code has not been released yet, but will be shortly to the montros.org website under the ZPL.
New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.
Keep up with the latest Advogato features by reading the Advogato status blog.
If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!