Software Development

Binary Applications using Delphi7

I have been working for SingularLogic for more than a decade. The primary language of the company was Delphi. I helped in the creation of the ERP's 3-tier framework (Singular Enterprise a.k.a SEn), while I also developed many different standalone applications (to be used for setups, as scheduler daemons, services, security validation, licensing, financial box communicators, distribution systems).

I have also used Delphi for the creation of a robust client application used by World Karate Federation for the management of Championships. This application communicates with a live website via SOAP Web Services to keep live feeds on results during the tournaments. It also handled registration procedures, drawing, reporting, and import / export to PDF, Excel and Access

Binary Applications using Java/J2EE/JSP

Using BEA Weblogic Application Server, I created a Java Client that communicated via the use of JMS and J2EE with the server in order to export a list of documents from the installed Eurofasma and transfer/import them to the central management system of Panafon. The client was installed in 315 stores around Greece. A JSP control panel was also developed for the administrator to be able to issue commands for the clients to execute. The installed client had full auto-upgrade capabilities.

Binary Applications using .NET (VB, ASPX, C#)

Although I am a fun of PHP and MySQL, I have used .NET technology to create a robust web application. The application's purpose was to monitor the character sheets of 45 players for a Live Role Playing Game we were playing back in 2005. Extensive use of DHTML was used along with the creation of many ASPX Web Components. It started as a small project and ended up being a really big application. We used an MS SQL Server for database storage and of course IIS for the Web Server.

My personal opinion is that you can write very good internet applications with ASPX.NET, but if you are NOT already a senior web developer then the platform (Visual Studio.NET) can easily lead you in making huge mistakes during the implementation (server side round-trips, viewstates, using the default components' settings etc)

Importing / Exporting (VBA, Access, Excel etc)

All applications handle some kind of data. Whatever that data may be, they will be almost certainly required to be transported. Be it from one client to another, or from your application to some other external application (e.g. Excel), an exporting/importing utility is something a developer must have in mind when designing the system.

By keeping in mind that your application will need to import and export it's data, you can create a flexible framework (at the beginning) that will allow you to easily create different types of data structures, targeting different types of platforms (Other Databases e.g. MS Access, Excel, Office, CSV etc)

Hardware Communication (Barcodes, Fiscal Boxes / Printers)

When you import or export data to/from your application, your target might not always be a software but it might be a hardware device. As a software developer you need to be prepared to communicate with anything that comes with a Communication Protocol. I have implemented such communications with Fiscal Boxes (SingularLogic Fiscal Processor), Fiscal Printers (SingularLogic IPos) and Barcode Readers (for WKF). Each hardware device is written by a different developer, thus it comes with a different communication protocol (API).

Web Services and Websites as front-end

With the use of web services you can easily create communication bridges between all your applications even if they are written in different languages. Nowadays all applications that respect themselves are accompanied by an official website where users can find information about the application, newer versions/patches, issues etc. Since a website exists, an application specific web services set can be built to allow exchange of information either between clients or for statistical / monitoring processes.

For example, I have created a set for web services implementing a "Stock Online" functionality for a retail application. With that set, if a customer wanted an item (e.g. a shirt) that was not available in the specific shop, the user could query for the item in other shops, inform the customer of it's existence and even reserve it in his/her name.

Another example is an application that can use Web Services to enable the transfer of data between a Back Office (e.g. SingularLogic Hospitality System) and a website create with Joomla, with custom components to provide online reservation functionality (e.g. SingularLogic WebHotel). For that to happen, I created a Delphi Application that acted as a WebServer running in the same machine as the Back Office, while at the same time a set of Web Services were created on the website.

Setup Scripts / Distribution

This is a very crucial functionality, required by all applications. No matter how small your application may be, you will always have the need to create some update or patch for it. If your client's are located all our the world then you will need an easy to use and automated distribution system. Using web services (to locate information about newer version), FTP/HTTP components to transfer the Setups and Wise Installation System to create efficient and easy-to-use setup applications, I have implemented the distribution system for all the applications of SingularLogic (called SingularLogic Live Update a.k.a. SLUC) and a custom system for World Karate Federation's app.

Putting it all together

As you may understand by now, the creation / distribution and deploy of an application may require a very broad set of skills to be done correctly and efficiently. When you call yourself a Software Developer you are expected to know all those practices and be able to use the right tools for each job to get it done!

Success Stories

ApeironIMS
A custom SingularLogic Enterprise (SEn) client application that handles Sales Documents and Stock Items. It is also a client for the website to be used for metadata and image uploading.

WKF Manager
A full application that handles everything that is needed for a World Karate Championship. This includes registration (athletes and officials), drawing, game mangement, financial transactions, reporting, communicating with online portal, print outs (Athlete Cards) and bar code support.

WKF Tatami Manager
An application that is used by the referees to display live scores inside the stadium. The application uses SOAP to communicate with a central system which uploads the results to the online portal.

SingularLogic Fiscal Processor
This is an in-house horizontal solution for the implementation of a single interface for all SingularLogic's financial application. This application implements the communication with hardware fiscal boxes which produce digital signatures required by the Greek Financial Ministry for all receipts.

e-SHS Synch
A synchronizing application which acts as a bridge between the SingularLogic Hospitality System (MSSQL) and an online web hotel (Joomla). From the website the visitor can issue reservation requests for the rooms available to the back office and the application fetches these reservations and inserts them inside the SHS. The application accesses both database directly (no SOAP used).

SL. Update Center (SLUC)
This is an application that works as a live update center for newer versions. It can download and install newer versions of the SingularLogic applications, it can display marketing news to the end-customer and also acts as a License Manager, giving the functionality of online application activation.

IPos
Like SFP this application is used as an interface for the financial applications of SingularLogic to communicate with the various Fiscal Printers.

Contact Info

  • Konstantinos Manos
  • Thessalonikis 13,
  • Greece, Piraeus, 18545
  • Tel: (+30) 6977 466405
  • Email: konstantinos at kman.gr

Signature Quote

"Life armoured me with Serenity to accept things I can not change,
Courage to change things I can,
and Wisdom to know the difference"