2011-03-11

HTTP server using fast http.sys kernel-mode server

Since Windows XP SP2 and Windows Server 2003, the Operating System provides a kernel stack to handle HTTP requests. This http.sys driver is in fact a full featured HTTP server, running in kernel mode. It is part of the networking subsystem of the Windows operating system, as a core component.

The SynCrtSock unit can now implement a HTTP server based on this component. Of course, our SQLite3 framework will use it. If it's not available, it will launch our pure Delphi optimized HTTP server, using I/O completion ports and a Thread Pool.

Continue reading

2011-03-05

Open Source SynTaskDialog unit for XP,Vista,Seven

A task dialog is a dialog box that can be used to display information and receive simple input from the user. Like a message box, it is formatted by the operating system according to parameters you set. However, a task dialog has many more features than a message box.

Windows provides a generic task dialog available since Vista/Seven. But there is none available with previous versions of Windows, i.e. Windows XP or 2K.

This unit (licensed under a MPL/GPL/LGPL tri-license) will use the new TaskDialog API under Vista/Seven, and emulate it with pure Delphi code and standard themed VCL components under XP or 2K. It will compile from Delphi 6 up to XE, and is Unicode ready.

Continue reading

2011-02-23

Fast JSON (un)serialization

The core of our SQLite3 framework is using JSON for all its Client/Server communication, and also for the internal cache of previous SQL requests.

There is indeed a damn fast JSON generator and parser in the framework. 

I've written some functions able to serialize and unserialize not only TSQLRecord (which is the main parent class of our ORM), but any TPersistent class instance.

Continue reading

2011-02-13

SynProject 1.12 released

Synopse SynProject is an open source (GPL) application for code source versioning and automated documentation of Delphi projects.

It has been updated to version 1.12.

Main enhancement of this update (among various fixes or new commands) is the generation of vectorial diagrams for all documents, for better rendering than PNG or JPEG.

Continue reading

2011-02-08

Synopse PDF Engine 1.12

Our SynPdf unit has been refreshed to the 1.12 version.

The main enhancements are:

  • Can now generate PDF/A-1 files;
  • Direct methods for creating bookmarks, links and document outline;
  • Document information can now be Unicode encoded;
  • The bitmaps can be cached and reused  if drawn multiple times;
  • Some corrected issues.

Continue reading

2011-02-07

SQLite3 Framework updated to 1.12 - including engine 3.7.5

The Synopse SQLite3 Database Framework was just released under version 1.12:

  • internal SQLite3 database engine was updated to version 3.7.5, and SQL functions have been enhanced;
  • now handle prepared SQL statements with a neutral automated syntax;
  • with Delphi 2009/2010/XE, you can define directly Unicode string properties in TSQLRecord (will be stored as UTF-8);
  • include some overloaded methods using Variants for direct property access (e.g. in any grid);
  • SynPdf has now direct bookmarks and links methods, can reuse any existing bitmap, and generate PDF/A-1 files;
  • internal reporting now supports bookmarks and links (with on screen navigation), and better integrates with SynPdf;
  • a lot of bug fixes, new methods and enhancements.

Continue reading

2011-02-03

TIOBE : Pascal in TOP TEN language

The 2011 TIOBE Index is a gauge that has long tracked the rise and fall of programming languages. First developed during the mid-1990s, the index relies on various data sources to gauge the popularity of languages; that is, the extent to which they're used (but not how much they're liked).

The problem is that it split Delphi and Pascal into two diverse categories. Without this distinction, we would be in the top ten!

Continue reading

2011-01-29

record and object issue in Delphi 2010

In a previous post, I explained why I still like to use, in some special cases, record or object where using a class doesn't perfectly fit my needs.

I just discovered a non reproducing bug in Delphi 2010, about objects: sometimes, reference-counted objects were not initialized!

Continue reading

- page 43 of 52 -