Links
This page contains a list of links I find interesting or that I want to keep easily available.
Table Of Contents #
Articles #
- 10 HTML Entity Crimes You Really Shouldn’t Commit
- 10 things I learned making the fastest site in the world
- 12 Signs You’re Working in a Feature Factory
- A Great Old-Timey Game-Programming Hack
- Allow installing modules from a vcs subdirectory in non-editable mode
- An Inside Look at IBM Watson and How it Works
- Automation is not DevOps
- Becoming a 10x programmer
- Becoming a CTO
- Being A Developer After 40
- Bots Should Punch Up
- Capitaine Train: Building our web-app on GitLab-CI (coming from Jenkins)
- Code is Suffering
- Coding is not ‘fun’
- Command line tools can be 253 times faster than your Hadoop cluster
- Confused by testing terminology?
- Cools URLs don’t change
- Creating Your Code Review Checklist
- Cryptographic Attacks - A Guide for the Perplexed
- Cryptographic Right Answers
- Dark Scrum
- Dealing with Legacy Code for Developers: Managing your Manager
- Dear Developer, The Web Isn’t About You
- Design for experts; accomodate beginners
- Developer Driven Developemnt
- Everything is broken
- Ethical, easy-to-use and privacy-conscious alternatives
- Execution in the Kingdom of Nouns (a Java rant)
- “Good Code Documents Itself” And Other Hilarious Jokes You Shouldn’t Tell Yourself
- Graphite, Grafana and statsd gotchas
- Hype isn’t a use case
- How I converted my React app to VanillaJS (and whether or not it was a terrible idea)
- How Math Can Be Racist: Giraffing
- How Microsoft dragged its development practices into the 21st century
- How to be a desirable developer
- How to Set the Technical Direction for Your Team
- How to spy on a Ruby program
- How to Write Good Error Messages
- Keep a CHANGELOG
- I don’t like computers
- The ISTQB is wrong about the future of software testing and here’s why
- Magic Ink: Information Software and the Graphical Interface
- Maintainers Matter
- Maslow’s pyramid of code review
- Sakaki’s EFI Install Guide
- Onboarding New Developers
- Open Your Source, More
- Programming languages aren’t a zero sum game
- Quit Social Media. Your Career May Depend on It
- The Real Life Risks of Re Using The Same Passwords
- RESTful API Design: 13 Best Practices to Make Your Users Happy
- Setting expectations for open source participation
- So a product manager asks you to fix a bug…
- So you want to write a package manager
- Short, Self Contained, Correct (Compilable), Example
- Some Lessons Learned On Mentoring
- Something is wrong on the internet
- Stop Working So Hard
- Testing, for people who hate testing
- The 100% correct way to validate email addresses
- The Church of Interruption
- The Cult of the Complex
- The Like Button Ruined the Internet
- The Open/Closed Principle
- The Problem With Heroes In Software Development
- The Quiet Crisis unfolding in Software Development
- The Salami Method
- The Six Dumbest Ideas in Computer Security
- The Vietnam of Computer Science
- There are two types of engineers. Be both
- The tale of “aux.c”
- Towards a Galvanizing Definition of Technical Debt
- Uncle Bob: Giving up on TDD
- UTF-8 Everywhere
- Web Design in 4 minutes
- What Color is Your Function
- What does it take to be a good programmer?
- When Machines Go Rogue
- Where automated testing should (and shouldn’t) fit in your strategy
- Why I Use Tape Instead of Mocha & So Should You
- Why Most Unit Testing Is Waste and the follow-up
- XY problem
- You’re Doing It All Wrong™
- You Are Not Google
- You Are Not Paid to Write Code
Alex’s soapbox #
Bob Nystrom #
Coding Horror #
Eric S. Raymond #
- CIA and the perils of overengineering
- How To Become A Hacker
- How To Ask Questions The Smart Way
- Practical Python porting for systems programmers, with my response here
Joel On Software #
- Making Wrong Code Look Wrong
- The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets (No Excuses!)
- The Guerilla Guide to Interviewing
- The Joel Test: 12 Steps to Better Code
- The Law of Leaky Abstractions
Python #
- Functional Programming HOWTO
- Get Python packages which need a C compiler installed easily on Windows
- Python Entry Points Explained
- Python FAQ: Why should I use Python 3?
- Switching to Python 3: An Awesome Upgrade
Sam & Max #
RBCS #
Blogs and feeds #
- Antirez
- Charles Leifer
- Clever Cloud
- Coding Horror
- Code Without Rules
- Design is Refactoring
- Dotclear
- Drew DeVault’s Blog
- EWONTFIX
- Eric S. Raymond
- Exception Not Found
- FDN
- Go, Arch Linux and Programming
- guyzmo
- Hillel Wayne
- HTeuMeuLeu
- In Pursuit of Laziness
- Jacques Mattheij
- Joel on Software
- Karol Kuczmarski’s Blog
- Luc Damas
- Nicollet.net
- nvbn blog
- Olivier Servières
- Paul Masurel
- Ploum
- Reproducible Builds (Debian)
- Sam & Max
- Scrum ’em Bear
- Signal v. Noise
- The Clean Code Blog
- The Mouse Vs. The Python
- Trey Hunner
- Vim Koans
- WTF
- Zach Holman
- Zythom
Mailing lists #
Books #
(Not always books per se, this section is for rather long texts)
- Amy Brown: The Architecture of Open Source Applications
- Build Your Own Lisp
- Clean Code
- C++ Core Guidelines
- GitLab Handbook
- The Hitchhiker’s Guide to Python!
- The Little Book of Python Anti-Patterns
- vim galore: All things Vim and Neovim!
Programming languages tutorials #
Software #
- addinclude: Add missing includes to source files
- asciinema: Record and share your terminal sessions
- ag (aka the silver searcher)
- Airtable: Modern database created for everyone
- Beekeeper: Tools for Rest API
- BeeWare: Tools for Python
- blurb: Automatic changelog generation
- Bootstrap
- Buku: Powerful command-line bookmark manager
- colout: Color up commands output
- cpp-dependencies: Creates #include dependency information
- Danger: Stop saying “You Forgot To …” in code review
- Darling: macOS translation layer for Linux
- DevAssistant
- Disk2vhd: convert Windows installation to virtual image
- doitlive
- Elixr: browsing source code online
- ffind: A sane replacement for find
- frictionless: Extract data from ill-formatted csv files
- Kinto formbuilder: Generate online forms
- gien: export Github issue tracker contents to local email storage
- git-repo: CLI utility to manage git services from your workspace
- goreplay: capture and replay HTTP traffic
- Kite - Programming copilot
- Knox: Secret management service
- Lektor: Static File Content Management System
- LocalStack: Develop and test your AWS apps offline
- MachoView: Visual Mach-O file browser
- Mail-in-a-box
- mas - Apple Store Automation
- NixOS
- nsntrace: Network trace of a single process
- ntfy: brings notification to your shell
- pass: the standard unix password manager
- Passbolt: Password management for a team
- Polymer: JavaScript HTML framework
- ProtonMail: free encrypted email
- pycp: cp and mv with a progress bar
- replacer: replace text in files
- rkt: App container runtime for Linux
- rm-protection
- rr: lightweight recording & deterministic debugging
- Serverless Decentralized Editing of Encrypted Stuff
- setconf: change settings in configuration files
- Smartphone test farm
- ssllabs-scan: Automated checks from ssllabs (qualys.com)
- The Update Framework
- thor: Benchmarking WebSockets
- translate-shell: translations from the command line
- twtxt: decentralised, minimalist microblogging service for hackers
- tychus: Live-reload for web applications
- umonitor: Manage monitor configuration automatically
- Windows Server Core: Windows with just the command line
- youtube-dl: download videos from Youtube (and some other sites)
- zsh-pure-prompt: pretty, minimal and fast ZSH prompt
Android #
- Audinaut, to be used with libresonic
- ColorNote
- f-droid
- MAPS.ME
- OneTimePass
- Simple Mobile Tools
Building stuff #
- Bazel
- Buck
- build2
- catkin
- CMake
- cget
- Conan
- concourse
- fastlane Automation done right for mobile devs
- fbuild
- fips
- godep
- GYP
- hunter
- llbuild
- Meson
- Ninja
- premake
- QuickBuild
- redo
- SCons
- Tup
- Installing Visual Studio command line tools only
- waf
Git #
Python #
- apistar: smart Web API framework, designed for Python 3
- argh: unobtrusive argparse wrapper with natural syntax
- clint: Command line tools
- cliff: Command Line Interface Formulation Framework
- colorama: Cross-platform colored terminal text
- construct: declarative parser and builder for binary data
- deco: Decorated Concurrency
- docopt: Pythonic argument parser
- dsert: Library to test all fields of a python dictionary
- ecoutils: Python ecosystem management
- hug: Embrace the APIs of the future
- invoke: Pythonic task execution
- faust: Python Stream Processing
- loguru: Python logging made simple
- pip-tools
- pydantic: Data validation using Python3 type hints
- python-future: Easy, clean, reliable Python 2/3 compatibility
- pyxel: retro game engine
- Hypothesis: test framework
- kivy:Toolkit for UIs on Linux, Mac, Windows, Android, iOS
- maturin: Build rust binaries as python packages - PyO3 wrapper
- mode: AsyncIO Service-based programming
- pies: polyglot Python
- pdbpp: Improved debugger
- pyotp: One-Time Password library
- pyrasite: Tools for injecting code into running Python processes
- QPython: Python on Android
- ruaml: YAML parser/emitter
- sidomo: Simple Docker Module
- Sorted Collections
- tqdm: A Fast, Extensible Progress Meter
- try
- xml2dict: Parsing XML like JSON
Software distribution on linux #
- AppImage
- AppStream
- CARE: create re-usable executions contexts using PRoot
- Flatpak
- Glick2
- Limba
- linuxdeployqt
- Listaller
- snapcraft.io
- Snappy (Ubuntu)
- ZeroInstall
Vim #
Videos #
- Boris Kolpackov: New Build System for New C++
- Bradley M. Kuhn: Considering the Future of Copyleft
- Bradley M. Kuhn: Fighting a GPL Violation By Coding Instead
- Brian Kernighan on successful language design
- Bryan Cantrill: Is It Time to Rewrite the Operating System in Rust?
- Cory Benfield: Requests Under the Hood
- C++ on Mars
- Creative Coding with C++
- Damian Conway: More Instantly Better Vim
- Dave Thomas: Agile is Dead
- David Beazley: Python Concurrency From the Ground Up: LIVE!
- David Beazley: Generators: The Final Frontier
- David Bruant: ECMAScript Regrets
- David Heinemeier Hansson: Writing Software
- Gary Bernhardt: Boundaries
- Gary Bernhardt: Fast Test, Slow Test
- How to Speed up a Python Program 114,000 times
- James Powell: Does Code Quality Really Matter
- Jeff Atwood: Addicted to community
- Jim Coplien and Bob Martin Debate TDD
- Liz Bennett: Being a Woman in a Nearly All Male Workplace
- Luciano Ramalho: Iteration & Generators: the Python Way
- Mark Lavin: Maintaining Your Sanity While Maintaining Your Open Source App
- Mary livecodes a drum machine
- Metaprogramming Python for Big Data
- Mike Monteiro: How Designers Destroyed the World
- MIT: Structure and Interpretation of Computer Programs
- Python’s Class Development Toolkit
- QA with Linus Torvalds
- Quentin Adam: Les comptables ont fucked-up la gestion de mon I.T.
- Raymond Hettinger: Thinking about Concurrency
- Rives: If I Controlled the Internet
- Robert Martin: What Killed Smalltalk Could Kill Ruby, Too
- The Adventures of printf: A Short Story
- The Care and Feeding of C++’s Dragons
- tpope’s Vim Config and Plugins
- We’re building a dystopia just to make people click on ads
- Web Languages and VMs: Fast Code is Always in Fashion
- Why Google Stores Billions of Lines of Code in a Single Repository
Video series #
Vim #
Misc #
- Avdi Grimm - Your Passion Is Yours and Yours Alone
- CodeKata
- Podcast: Python and the people who make it great
- Principles Wiki
- Talk Python To Me
Decentralized Internet #
- C.H.A.T.O.N.S
- Comment réparer les médias sociaux (et faire encore mieux)
- cozy
- Daplie
- de-Google-ify
- Diaspora
- FreedomBox
- gail.com
- guifi.net
- La Brique Internet
- libre.sh
- matrix
- Nextcloud
- peertube
- puffin
- yunohost
Mastodon #
Today I learned: #
Humour #
- A Brief, Incomplete and Mostly Wrong History of Programming Languages
- Apple Wheel™
- CommitStrip
- Daily WTF
- Fizz Buzz in Tensorflow
- Geek And Poke
- HTTP Status Cats
- js2js
- Standard Disclaimer
- Special sysadmin tools
- “Yoda conditions”, “Pokemon Exception Handling”, and other programming classics
In French #
Thanks for reading this far :)
I'd love to hear what you have to say, so please feel free to leave a comment below, or read the contact page for more ways to get in touch with me.
Note that to get notified when new articles are published, you can either:
- Subscribe to the RSS feed
- Follow me on Mastodon
- Follow me on dev.to (mosts of my posts are mirrored there)
- Or send me an email to subscribe to my newsletter
Cheers!