Site Map

Writing & Software

Commercial Software

Our commercial software is no longer for sale.

Free Open Source Software

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. Programming Books—Book's I've bought and recommend.
  4. No Blink—how to stop blinking or flashing cursors.
  5. Go Tutorial a five part introduction to Go on Dr. Dobbs journal..
  6. Concurrent Programming with Go the ACCU's Overload journal's issue 106 containing this article introducing concurrent programming in Go
  7. Moving from Python 2 to Python 3 a "cheat sheet" for Python 2 programmers written for InformIT (4 page PDF, 676K)
  8. Python Descriptors an InformIT article
  9. A Practical Introduction to PyQt's Undo/Redo Framework an InformIT article—see also, Witold Wysota's Using Undo/Redo with Item Views article
  10. 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)
  11. Libraries and Plugins a Qt 4 article in Qt Quarterly
  12. Data Models: SQL Table vs. Flat File a Qt 4 article in Qt Quarterly
  13. Guarded Pointers in Qt 3 and Qt 4 a Qt 3 and Qt 4 article in Qt Quarterly
  14. Automatic Dialogs a Qt 3 article in Qt Quarterly (The ideas in this article are still applicable in Qt 4)
  15. Optimizing with QPixmapCache a Qt 3 article in Qt Quarterly (The ideas in this article are still applicable in Qt 4)
  16. Mandatory Fields a Qt 3 article in Qt Quarterly (For Qt 4, see the QAbstractItemModel's setData() and flags() methods)
  17. A String List Editor a Qt 3 article in Qt Quarterly (For Qt 4, see the QStringListModel class)
  18. Laying out MDI Children a Qt 3 article in Qt Quarterly (The ideas in this article are still applicable in Qt 4)
  19. Fancy List Items a Qt 3 article in Qt Quarterly (For Qt 4, see the QAbstractItemModel's data() method)
  20. Implementing a Popup Calendar a Qt 3 article in Qt Quarterly (For Qt 4, see the QCalendarWidget class)
  21. Customizing for Completion a Qt 3 article in Qt Quarterly (For Qt 4, see the QCompleter class)

Old Free Open Source 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. amp— a basic audio player GUI application. For a player than can also manage playlists, see TLM (Track List Manager)
  3. CharFind— An application for finding Unicode characters.
  4. clip—yet another Go command line interface parser. Uses bold and italics.
  5. comparepdf, a command line tool for comparing PDF files, either textually or by their appearance.
  6. Diff libraries (all implementing Python's difflib sequence matcher algorithm): go-diff (Go); differ (Rust); ddiff (D); diff (nim)
  7. diffpdf, a GUI application for comparing PDF files page by page, either textually or by their appearance.
  8. 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.
  9. 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.
  10. MiniCalc—a little GUI tool (expression evaluator, regex evaluator, accel hints, etc.)
  11. murmur—an Unlimited Register Machine (URM) emulator with optional extensions (indirect addressing and some extra convenience commands).
  12. Notebox — a simple GUI application for creating, editing, and finding notes.
  13. 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.
  14. 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.
  15. TLM (Track List Manager)— an audio player and track list manager.
  16. unz—a small Go application for unpacking zip files and tarballs, creating at most one file or folder in the current folder.
  17. ViewPDF a GUI application for viewing PDF files that clearly indicates annotations and possible mistakes (such as spelling errors).

Top