What we're about

NYC.rb is the place for new and experienced Ruby and Rails programmers in New York City.

MEETUPS

We meet on the second Wednesday of the month.

FORMAT

Currently, we are meeting on Zoom. The details are included when you RSVP: Yes to the meeting.

TALK SUBMISSION

Submit a talk proposal as a github issue here (https://github.com/nycrb/devpunks/issues). You can do it!!!

Upcoming events (5)

Debug Hard: Ruby String Library Methods and Underlying C Implementations

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 and 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, and help provide useful insights into the underlying C implementation.

2. Novelty and 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 and C implementation to explain the problem and 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 and 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 and 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 and encoding fundamental principles. We explore the ‘unicode_normalize’ implementation and how it addresses ‘reverse’ method problems. Along the way, we use commands/tools like grep, chars, code_points, each_byte, printf and 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 and 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

Talks

Online event

Talk Abstract

Speaker Bio

Agenda
(all in Eastern Time zone)
- 5:30pm Meeting start, welcome
- 5:40pm First time attendees introductions, ice breaker
- 6:00pm Speaker start
- 7:00pm Jobs & Hiring Announcements

Talks

Online event

Talk Abstract

Speaker Bio

Agenda
(all in Eastern Time zone)
- 5:30pm Meeting start, welcome
- 5:40pm First time attendees introductions, ice breaker
- 6:00pm Speaker start
- 7:00pm Jobs & Hiring Announcements

Talks

Online event

Talk Abstract

Speaker Bio

Agenda
(all in Eastern Time zone)
- 5:30pm Meeting start, welcome
- 5:40pm First time attendees introductions, ice breaker
- 6:00pm Speaker start
- 7:00pm Jobs & Hiring Announcements

Past events (150)

Photos (122)

Find us also at