There are two hard things in computer science: 0. off-by-one errors1. cache invalidation2. naming thi
|
|
November 15 · Issue #10 · View online
Email digest of dylanninin
|
|
There are two hard things in computer science:
0. off-by-one errors 1. cache invalidation 2. naming things – Phil Karlton
|
|
|
How to name things: the hardest problem in programming
This talk shares great writers’ best advice for coders: Stephen King on refactoring, Anne Rice on development hardware, Hemingway on modelling with personas, and Neil Gaiman on everything. Developers can get better at their craft by learning from the great writers who mastered theirs.
|
research!rsc: Names
Every programmer has a variable naming philosophy. This is mine:
A name’s length should not exceed its information content.
|
Code Review Best Practices
Software Engineer at ChowNow. Master’s student in Computer Science at Georgia Tech. This is a place for me to share thoughts on software engineering and Python.
|
|
The 101 of ELF Binaries on Linux: Understanding and Analysis - Linux Audit
An easy introduction into the ELF binary format, used on Linux systems. No prior knowledge is needed. We look at it from the point of understanding binaries, malware analysis, and forensics.
|
Benefits of using tmux - lessons from streamlining a development environment
Before I started using tmux, I’d hear it mentioned frequently. It always sounded cool, and while there’s no shortage of great information on the web about what tmux is, it was never entirely clear to me how it would dramatically improve my development workflow. After using tmux for a few years, I’ve come to rely on its ability to streamline several aspects of my development process. Thanks to tmux, my workflow is now more organized, more automated, and easier to customize. My hope is that by sharing a few concrete examples of how tmux has helped me, it may help others better understand what might be gained by taking tmux for a spin.
|
|
Networking 101: Building Blocks of UDP - High Performance Browser Networking (O'Reilly)
UDP, was added to the core network protocol suite in August of 1980 by Jon Postel, well after the original introduction of TCP/IP, but right at the time when the TCP and IP specifications were being split to become two separate RFCs. This timing is important because, as we will see, the primary feature and appeal of UDP is not in what it introduces, but rather in all the features it chooses to omit. UDP is colloquially referred to as a null protocol, and RFC 768, which describes its operation, could indeed fit on a napkin.
|
|
Understanding the power of data types
What’s a type? Internals:
- a row in pg_type
- a nice name for users to remember
- typename_{in, out}()
- typename_{send, recv}() optionally
- functions (host(), unnest(), average())
- operators (<, =, ~)
- … and some other things
|
Explaining the Postgres Query Optimizer
The optimizer is the “brain” of the database, interpreting SQL queries and determining the fastest method of execution. This talk uses the explain command to show how the optimizer interprets queries and determines optimal execution, assisting developers and administrators in understanding how Postgres optimally executes their queries and what steps they can take to understand and perhaps improve its behavior.
|
|
Regular Expression Matching Can Be Simple And Fast
Historically, regular expressions are one of computer science’s shining examples of how using good theory leads to good programs. But today, regular expressions have also become a shining example of how ignoring good theory leads to bad programs. The regular expression implementations used by today’s popular tools are significantly slower than the ones used in many of those thirty-year-old Unix tools. This article reviews the good theory: regular expressions, finite automata, and a regular expression search algorithm invented by Ken Thompson in the mid-1960s. It also puts the theory into practice, describing a simple implementation of Thompson’s algorithm. The article concludes with a discussion of how theory might yet be converted into practice in the real-world implementations.
|
|
Let’s Build A Web Server. Part 1. - Ruslan's Blog
What does it have to do with creating your own Web server from scratch? I believe to become a better developer you MUST get a better understanding of the underlying software systems you use on a daily basis and that includes programming languages, compilers and interpreters, databases and operating systems, web servers and web frameworks. And, to get a better and deeper understanding of those systems you MUST re-build them from scratch, brick by brick, wall by wall. It’s a good idea to start re-building different software systems to learn how they work. When you know the whole system and understand how different pieces fit together (bricks, walls, cathedral), you can identify and fix problems faster (errant brick). Confucius put it this way:
- “I hear and I forget.”
- “I see and I remember.”
- “I do and I understand.”
|
Did you enjoy this issue?
|
|
|
|
If you don't want these updates anymore, please unsubscribe here.
If you were forwarded this newsletter and you like it, you can subscribe here.
|
|
|
|