|
|
EVENT DETAILS |
What if the Ruby String library reverse method or its underlying C implementation had a bug? What if it produced unexpected results with certain types of inputs? e.g. strings with unicode characters. How would you catch & fix such a bug? How would you explain the unexpected results?
Description
1. Relevance
The Ruby String library reverse method is implemented in C. The debugging tools in this talk apply to Ruby programs, & help provide useful insights into the underlying C implementation.
2. Novelty & Originality
The use unicode_normalize to address certain string reversal issues appears to be known to certain developers. The novel idea in this talk is the analysis of Ruby & C implementation to explain the problem & possible solutions.
3. Knowledge
Vishal started his career at Lucent Technologies (Bell Labs Innovations), where he used C/C++ to develop software for CDMA wireless communication systems. At The Boeing Company, he used Ruby/Rails to develop U.S. government intelligence community software. Vishal enjoys going to the beach & loves family vacations.
GitHub: https://github.com/vchandnani LinkedIn: https://www.linkedin.com/in/vchandnani/
4. Coverage
This talk presents a step-by-step approach to debugging Ruby programs by diving into their underlying C implementation. It uses a string with unicode characters to demonstrate the problem & provides insights into the reversal process by understanding their byte-level representation.
5. Organization
This talk starts with a high-level view of the Ruby String library reverse method implementation. It introduces the idea of using a Virtual Machine (VM) to build Ruby from source. We learn about the Unicode standard & encoding fundamental principles. We explore the unicode_normalize implementation & how it addresses reverse method problems. Along the way, we use commands/tools like grep, chars, code_points, each_byte, printf & gdb to provide insight into Ruby library methods.
6. Bottom Line
This talk aims to improve confidence in understanding bugs and/or unexpected results in the current application language (e.g. Ruby) as well as the underlying (e.g. C) implementations. I hope to inspire the Ruby community to explore the internals of Ruby strings & provide recommendations for further exploration.
Agenda (all in Eastern Time zone) - 5:30 Meeting start, welcome - 5:40 First time attendees introductions, ice breaker - 6:00 Speaker start - 7:00 Jobs & Hiring Announcements
|
|
|
|
|
|