Wednesday Morning Session Notes
The Voices That Matter ruby conference is a single track conference emphasizing short 30 minute presentations that give you a taste of a variety of topics. Unfortunately, I missed the keynote speech this morning. But when I arrived, it turns out that the speaker had missed it too. Although I was sorry to miss the “smackdown”. These are my notes from the rest of the morning:
Cody Fauser spoke about Payment Processing with Active Merchant. Active Merchant is an extraction from the e-commerce system Shopify. Active Merchant strives to have a simple uniform API, a universal translator for payment gateways. No matter which gateway you use, the code stays the same. So you can switch from Paypal to Braintree with no code changes. One stop shop for all payment gateways. The credit card object is rich in features that includes a whole suite of validations. Active Merchant also gives you uniform AVS and CVV responses and is extensible. There’s a large community of folks using Active Merchant who are contributing to the project and you can find help via the mailing list. This is open source but production level code with SSL peer verification. Be aware of PCICS Data Security Standards before you begin coding. If you want to see it in use check outhttp://is.gd/882N and http://is.gd/883c.
Philippe Hanrigou from Thoughtworks presented Rock Solid Ruby Deployment. Tough to catch everything with his accent and quick, clipped speech but you adjusted after a bit. Check out Troubleshooting Ruby Processes (Leveraging System Tools When the Usual Ruby Tricks Stop Working). Most important is to “know your stack”. Phillipe created caller_for_all_threads which is a patch for the Ruby interpreter which provides a way to collect the stack traces of all the threads of a Ruby application. With caller_for_all_threads, just send a signal to your Ruby process to capture all your application stacks! DTrace is a freaking awesome tool. DTrace is a comprehensive dynamic tracing framework for the Solaris Operating Environment. DTrace provides a powerful infrastructure to concisely answer arbitrary questions about the behavior of the operating system and user programs. Unfortunately, its only available for Solaris at present. Paul Fox is working on DTrace for Linux but its not ready for prime time yet. But when it is, you can at last figure out what’s going on in all your components.
Blaine Cook formerly of Twitter spoke about Messaging with Ruby and Rails. There hasn’t been a lot of use of messaging to build systems on the web. If we can build systems that talk to each other we can build powerful things. AJAX is almost messaging, an ajax request is providing instant feedback to the user and doing work in the background. Messaging can help us with parallel processing. You can also use messaging to decrease latency. Normally you have a polling, request cycle and with a lot of social apps being built on the web these days you want that response in milliseconds because it creates a richer experience. There are a bunch of options for building messaging systems. RabbitMQ is best of breed at the moment with an Erlang implementation. Other systems include ActiveMQ, Spread, beanstalkd (used on Twitter), Starling, German/ TheSchwartz (used on LiveJournal), Delayed::Job and cron.
Rails Scales! How? We all know that rails scales so instead Matt Pelletier talked about the mobile landscape. Many more phones are being sold than pcs these days. There are a lot of voice technologies out there like robo calls, VoIP, Automated Voice Services, Voice XML, Asterick, etc. SMS has recently started to surpass the amount of voice calls made in the states. Nothing new in Japan, Korea. But SMS doesn’t give you any meta data and you are limited to 167 characters. MMS is “a total shit show”, even Apple said screw it, use email instead. Mobile Data Services are the next tier with a lot of activity like WAP, the “Real” Internet (MobileSafari, Android Browser, Fennec, Opera, Skyfire), and Apps for your phone. People like apps, what are folks doing with them? Same thing as on the web, an extension of the desktop. Many phone apps provide Location Based Services because people are out and about with their phones but it’s not quite “there” yet. IPhone development feels like the Rails community 3-4 years ago. There is sparse domain knowledge and its poorly organized. There’s some UI design patterns but not many coding conventions. Objective-C isn’t Ruby and iPhone SDK ain’t Rails. But a decent coder can get going without much experience with some time and dedication. Its fun because mobile apps are simpler than web apps. And if you get a hit, you can make BIG money.


