Mark Summerfield

Writing & Software

Mark is an independent programmer, author, and trainer, specializing in Python, PySide, and PyQt. Mark is a qualified teacher and graduated with first class honours in Computer Science from the University of Wales Swansea, UK. Prior to starting Qtrac Ltd., he spent many years in the software industry, primarily as a programmer.

Software

Books

  1. Python in Practice (ISBN 978-0321905635) by Mark Summerfield—all the examples and a sample chapter are available for free download
  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. (Superseded by the First 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 examples, click the Downloads tab then click one of the Examples links. 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— 7z archive (290K). 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, PDF in a ZIP (5.6 MB, unzips to 51 MB). Chinese, French, German, Japanese, and Russian translations are available. (Superseded by the First 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 in a ZIP (2.4 MB, unzips to 32 MB), or PDF (22 MB). German, Japanese, and Russian translations are available.

A Selection of Other Writings

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

Free Open Source Software

We are no longer maintaining or developing our open source software. The comparepdf tool has been superceded by our far superior commercial DiffPDFc tool, and the diffpdf application has been superceded by the faster and superior commercial DiffPDF.

  1. Alt_Key, a GUI application and library for calculating keyboard accelerators for menu option texts and dialog labels.
  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. ViewPDF a GUI application for viewing PDF files that clearly indicates annotations and possible mistakes (such as spelling errors).

Top