Tuesday, December 27, 2011

GyroGears plugins

About a year ago I've started thinking about a plug-in system for GyroGears. GyroGears is closed source (at least for now), and I was pondering a system for combining both open source and closed source plug-in into GyroGears.

Look at this:

As you can see, a Google map is displayed into this form, linked to the "Coordinates" and "Description" members.

The fun is in implementing this:

It's a member defined as a "plug-in". I've created two plug-ins, one for Google Maps and another one for the WebKit engine.

For Google Maps, you just enter your API key, and coordinates/title/description members and is done.

It should be very easy to write any plug-in for GyroGears, anything you could think at.

Thanks to the new GyroGears developers (that quadrupled in the last few months), I've optimized some things.

The first problem was the Concept Compiler (accel), that had an exponential growth in compile time when dealing with large applications. I've inserted some hashing tables in order to retrieve the data faster, and now it seems to work as expected.

Another reported problem was with the web-generated scripts. In some cases were slow due to a bug in Gyro-generated framework that caused all the data to be transferred from the server. Now it has decent times.

I've optimized the http:// interface, that looks a lot cooler now. However it still lacks in functionality when compared to the concept:// interface.

The Sablotron XSLT library was dropped (is still supported by the Concept Framework), and replaced by libxslt, that has a lot more features, and it seems to be a little faster and included in most Linux distributions (not necessarily needing manual compilation).

A few new templates were added to GyroGears (webpage and web catalog).

Below are some screenshots with the new http templates.

Saturday, November 12, 2011

Ultraportability 3.0

It's been a while since I've started to analyze Android and iOS. I've thought of making a high level wrapper to maintain only one code tree for both platforms ... and I came over MoSync that does exactly this. And it does it in C/C++ !
I've spent the last few nights rewriting the core communication objects in order to be compatible with ARM devices in single thread mode over asynchronous socket. And now, it works, and it works better than I've expected. So, I've decided that for Concept 3.0 I will have the same UI for every platform.

Here are some pretty pictures:

A debug console ... for really bad days.

Here you can see the same application (using exactly the same code) running on desktop (the whole code is on background).

I've ported even the dialogs.

I hope that in early December to have a fully functional iOS and Android client.

Wednesday, October 19, 2011

Wolfram Alpha APIs for CAS, templates for GyroGears and markup columns for RTreeView

I've been working a lot these days, implementing, fixing and testing.
Wolfram|Alpha APIs are now available in Concept Framework 2.2:


It has a really simple interface, something like

include WolframAlpha.con
var wa=new WolframAlpha(APPID);
var result=wa.Query("pi');

And this is all.

Here is a test application and some responses:

You can ask Wolfram|Alpha for virtually anything.

In Concept Framework I've added a new column type for RTreeView: MARKUP_COLUMN. This allows you to use Pango markup language in column. You can see it in action in the Wolfram|Alpha screenshots.

For GyroGears a new feature: Template Member. This will populate an object based on another template object. You can think of a project management application where you have "Project template" as an entity, which have tasks and so on. Then, when you have a "project" with a many to one relation to Project template, all the members will be automatically initialized with the values from the template.

I've optimized the memory usage in empty arrays (now an empty array uses only a few bytes). This resulted in 5% less memory used by the Gyro-generated applications.

Sunday, October 9, 2011

Concept Application Server 2.2 brings faster CGI script execution

... about 4 time faster, take a look

When running with APID (application ID), the interpreter asks Concept Application Server to give a pipe for communications. This is why is taking significantly more. But, you need APIDs on web only when debugging (in developer mode).... so when you disable AllowCASParent, you significantly speed up your http scripts. Green is CSP (concept server page) ran through mod_concept, blue is static HTML and red is CSP as CGI. As you can see, when disabling APIDs on http, CSP is faster than static HTML.

But now, a new mod_concept module for concept. This module load a script and keeps it in memory and runs it multiple times (you can set CGIProcessSessions in BeeKeeper).

As usual, new features are available on GyroGears. I've reorganized the directory structures, and now an include directory is available for each application. But the really new stuff is GyroGrease - (grease for gyro's gears)

This framework is automatically generated for your application model and is available by checking "Generate high level APIs" GyroGears (in Solution properties).

Monday, September 26, 2011

New Concept Client and some new features in GyroGears

Added a few features in Concept Client (all platforms):

1. Remember nothing, username, username and password

2. Clear history option (by clicking the brush)

3. New inline suggestions

In GyroGears:

  1. The screen capture button (upper right)
  2. New application home screen
  3. The "Show text in toolbars" option in design
  4. A bug was fixed with the colors used for charts

Sunday, September 18, 2011

Concept and GyroGears ready for production usage

A lot had happened in the last weeks. Lots of tests, especially on 64 bit architectures and interaction between 64 bit client and 32 bit server. Some bugs were fixed in the RSA implementation (server and client). New XSLT library was introduced in framework based on libxslt2, as an alternative to Sablotron. New random functions were introduced.

Bugs fixed:
On Win32:
  • Captcha library was patched in order to work correctly under Apache HTTPD under Win32.
  • Installer fixed (both server and client) - a problem with NSIS strings that emptied the PATH environment variable.
On Mac OS X:
  • Recompiled the dependencies for Concept Client - now all the plugins are working (on x86_64)
  • Patched some dynamic libraries in order to work with bundled libiconv instead of the one provided by Apple on OS X Lion. Apple provides version 7.0.0 of libiconv2, and Glib requires 8.0.0, and Concept Client needs both of them
  • Introduced platform specific code in order to work correctly (Concept Client)
  • Fixed various bugs for Snow Leopard and Lion (Concept Client)
On all operating systems:
  • Optimized some functions
  • Cleaned up the source code. Fixed modified sources using two editors (one used tab characters for indenting, the other one used spaces).
  • Modified the code to compile and work correctly on 64-bit architecture
  • Fixed a bug that could cause a crush in Concept Server when sending a bad formed ciphertext.
  • Fixed a bug in MSG_GET_PROPERTY (Concept Client) and WaitMessage on the server that could cause some problems when waiting the same property from multiple similar objects. For new GyroGears 2.0 (release) applications, is mandatory to update both your server and client to latest version.
As a new feature in Concept Client 2.0.118, a history database was introduced:

Webkit/GTK is now available in OS X Client:

Introduced "middle lock" in GyroGears applications:

You can enable "Edit without locking" in GyroGears allowing two or more users to edit simultaneously the same entity. Only the changed fields will be updated in the database.
If refresh in real time is checked, when another user will view an object modified by another user, it will me notified that the object is changed.

In the screen below you can see the two options.

Also, a popup menu is available in status window, enabling you to copy the text (useful when generating traditional web 2.0 applications, to copy the http address).

GyroGears applications now fully remember the context after exiting and reopening the applications. It will automatically reopen all the tabs opened at closing time. Now it correctly the size and positions for all the windows (was broken at some time, due to new GTK version).

The main feature added, was the property request caching in GyroGears forms. Now, the server makes a bulk request for all the needed properties when reading a form, and receives all the messages in a single block, minimizing the network traffic.

When updating records, now will NOT cause the reload of the view, minimizing the database server traffic. The update will be done in-place on the screen. Same for delete operations and archiving operations. This lowered the database and provided the user with a better feel (all looks to be executed very fast, while update operations are run in background).

Suggestions were introduced when searching in GyroGears applications (both http:// and concept://).

GyroGears is OUT of BETA, and is to be considered stable (enough) for production usage.

Remember that it can do websites and web applications now!

Friday, August 12, 2011

GyroGears new features

I didn't want to write code for http:// applications anymore, so now GyroGears generates fully functional http:///jQuery versions for any given model.

It also generates the sign in and log in scripts.

For the concept:// model lots of new cool stuff:

Windows 7 Aero integration. Just check "Use cool effects" in application settings.

New SVG-based charts, in an effort to drop gdcharts (that are good but ugly).

Suggestions when searching.

The one that i like the most: new from template. You can create applications from standard templates (eg. CRM). I will create a few templates these days.

It is important to update Concept Application Server to support all of these features.

Happy coding for those of you who still write code!

Saturday, July 9, 2011

GyroGears 2.0 is here!

GyroGears 2.0 is ready for production.

Here are some screenshots showing the new features:

It remembers your recent projects ...
It creates diagrams for your projects...
A cool home screen for your applications ...

"Send to" option for non exclusive relations...

"New for ..." option for exclusive relations ...

Launcher for multiple application projects (applications working with the same data)...

Show related entities for an object ...

Revisions (versioning) for entities ...

Option for rendering relations and long strings in small widgets. Also, many-to-one relations can be rendered in combo boxes...

Various GyroGears options for lazy programmers:
  • Open/Save available on the client
  • GyroGears remembers it window settings now
  • It can embed your project custom files into the gyro project (everything is stored in just one file)
  • It can generate a Concept Installer
  • It generates the shortcuts for your project
  • It can open your project in CIDE
  • Lots of drag and drop

An update is also available for Concept Application Server, that now is aware for server shutdown and it kills all its child processes.