Recent Posts

Terraform cheat sheet

The course "Infrastructure Automation With Terraform" provides the course files on github: "wardviaene/terraform-course".
October 06, 2019

Print whole deep object in JS

The functions `console.log` or `JSON.stringify` in JavaScript do not print deep nested structures. To workaround, use `util.inspect`: const util = require('...
October 06, 2019

Minimal GF-RGL usage example

I managed to run GF-RGL (see the previous post) as a part of a third-party project gf-matrix. Then I modified gf-matrix grammar files to create a minimal wor...
April 04, 2019

Running GF-RGL

The GF Resource Grammar Library is the standard library for Grammatical Framework. It covers the morphology and basic syntax of over 30 languages. The GF pro...
March 29, 2019

Multi-page table with inter-row page breaks

Usually it is a bad idea to break table inside a row. But people do want it. Once I sketched a quick dirty hack for latex cals package and since then I've go...
March 03, 2019

Cleaning the signal from EEG-SMT

An disappointment after getting EEG-SMT working: the resulting measurement is just a noice. It is a challenging task for a beginner to understand what is goi...
September 30, 2017

Display signal from OpenEEG EEG-SMT

There is a number of software intended for EEG works. The EEG-SMT quick start guide suggests Electric Guru, BrainBay and OpenVibe, but it implies the use of ...
September 10, 2017

Format dvd+rw before writing data

Writing a DWD+RW under Linux should be simple, something like: $ wodim speed=2 dev=/dev/sr0 -v -data ubuntu-16.04.3-desktop-i386.iso However, in my case it f...
August 13, 2017

AWS response status is always 200

There is a task, which can't be avoided when developing serverless applicatoins on Amazon Web Services: How to return a custom status code from a REST API? O...
July 29, 2017

mocking microservices for functional tests

Here are a few links which helped me to understand what to use to mock microservices with REST API. Just for a case, I've choosen wiremock because I need Jav...
February 04, 2017

python Selenium in Ubuntu 16.04

Selenium is a web browser automation software. In Ubuntu 16.04 it doesn't work out of the box, and external components should be installed. In this post I no...
December 22, 2016

experience report with TDD

I've seriously tried TDD in a real project, writing tests before code and following the red-green-refactor cycle. Short summary: * I believe in TDD now; * tr...
November 03, 2016

how to move anything in rviz in ros

Rviz A 3d visualization environment for robots. Sounds intriguing and useful, but the first steps in it are painful. In particular, moving anything is surpri...
October 26, 2016

vi editing mode set global

The Linux command line and other software based on readline library support vi editing mode. After I worked on a new system with the default settings for a w...
October 18, 2016

fast throw-away git repository

Based on the article How to Run Your Own Git Server, I've constructed a small list for fast git setup for temporary projects. Server: $ mkdir -p /the/serve...
August 22, 2016

DANTE e.V. Frühjahrstagung 2016

I was a speaker at the TeX users meeting in Wuppertal, with the talk "Erfahrung und Vorhersagen für automatisches XML-nach-PDF-Publizieren mit TeX" (experien...
April 20, 2016

python libxml2 dita

python libxml2 dita For correct transformation of DITA files (XML-standard for modular documentation), it is necessary to pull information from DTD (document...
January 21, 2016

Printing unusually sized PDFs

The PDF is of some non-standard landscape layout, the printer is an usual A4 printer, the software can't handle the mix correctly. The solution is to tune th...
December 21, 2015

fast-disable css in firefox

Sometimes I want to read a web page without its design "improvements". In many case it is enough to switch off css, and in firefox this functionality is buil...
April 17, 2015

using freebidi from python using ctypes

GNU FriBidi is an implementation of the Unicode Bidirectional Algorithm (bidi). There is a Python binding PyFribidi, but it is not complete. What I need is n...
December 08, 2014

how to start vmware

By me, vmware doesn't start without twicks. A normal rum produces something like: process 3954: Attempt to remove filter function 0xb6ad0690 user data 0xb789...
March 17, 2014

python libxml2: save XML as HTML

HTML is the main output format for XML transformations. Every XSLT-processor, including libxslt/libxml2, supports it. But if you transform a libxml2 tree man...
October 31, 2013

using xlrd and formatting Excel numbers

The number (and dates) in Excel are float numbers. How these numbers are displyed to an user -- as an integer, or with two digits after a point, etc -- are d...
October 22, 2013

from an audiodisk to a mp3 player

My sequence to grab audiobooks from a cd to hear later on a mp3 player. Grab as mp3: abcde -o mp3 The program makes the job perfectly. But the mp3 player (S...
August 17, 2013

pyinstaller, wxpython, core not found

Sometimes an error and the error message are different things. One of the examples is that my wxpython-program did not want to start after converting to exe ...
July 31, 2013

learn foreign language with Audacity

Pauken, a plugin for Audacity, adds silence and multiplies a selected audio fragment. It helps when you learn foreign languages by listening and repeating ph...
June 06, 2013

latex cals tables version 2.2

I've updated "cals" package -- multipage tables with wide range of features -- to version 2.2. In the new version, alignment of tables should work. Also, I'v...
June 06, 2013

illegal XML characters

Sometimes I dump binary data into XML. Being aware of illegal bytes (0-8,B-C,F-1F), I encode everything in base64. But there is a nice alernative way, just r...
November 01, 2012

easy LyX styles

The official way to introduce custom styles to LyX is: * the layout-file should be located in a special directory, * after the layout file is changed, the us...
June 08, 2012

custom tex in rpm/apt distributions

I prefer to use TeX from TeXlive distribution, not the default TeX bundled with an operating system. The problem is that rpm and apt tools check dependencies...
January 06, 2012

german-russian, german-arabic vim keymaps

vim includes many keyboard layouts, defined as mappings for symbols of the english layout. Unfortunately, these maps are not useful when the base layout is g...
December 16, 2011

german pc keyboard on mac os x

The keys "< " and "^" seem swapped, but otherwise the normal PC german keyboard layout for Mac OS X is here: http://powerbook.blogger.de/2004/01/26/58788/...
December 05, 2011

control alt shift vmware

Sometimes vmware makes something very wrong, and X server do not understand the keys CTRL, ALT, SHIFT and similar anymore. Solution: "setxkbmap" without any ...
July 28, 2011

chess fen plugin for anki

After I discovered anki, a tool to assist in remembering facts, I started to actively use it. Among other uses, I want to keep in memory some important chess...
June 27, 2011

delta debugging for latex

From the delta debugging homepage: "With Delta Debugging, we can find failure-inducing circumstances automatically—circumstances such as the program input, c...
April 27, 2011

solved: vmware does not work anymore

After some system update, vmware stopped working. It wrote some information which modules are loaded, and then silently exited. In a log file "ui-NNNN.log", ...
April 04, 2011

tracing libc calls with dtrace

In order to find if I can affect a program through environment variables, I decided to trace all getenv calls and see if there is something interesting. Easy...
January 26, 2011

\AddFontFeature in plain XeTeX

XeLaTeX package "fontspec" provides an useful command "AddFontFeature" to add an effect to the curently selected font. Unfortunately, it works only if fontsp...
January 18, 2011

PDF external streams are not supported

Theoretically, a part of a PDF file is allowed to be stored externally. The "external streams" were introduced already in an ancient PDF specification. But o...
January 17, 2011

eSATA hot swap in Linux

I hoped that eSATA interface allows to attach and detach HDDs to Linux on the fly, and the system would notice the changes automatically. The reality was quo...
December 29, 2010

vim unicode setup for windows 2000

To display unicode (utf8) files in vim in windows, the following commands should be added to %PROGRAMS%\Vim\_vimrc: set encoding=utf-8 set guifont=Courier_...
December 29, 2010

how to install latest LuaTeX

After reading Paul Isambert's article "Three things you can do with LuaTeX that would be extremely painful otherwise " I finally decided to check LuaTeX. Unf...
December 21, 2010

multi-page tables with inter-row page breaks

I'm not sure that a typesetting system exists, which could break within a table row. I managed to do it (in the first approximation) in LaTeX: source code, P...
December 06, 2010

scheme as a virtual machine - III

After experimenting with CPSCM, I have to drop it. The final now consists of two implementations: Chicken and Gambit. For closures, CPSCM relies on the host...
November 12, 2010

CPSCM, how the compiled code looks like

I spent time understanding the result of CPSCM conversion from Scheme to Scheme and JavaScript backends. Notes are here: http://github.com/olpa/cpscm/blob/ma...
November 02, 2010

xata2010 paper and presentation

Finally, uploaded my XATA 2010 (XML: Aplicações e Tecnologias Associadas) things: * The paper XML to paper publishing with manual intervention * The MetaPost...
October 21, 2010

retiring a wordpress blog

I wanted to retire a WordPress-based site, converting everything to static HTML. My first idea was to mirror the site with wget (or any other web downloader)...
October 19, 2010

scheme as a virtual machine - II

Closing a TODO, I've filtered the list of Scheme implementations to find candidates for experimenting with using Scheme as a VM. The winners are: Chicken CP...
October 04, 2010

r5rs scheme as a virtual machine - I

Some time ago I advocated that the programming language Scheme is a new portable assembler. We can code something in Scheme and then compile it to PHP or Pyt...
September 28, 2010

python wtf: strip() eats too much

Many of python-xml code is probably wrong. Tracing a bug, I found an interesting WTF. A minimal example: import string s1 = "\xa0x\xa0" s2 = u"\xa0x\xa0" ...
June 01, 2010

unicode math in xelatex

In XeTeX, an unicode version of TeX, it's logical to use unicode math. However, till now (march 2010) unicode math publishing doesn't work directly out of th...
March 26, 2010

entering special characters in vim

Time to time, I forget it. Found again in some wiki: "Entering special characters". In short: ^Vnnn or ^Vxnn. Note also: "how to input diacritic characters".
March 10, 2010

setting up a local macports repository

Many OSes have port systems, Mac OS X has too. Macports provides a lot of useful software, but not all. If a software can't be in the macports for some reaso...
February 12, 2010

TeXML is not at XML Prague 2010

To my great surprise, TeXML presentation was not accepted for XML Prague 2010. It's so unexpected, that I'm even not upset, only puzzled. TeXML is one of a f...
February 12, 2010

chess diagrams on A6 cards using LaTeX - 2/2

In the first part I wrote: ``put to a template in your favourite text processor''. Attached is a template (class-file) for LaTeX and an example, the explanat...
December 04, 2009

chess diagrams on A6 cards using LaTeX - 1/2

As a part of improvement in chess, it is often recommended to analyze positions. The idea is good, but how to find time to do it? One option is to use otherw...
November 27, 2009

chess publishing in latex, starting

I'm experimenting with LaTeX and chess. As there is no "for dummies" information in internet, my notes (even if incorrect) could be useful for beginners. So,...
September 15, 2009

my wrappers around “includegraphics”

To put an image to a document, LaTeX provides the command "\includegraphics". As it often happens, due to LaTeX was designed for manual typesetting, this com...
July 20, 2009

sharing files from linux to windows

Yes, one installs and configures Samba. All I need is to access a big folder in the read-only mode. The quick and dirty solution is: In smb.conf: security ...
April 27, 2009

calling batch files with ‘exit’

Consider 'main.bat' call child1.bat call child2.bat What happens after 'child1.bat' is finished? I reasonably expected that 'child2.bat' is executed. In a...
February 22, 2009

extending a virtual disk in vmware

Extending a virtual disk in vmware 1. Backup! 2. Somewhere in the vmware installation directory, there is a tool named "vmware-vdiskmanager.exe". There is a ...
December 26, 2008

wrong but fast fix

After a small system upgrade an application started to crash with the message: *** glibc detected *** sylpheed: double free or corruption (out): 0x0839e818 *...
December 12, 2008

upgrading a macport package

Upgrading a macports (darwinports) package is not as easy as $ sudo port upgrade something </code> In many cases I need the following command: $ sud...
December 08, 2008

chess tournament checklist

In addition to the conference checklist, I now need a checklist for local chess tournaments. * Glasses cleaner * Water * Snacks * Paper * Pen * mp3 player w...
December 08, 2008

rsync server on mac os x

For development purposes, I'd like to run a rsync server on a Mac. People in forums recommend to avoid the default system rsync, which is accused of being bu...
November 11, 2008

escape a TeX string in Python

Do you generate [La]TeX files using Python? If yes, do you escape the special characters. Haven't you forgotten to escape also empty strings? To avoid reinve...
October 17, 2008

multimedia over network II: pulseaudio

PulseAudio is a sound server. Applications feed music to PulseAudio, and PulseAudio decides what to do with it. For example, it can send the sound over netwo...
September 27, 2008

fighting pstoedit

I wanted to convert text to curves in PostScript. The well-known tool to do it is pstoedit (alternatives are welcome). Unfortunately, it worked only partiall...
September 24, 2008

multimedia over network I

I want to: * run a program on a work PC, and * see and hear it in action on a leisure PC. The first attempt is failed, therefore I started to search for a so...
September 24, 2008

how to input diacritic characters

I always used vim (for example, "Ctrl-K" ":" "u" for "ü"), but now I found a way to input such characters into any application, using the core feature of X11...
September 20, 2008

alsa and HDA Intel SigmaTel STAC9227

After upgrading my Linux, I've got sound lost. Everything looked ok -- all the modules are loaded, all the special devices are created, no complaints in logs...
August 19, 2008

if I were writing an XML editor

There is a number of XML-editors, but there are no user-friendly ones (except FraemMaker). A standard XML editor is a tool for programmers, to play with XML....
July 10, 2008

Exeter Chess Club

I've impressed by the site Exeter Chess Club, and especially Coaching page. A lot of useful resources. Quicklinks for myself: * Playing Black after 1.e4 * Pl...
July 08, 2008

ripping a dvd

In the most cases, people use mplayer and mencoder (under Linux). For my goals, ffmpeg is enough. Sample sh-file: for i in 01 02 03 ... NN; do ffmpeg -i ...
June 16, 2008

be carefull with libxml2 in python

Unpleasant surprise from libxml2 bindings for Python: one must care for encoding conversion. test.xml: <text>Grüß</text> test.py: import libxml2...
May 27, 2008

TeXML is alive and well

Due to a long period of inactivity in TeXML project, I've just been asked if the project is still supported. The answer is yes! I use TeXML in production, it...
April 10, 2008

DocBook XML publishing service

I'm not the only one who works on a publishing server. Steve Whitlatch announced recently Mr. XML Publisher for DocBook, a free online publishing server. You...
February 04, 2008

symbolic and hard links under win32

To my surprise, symbolic and hard links are partially supported even by windows 2000. Here is a small summary: ``How to create a symbolic link under Win2K, ...
January 25, 2008

printing djvu books under Linux

When I print books, I prefer to have two pages per sheet. With PostScript or PDF books it's easy, I just use psnup2.pl. But for djvu format, the procedure is...
January 24, 2008

subscribe to comments

Wordpress plugin ``Subscribe to Comments 2.1'' allows readers to receive notifications of new comments that are posted to an entry. I think it improves usabi...
January 16, 2008

how to analyze FICS games

I play chess on freechess.org. Sometmes I like how I play. But the sad truth is that my good play is illusion. Thanks computers to reveal me a lot of mistake...
December 16, 2007

russian (any) language in wordpress

I tried to setup a new wordpress blog. To my unpleasant surprise, I got a problem with cyrillic letters. They just didn't work, being displayed as junk or as...
November 25, 2007

feeding 128-bit wep hex key to Mac

For historical reasons, my home wifi router uses a WEP 128-bit HEX key. It caused troubles while installing a Mac. The setup program accepted only 40-bit key...
November 14, 2007

recording audio under Linux

The blog is the place to remember what I always forget. Here is a note how to record a mp3 on my system. 0. Plug the microphone jack into the socket on the ...
November 11, 2007

LaTeX to EPS

I'm a bit furious. I spent a lot of time on getting EPS from LaTeX. Portability of PostScript and PDF is a great myth. This idea works only in theory. But in...
October 09, 2007

inplace, a new xslt-based CMS

I've released a content management system for static pages: InPlace CMS http://inplace.sourceforge.net/ Use InPlace CMS to maintain a bundle of HTML pages i...
October 04, 2007

mass-upload to picasaweb from Linux

Picasaweb is a Google's service for publishing web photo albums. The mainA drawback of this service is that under Linux you have to upload each image manuall...
September 28, 2007

casting WPAds to a widget

Some time ago I discovered that the WordPress blog sidebar can be * completely dynamic and * configured through the admin interface. It's very convenient, an...
September 28, 2007

invent categories and tags easily

My antispam blog passed 25+ posts, it was enough introduce the categories. But when I started to categorize the posts, I stuck with it. After inventing four ...
September 26, 2007

literate programming failed

Those who * know what is literate programming, * the ideas and the technical implementation behind it, and * think this metodology doesn't work, can find thi...
September 07, 2007

LaTeX paragraphs cheat sheet

* Indents: first, left, right \parindent, \leftskip, \rightskip * Space: above, below: \addvspace * Align: left, right, center, justified ragged2e package \C...
September 03, 2007

an evil jump to the Google’s first page

For my goals, the query "phpbb spam" should return Textual Confirmation and Links Rejector tools on the first page. No luck so far, but I managed a nice tric...
August 19, 2007

putting advertisement blocks on a blog

Earlier, my AdSense ads were hardcoded into my WP template files. But now I want to experiment with other ads. I need to rotate the ads often, and the old so...
August 18, 2007

downloading log files

The best place to analyze log files is the local computer, not the server: 1) Log files grow fast, taking all the server space 2) Queries might be CPU-intens...
August 16, 2007

tracking site visitors

There might be a delay between the first visit and the desired action (subscirbing to RSS, purchasing software, etc). An usual web site log often isn't enoug...
August 13, 2007

web site statistics is a myth

There is a lot of software to display statistics of a web site. But all that tables and graphics are of no use for me. I just don't know what to do with this...
August 13, 2007

towards monetarization

I've decided to get money from my sites. No, I don't desperately need money. Actually, what I want to fix is the following. I see that my resources can bring...
August 09, 2007

spambots and captchas

I'd like to announce a new blog: Spam Bots and CAPTCHAs. Updated twice a week. RSS.
August 01, 2007

Generative XPath for GWT

Google Web Toolkit (GWT) allows developers to use the Java programming language to build no-compromise AJAX applications. After announcing my project in its ...
July 31, 2007

Generative XPath announces

I've announced Generative XPath in few places. This entry is to assist tracking responses. xml-dev | comp.lang.xml | Google Web Toolkit | google-ajax-discuss...
July 30, 2007

using curl to make trackbacks

From "Poor Man's Trackback": $ curl -d url=[my entry's URL] [trackback URL] You can also specify the title, excerpt, and blog_name using additional -d parame...
July 30, 2007

the real need of LinkedIn

Many conferences create and share the list off all the participants. Before, I had a problem: I was not able to make an use of this list, and was not able to...
July 29, 2007

better way to add a plugin

Installation instructions of many WordPress plugin contains recommendation to add something like this to a theme: <?php tla_ads(); ?> Actually, the Ri...
July 25, 2007

webcam under linux

After lots of trials and errors, found: to capture from webcam: spcaview To get a video: mencoder -fps 6 tv:// -tv driver=v4l:width=320:height=240:\ fps=6:de...
July 24, 2007

getting /dev/dsp

After spending a lot of time to make sound working, I found how to create /dev/dsp. In my case (00:1b.0 Audio device: Intel Corporation 82801H (ICH8 Family) ...
July 24, 2007

updated conference checklist

Based on experience of XML Prague 2007 and GTTSE'2007, I've updated conference checklist. The main addition is the section "before departure" and especially ...
July 21, 2007

GMail rejects mail from Hotmail

For a few days, smtp.gmail.com has a bad SSL certificate. As result, some well-behaved mail clients and transfer agents can't send mail to and from GMail. Qu...
July 20, 2007

automating GUI tasks in Python

I have a program which is an example of usability nightmare. It's easier to create data in Excel and somehow migrate them to that program. Unfortunately, the...
July 20, 2007

exponential serie on updating a string

First, I was going to increment a string using this construction: s = s + "xx...xxx" </code> Then the addition became more complex, and I decided to ...
July 16, 2007

From A4 to A3 (A2, A1, A0)

I've prepared a poster. For the development purposes, the paper size is A4. Now I need to enlarge the paper size. Here is a sequence of the commands which go...
June 30, 2007

surprises from windows

I've spent at least an hour tracking down an error in integration of my software with another software. Finally, I've found that Windows (ok, command.com/cmd...
June 27, 2007

buggy rss-generators

Just like the most of pseudo-XML tools, many RSS generators are buggy. For example, many just put the text into a CDATA section, without checking if it conta...
June 26, 2007

submission for gttse’2007 is rejected

Unfortunately, I'm not going to speak at gttse'2007 participants workshop. My extended abstract (Recursion-free XPath 1.0 implementation) was rejected, the c...
June 23, 2007

TeXML paper and poster

A paper about TeXML and Consodoc is published in TUGboat 28:1, 2007: TeXML: Resurrecting TeX in the XML world. Also, the tools were presented as a poster at ...
June 23, 2007

post-xmlprague notes

I like Prague, it's a very beautiful city. My contribution to XML Prague 2007: * paper "Generative XPath" * presentation slides * poster XML to beautiful doc...
June 19, 2007

poster proposal for XML Prague 2007

In addition to my talk "Generative XPath" at XML Prague 2007, I decided to submit also a poster: Title: XML to beautiful documents Abstract: I'd like to pre...
June 11, 2007

Generative XPath is released

Generative XPath (0.9.1) is an XPath 1.0 processor that can be adapted to different hierarchical memory structures and different programming languages. Custo...
June 10, 2007

breaking expectations

How do you thing, what the following Python/libxml2 code does? for kid in node.get_children(): print kid.name Do you think the code gets the children of ...
May 22, 2007

CPSCM, a Scheme compiler

For long time, I'm thinking about a generative Scheme R5RS implementation. It means that if I need Scheme for a platform XXX, then I take the implementation,...
April 30, 2007

web spam (antispam) news

I think that the minor updates of my bbAntiSpam tools are of no interest for the readers of this blog. On the other side, I need to inform about updated. The...
April 05, 2007

Advanced Textual Confirmation is released!

Finally, Advanced Textual Confirmation (ATC) is released. ATC is an universal tool to stop forum spam, wiki spam, guestbook spam, comment spam, and other web...
April 05, 2007

XML Prague 2007

I'm going to visit (and speak) at XML Prague 2007. Here is the great description of the conference by Jirka Kosek (as a comment in the docbook-devel mailing ...
April 03, 2007

shut up, you dummy 7-bit Python

I'm working on an unicode-aware application. I like to use print to debug programs, but in this case it was nightmare. The most popular result of print was: ...
March 23, 2007

How to stop WordPress spam

My blog is protected by Advanced Textual Confirmation. * No more spam. * No complains from the visitors. ATC is a generic tool, suitable for any PHP script....
March 19, 2007

XSieve 1.2.0 is released

XSieve version 1.2.0 is an evolutional update. Few bugs are fixed and several low-level enchancements are made. Two new functions are added to create a testi...
March 12, 2007

why to have a forum on a shareware site

I've just answered on a question if it worth having a forum on a shareware site. Yes. Here is why: I have a forum and get the following benefits: * The foru...
March 06, 2007

execute an XPath and get the line numbers

I'm investigating the structure of an XML file. The best tool is an usual text editor (vim), but I need to look at some specific tags in some specific contex...
March 05, 2007

proposal for XML Prague 2007

I've just sent an extended abstract for the XML Prague 2007 conference. I hope it will be accepted. Title: Generative XPath Name: Oleg Parashchenko Affilia...
February 28, 2007

x:call for XSieve

Small, but pleasant functionality is added to XSieve. Now it's possible to call arbitrary XPath functions: (write (x:call "concat" "ab" "cde" "fgh")) (write ...
February 25, 2007

general questions about DocBook -> LaTeX

In the mailing list docbook-apps, I recently answered to the post titled "General questions about DocBook -> LaTeX". I think my notes are interesting not ...
February 23, 2007

notes on compiling XSieve for Windows

Some time ago I tried to compile XSieve for the win32 platform. I was partially successfull, I compiled everything except of the XSieve DLL itself. I'm not g...
February 16, 2007

autotools games

After long break, I returned back to XSieve and found that the new tools doesn't compile the sources. Many errors are easy to fix, I need only to explicitel...
February 13, 2007

postponing unquote

I need to generate S-expressions like: (let ((val "datum")) val) The actual expressions are more complex, the value "datum" is dynamic, therefore the specia...
February 10, 2007

highlighting in the console

One of the unit testing tools (Testeez, to be more precise) is a bit too verbose. It displays not only the failed tests, but also the passed tests. When the ...
February 08, 2007

codegeneration is cool

The expression "1+2+3" is converted to: (list-ec (:list e1 (gx:. gx:unit gx-ffi:number gx:fido (gx:unit 1))) (:list e2 (gx:. gx:unit gx-ffi:num...
February 07, 2007

wordpress 2.1

I've upgraded wordpress to the version 2.1. It wasn't very easy because the authors have broken incompatibility with older versions, therefore my tweaked the...
February 01, 2007

obfuscating PHP code

Recently I needed to obfuscate PHP code. Nothing fancy, no bullet-proof protection needed. The goals were: * complicate removing of license protection by an ...
January 29, 2007

mysql statistics

Found an useful command: "SHOW STATUS" or, depending on the mysql version, "SHOW GLOBAL STATUS". Of some interest also "SHOW VARIABLES" (or, correspondingly,...
January 27, 2007

the essence of functional programming

I've transcripted the code examples from the paper "The essence of functional programming" by Philip Wadler. Invited talk, 19'th Symposium on Principles of ...
January 24, 2007

Learning Haskell

The main problem of learning Haskell is the very beginning, the first step: to write a working program, which * as small as possible, and * more than just pr...
January 17, 2007

Lexmark isn’t printing

After returning from holidays, I found that printer doesn't print anymore. After some investigation, I found that dmesg contains: usb 2-1: new full speed USB...
January 16, 2007

Saint-Peterburg. No bears, just beauties

In streets of Paris, Amsterdam and London have appeared billbordy with an inscription "No Bears, just Beauties", advertising St.-Petersburg as a tourist dire...
December 27, 2006

consodoc is referenced

While searching if anyone noticed Consodoc, I found a Spanish document: Introducción a las tecnologías y estándares XML by Manuel Collado. Here is a bit of E...
December 27, 2006

Textual Confirmation is taking off

Life is strange. The serious software such as TeXML or Consodoc are used by few people only. The side-development, phpBB antispam, is more popular than all t...
December 22, 2006

xslt 1.0 code isn’t reusable

I'm building an XML site. One of the common tasks is to get a book by isbn. I needed 4(!) attempts to get it working! The first attempt was obvious. I creat...
December 13, 2006

terminology

I can't remember what is what, so writing it down: * orphan: line at the bottom, the rest on the next page * widow: the last line at the top, the beginning o...
December 09, 2006

creatiff

Created an avatar for use in phpBB forums:
December 06, 2006

bbAntiSpam press-release

Press-release: "bbAntiSpam Tools: The First Anti-Spam Solution For phpBB Forums Has Been Released".
December 05, 2006

wrapping text in vim

For long time, I wanted the following functionality in vim: I select text and say "wrap the text by a tag". Now I'm formatting texts for HTML, and this funct...
December 03, 2006

Word to HTML

I got an HTML export from Word. The HTML code was very ugly and, what's worse, confused the site where I wanted to submit the text. I failed to refine the co...
November 24, 2006

Consodoc vs tbook or jadetex

In comp.text.xml, I was asked to compare Consodoc with tbook and jadetex. My answer. thanks for asking. It's hard to compare Consodoc with tbook or jadetex,...
November 09, 2006

Consodoc is released!

Hard to believe, but I forget to release Consodoc after the two-week beta period. Yesterday I read the announce of the new version of SCons, 0.96.93, and dec...
November 08, 2006

Google Co-op and windows-1251

Google Co-op is a service that allows to create custom search engines. At the moment, it officially supports only English, but it seems other languages work ...
November 03, 2006

Textual Confirmation

I've got stuck in phpBB. I've just announced new anti-spam hack: Textual Confirmation. Yet another must-have for phpBB. Discussion on phpbb.com.
October 29, 2006

plasTeX

Seems interesting: plasTeX is a LaTeX document processing framework written entirely in Python. It currently comes bundled with an XHTML renderer (including ...
October 25, 2006

Unit testing for phpBB

I was writing a MOD for phpBB, and at some moment I found I can't go further without unit testing. I found it's quite a hard task because phpBB is written wi...
October 21, 2006

unit testing for PHP

At some moment, I found that I'm afraid of writing new code. The reason was simple. I wrote in PHP and, obviously, without unit testing. I got the programmer...
October 17, 2006

messy Perl code

I download my mail using fetchmail. During the process, "tail -f" shows the subjects of the incoming letters. Unfortunately, most of them are unreadable, som...
October 17, 2006

use “perl -w”!

I thought "use strict" is enough and didn't try to run an application with the "-w" flag. (Don't blame me, it was under Windows.) As result, I played ping-po...
October 14, 2006

joining entities

XML tools are good when the input data is XML. And they are awful when the data is XML-like. As result, instead of using "xmllint --noent", I had to write my...
October 11, 2006

XString: XML as String

In xml-dev mailing list, William Gilreath posted an preview announce of XString, an XML technology "XML as a String". I found time to look at the paper and w...
October 08, 2006

psnup2.pl: a better “psnup -2”

A new tool from me. Psnup2.pl puts two PostScript pages onto one page. It is similar to "psnup -2", but * psnup2.pl drops the margins, and * zooms the pages ...
October 01, 2006

fixing /invalidfont in ghostscript

Recently I updated ghostscript, and it stopped working even on its own examples: $ pwd /usr/share/ghostscript/8.15/examples $ ps2pdf alphabet.ps ~/a.pdf ERR...
October 01, 2006

RentACoder conditions

A copy of RentACoder terms of work between the buyer and the coder. 1) Complete and fully-functional working program(s) in executable form as well as comple...
September 28, 2006

consodoc questions

From the Consodoc forum: * Running Consodoc under Windows * What is the document input format: * - What is the document input format? I know, it's XML, but w...
September 26, 2006

file names in LaTeX

The symbols like "_" and "<SPACE>" are special for LaTeX, therefore using them for file names used by LaTeX isn't a good idea. Anyway, we can't control...
September 25, 2006

Consodoc beta released

Finally, Consodoc publishing server is released as beta. Consodoc assist with getting beautiful PDFs from XML. The main features are: * XML is converted to P...
September 25, 2006

LaTeX bizcard variation

I've adapted the LaTeX bizcard package for the following: * A4 page. * Two columns of visit cards, each card is of the size 85x55 mm. * Top and bottom margin...
September 21, 2006

shared phpBB installation

I have several domains, some of them need a phpBB forum with modifications being added permanently. It's inconvenient to maintain several copies of the same ...
September 20, 2006

printing batch of source code

I want to analyze an open source application by reading its source code. I don't like reading from the screen. Instead, I'd like to print the code and read o...
September 17, 2006

recursive sync of only html files

I've figured out how to combine include/exclude options of rsync to upload only HTML files: rsync -n -a -v --exclude '.svn/' --include '*/' \ --include '*.ht...
September 17, 2006

scons bug

After the libxml/libxslt bug session, now it's time of SCons: dots in file name, then suffix rules failure.
September 13, 2006

libxml/libxslt bug session

When I use programs, I get errors. This time I used xmllint and xsltproc. New bugs: * text copy failed with XInclude * XInclude rangeto() loses nodes Fixed f...
September 11, 2006

GPL text variations

I've spent some time trying to nicely format an GPL excerpt in LaTeX. The problem is that the all-caps text of the "no warrantly" section doesn't fit to the ...
September 11, 2006

source specials for PDF

Some TeX implementations or macro packages provide the facility to automatically include so-called "source specials" into a .dvi file. These contain t...
September 04, 2006

scons signatures for Python actions

Finally, I traced out why time-to-time my functional tests stop passing. * Some steps are associated with Python functions. * Signatures of such steps depend...
August 24, 2006

forcing python mode in vim

To force the python mode for a file, add the following comment at the beginning: # -*- mode: python -*- It's also possible to add other options as well. Unfo...
August 23, 2006

consodoc does work

Recently Consodoc has passed refactoring and all the unit and functional tests. Now I've tried it in the real life. Result is exciting. I expected that the ...
August 19, 2006

currently executing python file

Here is a way to get the currently executing Python file: print (lambda x:x).func_code.co_filename Probably there is a simpler way, but I haven't found it. ...
August 16, 2006

fixing build signatures

I have a lot of functional tests for my build process. Recently I changed the program name on one of the intermediate steps. As result, SCons * thinks the bu...
August 12, 2006

parsing latex log files

In mary cases, LaTeX should be run several times to get the correct result (for example, to resolve cross-references). The only way to detect if re-run is re...
August 10, 2006

consodoc milestone

Finally, all the functional tests (at the moment, 34) for consodoc are written and passed. The rest is easy: walk through FIXME file and make refactoring, cr...
August 06, 2006

discrimination of the europeans

Recently I got a complaint from an european user who wanted to buy bbAntiSpam. He was unpleasantly surprised that the actual price was two times more than th...
August 05, 2006

scons: derived but source files

My build process consists of several steps. One of the intermediate files is actually intended to be edited by the user. But I noticed that when user changes...
August 05, 2006

python trap

What will this code print? for item in ('aaa'): print item The result is: a a a I think you expected the following as the result: aaa I was near reporting...
August 02, 2006

one month delay

Consodoc project is now one month delay, and I expect I can't release anything before the end of August. Functional testing revealed a lot of problems, some ...
August 01, 2006

xslt unit testing

I'll need it as soon as I start working on the DocBook stylesheets: Tennison Tests (XSLT Unit Testing).
July 31, 2006

trolling

Just have written to a mail list: "DOM is something I definitively avoid to use. Using DOM in programs is like programming in assembler, except the latter is...
July 29, 2006

hijacking .sconsign

I have a lot of functional tests for SCons processes. At some moment, I improved one of the first steps in the process. As result, now most tests fail due to...
July 29, 2006

s-expressions vs xml

I've dumped some my thoughts to text. Result is a draft of a possible paper: "Towards s-expression based XPath/XSLT implementation".
July 26, 2006

XPath Filename Expansion in a Unix Shell

Recently I found the paper "XPath Filename Expansion in a Unix Shell" (HTML, PDF) by Kaspar Giger and Erik Wilde. I'm pleased the authors have referenced my ...
July 22, 2006

TeXML 2.0.1

I've released a minor update of TeXML. I found that combination of the command-line flags "--ascii" and "--encoding" didn't work as desired. Now TeXML attemp...
July 22, 2006

testing SCons processes

Consodoc is (at the moment) vaporware for XML publishing as PDF. It has passed unit tests, and now I'm going to test the program as the whole. Consodoc is b...
July 17, 2006

the fall of XPath over filesystem

Many XPath tutorials use file paths as an analogy of XPath. While it is ok from a high-level point of view, the analogy is misleading and actual technical im...
July 13, 2006

TeXML 2.0: what’s new

Following the request in xml-dev: What's new/changed in 2.0? I'm sorry I haven't described changes in the announce. I decided that the userbase of TeXML is...
July 12, 2006

announce: TeXML 2.0

Finally, TeXML 2.0 is released. Home: http://getfo.org/texml/ Tour: http://getfo.org/texml/tour_simple.html Download: http://prdownloads.sourceforge.net/getf...
July 11, 2006

phpBB Antispam HOWTO

Supporting community sites causes pain. One of the new pains is phpBB spam. I've collected my recommendations in the article "phpBB Antispam HOWTO".
July 10, 2006

SCons, testing additional files to clean

SCons supports a list of files to be also deleted on "scons -c" (cleaning). Here is a code example how to check that a file is in the list. Actually, it not...
July 07, 2006

amusement

Rentacoder is a good source of amusement. Recently I submitted an article to be proofread, and one of the replies was: "...Pls send us the font & style s...
July 07, 2006

functional testing

Unit testing is good, but the actual behaviour of a program also should be tested. I wanted not to re-invent the wheel, and looked for an existing tool. My ...
July 05, 2006

unit testing for SCons

I'm developing a build process on top of the build system SCons. Some steps are not trivial, so unit and functional testing are required. By trials and erro...
July 05, 2006

new TeXML docs

Finally, I've uploaded the new TeXML documetation for the upcoming version 2.0: http://getfo.org/texml/. And it seems I've forgotten to announce the version ...
July 05, 2006

converting dates

Inspired by Google feature of converting units, such as "20 euro to usd", I tried to ask for "Sat, 1 Jul 2006 14:01:40 -0700 PDT to GMT". Unfortunately, Goog...
July 02, 2006

what’t worse than spam

Aggressive antispammers are much more worse than spammers. My xmlhack.ru and uucode.com providers are victims of them. Now I lose a part of my incoming email...
June 26, 2006

syntax highlighting for DocBook

Looking into DocBook SVN, I've found an interesting development: "[docbook]/trunk/xsl/highlighting" with the comment "Initial support of syntax highlighting ...
June 21, 2006

home page and resume

My home page and resume are re-factored and updated. It's something what should be done regularly, but I've found time only now.
June 18, 2006

my first greasemonkey script

Time to time I order translations of xml.com articles. It's not cheap, and I try to reduce costs. One of the most obvious approaches is to ignore code listin...
June 17, 2006

alternative bbAntiSpam description

Recently I submitted bbAntiSpam to phpBBHacks.com, and now it is accepted. The site owners, however, have re-written the description: This hack makes it so...
June 14, 2006

Localization and FrameMaker

"Localization and FrameMaker" (pdf): insights and guidance on preparing for localization, choosing vendors, understanding the localization process, and antic...
June 07, 2006

publishing code in WordPress

WordPress blog engine automatically adds typography to postings. For example, it changes two dashes to the long dash, changes the usual quotes to different s...
June 02, 2006

favicon.ico

I'm tired of "favicon.ico" entries in error_logs of my sites, so I've decided to fix this problem. Additional information: How To Create And Install A favic...
May 31, 2006

printing slides

For important texts, I prefer to print them on paper and read in peace. The last time I did it was for the XTech 2006 slides. Unfortunately, I didn't find ho...
May 26, 2006

XSieve slides and remarks

The slides of my XTech 2006 presentation "XSieve: extending XSLT with the roots of XSLT" are online as PDF. The paper is available as HTML and PDF. I got a p...
May 23, 2006

going to XTech 2006

I leave the home today and go to Amsterdam. The bad news is that I can't take my notebook with me, so Developers Corner might miss TeXML. I hope I'll be able...
May 15, 2006

the Bad Thing in xsltproc

Yet again, I've been affected by an xsltproc bug. If the result is empty, then the output file isn't changed. As result, sometimes chained transformations co...
May 11, 2006

google xml

$ xmllint --noout http://googletalk.blogspot.com/atom.xml http://googletalk.blogspot.com/atom.xml:32: namespace error : Namespace prefix o on p is not defi...
May 10, 2006

conference checklist

XTech conference starts 16 May, today is 9 May. Time to prepare. I've searched inet for "conference checklist" and, surprise, found near nothing. Anyway, I w...
May 09, 2006

open office format

I think the specification is enough to convert Open Office documents, but the books also might be useful: * <a href=""http://books.evc-cit.info/odbook/boo...
May 03, 2006

Are Stylus Studio spammers?

The most popular type of postings in xml-dev starts with "[ANNOUNCE] Hello Everyone, Stylus Studio has just..." And now I found them in my Russian-speaking (...
May 03, 2006

LuaTeX

LuaTeX is an extended version of pdfTeX using Lua as an embedded scripting language.
May 01, 2006

reading “Microformats in Context”

I've got a translation of the Uche's article "Microformats in Context". I was very confused after reading, so I printed out the English version and read aga...
April 30, 2006

spam-free phpBB

I'm an owner of a small phpBB forum. Some time ago I was so tired of spam, that spent some time looking for a solution. I didn't find anything I like, so I'v...
April 27, 2006

DokuWiki

It seems that I like DokuWiki in advance. It supports utf8 and has nonparsed blocks and syntax highlighting for typesetting code. To be used for a next proje...
April 23, 2006

online syntax highlighting

Code examples are more readable when code is highlighted. To assist with highlighting, I've just released a simple online colorizer tohtml.com. Comments are ...
April 13, 2006

Roomba is our all

Now I'm not so excited as earlier, but I can't miss Dr. Macro's post about Roomba. He writes: This is something I would have never bought for myself but now...
April 09, 2006

hello sendmail

I've purchased a Virtual Private Server for my new project. The first thing to do is to make mail working. Initially, I want the most trivial setup: all doma...
April 04, 2006

google is evil now

I like not to read from screen, but to print and read texts offline. Today I tried to print an usenet discussion from the Google groups interface. Unfortunat...
April 01, 2006

free unicode fonts

Unicode Font Guide For Free/Libre Open Source Operating Systems
March 25, 2006

converters using make-files

I sometimes need to convert a lot of files from one format to another. When the task is a one-time task, it's better to use the "for" loop in shell, but when...
March 25, 2006

understanding if LaTeX run is successful

I'm using LaTeX in batch scripts, and I need to detect if the result is successful. It seems the best way is to look into the log file. I wonder if an imagin...
March 23, 2006

essence of my CS work

Recently I was asked for high-level details of my scientific work. As result, I've written a short text, which I like. The main operations with the tree dat...
March 22, 2006

XTech 2006 shedule

The XTech 2006 shedule is ready. The talk on XSieve is sheduled to the last day, 19 May. I've looked through the shedule and found an unpleasant collision. ...
March 16, 2006

how to make screenshots

Screen Captures (pdf) This document is about making screen captures for technical writers working primarily in a Microsoft Windows environment. The tools tar...
March 12, 2006

loading libraries in XSieve

For my XTech paper, I need an example of usage of XSieve in practice. So, I finally have written a code which was in the mind for two months (more on it late...
March 08, 2006

showbox in LaTeX

Not a first time when I need to trace a LaTeX layout by digging into the details, and again I've spend time remembering how to do it. Fixing the magic in wri...
February 26, 2006

XSieve is accepted for XTech 2006

I'm talking about XSieve at XTech 2006. Very nice.And I'm a bit embarrassed to be in the star company. But there is no time to fuss about, there is time to s...
February 24, 2006

Polishing Adobe Illustrator results

Adobe Illustrators seems to be a very good tool, even although I've never used it. Unfortunately, I have problems with AI results exported as SVG and EPS. O...
February 20, 2006

vote for XSieve at XTech 2006!

Recently I got an XTech 2006 speaker notification. It said that acceptance or rejection notifications would be sent this week, and some more papers would be ...
February 19, 2006

better multiple pages per sheet

The utility psnup puts multiple logical PostScript pages onto each physical sheet of paper. Unfortunately, I've found that I don't like result. I've got a be...
February 15, 2006

Converting to 3gp

I wanted to play video on my Siemens M75. After some research, I found that the format is 3gp. Video files can be converted to this format using the Linux ut...
February 15, 2006

A wonder de-mystified

There is rumour that sometimes people start to speak in a foreign language, even if they have never learnt or heard it. That could be assigned to the overwor...
February 14, 2006

Adobe vs ElcomSoft

I'd like to enhance an Adobe tool, so some retrospective is useful. * Index of ElcomSoft, Dmitry Sklyarov, Adobe, US Government and DMCA-related coverage * ...
February 06, 2006

creating xsl-fo is easy

A funny quote from frameusers mailing list: Creating XSL-FO is easy - I just tell a programmer what I want.
February 04, 2006

DU350PS does work under Linux

DU350PS is a SATA Hard Drive Mobile Rack with USB 2.0 interface. It seems working under my Linux. No special setup required. The corresponding entry in /pro...
January 30, 2006

Now in Dr.Dobb’s Journal

Dr.Dobb's Journal publishes a serie of articles devoted to Google Summer of Code. Now it's time for my article: unnamed article about XSieve.
January 28, 2006

before updating the system

Just a note to myself what to do before "apt-get dist-upgrade": apt-get clean apt-get check apt-get update apt-get install gnupg bzlib apt rpm
January 24, 2006

I’m a good tester

I've decided to try XML support in browsers. Half hour later I crashed Mozilla 1.7.2 using expression: document('authors.xml',document(''))//author[@id=curre...
January 20, 2006

yet another submission (XTech 2006)

I've submitted a presentation proposal for XTech 2006: "XSieve: extending XSLT with the roots of XSLT". Brief Session Description XSLT has roots in DSSSL. D...
January 08, 2006

Yet another rejection (post-GTTSE’2005)

The post-GTTSE'2005 paper "XML View on Hierarchical Data Using SXML and Scheme" (HTML, PDF) is rejected. Below are the rejection reviews. Review I am really...
January 08, 2006

Aspire 1610 internal modem under Linux

Notebook "Aspire 1610" has an internal modem which identified by lspci as "Intel Corp. 82801EB/ER (ICH5/ICH5R) AC'97 Modem Controller (rev 02)". It took much...
January 06, 2006

Python for Lisp Programmers

A small Lisp vs Python article: "Python for Lisp Programmers". The title is very untraditional, one expects Python and Lisp swapped.
January 05, 2006

tables always a special kind

I though I need several minutes to write a FrameMaker script. Script had to change font size in a block of text. What could be simplier? Unfortunately, globa...
December 28, 2005

XSieve 1.1.0 is released

XSieve 1.1.0 is the second public release. It mostly fixes misfeatures of the previous version. More precisely: * No need for special Guile version. Lazy t...
December 26, 2005

I’m near back

After two-month rest, I recently got modem Internet connection. Expecting upgrade to DSL in the new year.
December 26, 2005

spam mask

I tired of MovableType spam. More and more spam sites. Finally, I've added mask ".*" to the filter.
October 20, 2005

how to help TeXML

I've got a question: I'm pretty interested in the TeXML project, and would consider helping in the development. Could you tell me how active the project is a...
October 15, 2005

minipage and vertical spacing, parskip

I noticed that my \parskip was ignored by the "minipage" environment. After some investigations I found that many vertical spacing commands have a special be...
October 14, 2005

captions of wide longtables are indented

Some of my longtables are wider than \hsize (=\columnwidth). It's ok. The problem is the left-aligned captions of such tables. If a table is X too wide, then...
October 12, 2005

revising LaTeX notes on font substitutions

Automatic font selection scheme in LaTeX somethimes is not so good. For example, when series "n" (normal) and "bx" (extra bold) are defined for a font, and a...
October 05, 2005

avoiding babel shorthands

Babel allows LaTeX to speak multiple languages. It also introduces shorthands, one- or two-character sequences, which help non-English authors to type langua...
October 04, 2005

WingDings font in LaTeX

My documents should use WingDings font, so I've added the font to LaTeX. It wasn't easy task because (1) the font is True Type (2) the font encoding is non-s...
September 29, 2005

eps to something

I generated an HTML version of a product catalogue and found that the result was very bad due to poor PNG images. To get good PNG images, I had to write some...
September 29, 2005

who am I

I've prepared a mini-bio for a possible DDJ article: Oleg Paraschenko is a PhD student in the Saint-Petersburg State University, Russia, and a freelance dev...
September 28, 2005

going DDJ

My mini-article on XSieve seems going to be published in Dr. Dobb's Journal. The rewritten version passed an editor, and a editor-in-chief asked me for a pho...
September 26, 2005

XSieve 1.0.1 – better x:eval

The base for relative paths in "x:eval" is the XSLT context node. It wasn't possible to change the base in XSieve 1.0.0, and it was behaviour by design. I re...
September 22, 2005

using Helvetica symbols in LaTeX

A LaTeX document sets Helvetica as the main font, but some special symbols (like "copyright") look strange. After detailed look at PDF, I found that the symb...
September 22, 2005

research wiki is updated

I've updated my research support wiki. One of the changes is a new page for XSieve.
September 18, 2005

problematic code points in FrameMaker

Superior comment from Stefan Gentz (TRACOM). Here you go with a list of characters that are *not* possible with FrameMaker (as long as you don't use any pat...
September 14, 2005

Are CJK and everysel compatible?

CJK and everysel seems not compatible. If a CJK document loads "everysel" package (or "ragged2e", which loads "everysel"), the result has artefacts. A sampl...
September 12, 2005

making unicode pdf bookmarks with TeXML

I've added a new feature to TeXML. Content of the element "pdf" is converted to utf16be and encoded using escape-sequences. It is useful for making PDF strin...
September 07, 2005

gdb hint for debugging libxml

From a letter to the libxml mailing list. Probably it's well known, but I'd like to share useful gdb settings. From my ~/.gdbinit: <code> define xp c...
September 06, 2005

XSieve 1.0.0 released

XSieve was released 1 September 2005, but I started to send announces only recently. Here is an example of announce for the xml-dev mailing list and the comp...
September 06, 2005

pseudo-unicode bookmarks in Acrobat Reader

Although Acrobat Reader 5.0 is supposed to support Unicode bookmarks, it doesn't. I can make bookmarks "ßß" or "Ñ?Ñ?", but I can't create a bookm...
September 06, 2005

PerlTeX references sTeXme

I've just found an article PerlTeX: Defining LaTeX macros using Perl by Scott Pakin, published in TUGboat 25(2) 2004. In the section "Related work", the aut...
September 05, 2005

Structured FrameMaker bug with insets

It seems that text format rules, which are defined in a FrameMaker EDD, are lost when updating text insets. Open "test.fm". Text "some text" is bold. Click ...
September 02, 2005

float to integer conditionally

I need to check if a float value is actually an integer. If so, I use the value as integer, otherwise as float. How to implement it? I realized that I don't...
September 01, 2005

InsetPlus, Structure Tools

Russ Ward (West Street Consulting) have announced a beta version of InsetPlus, a FrameMaker plugin for managing documents that consist of reusable text modul...
September 01, 2005

debugging memory problems - II

After fixing problems with garbage collection, other memory errors are trivial, even if they take a while. This time I used xmlXPathConvertString, which free...
August 27, 2005

debugging memory problems

I should feel lucky. I've debugged and fixed program crashes, which were induced by garbage collection. It have taken only 4 days. I've added 5 lines to the ...
August 27, 2005

Incorporating Guile into your C program

I'm sad I didn't find the article “Incorporating Guile into your C program” before. It would save me a lot of time. Although the author annotates...
August 26, 2005

I’m not gready

I like Kynosarges' comment on the Tree Help Plugin for Structured FrameMaker. Another software nugget for users of Structured FrameMaker: DataHansa's Tree ...
August 25, 2005

descriptions of the Tree Help plugin

This auxiliary entry is reserved for collecting descriptions of the Tree Help Plugin for Structured FrameMaker. My own link. Checked 25 August 2005. In the ...
August 25, 2005

last week of XSieve

I haven't release a new version of XSieve, and there are no user-visible changes, but it doesn't mean I do nothing. I've been working on low-level technical ...
August 24, 2005

nasty libxslt surprise

Libxslt optimizes "xsl:text", but there is no mention of the optimization neither on the site of libxslt, neither in its mailing list. I've got the knowledge...
August 23, 2005

string value of entities

The XPath specification doesn't define what is the string value of an entity. Even more, the data model for XPath doesn't have entities. But in XSieve I do h...
August 23, 2005

GTTSE 2005 photos

Finally, my GTTSE 2005 photos are online. The start page is approximately 2Mb, and larger photos are of 300Kb-1Mb size. Unfortunately, I can't describe how g...
August 20, 2005

one more libxslt bug

That's not funny. Again the namespaces, again a libxslt bug. Libxslt is confused when XSLT and XML use the same prefix with different URI. The following sty...
August 18, 2005

now wt2db bug

Yet another bug, in yet another program. I like wt2db (WikiText to DocBook, I've already written about wt2db), so I've submitted a bug. Steps to reproduce: ...
August 18, 2005

namespace collision with namespace-alias

I'm trying to write a sort of generative XSLT: an XSLT stylesheet which creates another XSLT stylesheet. Unfortunately, I've confused xsltproc. The simplest...
August 17, 2005

make sure if it is really an error

I was near starting to fix a "bug". Fortunately, I asked myself: "is it really a bug, or is it misunderstanding of the specification?" That's saved me a time...
August 16, 2005

XSieve 0.0.3

I've just released XSieve 0.0.3. The main changes since XSieve 0.0.2, which was released a week ago, are: * introduction of examples, and * improvement of d...
August 15, 2005

too smart

From a letter. “You should make Python Script for ... look more impressive. Currently it works less than 1 second and displays: "ready, press any key"...
August 11, 2005

programlistingco is fake

Don't use programlistingco and other co-elements of DocBook. They are not supported in full by the DocBook XSL stylesheets. Callouts, such as numbered bulle...
August 11, 2005

adding recursive targets to [auto]make

I wanted to add my own recursive target in addition to the recursive targets produced by automake. It was not easy. At the first glance, it was an easy task...
August 10, 2005

XSieve 0.0.2

XSieve 0.0.2 is the first public release of XSieve, a language which interweaves XSLT and Scheme. The source code of XSieve 0.0.2 is near the same as of XSi...
August 09, 2005

autotools are not so scary

This week I was porting XSieve installation tarball to GNU standards, in particular, to using ./configure, make, make install. It was not easy, especially be...
August 06, 2005

creating mysql users without pain

On my computer, I often install web-applications which use a mysql database. I prefer to run different applications under different database accounts. Till n...
August 04, 2005

MIFML

I've got feedback from Scott Prentice on recently released Tree Help plugin for FrameMaker. He has added the plugin to his leximation.com tools database. But...
August 02, 2005

Tree Help plugin is released

I've released Tree Help plugin for FrameMaker as shareware. I don't expect much (if any) income, but I have a vague feeling of usefulness of releasing the pl...
August 02, 2005

xsieve progress report, 25-30 July

Here is a sort of report on progress in XSieve development. I'm working on making the installation procedure easier. The XSieve uses a special version of Gu...
July 29, 2005

the lazy pairs patch for Guile is updated

Lazy pairs patch for Guile allows to implicitly instantiate parts of S-expressions on demand. Today I've refactored the distribution archive. The old distri...
July 29, 2005

diff, patch, diff3

In order to produce a patch file, I've looked through the following books: Comparing and Merging Files Information For Maintainers of GNU Software In orde...
July 29, 2005

XQuery in Scheme

The new project SXQuery looks very interesting for me. First, the developers started with the review of current approaches, and their wiki contains a lot of ...
July 23, 2005

XSieve, development snapshot

XSieve have raised interest, and I've got several requests to show at least something. Today I've managed to write a sort of documentation, to put the docume...
July 21, 2005

XSieve is accepted

A news which should have been posted a month ago. XSieve proposal became one of the Google Summer of Code projects. Due to visiting GTTSE 2005 and travelling...
July 21, 2005

new category XSieve

I've just added a new blog category titled "XSieve". It is result of extracting a subtopic of the topic "generative xml". The project XSieve have raised an i...
July 21, 2005

script wrapper for Windows

I'm always spending lots of time searching for these information: "Using batch parameters", "Using batch files", "Command shell overview". I need it to writ...
July 11, 2005

poster for GTTSE

I'm starting the trip to GTTSE 2005 tomorrow morning (in fact, today, because now is 3:40am). Unfortunately, a draft poster is finished only now. Download: T...
July 03, 2005

taxes on payments from the US

My project is accepted for the Google Summer of Code project, and now it's time to ask for money. From discussions: "Figuring out that damn tax thing appears...
June 26, 2005

PreScheme Papers

A list of papers related to PreScheme and VLISP: http://www.coyotos.org/pipermail/bitc-dev/2004-October/000003.html. Should be useful for my future developme...
June 26, 2005

T-shirt for the conference

I don't make any presentation at the GTTSE 2005, but I want to share my ideas and get feedback. Specially for this conference, I've ordered and got a T-shirt...
June 24, 2005

no Chinese bookmarks in Acrobat Reader

I've spent two days understanding how to create CJK bookmarks using LaTeX. Finally, I checked the internal structure of a PDF document with a sheet of paper,...
June 23, 2005

fast docbook editing in vim

I'm going to write quite a big text in DocBook format. At work I use FrameMaker, but at home I don't have FM, so I'll use the universal text editor vim. DocB...
June 21, 2005

search path in LaTeX breaks expectations

Some tutorials on non-root installation of LaTeX modules rely on the environment variable TEXMFLOCAL. Unfortunately, it doesn't work when the folder "~/texmf...
June 21, 2005

x:apply-templates: “with-param” works

Finally, "with-param" in the Scheme function "x:apply-templates" works. It took some time because I forget an experience with making "mode" working. Again, p...
June 20, 2005

libxml doesn’t compile

The latest CVS version of libxml2 doesn't build. Linking fails with messages: ../../.libs/libxml2.so: undefined reference to `pthread_getspecific' ../../.li...
June 20, 2005

TeXML: any encoding as ASCII

The TeXML development version 1.27 brings new essential functionality: "--ascii" parameter. Now it's possible to generate plain ASCII TeX files in a desired ...
June 20, 2005

rejected again

Unfortunately, I'm not giving a presentation at the «Participants Workshop of the summer school on Generative and Transformational Techniques in Softwa...
June 19, 2005

indenting XML in vim

Sometimes I need to look inside XML files which consist of one big line. It's very impossible, and reformatting takes a time. Fortunately, I've found a good ...
June 15, 2005

latex utf8 files as plain ascii

I have problems with non-latin publishing through LaTeX, and I'm going to ask for help in forums. While asking, I should provide a sample LaTeX file, but how...
June 15, 2005

askemos

From the mail discussions: www.askemos.org. “This is actually a Scheme VM in byzantine synchronisation over a P2P network with some administration fre...
June 14, 2005

Chinese publishing

Without any knowledge of Chinese, I have to publish a Chinese document. Fortunately, I have a source as an utf8-encoded XML. These remarks should help me la...
June 14, 2005

generative XML paper

I've published the article "Reusing XML Processing Code in non-XML Applications" ([PDF]) version 1.0 and posted announces to different forums. Places: xml-...
June 07, 2005

take some time to do it

On the 1st April (fool's day; in our culture a day for jokes) I got a letter from a customer with a specification and the words: "take some time to do it". U...
June 07, 2005

towards GTTSE 2005

I'm visiting Summer School on Generative and Transformational Techniques in Software Engineering (GTTSE 2005) and hopefully give a presentation. Extended ab...
June 05, 2005

feedback on the GPCE’05 article

Some time ago I submitted an article to the Generative Programming and Component Engineering (GPCE'05) conference. Article is rejected, but to my great surpr...
June 05, 2005

SYRCoDIS’2005

I visited as lurker Spring Colloquium for Young Researchers in Databases and Information Sytems (SYRCoDIS'2005). Quality of some talks was poor, but overall ...
June 04, 2005

Troubles make code stronger

A small test case revealed weak points in my code. Fixing each point was making the code worse and worse. Fortunately, I got insight. Why not to use a fake n...
May 27, 2005

3 days of hunting for a bug

I've spent 3 days on getting simple code to work. In exchange I've got more experience with xsltproc internals. But I'm not sure it's a fair trade. The task...
May 25, 2005

participating in GTTSE 2005

A confirmation letter is received: “… for the Summer School on Generative and Transformational Techniques in Software Engineering (GTTSE 2005)...
May 25, 2005

sourceforge have done it!

Finally, SourceForge.net repaired statistics for the projects. It was a dream since the middle of January.
May 24, 2005

converting XML CALS table to LaTeX

It looks there is a need for a converter from CALS tables to LaTeX. Here is yet another ask in comp.text.tex. Jonathan Fine answers a bit enigmatic, and I an...
May 24, 2005

comparing two similar strings

I've advertised GetReuse once again in response to the following question: How do you compare 2 strings, and determine how much they are "close" to each othe...
May 24, 2005

x:apply-templates starts to live

The Scheme function "x:apply-templates" should work like the XSLT function "apply-templates". The very basic test case is passed today. The default XSLT sty...
May 17, 2005

SATA HDD works under Linux

Due to historical reasons, my Linux box at work uses Promise RAID. Recently (month ago) I added a new HDD (AFAIK, attached to ICH5). Unfortunately, the HDD d...
May 11, 2005

essential error in the TeXML processor

Shame on me. The TeXML processor had a bug in the core functionality. Consider the following XML: <para> Paragraph starts ... ... and ends. </par...
May 09, 2005

libxml evening

Today I've submitted a bug to libxml, written to the libxml mailing list about wish items on the documentation, and asked about xpath and the document order ...
May 06, 2005

why to bother with namespaces

I found a non-obvious issue in the Namespace Recommendation and fixed my converter. Then I decided to look at other popular de-facto stanadrd tools. They are...
May 03, 2005

namespaces strike back

XML namespaces are an invention from the evil. Two harmlessly looking messages in one of the scripts evolved to two hard debug sessions. Fortunately, I manag...
May 02, 2005

wordpress and html meta keywords

WordPress, the current blogging system I use, doesn't support keywords for pages. Although search engines now don't believe in them, I still like to have the...
May 01, 2005

suggestions for thesis projects

In comp.text.tex, Tristan Miller asked: Can anyone recommend some small to medium-sized open problems which satisfy all of the four points below? Here are ...
April 28, 2005

one step forward, two back

Conversion of the attribute nodes seems working, although with some glitches. And I traditionally mention namespaces. I decided to have holes in ns processin...
April 26, 2005

attributes are not so simple

SXML to XML conversion of attribute nodes is becaming a trouble. I've fixed several initially unnoticed issues and found more items to check. The first prob...
April 22, 2005

Generative XML in FrameMaker

One of the use cases for XPath over legacy data is structured FrameMaker (FrameMaker+SGML). The structure is in fact XML, that's good. But the only interface...
April 20, 2005

let a bug be a feature

Adding variables to XPath was a simple task. But when I was testing it, I had to switch to testing the Scheme function "x:current" (former name "x:current-no...
April 19, 2005

a paper for GPCE 2005 is submitted

The last days were very hard. Usual activity was abandoned in favour of writing a paper for the GPCE 2005 conference. The deadline was April 15, 23:59, Apia...
April 15, 2005

asking Google

Yesterday I submitted a feedback on Google AdSense advertisements. (I'm getting verry irrelevant ads!) I was not surprised when I got a confirmation letter ...
April 12, 2005

why elements in XML can’t be numbers

A man wanted to make the numbers be the tag identifiers. Nope. Not allowed. He asked in the xml-doc mailing list why. My answers follows. Before reading it,...
April 11, 2005

vim and linebreak at the end of file

Sometimes it's very unhelpful when vim automatically adds a linebreak at the end of file. Finally, I've became so irritated to switch to joe each time to cor...
April 11, 2005

bullshit bingo

What's a nice thing! “Do you keep falling asleep in meetings and seminars? What about those long and boring conference calls? Here is a way to change ...
April 11, 2005

abstract for GPCE 2005 is submitted

I'm slowly and painfully writing a paper for the Generative Programming and Component Engineering (GPCE'05) conference. I hate my writing which should be thr...
April 10, 2005

LNCS LaTeX style works

I'm writing a paper for a conference. It should be written with conformance to the Lecture Notes in Computer Science style. After visiting the page with info...
April 08, 2005

mailing list archivers, my MailML

Ian Bicking writes about his disappointment with mail archivers. He even was starting to feel like he should just code himself. Just as I some time ago! But...
April 05, 2005

article section: SXML, the Lisp approach

Article isn't writing. Although, in general, I have ideas what to write, the actual writing is painfully slow. Today I've only finish a section, and I feel I...
April 04, 2005

slovakian ť in FrameMaker

Unfortunately, Slovakian letter ť (latin small letter t with caron) is not supported by FrameMaker. At first, I thought it was a problem with so-calle...
April 04, 2005

draft text on XML, XPath, S-expressions

I'm writing a paper (not for GTTSE2005 as the previous entry may suggest). Here is a bit of the text written today. XML Extensible Markup Language (XML, re...
April 03, 2005

I’m participating in GTTSE2005

Just have received a very nice notification: "The registration form you submitted has been evaluated, and we are happy to inform you that you have been ACCEP...
April 03, 2005

directory trees

I've just stumbled upon a new article at xml.com: Directory Trees to Document Trees. I've posted a comment to the article and dropped a note to the author. ...
April 02, 2005

TeXML on gmane.org

TeXML's mailing list "Getfo-general" presents now on gmane.org. Gmane is a mail-to-news portal that never expires its messages. It therefore also functions ...
April 02, 2005

“x:value-of” is not so simple

Implementation of the "x:value-of" function evolved to a quest. There are many questions, and in order to find answers, I have to dig in the source code of l...
April 01, 2005

encodings, codepages, characters

Unicode site is well-known. But sometimes it's not enough. Here are some more links. I always need information about language-specific glyphs. Now I've foun...
April 01, 2005

funny symbol codes

I've just realized that in MAC encoding the hexadecimal code of the symbol Æ is AE and Œ — CE.
April 01, 2005

namespaces reloaded

All this time I've subconsciously been ignoring a big namespace-related problem. I'm afraid the correct solution slows down the conversion between XML and SX...
March 31, 2005

drafting “x:value-of”

Thinking about testing XML to SXML conversion to pass the second milestone, I found out that I need functionality that was planned for the future. So I tempo...
March 31, 2005

plaguarism detection

I developed a tool named GetReuse that smartly calculates a similarity percentage of two texts. At the moment the project is dead, but sometimes I advertise ...
March 31, 2005

XML to SXML is probably works

(This post was written yesterday, but due to internet outage I'm posting it only now.) Exactly as I expected, implementation of conversion of attributes and ...
March 31, 2005

bugfixing 2, coredump

Other two bugs (see "bug list" and "bugfixing 1") are interrelated. Use of the map is powerful, but dangerous. To remind: 1) ... but I want to check that I ...
March 29, 2005

bugfixing 1, NULLs

In the previous entry I mentioned three bugs to be fixed. In this post I describe the second issue. To remind: The second issue is definitely not a bug, but...
March 29, 2005

XML to SXML coredumped

Surprisingly, conversion from libxml2 tree to SXML seems a trivial task now. Only attributes and namespaces are left. The core of the conversion engine is a...
March 28, 2005

more “bad style” programming

Using a global variable is a bad programming style, isn't it? But I've just used it, and I'm sure it's a right thing. I have a set of recursive functions wh...
March 28, 2005

nasty FrameMaker or FrameScript behaviour

Recently I got a complaint from an user that my FrameScript code did not work. Understanding the problem was a valuable experience. The code does the follo...
March 28, 2005

XML to SXML conversion is taking off

Several days ago I passed the first milestone in the generative XML work (conversion from XML to SXML). Reverse conversion looks simplier, but I just was not...
March 27, 2005

domains, godaddy, free dns

Now I'm the owner of the quite good domains "tohtml.com" and "2html.com". I'm surprised why they were free. I have some ideas what to do with these domains,...
March 26, 2005

in a good company

Before announcing QaTeX, Jonathan Fine sent an advance notice to several persons. Among them: * me, sTeXme * Scott Pakin, PerlTeX * Dorai Sitaram, eval4TEX ...
March 26, 2005

going to participate in GTTSE2005

I've submitted an application for participation in the Summer School on Generative and Transformational Techniques in Software Engineering. I'd like also to...
March 25, 2005

use of setup.py

While communicating about making TeXML distribution archives, I've got examples of powerful use of "setup.py". Using "setup.py" is a standard Pythonic way t...
March 24, 2005

TeXML day

I wanted to work on generative XML, but I had to answer a letter from Paul Tremblay about new release of TeXML. Answering developed into working on TeXML. F...
March 23, 2005

namespaces are finished

Namespace support in the SXML to libxml2 conversion is completed. I though I could finish namespace conversion much earlier. But programming was not very ea...
March 23, 2005

blog was down

Yesterday evening, trying to write the previous post, I found that my blog isn't working. It's the third computer failire in the last days (here are the firs...
March 22, 2005

make test

Before starting fixing the default namespace problem, I've created a test framework and added several tests. The results are as usual. 1) I found an error i...
March 22, 2005

The 90 Minute Scheme to C compiler

And although not supporting the whole Scheme standard, the compiler supports fully optimized proper tail calls, continuations, and (of course) full closures....
March 21, 2005

what’s up with DNS?

I never understand why, having such a victimable system as DNS, Internet is still alive. Now my understanding is giving up. Yesterday I decided to read a bi...
March 21, 2005

default namespaces force new changes

I decided to make sure that default namespaces are not a problem for the converter, and I found that actually it is the problem. Consider the following XML:...
March 20, 2005

redefinition of namespaces works

In one of the previous entries I wrote that conversion of namespaces is mostly working, but in some cases doesn't. I've traced the reason, and it neither a b...
March 20, 2005

GPCE

Homepage of the International Conference on Generative Programming and Component Engineering (GPCE): http://gpce.org/
March 20, 2005

internet outage

Yesterday evening I want to have a nice time after the working week. Unfortunately, etherlink link was dows and Internet was absent. To make things worse, it...
March 20, 2005

Google AdSense

I've decided to join the Google AdSense program. Now you can see advertisement blocks at the sidebar. Hope they are relevant, and that it may give me revenu...
March 18, 2005

the namespaces problems are solved

In the previous entry I wrote about the two faults in the conversion code. Now they are fixed. And the code have became a bit better. Attributes are now also...
March 17, 2005

first attempt on namespaces conversion

The code splits an element's full name on two parts, looks up in the tree for ns prefix or ns URI and creates a ns definition if not found. There is also a d...
March 17, 2005

one year of a bug

A year ago I wrote a script for managing reusable components in FrameMaker. It has being expensively used. Saying more, it's a core of a new workflow. Recent...
March 17, 2005

namespaces in TeXML

I've got a feature request to add namespaces to TeXML. Reasons are very strong, so I can't reject the proposal. Here is my answer: I though about namespaces ...
March 16, 2005

sTeXme at EuroTeX 2005

It seems sTeXme was mentioned at EuroTeX 2005. I've just stumbled upon the preprint (PDF) of Jonathan Fine's talk "TeX Forever!". He mentions sTeXme several ...
March 16, 2005

Algorithm for SXML to libxml2 namespaces

The previous entry "preparation for namespaces" was about presentation of namespaces in libxml2 and SXML. Now I'm going to describe the algorithm of translat...
March 15, 2005

preparation for namespaces

Namespaces are one of the dark corners of the XML technologies. For SXML to XML conversion, I've investigated technical details on the namespace presentation...
March 14, 2005

entities appear

The SXML specification allows only one sort of entities, namely, unexpanded entities. I can't find how to map them to the libxml2 tree, so converter just thr...
March 11, 2005

Making FM menus

It's hard to create menu scripts for FrameMaker, even with help of FrameScript because there are a lot of details. So several months ago I wrote a generator ...
March 11, 2005

entities in SXML

My letter to the ssax-sxml mailing list: Hello, the SXML specification allows only one sort of entities, namely, unexpanded entities. The only use for them i...
March 11, 2005

PIs and comments

My code now converts the special nodes *TOP*, *PI* and *COMMENT* to XML. The *TOP* is just a mark for the tree root. The code just skips it and descends to c...
March 11, 2005

libxml2 tree: NULL vs empty string

In libxml2, C calls xmlNewPI("name", NULL); xmlNewPI("name", ""); produce the following processing instructions <?name?> <?name ?> (notice th...
March 11, 2005

following bad practises

Some days ago I used "goto"s in my C code. Now that C function have got a new bad feature: a set of local variables named "scm", "scm2", "scm3", "scm4". Anyw...
March 11, 2005

WordML2LaTeX

New software was recently announced in comp.text.tex: WordML2LaTeX is a meeting point between two titans in word processing: Microsoft Word 2003 and LaTeX2e....
March 10, 2005

Skeleton is forming

Unexpectedly, I've got too little time for programming this evening. Anyway, the new code now can convert elements and attributes. XSLT: <x:stylesheet ...
March 10, 2005

Paul Tremblay improves TeXML

Nice news from Paul Tremblay. He submitted patches to TeXML. The first one allows to install TeXML in the normal Pythonic way: python setup.py build python ...
March 09, 2005

testing quotes

WordPress (this blog engine) changes quotes (") to (\"). Let see if php_flag magic_quotes_gpc off php_flag magic_quotes_runtime off have fixed the problem....
March 09, 2005

links, trees, forest, infinity

On mapping from Scheme values to libxml nodes. It is reasonable to map the same physical values to the same physical nodes. But it causes unexpected results....
March 08, 2005

from Scheme values to XML nodes

Conversion of some basic Scheme types (string, boolean, char, number) to XML nodes now works. The stylesheet <x:stylesheet xmlns:x = "http://www.w3.org...
March 08, 2005

goto considered

It's well-known that goto is considered harmful. But... I've just written a small C function of approximately 70 lines with 5 gotos and two goto targets. And...
March 08, 2005

xfind is not the standard find

The title "Find with XPath over file system" is a bit misleading. It is not the first time when I've got a question like: When you say "The standard UNIX uti...
March 07, 2005

XSLT element “scheme:init” works

I'm working on embedding Guile (Scheme interpreter) to xsltproc. I've introduced the element "init" to contain Scheme initialization code and added (I suppos...
March 07, 2005

Getting Started with XML and ConTeXt

Paul Tremblay has published an article for XML authors who want to use open source software to produce high quality PDF documents. He suggests using ConTeXt,...
March 07, 2005

TeXML

First of all, let me introduce TeXML: TeXML is an XML vocabulary for TeX. The processor transforms TeXML markup into the TeX markup, escaping special and out...
March 07, 2005

introduction

Why I've started the blog? What I plan to write? The answer is simple: it's all about the marketing of my software. I work on several open source projects wh...
March 06, 2005