Site Map
Writing & Software
Commercial Software
Our ecommerce provider, MyCommerce (owned by Digital River Inc.) stopped
paying us (and it appears, many others, see The
Register) in August 2024.
We no longer trust any ecommerce provider. We do not have in-house
expertise either in security or in tax regulations, so we are not able
to handle payments ourselves. In view of this Qtrac Ltd. has now ceased
trading, and will be wound up in due course.
We recommend that any customers with unacquired license keys acquire
them as soon as possible. We hope to keep the website going for a while,
and we hope to keep providing support as long as possible. All keys will
continue to work as before. In particular, “full” keys will continue to
work so long as the hardware/BIOS doesn't change, and annual keys will
continue until their normal expiry date, regardless of hardware changes.
Our software does not “phone home” and does not depend on our website.
(In fact, some customers use our software entirely offline.)
We are very sorry for the inconvenience to our customers, and grateful
for all those who have purchased our PDF comparison software over the
past decade.
Qtrac Ltd. is selling its console command line PDF comparison
software,
comparepdfcmd. Although comparepdfcmd has proved a
successful product in its own right, it is is only a thin wrapper around
our Rust-based PDF comparison engine. This engine could also be used in
a GUI PDF comparison application, or to provide the back-end of a
web-based PDF comparison app. Interested parties should contact
mark@qtrac.eu
for a prospectus.
Our commercial software is for sale or resale in
the US and most countries outside Europe.
(Why?)
- DiffPDF — compare PDF files quickly
and easily: a commercial Windows application ideal for office workers.
- comparepdfcmd — compare PDF
files: a commercial console (command line) program for Windows ideal for
testing, quality assurance, and scripted comparisons.
See also Why Compare PDFs?.
Free Open Source Software
In view of the EU’s Cyber
Resilience Act and an abundance of caution, we have withdrawn all
our free software.
-
accelhint—a
Go library for inserting keyboard Alt-key accelerators (i.e.,
'&'s) in a sequence of items (e.g., menu items or dialog labels).
There's also a GUI
application (Linux only). Python and
Rust versions are also provided, although the Go implementation
seems to work best. See MiniCalc's
“Accel Hints” tab for a GUI tool.
- amp—
a basic audio player GUI application. For a player than can also manage
playlists, see TLM
(Track List Manager)
- CharFind—
An application for finding Unicode characters.
- clip—yet
another Go command line interface parser. Uses bold and italics.
- Diff libraries (all implementing Python's difflib sequence matcher
algorithm):
go-diff (Go);
differ (Rust);
ddiff (D);
diff (nim)
- editabletuple—this
Python module provides the editabletuple() and editableobject()
functions for creating classes with a fixed sequence of fields, similar
to a namedtuple, except editable.
- Gravitate — a free
tilefall/samegame-like online game, plus free downloadable desktop
versions.
- gset—a generic
set implementation for Go.
-
MiniCalc—a
little GUI tool (expression evaluator, regex evaluator, accel hints,
etc.)
- murmur—an
Unlimited Register Machine (URM) emulator with optional extensions
(indirect addressing and some extra convenience commands).
- retest — a console
(command line) program for Windows and Unix for automating black box
regression testing, and a Rust library to do the same thing
programmatically.
- Tdb (Text
DataBase) Format—a plain text human readable strictly typed
alternative to CSV. In addition to the Go package, there's also a
Python
library.
- TLM
(Track List Manager)— an audio player and track list
manager.
- UXF (Uniform
eXchange Format)—a plain text human readable optionally
typed storage format. UXF is designed to make life easier for software
developers and data designers. It directly competes with csv, ini, json,
toml, and yaml formats. One key advantage of UXF is that it supports
custom (i.e., user-defined) types. This can result in more compact, more
readable, and easier to parse data. And in some contexts it may prove to
be a convenient alternative to sqlite or xml. Python and
Rust
libraries are available; other languages are in the works.
- unz—a
small Go application for unpacking zip files and tarballs, creating at
most one file or folder in the current folder.
- XindeX is
an easy to learn and use cross-platform GUI application for creating, editing, and
outputting indexes (e.g., for books).
See also our projects on github.
Books
- Python in Practice (ISBN 978-0321905635)
by Mark Summerfield—all the examples and a sample chapter are
available for free download.
Q&A
with 2014 Jolt Award Winner: "Python in Practice" Author.
- Programming in Go: Creating Applications
for the 21st Century (ISBN 0321774639) by
Mark Summerfield—all the examples and a sample chapter are available for free download
- Advanced Qt Programming (ISBN 0321635906)
by Mark Summerfield—all the examples and a sample chapter are available for free download
- Programming in Python 3:
A Complete Introduction to the Python Language (Second
Edition) (ISBN 0321680561) by Mark Summerfield—all the
examples and a sample chapter are available for free download
- Programming in Python 3:
A Complete Introduction to the Python Language (First Edition) (ISBN 0137129297) by Mark
Summerfield. Hungarian, Portuguese, Russian, and Spanish translations are now
available, with Chinese and Japanese translations in the works.
(Superceded by the Second Edition.)
- Rapid GUI Programming with Python and Qt:
The Definitive Guide to PyQt Programming (ISBN 0132354187) by Mark
Summerfield. A Chinese translation is in the works.
-
C++ GUI Programming with Qt 4 (2nd Edition) (ISBN
0132354160) by
Jasmin Blanchette & Mark Summerfield. Chinese, German, Korean,
Russian, and Turkish translations are now available. All the
examples and the entire book in HTML are available free from InformIT.
For the book itself click the Sample Content tab. This page has links to the entire book as
HTML pages (but in the wrong order!). If you scroll down you will see a
table of contents so that you can see the correct order.
I'm sorry it is so inconvenient, but I have no control over the
publisher's web sites.
Walter Dale has ported the book's examples to Qt 5.
If you like this book, please consider buying
Advanced Qt Programming.
-
C++ GUI Programming with Qt 4 (First Edition) (ISBN
0131872494) by
Jasmin Blanchette & Mark Summerfield. This book is available
in PDF format under the Open Publication License.
Chinese, French, German, Japanese, and Russian translations are
available. (Superseded by the Second Edition.)
-
C++ GUI Programming with Qt 3 (ISBN 0131240722) by
Jasmin Blanchette & Mark Summerfield. This book is available
in PDF format under the Open Publication License,
PDF
(22 MB).
German, Japanese, and Russian translations are available.
A Selection of Other Writings
- Python Programming Tips—A small
collection of short useful ideas and snippets.
- Code Tip: Booleans—Why you
shouldn't use Boolean arguments for functions that have two or more
parameters and what to do instead.
- User Interface Corrosion—Why
windowing user interfaces get worse as well as better.
- Programming Books—Book's I've
bought and recommend.
- No Blink—how to stop blinking or
flashing cursors.
- Go
Tutorial a five part introduction to Go on Dr. Dobbs journal..
-
Concurrent
Programming with Go the ACCU's Overload journal's issue 106 containing this article introducing
concurrent programming in Go
- From Software Patents to Silence: A
Thought Experiment
-
Moving from Python 2 to Python 3 a "cheat sheet" for Python 2
programmers written for InformIT (4 page PDF, 676K)
-
Python Descriptors an
InformIT article
-
A Practical Introduction to PyQt's Undo/Redo Framework an
InformIT article—see also, Witold Wysota's Using Undo/Redo with
Item Views article
- Qt 4's Model/View
Delegates an ICS Whitepaper covering Generic Delegates and Abstract
Column Delegates (Qt 4.2 introduced new methods that can be
used to achieve the same effect)
-
Libraries and Plugins a Qt 4 article in Qt Quarterly
-
Data Models: SQL Table vs. Flat File a Qt 4 article in
Qt Quarterly
-
Guarded Pointers in Qt 3 and Qt 4 a Qt 3 and Qt 4 article in
Qt Quarterly
-
Automatic Dialogs a Qt 3 article in Qt Quarterly
(The ideas in this article are still applicable in Qt 4)
-
Optimizing with QPixmapCache a Qt 3 article in Qt Quarterly
(The ideas in this article are still applicable in Qt 4)
-
Mandatory Fields a Qt 3 article in Qt Quarterly
(For Qt 4, see the QAbstractItemModel's setData() and flags() methods)
-
A String List Editor a Qt 3 article in Qt Quarterly
(For Qt 4, see the QStringListModel class)
-
Laying out MDI Children a Qt 3 article in Qt Quarterly
(The ideas in this article are still applicable in Qt 4)
-
Fancy List Items a Qt 3 article in Qt Quarterly
(For Qt 4, see the QAbstractItemModel's data() method)
-
Implementing a Popup Calendar a Qt 3 article in Qt Quarterly
(For Qt 4, see the QCalendarWidget class)
-
Customizing for Completion a Qt 3 article in Qt Quarterly
(For Qt 4, see the QCompleter class)
Old Free Open Source Software
In view of the EU’s Cyber
Resilience Act and an abundance of caution, we have withdrawn all
our free software.
We are no longer maintaining or developing our old open source
software. The comparepdf tool has been superceded by our far superior
commercial comparepdfcmd tool, and the diffpdf
application has been superceded by the faster and superior commercial DiffPDF. See above for our current maintained
free open source software.
- Alt_Key, a GUI
application and library for calculating keyboard accelerators for menu
option texts and dialog labels. Superceded by MiniCalc's
“Accel Hints” tab.
- comparepdf, a
command line tool for comparing PDF files, either textually or by their
appearance.
- diffpdf, a GUI
application for comparing PDF files page by page, either textually or by
their appearance.
- Easy Play, a GUI application for playing
music—it is simple to use and remembers the current track in every
playlist, so it is easy to go from playlist to playlist from where you left
off.
- Notebox — a simple GUI
application for creating, editing, and finding notes.
- ViewPDF a GUI
application for viewing PDF files that clearly indicates annotations and
possible mistakes (such as spelling errors).
Your Privacy •
Copyright © 2006 Qtrac Ltd.
All Rights Reserved.
Top