Between the end of my employment at Jive Communications and the Christmas break I did a lot of research on an idea I got four years ago after an especially frustrating network protocol debugging session. I put some notes on my lab book, wrote some code, assigned a codename (Project Nephelion) and forgot about it until I had, at Jive, yet another frustrating debugging session – although for completely different reasons. So I started analyzing everything that make this kind of debugging difficult and, after talking with friends that are in the same line of work, I decided to spend few months looking for solutions to improve the situation and see if I can build a business around it.
During these 4 months I designed the architecture for a device and its associated software and, even if I was not able to get answers to all my questions, at the beginning of 2015 I decided to build a prototype of the device and work on a first version of the software. The goal is to bring the prototype with me to the IETF meeting in Dallas (March 22 – 27, 2015) to show it to fellow protocol designers and implementers to gather feedback.
There is still a lot to do before I can explain in details what this product will do (I still have to fill at least one more patent application) but I just posted a description of the problems that this product may (or may not) solve on the website of the project:
The art of debugging network protocol problems
Meanwhile, and as a teaser, here’s the list of books that I bought and read specifically for this project during the exploratory phase back in 2014:
- Programming with Constraints: An Introduction
- Building Open Source Hardware: DIY Manufacturing for Hackers and Makers
- Constraint Processing
- The Linux Programming Interface: A Linux and UNIX System Programming Handbook
- High Speed Digital Design: A Handbook of Black Magic
- Unboxing Android USB: A hands on approach with real world examples
- Digital Circuit Boards: Mach 1 GHz
- Learn You a Haskell for Great Good!: A Beginner’s Guide
- Embedded Linux Primer: A Practical Real-World Approach
- Programming in Scala: A Comprehensive Step-by-Step Guide
- Bootstrap Yourself with Linux-USB Stack: Design, Develop, Debug, and Validate Embedded USB Systems
- 21st Century C: C Tips from the New School
- High-level Petri Nets: Theory and Application
- Make Your Own PCBs with EAGLE: From Schematic Designs to Finished Boards
- Understanding Linux Network Internals
- Mastering Lambdas: Java Programming in a Multicore World
- Concepts, Techniques, and Models of Computer Programming
- Practical Electronics for Inventors
- Embedded Systems Design with Platform FPGAs: Principles and Practices
- Structure and Interpretation of Computer Programs
- Kickstarter For Dummies
- Applications and Theory of Petri Nets: 30th International Conference
- Design And Validation Of Computer Protocols