Introduction: "Easy" Programming Problems & https://blog.svpino.com/2015/05/07/five-programming-problems-every-software-engineer-should-be-able-to-solve-in-less-than-1-hour
We are sponsored by audible! http://www.audibletrial.com/programmingthrowdown
News
- Nand2Tetris
- Creating Art for Engineers
- Google - Become a SWE
- Docker: Open platform for distributed computation
Book of the Show
- Jason & Patrick: Mindhacking http://www.mindhacki.ng/
Tool of the Show
- Jason: rsync
- Patrick: Multimeter
Debugging
- Types of bugs
- Crasher
- Hang/Slowness
- Wrong answer
- Memory/Thread leak
- Buffer Overrun
- Techniques
- Divide and Conquer
- Finding where the problem isn’t
- Logging
- Print statements
- Rolling files
- Debugger
- C/C++: GDB / LLDB
- Javascript: FireBug
- Python: pdb
- Java: jdb or JDWP (Java Debugging Wire Protocol)
- Profiling (asked for by Morten Nielsen)
- Prelude/Postlude vs Random Sampling
- C/C++: gprof
- Javascript: Firefox/Chrome profiler
- Python: Profile / cProfile
- Memory Debugging
- Valgrind
- Address Sanitizer
- Automation
- Tests
- Fuzz Testing
- Reporting
- Crash Reporting
- Aggregated statistics
- Worst bug ever stories
- Bugs that only happen in release builds
- Bugs that only happen once per day
- Bugs where you have to do something for a long time to get it to work
- Crazy Stories
- Friend’s dad debugged ATM machines in russia by playing notes at different frequencies
- Stack unwinding by hand