Complete Contents

 
  • An exception handling revelation (2024-02-05)
  • Extending the life of TomTom wearables (2023-09-01)
  • How AGI can conquer the world and what to do about it (2023-04-13)
  • Twitter’s overrated dissemination capacity (2023-04-02)
  • The hypocritical call to pause giant AI (2023-03-30)
  • AI deforests the knowledge’s ecosystem (2023-03-16)
  • How I fixed git-grep macOS UTF-8 support (2022-10-12)
  • The sorry state of software quality (2022-03-10)
  • Rather than alchemy, methodical troubleshooting (2021-11-27)
  • The Evolution of the Unix System Architecture (2021-06-18)
  • Reviving the 1973 Unix text to voice translator (2021-01-02)
  • Fast database UPDATE/DELETE operations (2020-12-10)
  • Raspberry Pi 400 vs ZX Spectrum (2020-11-02)
  • Error handling under Unix and Windows (2020-09-29)
  • Shell scripting for software developers (2020-08-27)
  • IBAN length and DESI score (2020-08-13)
  • Auto-correct text entered with the wrong keyboard layout (2020-07-21)
  • The titanic battle between big iron and microprocessors (2020-05-31)
  • Contact tracing with a Raspberry Pi Zero-W (2020-05-20)
  • A chat protocol for remote lectures (2020-04-06)
  • Shell scripting for personal productivity (2020-03-23)
  • What explains the counter-intuitive numbering of chip pins? (2020-03-20)
  • Installing PyTorch on a Raspberry Pi-3B+ redux (2020-03-17)
  • Seven reasons to add Unix command line expertise to your tool chest (2020-03-16)
  • What can software developers learn from the Soviet Moon Landing Program? (2020-03-06)
  • Was Knuth Really Framed by Jon Bentley? (2020-02-25)
  • Convert file I/O into pipe I/O with /dev/fd (2019-12-14)
  • Pia Betton on Service Design (2019-12-05)
  • How to monitor MySQL / MariaDB query progress (2019-11-03)
  • So, you’re chairing a conference session? (2019-05-29)
  • Java Stream Methods and Unix Pipeline Commands: A Dictionary (2018-11-27)
  • Debugging had to be discovered! (2018-11-16)
  • How I slashed a SQL query runtime from 380 hours to 12 with two Unix commands (2018-08-05)
  • How to Perform Set Operations on Terabyte Files (2018-04-03)
  • The Shoemaker’s Children Go Barefoot (2018-02-10)
  • Reviving the 1973 Unix Programmer’s Manual (2017-11-19)
  • How I Recovered my Firefox Tab Groups (2017-11-17)
  • An Embarrassing Failure (2017-10-03)
  • Who are the Publishers of Computer Science Research? (2017-09-15)
  • The Origins of Malloc (2017-09-14)
  • Of BOOL and stdbool (2017-09-05)
  • Debugging in Practice: dgsh Issue 85 (2017-08-15)
  • Display Git’s and Current Directory on Terminal Bar (2017-08-10)
  • Impact Factor of Computer Science Journals 2016 (2017-06-16)
  • Modular SQL Queries with Unit Tests (2017-06-06)
  • Open Collaboration at Eclipse (2017-05-31)
  • Unix Architecture Evolution Diagrams (2017-05-10)
  • Research Priorities in Software Technologies (2017-04-04)
  • The 1980s Research Unix Editions Are Now Available for Study (2017-03-28)
  • The Psychology of the AWS Outage (2017-02-28)
  • The Road to Debugging Success (2017-02-16)
  • Measures of Donald Trump’s Inaugural Address (2017-01-20)
  • How to avoid redoing manual corrections (2017-01-16)
  • Debugging PCSecrets Synchronization (2017-01-03)
  • As it Happened: Leap Second 37 (2017-01-01)
  • Computer vs Human 0-1 (2016-12-02)
  • The State of Software Engineering Research (2016-11-17)
  • Netdata on a Raspberry Pi (2016-10-27)
  • Debugging a File Synchronization Problem (2016-10-13)
  • Revision Control Smells (2016-09-13)
  • The Computer Tube (2016-05-07)
  • Verifying the Substitution Cipher Folklore (2016-03-18)
  • Raspberry Pi vs USB vs Mac Audio (2015-12-13)
  • Raspberry Pi Zero vs Elliott 405 (2015-11-29)
  • Impact Factor of Computer Science Journals 2014 (2015-06-28)
  • Grady Booch on the Future in Software Engineering (2015-05-22)
  • ABS's 2015 Academic Journal Guide (2015-02-28)
  • What's the Best Time and Day to Tweet? (2015-01-13)
  • First, Do No Harm (2014-09-25)
  • Impact Factor of Computer Science Journals 2013 (2014-08-08)
  • Service Orchestration with Rundeck (2014-07-30)
  • Developing in the Cloud (2014-04-24)
  • Bespoke Infrastructures (2014-01-15)
  • The Birth of Standard Error (2013-12-11)
  • The Frictionless Development Environment Scorecard (2013-12-06)
  • A Better Air Gap (2013-10-21)
  • Differential Debugging (2013-09-10)
  • Portability: Goodies vs. the hair shirt (2013-07-25)
  • Impact Factor of Computer Science Journals 2012 (2013-07-03)
  • How to Create Your Own Git Server (2013-06-19)
  • How to make a MacBook Kensington Lock Adapter (2013-06-13)
  • Systems Software (2013-05-08)
  • How to Fix the Sony MDR-W08L Headphones (2013-03-30)
  • Software Tools Research: SPLASH Panel Discussion (2013-03-14)
  • Systems Code (2013-02-21)
  • The Importance of Being Declarative (2013-01-23)
  • APIs, Libraries, and Code (2012-12-19)
  • Changes in the Way we View Computing (2012-12-12)
  • Programming Languages vs. Fat Fingers (2012-12-05)
  • Chemical Element Trump Cards (2012-10-21)
  • Virtualize Me (2012-10-11)
  • How to Calculate an Operation's Memory Consumption (2012-09-22)
  • Research Proposal Becomes Reality (2012-09-18)
  • Don't Install Software by Hand (2012-09-04)
  • Importing an RCS Project into Git (2012-08-07)
  • Impact Factor of Computer Science Journals 2011 (2012-07-03)
  • Why are AWS Command-Line Tools so Slow? (2012-06-01)
  • Git (2012-05-17)
  • How do Big US Firms Use Open Source Software? (2012-03-22)
  • Package Management Systems (2012-03-08)
  • How to Decrypt "Secrets for Android" Files (2012-02-07)
  • Refactoring on the Cheap (2012-01-11)
  • Mind Mapping (2012-01-08)
  • Pretend Invitations (2011-12-28)
  • Advice from Successful Greek IT Startups (2011-12-17)
  • Apps are the New Users (2011-12-14)
  • Using the HP 4470c Scanner Under Windows 7 (2011-11-27)
  • Lessons from Space (2011-10-30)
  • Faking it (2011-09-11)
  • Impact Factor of Computer Science Journals 2010 (2011-07-31)
  • How I Dealt with Student Plagiarism (2011-07-23)
  • Agility Drivers (2011-07-03)
  • Ten Lessons I Learned from Fixing my Laptop's Motherboard (2011-05-29)
  • Code Verification Scripts (2011-05-21)
  • Choosing and Using Open Source Components (2011-05-01)
  • elytS edoC (2011-02-27)
  • Sophisticated Targeted Link Spam (2011-01-06)
  • Manifesto for Agile Government (2010-11-19)
  • Farewell to Disks (2010-10-30)
  • Synchronizing Thunderbird's Replied Flag (2010-10-14)
  • UML, Everywhere (2010-08-28)
  • Sane vim Editing of Unicode Files (2010-08-24)
  • Batch Files as Shell Scripts Revisited (2010-08-04)
  • Code Documentation (2010-07-11)
  • Impact Factor of Computer Science Journals 2009 (2010-06-19)
  • Email Analytics (2010-05-20)
  • Ron Heifetz on Crisis Leadership (2010-04-07)
  • Email's Ten by Ten Law (2010-03-12)
  • Software Tracks (2010-03-04)
  • Useful Polyglot Code (2010-01-12)
  • How to Get a Glowing Recommendation Letter (2009-12-27)
  • The Risk of Air Gaps (2009-11-25)
  • Basic Etiquette of Technical Communication (2009-10-21)
  • Tags for Bibliography References (2009-10-15)
  • Applied Code Reading: Debugging FreeBSD Regex (2009-09-16)
  • Job Security (2009-09-02)
  • The Price of Cheap Labor (2009-08-28)
  • Real Heroes (2009-08-27)
  • HP-200LX Remote Control Hacks (2009-08-20)
  • Applied Code Reading: GNU Plotutils (2009-08-11)
  • How to Create a Self-Referential Tweet (2009-08-05)
  • A Tiny Review of Scala (2009-07-22)
  • Madplay on an Intel Mac (2009-07-13)
  • Real-Time Google Earth GPS Tracking (2009-07-01)
  • Greek Numerals in OpenOffice.org (2009-06-25)
  • Impact Factor of Computer Science Journals 2008 (2009-06-24)
  • Software Architecture Challenges in the 21st Century (2009-06-09)
  • Revisiting the Antikythera Mechanism Emulator (2009-05-27)
  • A Bug Creates Art (2009-05-16)
  • Democracy in Europe: The Telecom Package (2009-05-10)
  • Fixing the Orientation of JPEG Photographs (2009-05-07)
  • Best Day to Blog (2009-04-30)
  • Dual-Use Technology (2009-04-26)
  • A Tiling Demo (2009-04-20)
  • Drawing Tools (2009-04-15)
  • Precision in Comments (2009-04-08)
  • Open Source Opens up for Business (2009-04-01)
  • Earth Hour: A Geek's View (2009-03-28)
  • Tim Berners-Lee Addresses the First Web Science Conference (2009-03-18)
  • YouTube vs. TOSEM (2009-03-10)
  • Parallelizing Jobs with xargs (2009-03-04)
  • Start With the Most Difficult Part (2009-02-25)
  • The Information Train (2009-02-18)
  • Visualizing Revision Logs with a UML Sequence Diagram (2009-02-10)
  • Beautiful Architecture (2009-02-04)
  • The World's Smallest Domain-Specific Language (2009-02-03)
  • A Well-Tempered Pipeline (2009-01-25)
  • Paper-Based Publishing Meets the Web (2009-01-22)
  • Brian Kernighan on 30 Years of Software Tools (2009-01-21)
  • The Changing Value of Knowledge and Skills (2009-01-01)
  • Europeana Launches, Again (2008-12-24)
  • No Blinkelichten, Please (2008-12-22)
  • Sound-Bytes from the Open World Forum (2008-12-02)
  • Robert Kaplan on Strategy Execution (2008-11-10)
  • The Value of Computing Paradigm Diversity (2008-11-07)
  • Monitor Process Progress on Unix (2008-10-27)
  • A Look at Zero-Defect Code (2008-10-18)
  • Missing the Point (2008-10-16)
  • An Inadvertent Denial of Service Attack (2008-10-08)
  • Suspend Windows from the Command Line (2008-10-06)
  • Web Services Come of Age (2008-09-24)
  • Central Planning Hurts Research (2008-09-16)
  • Unzipping Files in Order (2008-09-11)
  • Daring Youth: Then and Now (2008-09-06)
  • UMLGraph Version 5.1 (2008-08-27)
  • Saving the Editor's History (2008-08-25)
  • Two More Years of Wikipedia Data (2008-08-08)
  • A Child's Crontab (2008-08-05)
  • Top Researchers in Computer Science and Informatics (2008-07-31)
  • Wikipedia Faces no Limits to Grow (2008-07-30)
  • Eric K. Clemons on Monetizing the Net Without Advertising (2008-07-16)
  • Impact Factor of Computer Science Journals 2007 (2008-06-27)
  • The Way We Program (2008-06-26)
  • Denise Rousseau on Publishing to Top Tier Journals (2008-05-30)
  • Interoperability, at Last (2008-05-24)
  • A Visit at BMW's Leipzig Factory (2008-05-17)
  • Open and Closed Source Kernels Go Head to Head (2008-05-16)
  • Software Builders (2008-05-02)
  • In Presentations Less is More (2008-04-28)
  • Assigning Responsibility (2008-04-20)
  • LTO Tape Drive Compression Considered Harmful (2008-04-18)
  • A Minute Minute Minder (2008-03-28)
  • Using and Abusing XML (2008-03-01)
  • Backwards Compatibility in Office Open XML (2008-02-21)
  • The Power of an Integrated Platform (2008-02-02)
  • What I'd Say to Bill Gates (2008-01-27)
  • The Mysterious TreeMap Type Signature (2008-01-23)
  • Rational Metaprogramming (2008-01-13)
  • The Relativity of Performance Improvements (2008-01-07)
  • Curing MIDlet Bluetooth Disconnects (2008-01-04)
  • Losing the War (2007-12-28)
  • Many Ways to Skin a Window (2007-12-13)
  • Global Web Site Redirect (2007-12-08)
  • An Update on UMLGraph (2007-11-29)
  • Cover Letters for Publications in LaTeX (2007-11-22)
  • On Paper (2007-11-10)
  • International BSD Conference in Turkey (2007-10-21)
  • Creative Commons Around the World (2007-10-11)
  • The Memory Savings of Shared Libraries (2007-10-06)
  • A Programmer's Bookshelf (2007-09-27)
  • Handling Traffic (2007-09-20)
  • Cooperative Development at the Speed of Light (2007-09-14)
  • Abstraction and Variation (2007-09-02)
  • The Treacherous Power of Extended Regular Expressions (2007-08-28)
  • Location-Based Dictionary Attacks (2007-08-02)
  • Impact Factor of Computer Science Journals 2006 (2007-07-10)
  • A Phone Exchange Rootkit (2007-07-08)
  • The Tools we Use (2007-06-28)
  • The Double-Edged Sword of Proprietary Platforms (2007-06-21)
  • Handling Downtime (2007-06-15)
  • Palindromic Palindrome Checking (2007-06-06)
  • Decyphering Modern Texts (2007-05-23)
  • Using the Open-Sourced Java Platform (2007-05-10)
  • Of Wine and Software (2007-05-02)
  • Silver Bullets and Other Mysteries (2007-04-30)
  • Modularity and Troubleshooting (2007-04-21)
  • Breaking into a Virtual Machine (2007-04-16)
  • I Spy (2007-04-09)
  • A Humbling Upgrade (2007-04-04)
  • One Traffic Light Per Child (2007-03-25)
  • Software Development Productivity Award (2007-03-23)
  • Make vs Ant: Observability (2007-03-15)
  • Software Rejuvenation is Counterproductive (2007-03-09)
  • The Power of Reusable GUI Elements (2007-03-06)
  • A Peek at Beautiful Code (2007-02-27)
  • Malware on the Fly (2007-02-16)
  • How to Embed Citations in Diagrams (2007-02-04)
  • Open source as a paradigm for evolving complex systems (2007-01-19)
  • Landscape vs Portrait Monitors (2007-01-15)
  • The Perils of Naive Sorting (2007-01-12)
  • Why Key Fingerprints are Important (2007-01-08)
  • The Capacitor Plague Hits a Baby Monitor (2006-12-25)
  • The Escape of a Small Program (2006-12-21)
  • Cracking Software Reuse (2006-12-15)
  • Secure Passports and IT Problems (2006-12-13)
  • (Not) Hacking the Digipass Go 3 OTP Dongle (2006-12-01)
  • Internet Explorer's Cleaner Look (2006-11-28)
  • So Long as there's a Jingle in your Head, Television isn't Free (2006-11-22)
  • White Noise Calms Babies (2006-11-15)
  • Converting RIS to BibTeX (2006-11-08)
  • The Return of Performance Engineering and Trendy Programmers (2006-11-03)
  • A Solution for Web Citations (2006-10-24)
  • SQO-OSS Launched (2006-10-20)
  • Research in Domain Specific Languages (2006-10-13)
  • Web Page Hits, Amazon.com's Sales Rank, and Actual Sales (2006-10-11)
  • Code Finessing (2006-10-06)
  • Cross Compiling (2006-09-30)
  • Choosing a Collection: A Discussion with Kent Beck (2006-09-27)
  • The Verbosity of Object-Oriented Code (2006-09-25)
  • UML Class Diagrams from C++ Code (2006-09-21)
  • NASSCOM Quality Summit 2006 (2006-09-17)
  • Hardware and Software Debugging (2006-09-02)
  • Open Source and Professional Advancement (2006-09-01)
  • SeaMonkey vs Internet Explorer Revisited (2006-08-08)
  • What Can System Administrators Learn from Programmers? (2006-07-23)
  • Efficient Human Multitasking (2006-07-19)
  • Boot Lock (2006-07-11)
  • Quality, Democracy, and Code (2006-07-02)
  • Choosing a Programming Language (2006-07-01)
  • Dave Prosser's C Preprocessing Algorithm (2006-06-26)
  • Interoperability Requires Temperance (2006-06-25)
  • Batch Files as Shell Scripts (2006-06-16)
  • Security is a Problem of the Weakest Link (2006-05-24)
  • Surprising Findings on Software Reuse (2006-05-07)
  • Debuggers and Logging Frameworks (2006-05-01)
  • Public Bookmarking (2006-04-24)
  • Xerces v Flex (2006-04-13)
  • Code Quality: The Open Source Perspective (2006-04-12)
  • Efficiency Will Always Matter (2006-04-03)
  • Active Voice v Passive Voice (2006-03-16)
  • Bug Busters (2006-03-01)
  • Management Support Technologies (2006-02-22)
  • A Malfeasant Design for Lawful Interception (2006-02-15)
  • How Not to Cook an Egg With Your Cell Phone (2006-02-07)
  • A General-Purpose Swap Macro (2006-01-30)
  • Google in China (2006-01-25)
  • A Tree of Mentors (2006-01-07)
  • Disappearing Hardware (2006-01-03)
  • Project Asset Portability (2006-01-01)
  • Who Will Edit the Editors? (2005-12-19)
  • If STL Had Been Designed by a Committee (2005-12-07)
  • A Clash of Two Cultures (2005-12-05)
  • How to Sort Three Numbers (2005-11-17)
  • Supporting Java's Foreach Construct (2005-11-14)
  • US Military Removes Word Documents from the Web? (2005-11-09)
  • Working with Unix Tools (2005-11-01)
  • Human Thought and the Design of Computers (2005-10-28)
  • MIT's $100 Laptop (2005-10-14)
  • Hard Disk Failure (2005-10-04)
  • The Other Side of Digital Preservation (2005-09-30)
  • Slashdot Story: The Future of Windows Software Distribution (2005-09-26)
  • Information Kiosk (2005-09-15)
  • Preparing for the Exams (2005-09-05)
  • Version Control Talk Demystified (2005-09-02)
  • Version Control Systems (2005-09-01)
  • Everything Old is New Again (2005-08-09)
  • C++0X Enhancement: Rational Metaprogramming (2005-07-19)
  • GCC Obfuscated Code (2005-07-17)
  • C++0X Enhancement: Packaged Libraries (2005-07-15)
  • Tool Writing: A Forgotten Art? (2005-07-01)
  • XML Abstraction at the Wrong Level (2005-06-23)
  • An Open Letter to a Copy-Editor (2005-06-09)
  • Today's Dynamic is Tomorrow's Static (2005-05-26)
  • Cats and Cigarette Lighters (2005-05-19)
  • Warum einfach, wenns auch kompliziert geht? (2005-05-13)
  • Ordnung muss sein (2005-05-11)
  • Google's Web Accelerator as a P2P CDN (2005-05-05)
  • Java Makes Scripting Languages Irrelevant? (2005-05-01)
  • Solving Singh's Substitution Cipher (2005-04-27)
  • A Pipe Namespace in the Portal Filesystem (2005-04-13)
  • Vatican's Prescient Web Masters (2005-04-09)
  • UMLGraph Update (2005-03-26)
  • A Plea for Usability Design in Children's Electronic Toys (2005-03-14)
  • Self-Healing Systems Will Age (2005-03-02)
  • Dear Editor (2005-03-01)
  • XML Versus Text Files (2005-02-18)
  • The Efficiency of Java and C++, Revisited (2005-02-15)
  • An Open Source Java Metrics Toolset Is Hard to Find (2005-02-11)
  • The Efficiency of Java and C++ (2005-02-10)
  • Macro-based Substitutions in Source Code (2005-02-07)
  • Maintainability of the FreeBSD System (2005-02-04)
  • Java: the New Straightjacket (2005-01-20)
  • The Tools at Hand (2005-01-01)
  • Who Maintains the GNU Plotutils? (2004-12-27)
  • Lack of Progress in Palm Applications (2004-12-13)
  • Measuring the Effect of Shared Objects (2004-12-11)
  • Code Reading Example: the Linux Kernel Load Calculation (2004-11-25)
  • Poster Presentations (2004-11-19)
  • Book Review: C++ Coding Standards (2004-11-14)
  • Accuracy and Precision in Scientific Publications (2004-10-27)
  • Involving Students With Open Source Projects (2004-10-24)
  • A Toddler Discovers Globalization (2004-10-16)
  • Apple's Presence in Greece Appears to be a Joke. (2004-10-06)
  • Cracker Code Review (2004-10-05)
  • A Survey of Language Popularity (2004-09-25)
  • System administration stories: The Revolt (2004-09-11)
  • Digital Data Makes Anything Possible (2004-09-01)
  • U.S. military sites offer a quarter million Microsoft Word documents (2004-08-31)
  • Continous Bookmarking (2004-08-25)
  • Detective Work and Dropped TCP Connections (2004-08-23)
  • The hypot() Mystery (2004-08-16)
  • Patching Framework III (2004-08-11)
  • Not All Open-source Systems Are Perfect (2004-07-20)
  • Google Mail and Privacy (2004-06-25)
  • Optimizing ppp and Code Quality (2004-05-15)
  • Computer Languages Form an Ecosystem (2004-04-18)
  • Technological Complexity (2004-04-10)
  • Binary File Similarity Checking (2004-03-19)
  • Putting the Jini Back into the Bottle (2004-02-18)
  • A Spam-resistant Email Network (2004-02-03)
  • How Not to Conduct a Poll (2004-01-21)
  • Writing, GUIs, and 4000 Years of Progress (2004-01-20)
  • Changes in Web Site Rankings (2004-01-11)
  • A Unix-based Logic Analyzer (2003-10-25)
  • Software Complexity: Open Source vs Microsoft (2003-10-03)
  • Well-behaved Web Applications (2003-09-26)
  • An Interesting Remote Control (2003-07-12)
  • Security researcher beguiled by email spoof (2003-06-28)
  • FreeBSD Committer (2003-06-21)
  • Code Reading: The Open Source Perspective (2003-05-20)
  • Become a Unix command line wizard
    edX MOOC on Unix Tools: Data, Software, and Production Engineering
    Debug like a master
    Book cover of Effective Debugging
    Compute with style
    Book cover of The Elements of Computing Style
    Syndication
    This blog is also available as an RSS feed:

    Category Tags
    AI (4)
    AWS (4)
    Android (2)
    Apple (11)
    C (21)
    C++ (17)
    Computers (58)
    Databases (5)
    Debugging (10)
    Discussion (6)
    Electronics (15)
    Environment (1)
    FreeBSD (26)
    Funny (14)
    GSIS (5)
    Git (2)
    Google (6)
    Government (3)
    Hacks (26)
    Hardware (27)
    History (13)
    Information systems (1)
    Internet (12)
    Java (26)
    JavaScript (1)
    Linux (7)
    Management (27)
    Microsoft (11)
    One Laptop Per Child (3)
    Open source (58)
    Opinion (30)
    Parenting (11)
    Perl (13)
    Photos (13)
    Politics (5)
    Programming (110)
    Python (3)
    R (1)
    Raspberry Pi (6)
    Risks (7)
    Scala (1)
    Science (34)
    Security (26)
    Sights (19)
    Smartphones (3)
    Software (22)
    Software engineering (93)
    Standards (7)
    System administration (46)
    Teaching (9)
    Technology (33)
    Testing (3)
    Tips (43)
    Tools of the Trade (52)
    Travel (9)
    UML (6)
    Unix (52)
    Web (31)
    Windows (17)
    Writing (45)
    XML (10)
    vim (5)

    Last update: Monday, February 5, 2024 5:49 pm

    Creative Commons Licence BY NC

    Unless otherwise expressly stated, all original material on this page created by Diomidis Spinellis is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License.