Heating up for prime-time

June 30, 2010 | In | No Comments

Long time since I last updated this bog, but I’ve been stuck in a number of different activities related to our next (public beta) release that drove my attention away from this web-site. Another reason why I’m not updating this web site very often, lately, is that it’s actually going to be replaced by a new one, hosted on our own servers in Germany, and redesigned from scratch in order to be more customer-oriented (this was actually designed as a showcase for investors, not customers).

So here are some news on the technical side first:

Concurrency control is now integrated into any generated application, so it’s now safe for multiple end-users (and even multiple sessions of the same end-user) to concurrently update the same database objects or different parts of the same object. The locking system runs at application level (not at DBMS level) and adopts a proprietary mixed pessimistic/optimistic approach that we believe is optimal for allowing an decent degree of concurrency and still guarantee that you don’t lose your time filling forms that won’t be committed due to the concurrent editing of other users. Daniele Antonini and Michele Velotti have done a great job in a very short time.

Internationalization of the generated applications is also completed. The hard work (ensuring that each and every label and error message has its own key in the localization files) has been completed, and two languages are already supported (English and Italian). Adding new languages will now be a matter of writing the corresponding localization files, and we’ll need someone fluent in those languages. If you are really fluent in French, German or Spanish please let us know. We still have not localized the designer and the web-site, but that will happen later on this here, hopefully in November.

Accounting Servant (server-side) and Resource allocation user interface (client-side) are also completed. The Dashboard now allows subscribers to distribute the resources they own across their workgroups.  A lot of work has been done on the workgroup framework in order to make each application check that the resources used by a given workgroup do not exceed the resources assigned to the workgroup.  For some kind of resources (e.g. file storage) this has been quite simple, for other kind of resources (e.g. network traffic) we had to create filters intercepting each and every call to the generated application and tracking the total volume of traffic generated. Thanks to Simone Cacciatore and Pietro Palladino for this achievement.

Manuel Cash has released a new version of the DatabaseFiller, the utility filling with random data a workgroup database while respecting all the applied cardinality, unique and value-range constraints. This new version allows to define the maximum number of objects to be created in the database, and this limit is respected by means of an heuristic with a branch & bound approach.

The Centralized Authentication Service (CAS) has been finally integrated by Simone Cacciatore and now works flawlessly. The problems that we initially had now seem to be resolved on each of the three environments that we have (validation, pre-production testing and production – in Germany).

The XLS import function is still suffering from unhandled exception, so I decided to hire Thomas Loesch, who graduated in the meantime, in order to let him fix the problems that we still have there.

Regarding reports, Carlo De Bari has been hired after he completed his internship with us and graduated with full marks. By the end of July Carlo will extend the reporting capabilities of the Livebase platform by adding the possibility to define parametric reports, so that even end-users of the generated applications will be able to precisely define which data their reports should refer to.

In July Daniele Antonini and Michele Velotti will hopefully release an interpreted client for generated applications, that should reduce the time required to compile and build a workgroup from about three minutes to 30 seconds (yes, that would be at least six times faster). I believe that this is going to be a major achievement, because visitors in evaluation mood don’t like too much in order to see up & running what they have just drawn.

In July two new interns will join us, and will help in porting the Livetable to the latest version of GWT, and in integrating Rhino (a java-based  JavaScript interpreter) into the platform in order to allow modelers to include some business-specific logic into our models.

Getting closer to public beta

April 23, 2010 | In | No Comments

So what is FHOSTER doing, lately? Sorry for having not updated this blog over  the last two months or so, but I’ve been deeply involved in fund-raising activities and I really had little time to write here. I had to take some tough decisions, lately, so writing on this blog really was out of my mind.

 

Some news on the tech side first

The platform development is heading toward public beta version, not quickly as I personally would like, but consistently. Every new functionality is developed along with a huge set of unit tests, and Hudson, our continuous integration system, helps us in holding all the 60+pieces of the platform in place, and to make the whole system work as expected.

Reporting. Carlo de Bari has done an excellent job by releasing two new types of report, bar charts and pie charts. Thanks also to Pietro Palladino for developing in record time the user interface required to define these reports within the Designer.

XLS import. Thomas Loesh has improved the function.  It is now possible to import de-normalized relational data into new classes/relations added to the model on-the-fly, but it’s also possible to import data for new classes which refer to objects already in the database. Moreover, by tagging properly the sheets in the file, it is possible to append new data to classes and relations already in the database and in the model.

EngineFramework. Daniele Antonini and Michele Velotti have done a great job refactoring the framework (which is now way more maintainable and extendible than it was just one month ago, and by implementing support for query and math expressions. Math expressions (modeled in the Designer as derived attributes) can be defined on native attributes, but also on other math expressions and even query expressions (that is, attributes located in other classes connected by a path through the conceptual schema.

DatabaseChecker/Updater. Simone Cacciatore has completed the refactoring of the diagnostic messages displayed describing the engine/database compatibility issues raised when an engine is modified in a way that is no more compatible with the underlying database.

LivebasePortal. Simone Cacciatore is still fighting a bit with CAS, the Central Authentication Service we use for aligning sessions across different servers, but the new portal for customers (i.e. not the one you are looking at now) is almost ready for prime time. Gabriele Barboni has done a good job on the account-management functionality, so it is now possible to change your profile, acquire different types of extension pack, confirm you order, get your invoice, review old orders/invoices, and so on. Invoices do not include the VAT, that must be calculated in a pretty complicated way according to the customer’s nationality, but we’ll add that later, there is still some time before starting commercial operations.

AccountingServant. Simone Cacciatore is now working in the logic required to allocate all the resources purchased by a given customers to each of its workgroups. Pietro Palladino will also have to develop the user interface for that.

DatabaseCoder/QueryGenerator. Manuel Cash is working on restricted associations, an extension of UML that we have invented to better define the behavior of associations between classes that are part of a common whole class. In business applications, in fact, it happens frequently to model objects that can be decomposed in different types of parts, and that associations can only exists between parts belonging to the same object. Restricted associations is an extremely elegant way to model this behavior, although implementing them has taken a few weeks to Manuel (which is a very smart and fast developers, by the way).

Next big activity before public beta: Daniele Antinini will have to upgrade and integrate the ConcurrencyController back into the platform. We already have a reference implementation, but then we changed the architecture of the EngineFramework and we have temporarily taken it out of the continuous integration flow. The ConcurrencyController is an extremely complex piece of software, so this might take two or even three weeks, and more time to test it properly.

Luckily enough, Patrizio Antonini is doing a great job in using the Testboard and his own hands for testing the platform and raising tickets to the rest of the team, multiple times a day, so system testing is something we are well equipped to to (unit testing are performed by default by Hudson every time it rebuilds the systems, which happens three times a day).

 

Now some news on the business side.

I’ve been very busy creating some tutorial videos (screencams) showing the platform in action. These videos will be useful to show investors and beta-testers what the platform can do (they actually have been first requested by an investor from Israel I met recently). The first video is complete, and I already have requested a quote on Voices.com to have it dubbed by a professional speaker. Other videos will be completed next week.

Yesterday I have refined the budget for 2010, in the hypothesis that we get the Series A by the end of June, which might not be impossible. In that case I think will hire two or three developer and a web designer, to finally give the portal a nicer / more professional look.

Finally, I’ve sent an Executive Summary to the Plug&Play Center in Sunnyvale (Silicon Valley) to check out if it makes sense for us to stay there two or three weeks. We’ll see what comes out, but I don’t think that it’s likely to be funded by a US-based investor while keeping our headquarters in Rome, and we have not funds enough to move the yet.

I’ll be in the US anyway for a tour in July (13-17) and I’ll definitively drop at the Plug&Play anyway for a visit. Moreover, I’ve been the mentor of the winning team of the latest InnovationLab, held at the University of RomaTre, yesterday, and the team won a two-weeks trip in the Silicon Valley, so maybe I will return there in August along with them. We’ll see.

 

FHOSTER selected to present at KIS Partnering Forum

February 09, 2010 | In | No Comments

Fhoster selected to present at the KIS Partnering Forum, on February 11th 2010 (16:00 CET) at  ITech Incubator - Polo Tecnologico Tiburtino - Via G. Peroni, 442/444 Rome (ITALY). For an access map please click here.

The KIS Partnering Forum, which will be held in Rome on will bring together innovation practitioners, policy makers, companies and investors for two days to explore the nature of the Knowledge Intensive Services sector and to discuss how innovation in the services sector can be fostered, supported and encouraged.

Cross-tab reports

February 04, 2010 | In | No Comments

It is a very busy period, so many things done and no time to write about them. I’ll try to summarize today.

First of all, we have finally integrated the final Livebase Portal (providing all the user registration, account-management, ordering and billing functionality) with the Dashboard (providing  application modeling, code-generation and application management services).

Second point, Livebase has successfully passed the stress test over the last weekend (almost 60 hours) completed more than one million uses cases with no errors. Thanks to Pietro Palladino for developing the new java-based Testboard (way more efficient than the previous GWT-based one) and to Patrizio Antonini for setting up the tool.

Gabriele Barboni is now in the staff as a part-time consultant, working on the portal and specifically on the ordering & billing functions. Simone Cacciatore is taking control of that part of the system, now that the HostingServant is relatively stable.

Thomas Loesch ha completed the functionality for importing de-normalized XLS files, and has improved it by allowing the user, whenever an import fails, to download the file originally uploaded including comments on the cells generating errors during the import process (value range or cardinality problems). Now it is also possible to load records along with associations to objects in the database. Thomas is now working on a functionality for loading from XLS file new objects of classes already defined in the model.

Carlo De Bari has completed the tabular reports (the only limitation on that side is that you cannot put a math expression in a tabular report, but he’s working on that), and is working on the more complex cross-tab reports. Pietro Palladino has already released a first version of the report designer, and Carlo is integrating it with the rest of the platform server-side. Here you have a thumbnail of what a cross-tab report looks like on Livebase.

 

Daniele Antonini and Michele Velotti are deeply involved in a major refactoring of the QueryGenerator, that should deliver the capability of recursively defining query expressions based on other  query expressions. Once this activity will be completed we will start also a refactoring of the ServatTree structure according to the Visitor pattern, which should lead to a more manageable and extendible server architecture in the near future.

Last but not least: I’m building a network of business developers and evangelists for our public beta. We already have contacts in India, Israel, France and UK. More on this in the following posts.