Synopse

To content | To menu | To search

Open Source libraries

Entries feed

2012, Tuesday January 17

SynDBExplorer fast direct export

The Open Source SynDBExplorer tool has been enhanced these days.

Main new features are:

  • Execution of the current selected text (if any) instead of the whole memo content;
  • "Exec & Export" new button, for direct export to file.
I really like the selection execution feature - this speed up SQL process a lot, and allow to switch from one statement to another.
And the new exporting features are opening new possibilities.

Continue reading...

2011, Saturday August 20

Enhanced Log viewer

We already shipped a sophisticated set of logging classes some month ago.

Since then, its features have been enhanced, and the system has been deeply interfaced with our main ORM framework. Now almost all low-level or high-level operations can be logged on request.

But since the log files tend to be huge (for instance, if you set the logging for our unitary tests, the 6,000,000 unitary tests creates a 280 MB log file), a log viewer was definitively in need.

Continue reading...

2011, Friday July 22

SynDBSQLite3: SQLite3 direct access

For our ORM framework, we implemented an efficient SQLite3 wrapper, joining statically (i.e. without any external dll) the SQLite3 engine to the executable. SQLite3 is in fact used as the DB kernel of the framework. For instance, thanks to its unique virtual table mechanism, even tables in other databases (like Oracle or MSSQL) are available as if they were SQLite3 tables.

We just made this wrapper independent from our ORM, in a new dedicated unit, named SynSQLite3.pas.

It was an easy task to let this unit be called from our SynDB database abstract classes.

Continue reading...

2011, Thursday April 14

Enhanced logging in SynCommons

Logging is everything... unless you never wrote a bug in your program! :)

Let us introduce a new logging class:

  • logging with a set of levels;
  • fast, low execution overhead;
  • can load .map file symbols to be used in logging;
  • compression of .map into binary .mab (900 KB -> 70 KB);
  • inclusion of the .map/.mab into the .exe;
  • reading of an external .map to add unit names and line numbers to a log file without .map available information at execution;
  • exception logging (Delphi or low-level exceptions) with unit names and line numbers;
  • optional stack trace with units and line numbers;
  • methods or procedure recursive tracing, with Enter and auto-Leave;
  • high resolution time stamps, for customer-side profiling of the application execution;
  • set / enumerates / TList / TPersistent / TObjectList / TContainer / dynamic array JSON serialization;
  • per-thread or global logging;
  • multiple log files on the same process;
  • integrated log archival (in zip or any other format);
  • Open Source, works from Delphi 6 up to XE.

Continue reading...

2011, Saturday March 5

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...

2010, Saturday December 4

SynScaleMM - a multi-thread scaling Memory Manager

We just released a new unit to the source code repository.

It's a simple, small and compact MM, built on top of the main Memory Manager(FastMM4 is a good candidate, standard since Delphi 2007), architectured in order to scale on multi core CPU's (which is what FastMM4 is lacking).

Original code is ScaleMM - Fast scaling memory manager for Delphi by André Mussche.

Continue reading...

2010, Tuesday July 27

Hyphenation in Delphi

We made some years ago a Delphi unit for hyphenation of text.

Such an unit, together with our SynPdf library for example, could be useful in your application. So we released the source!

Continue reading...

2010, Saturday June 26

Pure pascal LZO and SynLZ compression units

In our Source Code repository you would have perhaps noted the SynLZ.pas and SynLZO.pas units.

These are two in-memory compression units, optimized for speed.

SynLZ is a brand new LempelZiv-based compression algorithm, the fastest around for compression speed, so very suitable for using on Server side, with very low CPU consumption.

Continue reading...

2010, Friday April 2

Antialiased drawing from TMetaFile

The new version of our Open Source SynGdiPlus  unit does provide a lot of new features: 
- dynamic linking (your program runs even on Windows 98/2000), without the gdiplus.dll library
- use version 1.1 of GDI+ if available on your system (under Vista/Seven or the one embedded since Office 2003)
- can convert from a TMetaFile (i.e. emf) into a GDI+ metafile (i.e. emf+)
- can draw TMetaFiles into any canvas, with GDI+ anti-aliasing!

Continue reading...

2010, Wednesday March 24

Fast JPEG decoder using SSE/SSE2 version 1.2

The Fast JPEG decoder using SSE/SSE2 library file has been updated, and is now in version 1.2, released under a MPL/GPL/LGPL tri-license. It's mainly a bug issue fix.

Continue reading...

2010, Saturday March 20

GIF, TIF, PNG and JPG pictures TGraphic read/write via GDI+

Implements TGraphic descendants able to load and save GIF, TIF, PNG and JPG pictures, using the GDI+ library. Freeware Opensource component, licensed under a MPL/GPL/LGPL tri-license. Works from Delphi 3 to 2010.

Continue reading...

2010, Thursday March 18

Fast JPEG decoder using SSE/SSE2 version 1.1

The Fast JPEG decoder using SSE/SSE2 library file has been updated, and is now in version 1.1, released under a MPL/GPL/LGPL tri-license.

Continue reading...

2010, Sunday March 14

Fast JPEG decoder using SSE/SSE2

This LGPL-distributed unit allows very fast JPEG image decoding, using SSE/SSE2 pure assembly code. It is much faster than the standard jpeg.pas unit.

It's based on the great Dr. Manhattan's source code, from http://sourceforge.net/projects/jpegdec

Continue reading...