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?)

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.

See also our projects on github.

Books

  1. 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.
  2. 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
  3. Advanced Qt Programming (ISBN 0321635906) by Mark Summerfield—all the examples and a sample chapter are available for free download
  4. 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
  5. 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.)
  6. 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.
  7. 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.
  8. 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.)
  9. 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

  1. Python Programming Tips—A small collection of short useful ideas and snippets.
  2. Code Tip: Booleans—Why you shouldn't use Boolean arguments for functions that have two or more parameters and what to do instead.
  3. User Interface Corrosion—Why windowing user interfaces get worse as well as better.
  4. Programming Books—Book's I've bought and recommend.
  5. No Blink—how to stop blinking or flashing cursors.
  6. Go Tutorial a five part introduction to Go on Dr. Dobbs journal..
  7. Concurrent Programming with Go the ACCU's Overload journal's issue 106 containing this article introducing concurrent programming in Go
  8. From Software Patents to Silence: A Thought Experiment
  9. Moving from Python 2 to Python 3 a "cheat sheet" for Python 2 programmers written for InformIT (4 page PDF, 676K)
  10. Python Descriptors an InformIT article
  11. A Practical Introduction to PyQt's Undo/Redo Framework an InformIT article—see also, Witold Wysota's Using Undo/Redo with Item Views article
  12. 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)
  13. Libraries and Plugins a Qt 4 article in Qt Quarterly
  14. Data Models: SQL Table vs. Flat File a Qt 4 article in Qt Quarterly
  15. Guarded Pointers in Qt 3 and Qt 4 a Qt 3 and Qt 4 article in Qt Quarterly
  16. Automatic Dialogs a Qt 3 article in Qt Quarterly (The ideas in this article are still applicable in Qt 4)
  17. Optimizing with QPixmapCache a Qt 3 article in Qt Quarterly (The ideas in this article are still applicable in Qt 4)
  18. Mandatory Fields a Qt 3 article in Qt Quarterly (For Qt 4, see the QAbstractItemModel's setData() and flags() methods)
  19. A String List Editor a Qt 3 article in Qt Quarterly (For Qt 4, see the QStringListModel class)
  20. Laying out MDI Children a Qt 3 article in Qt Quarterly (The ideas in this article are still applicable in Qt 4)
  21. Fancy List Items a Qt 3 article in Qt Quarterly (For Qt 4, see the QAbstractItemModel's data() method)
  22. Implementing a Popup Calendar a Qt 3 article in Qt Quarterly (For Qt 4, see the QCalendarWidget class)
  23. 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 com­pare­pdf­cmd 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.

  1. 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.
  2. comparepdf, a command line tool for comparing PDF files, either textually or by their appearance.
  3. diffpdf, a GUI application for comparing PDF files page by page, either textually or by their appearance.
  4. 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.
  5. Notebox — a simple GUI application for creating, editing, and finding notes.
  6. ViewPDF a GUI application for viewing PDF files that clearly indicates annotations and possible mistakes (such as spelling errors).

Top