TIL: fuser Command for Process and File Investigation

Today I learned about the fuser command, a powerful Linux utility for identifying which processes are using specific files, directories, or network ports.

March 12, 2021 路 3 min

TIL: Terminal File Managers, ELF Format, Responsible Web Apps, Cat Computer Debugging, and Ink Narrative Language

Today I learned about modern terminal file managers, ELF executable format internals, principles of responsible web applications, hilarious computer debugging involving cats, and Ink narrative scripting language for interactive storytelling.

February 18, 2021 路 6 min

TIL: Flask-Meld, Python Container Debugging, and MicroPython Tools

TIL 2020-12-23 Debugging Python Containers in Production - Techniques for debugging Python applications running in Docker containers. GitHub - dhylands/rshell - Remote Shell for MicroPython devices, enabling file management and REPL access. Speakers Who Want a Platform - Directory of underrepresented speakers for conferences and events. Flask-SocketIO-Chat - Simple chat application demonstrating Flask-SocketIO structure. pre-commit/identify - File identification library for Python, useful in pre-commit hooks. tomnomnom/gron - Make JSON greppable by flattening it into discrete assignments. ...

December 23, 2020 路 1 min

TIL: Debugging CSS Techniques, LLVM Architecture, Python Language Reference, and Shell Sourcing

Today I learned about systematic CSS debugging approaches, LLVM compiler architecture from AOSA, the comprehensive Python language reference, and the difference between sourcing and executing shell scripts.

December 14, 2020 路 2 min

TIL: lsof for Process Scanning and Advanced kill Command Usage

Today I learned how to use lsof to scan processes running in specific paths and discovered that the kill command accepts verbose, readable signal names for safer process management.

November 3, 2020 路 5 min

TIL: FlexBox Defense, Modern C++, Rust Debugging, and Python Programming

TIL 2020-09-01 FlexBox Defense - Interactive game for learning CSS Flexbox through tower defense gameplay. HN: Best Way to Learn Modern C++ - Hacker News discussion on effective approaches to learning contemporary C++. Headcrab: Rust Debugging Library - Library for building debuggers and debugging tools in Rust. OSS Game - FreeCol - Turn-based strategy game based on Colonization, written in Java. Peter Norvig - PyTudes - Python programs of considerable difficulty to perfect particular programming skills. ...

September 1, 2020 路 1 min

TIL: Python Raise Statement and Traceback Preservation

Python Exception Handling Python鈥檚 Raise Statement with From Clause Python鈥檚 raise statement has a from clause, to preserve full tracebacks The Python raise statement Critical for maintaining debugging information when re-raising exceptions Preserves the original exception context and traceback chain Exception Chaining Syntax Basic Exception Chaining 1 2 3 4 5 6 try: # Some operation that might fail risky_operation() except SomeException as e: # Re-raise with context preserved raise NewException("Custom message") from e Benefits of Exception Chaining Full Traceback Preservation: Maintains complete error history Better Debugging: Shows both original and current exception contexts Clear Error Propagation: Makes it obvious how errors propagated through code Professional Error Handling: Industry best practice for exception management Exception Handling Best Practices When to Use Exception Chaining Converting between exception types (e.g., library exceptions to domain exceptions) Adding context to low-level errors Creating more meaningful error messages for users Maintaining debugging information in complex call stacks Exception Suppression 1 2 # Suppress original exception (use sparingly) raise NewException("Message") from None Debugging Benefits Helps identify root cause of complex errors Provides complete context for error investigation Essential for production debugging and error monitoring Improves error reporting and logging quality

August 6, 2020 路 1 min