Pragmatic, Bite-Sized Programming Advice from Koder-with-Attitude, Kode Vicious
“For many years I have been a fan of the regular columns by Kode Vicious in Communications of the ACM. The topics are not only timely, they’re explained with wit and elegance.”
--From the Foreword by Donald E. Knuth
Writing as Kode Vicious (KV), George V. Neville-Neil has spent more than 15 years sharing incisive advice and fierce insights for everyone who codes, works with code, or works with coders. Now, in
The Kollected Kode Vicious, he has brought together his best essays and Socratic dialogues on the topic of building more effective computer systems. These columns have been among the most popular items published in ACM
Queue magazine, as well as
Communications of the ACM, and KV's entertaining and perceptive explorations are supplemented here with new material that illuminates broader themes and addresses issues relevant to every software professional.
Neville-Neil cuts to the heart of the matter and offers practical takeaways for newcomers and veterans alike on the following topics:
- The Kode at Hand: What to do (or not to do) with a specific piece of code
- Koding Konundrums: Issues that surround code, such as testing and documentation
- Systems Design: Overall systems design topics, from abstraction and threads to security
- Machine to Machine: Distributed systems and computer networking
- Human to Human: Dealing with developers, managers, and other people
Each chapter brings together letters, responses, and advice that apply directly to day-to-day problems faced by those who work in or with computing systems. While the answers to the questions posed are always written with an eye towards humor, the advice given is deadly serious.
Register your book for convenient access to downloads, updates, and/or corrections as they become available. See inside book for details.
Author(s): George Neville-Neil
Edition: 1
Publisher: Addison-Wesley Professional
Year: 2020
Language: English
Pages: 360
Tags: Programming Advises;
Cover
Half Title
Title Page
Copyright Page
Dedication
Table of Contents
Foreword
Preface
Acknowledgments
About the Author
1 The Kode at Hand
1.1 Resource Management
1.2 Big Big Memory
1.3 Coded Arrangements
1.4 Code Abuse
1.5 Nesting Tendencies
1.6 Choking on Changes
1.7 Cursed Code
1.8 Forced Exceptions
1.9 A Nice Piece...of Code
1.10 Something Rotten in
1.11 Logging
1.12 Lost
1.13 Copying
1.14 Top Five Koding Peeves
1.15 Linguistically Lost
1.16 Check in Comments
2 Koding Konundrums
2.1 Ode to the Method
2.2 How Much + in C++?
2.3 Something Sleek and Modern
2.4 What’s in a Cache Miss?
2.5 Code Spelunking
2.6 Input Validation
2.7 Dickering with Docs
2.8 What’s in the Foo Field?
2.9 Testy Tester
2.10 How to Test
2.11 Leave the Test Modes In!
2.12 Maintenance Mode
2.13 Merge Early
2.14 Multicore Manticore
2.15 This Is Not a Product
2.16 Heisenbugs
2.17 I Don’t Want Your Dirty PDFs
2.18 Pining for a PIN
2.19 Reboot
2.20 Code Scanners
2.21 Debugging Hardware
2.22 Sanity vs. Visibility
3 Systems Design
3.1 Abstractions
3.2 Driven
3.3 Driven Revisited
3.4 Changative Changes
3.5 Threading the Needle
3.6 Threads Still Unsafe?
3.7 Authentication vs. Encryption
3.8 Authentication Revisited
3.9 Authentication by Example
3.10 Cross-Site Scripting
3.11 Phishing and Infections
3.12 UI Design
3.13 Secure Logging
3.14 Java
3.15 Secure P2P
4 Machine to Machine
4.1 Stepping on Toes
4.2 Paucity of Ports
4.3 Protocol Design
4.4 Which Came First?
4.5 Debugging the Network
4.6 Latency
4.7 Long Distance Runaround
4.8 The Network Is the Computer
4.9 Failure to Scale
4.10 Port Squatting
4.11 Networking in the Raw
4.12 Pointless PKI
4.13 Standard on Standards
5 Human to Human
5.1 Of Pride and
5.2 What Color Is Your...?
5.3 Broken Builds
5.4 What Is Intelligence?
5.5 Review the Design
5.6 The Naming of Hosts
5.7 Hosting an Interview
5.8 Mythical
5.9 The Obsolete Koder
5.10 With Great Power
5.11 The Letter
5.12 The Tickets That
5.13 Of Screwdrivers and Hammers
5.14 Security Reviews
5.15 Getting Back to Work
5.16 Open Source Licenses
5.17 So Many Standards
5.18 Books
5.19 More on Books
5.20 Keeping Up to Date
5.21 For My Last Trick
Index
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X