Welcome to Evan Klitzke’s web log.
| Making helm-projectile-find-file Fast In Large Projects |
| Running Build Commands Nicely |
| Maintaining Sorted Lists In Python |
| The CBC Padding Oracle Problem |
| Using Local OPTIND With Bash getopts |
| Weekend Hack: nossl.io |
| Disabling Ubuntu MOTD Spam |
| Bash Subcommand Aliases |
| Beware of strncpy() and strncat() |
| Lobotomizing GNOME |
| Using gpg-agent Effectively |
| An Overview of Bitcoin UTXOs |
| Making Bitcoin Fast: Introduction |
| How SystemTap Userspace Probes Work |
| Using Emacs And RTags With Autools C++ Projects |
| Indexing Git Repos With Hound |
| Summing Integer Ranges With dc |
| Generating Segwit Change Addresses in Bitcoin 0.15 |
| An Observation About The Bitcoin Block Size Debate |
| How Many Bitcoins Did Satoshi Nakamoto Mine? |
| Notes on std::shared_ptr and std::weak_ptr |
| Pyflame Packages |
| Using Google Inbox With mailto Links In Firefox |
| Dumping Multi-Threaded Python Stacks |
| PTR Records Are Strange |
| An Unexpected Python ABI Change |
| Resurrecting the SRAM Automatix |
| Production Tornado Deployment With Systemd |
| Demystifying The Selfish Mining Bet |
| Bitcoin Transaction Malleability |
| Setting Up A Headless Raspberry Pi On Linux |
| Smarter clang-format In Emacs |
| Down the SSH_AUTH_SOCK Rabbit Hole: A GNOME Adventure |
| The Traveling Salesman Problem Is Not NP-complete |
| Declaring C String Constants The Right Way |
| C String Literals Are Lvalues |
| PATH_MAX Is Tricky |
| Pinning GPU Memory in Tensorflow |
| How To Host Your Own Private Git Repositories |
| Bash $* and $@ |
| Blog Rewrite In Go |
| Efficient File Copying On Linux |
| The Cult of DD |
| Unix System Call Timeouts |
| How To Play Pool At A Bar |
| Neoliberalism |
| An Introduction to Valgrind Memcheck |
| All About Linkers |
| In Defense of C++ |
| Unexpected Places You Can And Can’t Use Null Bytes |
| How TCP Sockets Work |
| Blocking I/O, Nonblocking I/O, And Epoll |
| Goroutines, Nonblocking I/O, And Memory Usage |
| Hanging A Process With Select |
| Stopping A Process |
| Stdout Buffering |
| How To Nice A Bash Function |
| Crosh/SSH and ChromeOS |
| x86 Register Encoding |
| Pyflame Dual Interpreter Mode |
| Call Stacks and Link Registers |
| Towers of Hanoi in x86 Assembly |
| Go Compiles Infinite Loops Very Efficiently |
| Declare Your Bash Variables |
| Localhost |
| Gocd |
| Using ssh-agent and ED25519 Keys on GNOME |
| Systemd Socket Activation |
| Esc is Ctrl-[ |
| F-Market Line Considered Harmful |
| Sponge |
| 5-HTP Contraindications |
| Documenting Code |
| Fedora, QEMU, and 9p Filesystem Passthrough |
| Inline C/Assembly In Bash |
| A Funny Thing About C and C++ |
| CRCs vs Hash Functions |
| GitHub Private Repos |
| Memory Protection and ASLR on Linux |
| C++ and Thoughts On Java, Go, and Rust |
| The Curious Case of Position Independent Executables |
| GNOME Terminal Server |
| The x86-64 Red Zone |
| Free Medical Data |
| Ptrace, Syscall, and Python |
| How GCC LTO Works |
| Generator Comprehensions / Using any() and all() in Python |
| Autofs |
| The 64-bit Extensions to x86 Are a Mess |
| Configuring GNOME |
| GCC Generates Strange Code |
| How To Use Autotools |
| GPL Licensing |
| Parsing ELF symbol tables |
| A Ptrace Idiosyncrasy |
| Demangling C++ Symbols |
| C Functions Without Arguments |
| Ptrace (continued) |
| Using Ptrace For Fun And Profit |
| SSH Again |
| Effectively Using .bash_profile |
| Self-Balancing Trees |
| LD_PRELOAD Hacks |
| Linux Swappiness |
| Misunderstanding mlock(2) and mlockall(2) |
| Bash If/Equals |
| Some Minor Site Changes |
| The SF Housing Crisis |
| Spacemacs |
| Environment Variables |
| The Halting Problem |
| Binding On Port 0 |
| Color and TTYs |
| Cornering At Low Speeds |
| The Caveats of TCP_NODELAY |
| The Hate Is Real |
| Rdio |
| Uninterruptible Sleep |
| Strace |
| eCryptfs on Fedora |
| New Bike Day |
| Envoy and Ed25519 |
| Android Developer Options & ADB |
| Testing Code |
| Slack IRC Gateway |
| BitlBee Accounts |
| Large Data Files |
| Shoes |
| The Thrill Of Riding |
| BitlBee & HipChat |
| Mission Bicycle w/ SRAM Automatix Hub |
| The Commodification of Databases |
| Rendering Videos From OpenGL Is Hard |
| Linear Algebra; or, The Folly of Youth |
| Surprising Things Found While Exploring Bash |
| Cars And Turn Restrictions On Market St In San Francisco |
| Being Self-Taught |
| Resource Management in Garbage Collected Languages |
| My Philosophy on “Dot Files” |
| An Important Difference Between mysql(1) and MySQLdb |