0%

Book Description

Pragmatic, Bite-Sized Programming Advice from a Coder with an 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, theyre 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, hes 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 ACMs Queue magazine, as well as Communications of the ACM, and KVs 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.

Book Description

Pragmatic, Bite-Sized Programming Advice from a Coder with an 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, theyre 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, hes 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 ACMs Queue magazine, as well as Communications of the ACM, and KVs 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.

Table of Contents

  1. Cover Page
  2. Title Page
  3. Contents
  4. Table of Contents
  5. Foreword by Don Knuth
  6. Preface
  7. 1. The Kode at Hand
    1. 1.1 Resource Management
    2. 1.2 Big Big Memory
    3. 1.3 Coded Arrangements
    4. 1.4 Code Abuse
    5. 1.5 Nesting Tendencies
    6. 1.6 Choking on Changes
    7. 1.7 Cursed Code
    8. 1.8 Forced Exceptions
    9. 1.9 A Nice Piece...of Code
    10. 1.10 Something Rotten in...
    11. 1.11 Logging
    12. 1.12 Lost
    13. 1.13 Copying
    14. 1.14 Top Five Koding Peeves
    15. 1.15 Linguistically Lost
    16. 1.16 Check in Comments
  8. 2. Koding Konundrums
    1. 2.1 Ode to the Method
    2. 2.2 How Much + in C++?
    3. 2.3 Something Sleek and Modern
    4. 2.4 What’s in a Cache Miss?
    5. 2.5 Code Spelunking
    6. 2.6 Input Validation
    7. 2.7 Dickering with Docs
    8. 2.8 What’s in the Foo Field?
    9. 2.9 Testy Tester
    10. 2.10 How to Test
    11. 2.11 Leave the Test Modes In!
    12. 2.12 Maintenance Mode
    13. 2.13 Merge Early
    14. 2.14 Multicore Mantacore
    15. 2.15 This Is Not a Product
    16. 2.16 Heisenbugs
    17. 2.17 I Don’t Want Your Dirty PDFs
    18. 2.18 Pining for a PIN
    19. 2.19 Reboot
    20. 2.20 Code Scanners
    21. 2.21 Debugging Hardware
    22. 2.22 Sanity vs. Visibility
  9. 3. Systems Design
    1. 3.1 Abstractions
    2. 3.2 Driven
    3. 3.3 Driven Revisited
    4. 3.4 Changative Changes
    5. 3.5 Threading the Needle
    6. 3.6 Threads Still Unsafe?
    7. 3.7 Authentication vs. Encryption
    8. 3.8 Authentication Revisted
    9. 3.9 Authentication by Example
    10. 3.10 Cross-Site Scripting
    11. 3.11 Phishing and Infections
    12. 3.12 UI Design
    13. 3.13 Secure Logging
    14. 3.14 Java
    15. 3.15 Secure P2P
  10. 4. Machine to Machine
    1. 4.1 Stepping on Toes
    2. 4.2 Paucity of Ports
    3. 4.3 Protocol Design
    4. 4.4 Which Came First?
    5. 4.5 Debugging the Network
    6. 4.6 Latency
    7. 4.7 Long Distance Runaround
    8. 4.8 The Network Is the Computer
    9. 4.9 Failure to Scale
    10. 4.10 Port Squatting
    11. 4.11 Networking in the Raw
    12. 4.12 Pointless PKI
    13. 4.13 Standard on Standards
  11. 5. Human to Human
    1. 5.1 Of Pride and...
    2. 5.2 What Color Is Your...?
    3. 5.3 Broken Builds
    4. 5.4 What Is Intelligence?
    5. 5.5 Review the Design
    6. 5.6 The Naming of Hosts
    7. 5.7 Hosting an Interview
    8. 5.8 Mythical
    9. 5.9 The Obsolete Koder
    10. 5.10 With Great Power...
    11. 5.11 The Letter
    12. 5.12 The Tickets That...
    13. 5.13 Of Screwdrivers and Hammers
    14. 5.14 Security Reviews
    15. 5.15 Getting Back to Work
    16. 5.16 Open Source Licenses
    17. 5.17 So Many Standards
    18. 5.18 Books
    19. 5.19 More on Books
    20. 5.20 Keeping Up to Date
    21. 5.21 For My Last Trick
3.137.192.3