Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Native extensions. How does it work? #95

Open
wants to merge 2 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 27 additions & 0 deletions lourens_naude-native_extensions_how_does_it_work/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
# Native extensions. How does it work ?

Ever seen those nasty configure / make backtraces on gem install or runtime segfaults ? Most of your critical product dependencies are native extensions, yet very few Rubyists understand how they work. With the Ruby VM ecosystem constantly growing, discrepancies between development and production environments and wrapped libraries not always evolving with stable interfaces, things can and will go wrong. I am the author of several bindings that run seamless on different Ruby implementations, cursed a lot to get there and in this talk I would like to touch on :

* The MRI C api VS foreign function interface (FFI)
* Basic structure and how extensions are loaded at runtime
* Plugging into the Ruby objects ecosystem and Garbage Collection
* Playing well with Threads
* When things go wrong

## Lourens Naudé

Lourens is an independent consultant currently based in sunny Madeira Island, but originally from South Africa. He specializes in backend / platform / domain solutions and is well versed full stack, from VM to high level protocols and known for his offbeat Ruby patches and extensions. Current interests include disruptive communication technology like ZeroMQ / libxs - all modern software is social software and none of that should be hard.

He spends weekdays in the Operations team @ http://www.wildfireapp.com

See http://github.com/methodmissing for Open Source contributions.

![Profile picture](https://github.com/methodmissing/call-for-proposals/raw/lourens_naude-native_extensions_how_does_it_work/example/profile_picture.jpg)

- [My website](http://www.methodmissing.com)
- [My twitter](https://twitter.com/#!/methodmissing)
- [Slides - SAPO Codebits 2011](http://www.slideshare.net/methodmissing/sapo-codebits-2011)
- [Slides - Lone Star Ruby Conf 2011](http://www.slideshare.net/methodmissing/in-the-loop-lone-star-ruby-conference)
- [Slides - Euruko 2011](http://www.slideshare.net/methodmissing/euruko-2011-in-the-loop)
- [Slides - SAPO Codebits 2010](http://www.slideshare.net/methodmissing/event-driven-architecture)

Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.