presage

Presage, the intelligent predictive text entry system

NppPresage epic

While working on NppPresage, the Notepad++ predictive text plugin I am writing, I ran into an interesting problem which led me on a journey of discovery of some useful and powerful Windows debugging tools.

The problem started occuring when testing my NppPresage plugin with the latest build of Notepad++. After exiting Notepad++, the following error message box would appear, when the NppPresage plugin is installed:

Microsoft Visual C++ Runtime Library

This application has requested the Runtime to terminate it in an unusual way.

presage accepted in Debian

Some time ago, I began working on packaging presage for Debian. My motivations were:

  • to make presage as easily and readily accessible as possible: getting presage into Debian certainly achieves widespread distribution, as it make it available to Debian distribution itself, as well as the numerous Debian derivatives (Ubuntu arguably being the most well-known)
  • to learn about packaging software for Debian: I was curious and interested about the policies and processes adopted by Debian developers to package software into the distribution, and I wanted to learn the tools and procedures for myself
  • to contribute something back to Debian: I've used Debian as my main OS for years (after a brief initial stint with Slackware 1.2.3), and I thought it high time to contribute some time and work to the distribution and the community of developers behind it

I am glad to announce that presage has been accepted into Debian Sid. presage-0.8.6-1 was built, signed, and uploaded on Sat, 6 August 2011.

version script, linker, autoconf check, and the like

Here's a short configure.ac example with an autoconf test to check whether the linker supports version scripts.

I spent a few minutes searching for such a check and no results popped up, so I resorted to writing my own.

The code below might be useful for others looking for such a code snippet, and can be easily adapted to suit specific needs.

AC_INIT(--version-script test example, 0.1, matteo.vescovi@yahoo.co.uk)

AC_PROG_CC
AC_PROG_CPP

AC_MSG_CHECKING([whether linker supports version scripts])
cat > conftest.map <<EOF
VERSION_1 {
global:
        main;

configure this

The latest release of the presage predictive text entry library sports, among other things, a new and improved configuration layer which extends previous capabilities, adds new features and fills in a number of gaps and issues in the previous releases.

Prior to the refactoring work that went into 0.8.1, presage configuration mechanism was limited by the following issues:

  • configuration could only be read from a single profile file

scintilla presages a spark of genius

Prompter built on top of Scintilla

I'd like to share with you a precious software gem: Scintilla.

Scintilla is an amazingly powerful text editing component. I am coding Prompter, a presage based demo application, on top of the Scintilla editing control because of Scintilla's impressive features, primarily portability and autocompletion support.

Syndicate content