Dmitry Dvoinikov
Software developer

The only way to get something done is to start and then don't stop.
The usual:   Resume  ·  LinkedIn  ·  GitHub  ·  E-mail
Articles and series of articles:   Experimental measurement of FPGA registers power consumption
Learning FPGA programming, key points for a software developer (3 parts)
VPNs, how to use them properly and stay anonymous (5 parts)
The effects of data fragmentation in a mixed load database
Password keeping devices. Comparison of YubiKey vs. OnlyKey
Blogs:   At minds.com (more political)  ·  Things That Require Further Thinking (more technological)
Open-source projects:   Pay Gap Puzzle (JavaScript game)
Pythomnic3k (Python3 application framework)
Nest (IP VPN daemon)
HTTPort (TCP over HTTP tunnel)
Green (e-mail spam filter)
Bootable FreeBSD CD (minimal and secure)
Python tools:   Function guards for Python 3
Method signature checking decorator for Python 3
Method signature checking decorators for Python 2.x
Yet another Design By Contract module for Python
Assertion that a code fragment throws a particular exception
Decorator to make a decorated call in a separate thread with timeout
Formats current exception with stack trace so that it fits in single line and has known encoding
Shared lock (aka reader-writer lock) with timeouts and FIFO ordering
Book reviews:    Oracle Application Integration Architecture (AIA) Foundation Pack 11gR1: Essentials
 Freakonomics: A Rogue Economist Explores the Hidden Side of Everything (Steven D. Levitt)
 Transactional Memory (Tim Harris et al)
 Seven Languages in Seven Weeks (Bruce Tate)
 Talent is overrated (Geoffrey Colvin)
 Smart Card Applications (W. Rankl)
 Smart Card Handbook (W. Rankl)
 Presentation Zen (Garr Reynolds)
 Clean Code (Robert Martin)
 Godel, Escher, Bach: An Eternal Golden Braid (Douglas Hofstadter)
 Smalltalk, Objects, and Design (Chamond Liu)
 The Art Of Agile Development (James Shore, Shane Warden)
 Software Fundamentals (David L. Parnas)
 Large-Scale C++ Software Design (John Lakos)
 Release It!: Design and Deploy Production-Ready Software (Michael Nygard)
 Software Craftsmanship: The New Imperative (Pete McBreen)
 The Psychology of Computer Programming (Gerald Weinberg)
 Peopleware: Productive Projects and Teams (Tom DeMarco)
 Code Craft: The Practice of Writing Excellent Code (Pete Goodliffe)
 Programming Erlang: Software for a Concurrent World (Joe Armstrong)
 Beautiful Code (Andy Oram, Greg Wilson)
 Dreaming In Code (Scott Rosenberg)
 Principles of Transaction Processing (Philip Bernstein)
 The Data Warehouse ETL Toolkit: Practical Techniques for Extracting, Cleaning (Ralph Kimball)
 The Data Warehouse Toolkit: The Complete Guide to Dimensional Modeling (Ralph Kimball)
 Oracle Performance Tuning and Optimization (Edward Whalen)
 Expert Oracle Database Architecture:Programming Techniques and Solutions (Thomas Kyte)
 Fault Tolerance in Distributed Systems (Pankaj Jalote)
 Database Tuning: Principles, Experiments, and Troubleshooting Techniques (Dennis Shasha)
 Inside Microsoft SQL Server 2000 (Kalen Delaney)
 The Guru's Guide to SQL Server Architecture and Internals (Ken Henderson)
 The Mating Mind: How Sexual Choice Shaped the Evolution of Human Nature (Geoffrey Miller)
 Universal Principles of Design: 100 Ways to Enhance Usability... (William Lidwell)
 Accident And Design: Contemporary Debates On Risk Management (C. Hood)
 SQL Performance Tuning (Peter Gulutzan)
 Relational Database Index Design and the Optimizers (Tapio Lahdenmaki)
 Software Fault Tolerance Techniques and Implementation (Laura L. Pullum)
 Building Reliable Component-Based Software Systems (Ivica Crnkovic)
 AntiPatterns: Refactoring Software, Architectures, and Projects in Crisis (William J. Brown)
 Emotional Design: Why We Love (Or Hate) Everyday Things (Donald A. Norman)
 Hackers and Painters: Big Ideas from the Computer Age (Paul Graham)
 Writing Secure Code, Second Edition (Michael Howard)
 Practical Cryptography (Niels Ferguson)
 Blueprints for High Availability: Designing Resilient Distributed Systems (Evan Marcus)
 Exceptional C++: 47 Engineering Puzzles, Programming Problems, and Solutions (Herb Sutter)
 Programming With Threads (Steve Kleiman)
 Understanding Microsoft Windows 2000 Distributed Services (David Chappell)
 Advanced Programming in the UNIX(R) Environment (W. Richard Stevens)
 The Design and Implementation of the 4.4 BSD Operating System (Marshall Kirk McKusick)
 Porting UNIX Software (Greg Lehey)