» tagged pages
» logout

sorted by: recent | see : popular
Content Tagged with Miscellaneous + Elsewhere

Rubyology: Great Interviews with Great Ruby Developers

rubyology.pngRubyology is a Ruby-based podcast chaired by Chris Matthieu. Its focus is on interviewing interesting Ruby (and Rails) developers - finding out about their projects, what makes them tick, and extracting their insights into the Ruby and Rails worlds.

For some reason, Rubyology hasn't had a lot of love in the Ruby blogosphere, and after listening to several great interviews over the past few months, I've decided this is a great time to recommend you check it out if you're not already a subscriber.

Recent highlights include:

Of course, don't forget about Geoffrey Grosenbach's Rails Podcast either - it's not all Rails focused these days. The latest episode is an interview with Jim Weirich.

Post supported by Brightbox: Brightbox is a specialist European Rails hosting company. Each Brightbox server includes an optimised Ruby on Rails stack, SAN storage and access to a managed MySQL database cluster. They also manage dedicated clusters for large scale Rails deployments. Click here to learn more..

Ruby: Inside Ruby

Interesting Ruby Tidbits That Don’t Need Separate Posts #21

RubyAMP: Amazing Ruby Bundle for TextMate

RubyAMP is a TextMate bundle that goes above and beyond the typical TextMate bundle in usefulness. It adds auto-complete from all open tabs, easy jumping to methods and classes, improved RSpect debugging support, breakpoint support (set and remove from TextMate), Merb / Rails server or console launching, development log tailing, and a lot more. There’s a screencast on the project page itself so you can get a direct look at how it all works within a minute or two.

Bicycle Location Visualization with Ruby and RMagick

bikes-in-paris.jpg

Paris has a shared bicycle scheme for those who want to get around downtown called Velib. Ardent Velib fan Thibaut Barrère decided he wanted a better way to see the availability of bikes, and put together a Ruby app that could scrape the raw data and put together a visualization for him. This is a well written article covering how he did it from start to finish.

Engine Yard Invites Ruby Developers To “Hackfests”

When a press release is so concise and well written (a VERY rare event), it seems a shame not to quote it verbatim:

Engine Yard, provider of the leading Ruby and Rails deployment platform, today announced a series of Hackfests, informal community events open to Ruby developers, where sharing, learning, and hacking rule. The inaugural Hackfest was a resounding success with participation from over 100 top Ruby and Rails developers. Two more Engine Yard Hackfests are planned for the coming months.

The first event was held this past weekend alongside MountainWest RubyConf 2008 in Salt Lake City, Ut., where Engine Yard’s Ezra Zygmuntowicz and Evan Phoenix shared the opening keynote. After the conference, folks generally look to talk tech, shoot the breeze, and hack. They split off into small groups, grab dinner, and eventually end up in various hotel rooms, awake into the wee hours.

The Engine Yard Hackfest aimed to draw these small groups together, and facilitate a mid-sized, casual, expert meeting of the minds. As an alterative to having Rubyists chat in the brief windows between conference sessions, the Hackfest offered an open-all-night comfortable workspace, with free wi-fi, dinner and snacks, and expert community leaders for company.

Rubyists are invited to participate in Engine Yard’s upcoming Hackfests, which will be held alongside GoRuCo in New York (April 26) and RubyFringe in Toronto (July 18-20).

I hear that the similar “Ruby Cave” events at the recent Ruby Fools conferences went down well, so this is a great development for those going to GoRuCo and RubyFringe.

ServiceReg - A RESTful API for RESTful APIs

ServiceReg is a new service by Chris Matthieu (of Wuby fame) that acts as an API to other RESTful APIs. Confused? Perhaps this example URL will give you an idea:

http://servicereg.com/verb/{user:password@}domain/noun{/id?params}

Still don’t get it? Thankfully Chris has put together a screencast to bring us all up to speed. ServiceReg appears to be useful for accessing third party RESTful APIs entirely through a well crafted URL to ServiceReg (without the need to send XML payloads, etc.)

Ruby’s Not Ready! (Or: Why Python Rules and Ruby Sucks)

A Python developer takes Ruby, rips it apart, and explains in 6000+ words why Ruby sucks compared to Python. It’s a ballsy essay, and if it were a lot shorter and not as well written, I’d be calling it Troll Of The Month. As it is, I think he’s missing the point a lot of the time (he tends to think Python’s better because he likes its conventions more than Ruby’s - not a compelling argument), but it’s an interesting read none the less. Anything that keeps our minds open to the fact that Ruby != perfection is worth a look.

Ruby: Inside Ruby

Railscasts Releases 100th Free Screencast; Holds a Contest

railscastslogo.png

If you’re a Rails developer you will, I hope, be familiar with Ryan Bates’ Railcasts, an amazing site chock full of free Rails related screencasts, and just over a year after posting the first video, Ryan has released video #100, entitled “5 View Tips”, which presents five quick tips relating to your use of views in your Rails applications.

To celebrate a solid 13 months of top-notch screencast production, Ryan has collaborated with a number of sponsors to launch a Railcast 100th Episode Contest.

The contest’s “grand prize” includes an iPod Touch (!), a Code Spaces Subversion hosting plan, a Harvest plan, a $50 Pragmatic Programmers coupon, a $50 Amazon gift card, and a $50 iTunes gift card! The rest of the prizes, all the way down to 9th place, include lesser amounts of most of the same items (as well as some Peepcode goodies).

But what do you have to do to get the goodies? Easy. Write 5 Rails tips, share them with the community by May 5th, and send the URL of where they are to an e-mail address provided on the contest page. Also feel free to post the URL into the comments on this post. It won’t constitute an entry (you need to e-mail Railscasts to do that) but I might link to some of the best entries myself, and it’ll also allow other Ruby Inside readers to enjoy your hard work. Good luck!

Ruby: Inside Ruby

A Fresh Overview of Rubinius

rubiniusbenchmark2.png

Mathieu Martin has written a great, up to date overview of Rubinius, a rapidly growing alternative Ruby implementation created by Evan Phoenix and now being developed by a large team (with significant financial help and manpower from Engine Yard).

Mathieu’s overview explains what Rubinius is (a new Ruby implementation with a heavy focus on implementing Ruby in a subset of itself), examines the ideas behind the implementation, and presents some up to date(ish) benchmarks that show how Rubinius compares to MRI (Matz’s Ruby Interpreter) so far. The benchmark results are very encouraging, and show Rubinius has taken some great leaps forward in the last several months.

Ruby: Inside Ruby

Scout: A Ruby Powered Web Monitoring and Reporting Service

scout.png

Disclaimer: Scout is a commercial service. I have received no compensation for mentioning this service and am posting about it merely due to my own interest in it.

Scout is a new “a la carte” monitoring and reporting service, primarily for tracking servers and Web applications, developed by HighGroove Studios. Scout lets you use plugins (provided both by HighGroove and other Scout users) written in Ruby to customize and manipulate your monitoring arrangements. You can also write your own plugins. Subscription levels will vary from a free account (one server, up to 3 plugins, 30 minute reporting intervals) up to over $100 per month for the highest level (supporting many more servers, shorter intervals, unlimited plugin usage, etc.)

The installation process and plugin system are what make Scout particularly unique and interesting. A Scout “client” is run on each machine you wish to monitor, and is installed with RubyGems (gem install scout). The client routinely runs its plugins and sends information to the central Scout service (rather than Scout “querying” the server, as with most monitoring services). Any plugins you install through the Scout Web interface are pulled down by the Scout client to all of the relevant servers automatically!

Scout is still in its pre-release stage (though not for long) but HighGroove have offered to give the first 20 Ruby Inside readers who mail rubyinside@highgroove.com an account! So.. be quick if you want a go :) (They’ve now all gone, sorry!)

I also decided to ask the Scout team a few questions about the service to get a better feel for how it works:

Is Ruby the only language used on Scout? If not, why not, and what else are you using?


James Edward Gray II: The Scout client and server are written in Ruby, yes. They make use of data formats like YAML and Ruby’s marshaled object binary format as well as communicate using protocols like HTTP, but the beating heart is Ruby at both ends.

However, most plugins will shell out to external utilities. Some of these utilities might be considered languages in their own right. For example, AppleScript can be used to communicate with or control Mac OS X applications. Even the shells themselves are languages and plugin writers may want to make use of that fact.

The reason to rely on these external sources of data is simple: plugins can get the data they need from the expert sources with very little effort. Duplicating the functionality of all popular system utilities in Ruby would be a massive undertaking and extremely error prone. Instead, we want users cranking out handy plugins by investing small slices of time. In short, we want to focus on the interesting problems that haven’t already been solved.

Which technologies does Scout use?


Derek Haynes: The web interface is a Rails app, but the bulk of the requests are processed by a separate Merb app that handles all of the alerts, reports, and errors that are sent to Scout. We went with this setup for 2 primary reasons - we need to continue to process data even when we’re updating the web interface, so we needed to decouple the web service from the app and Merb handles these requests more efficiently.

Why did you choose Ruby for Scout’s plugin language, and how has it worked out so far?


James Edward Gray II: Like her sister language Perl, Ruby is a powerful tool when used to glue system utilities together. The ease of talking to external processes and the powerful string manipulation features make it an ideal choice for collecting important data and transforming it into the needed formats for the server. This is a big strength of Ruby’s design that gets overlooked too often. We hope to change that, of course.

How does Scout plan to deal with availability?


Charles Brian Quinn: The Scout server is running on virtualized hardware, with two physical locations at InterNAP and the AtlantaNAP data centers. We are fully load-balanced with failover support. In the event of failure at one of the datacenters, we are fully redundant. We plan on scaling out horizontally as the need arises.

Do you have any plans or see any further innovations for Scout using Ruby further down the road?


Derek Haynes: I hate to sound like a Real Estate Scammer, but it’s practically unlimited. You can include any Ruby library when running a plugin (here’s an example that “loads the Rails environment” and “another that uses hpricot“), so anyone can extend the client. An obvious answer is a Ruby DSL for working with system commands. A couple of new libraries address this in different ways, but as James said earlier, a one-size-fits-all solution is a massive undertaking.

Ruby: Inside Ruby

Shoes News: Free Shoes Books and Applications For Everyone!

shoesxplatform.png

It seems that Why The Lucky Stiff’s cross-platform, GUI application development environment, Shoes, is going from strength to strength! In the last several months, lots of new Shoes applications have been developed, and in the last couple of weeks there have been some interesting developments, such as Nobody Knows Shoes entering the public domain, and “The Shoebox,” a Shoes application repository, going live.

Note: Six months ago, there was a compilation post on Ruby Inside with links to Shoes related tutorials which is still worth referring to.

Nobody Knows Shoes - The Official Shoes Manual - Goes Free!

nobodyknowsshoes.png

Nobody Knows Shoes, the official guide to Shoes, was released in paperback form a few months ago, available to buy via Lulu.com where you can still pick up this gem for a mere $5.57.

As of March 1st, 2008, Why has released the guide into the public domain and it’s now also available to read online for free (as well as in PDF format.) Nobody Knows Shoes is well worth the read not only if you’re interested in Shoes, but if you like Why’s particular brand of illustration, design, and humor.

The Shoebox - A Shoes Application Repository

shoebox.png

The Shoebox is a new site dedicated to hosting Shoes-based applications. Currently there are 22 applications and games, including Tetris, Othello (known as Shoethello), Go, Conway’s Game of Life, and lots of graphics demos. Most of these work cross-platform and are great demonstrations of both the power of Shoes and Ruby.

Ruby: Inside Ruby

Building a Twitter Agent with Ruby and Rails

twitteragentarchitecture.png

Dominiek ter Heide has put together a great tutorial that walks you through building a “Twitter agent” using Ruby, Rails and XMPP. For those who aren’t on Twitter yet, it’s a free micro-blogging cum “presence” information service that allows users to write 140 character messages that are supposed to represent their current state / feelings / location / etc. A Twitter agent, therefore, is essentially an automated Twitter user that can deliver information to other Twitter users.

The tutorial is quite in-depth with lots of code examples and helpful diagrams. Dominiek explains it all very directly, and even has the developed service running for real, so you know you’re seeing something that actually works.

Ruby: Inside Ruby

ActiveMerchant E-Book by Cody Fauser

activemerchantp.png

ActiveMerchant is a new e-book written by Cody Fauser and produced by Geoffrey Grosenbach’s PeepCode which, unsurprisingly, is about the Active Merchant Ruby library and Rails plugin (past Ruby Inside reference). Cody Fauser is a key developer on the Active Merchant project, so all the knowledge is from the “horse’s mouth,” as it were!

The Active Merchant library was initially developed as part of the Shopify e-commerce system, and is an excellent library for interacting with payment gateways from Ruby (and Rails) code. It’s been in production use handling tens of thousands of payments since 2006 and it now has support for several payment gateways, including PayPal, Authorize.Net, and TrustCommerce.

Cody’s e-book comes in PDF format and is immaculately produced with helpful diagrams, concise code snippets, and it proves incredibly easy to read on the screen while retaining the ability to give a good printed copy. At 74 pages it goes into just the right amount of detail, and at $9 is a bargain for anyone wanting to get involved with processing payments and dealing with payment gateways from Ruby or Rails applications (you’ll hopefully make that back on your first couple of payments!)

Disclaimer: PeepCode is a Ruby Inside sponsor, but does not receive any special treatment regarding editorial posts such as this one. It truly is a good e-book!

Ruby: Inside Ruby

21 Merb Links, Tutorials and Other Resources

merb.png

Merb is a Ruby Web framework that most Ruby and Rails developers are familiar with, even if they haven’t used it. Merb is a Model View Controller based framework, somewhat like Rails, but it’s significantly lighter, faster, and more customizable. Merb’s strength is that it has a lightweight core and relies on plugins, selected by the user, to provide most of the extended functionality.

This post is to summarize some of the more interesting Merb tutorials and references, so that newcomers to Merb, or those who want to refresh their knowledge, can get started quickly:

Official Stuff

Merb’s official homepage - The typical launching point for learning about what Merb is, and for accessing stable and trunk builds or learning how to contribute to the project.

Merb’s official API documentation - RDoc generated documentation, straight from Merb’s source code. The main page demonstrates how to install Merb, get a basic application started, and how the main concepts, such as models, views, and controllers, work.

Merb Features - The official list of Merb’s features.

Merb 0.5 Release Notes - The release notes for the latest (as of February 2008) release of Merb.

Merb’s source code repository trunk - A view of Merb’s official git repository at github.com. If you want the latest version of Merb, and live on the edge, get it from here.

Motivation / Rationale / Advocacy

Merb (and why you potentially should care) - A well written demonstration of why Merb matters and Merb’s key features.

Merb-tastic - A general overview of Merb from a non-official point of view. Unspace, a Canadian Ruby consulting firm, takes a look at what Merb is, how it can use different ORMs, and what their motivations for using Merb are.

Introductions / Tutorials / Installation

Merb + DataMapper + Noob: Quick Start - A great introductory tutorial for newcomers to Merb, demonstrating how to create a note taking / simple blog application from start to finish.

Merb Tutorial - Another tutorial that’s older, and partly out of date, but the supplied source code has been updated to the latest Merb standards (well 0.4.2, anyway).

Merborial: Getting Started with Merb and DataMapper - Chris Kaukis with the first installment of a very up to date Merb tutorial (February 2008). In this installment, he shows how to install Merb, DataMapper, and some other plugins, sets up an initial Merb application, creates a database, and provides a bunch of links to useful resources.

Merb & DataMapper: Getting Rolling - A quick introductory piece to installing Merb and DataMapper by Justin Pease.

Doing Stuff with Merb

A Quick Jaunt Through Merb’s Framework Code - A blog post by Ezra Zygmuntowicz that takes a look at how Merb processes and handles incoming requests.

Shoes Meets Merb: Driving A GUI App through Web Services - A six page, in-depth article by Gregory Brown and Brad Ediger that demonstrates how to use the Shoes GUI toolkit along with Merb, where Merb provides the data, and Shoes provides the interface.

Taking Merb to Production - Ben Reubenstein looks at how to use Capistrano and Nginx to deploy Merb applications.

Merbful Authentication - A look at a new (as of January 2008) plugin for Merb that provides an easy to use authentication system.

Merb Routing in 0.5 - A great look at how the URL routing system works in Merb 0.5 by Toolman Tim!

File Uploads Via Merb Inside A Rails Application - A three part tutorial showing how to use Merb alongside a Rails application to handle file uploads in an efficient manner. This is what Merb was originally created for.

Merb on AIR - Drag and Drop Multiple File Upload - A slightly old (June 2007) tutorial demonstrating how to use Merb alongside an Adobe AIR powered client to handle file uploads.

The Future and More!

The Road to Merb 1.0 - Robert Bazinet of InfoQ interviews Merb creator Ezra Zygmuntowicz about the future for Merb.

Merb.next - Yehuda Katz, a developer on the Merb team, looks at how things are progressing with Merb up to version 1.0.

A Mega List of Even More Merb Tutorials - For those readers who aren’t satisfied enough by the above list of Merb links, Merbcast.com has put together even more for you!

Ruby: Inside Ruby

Ruby Plus: Another Ruby/Rails Screencast Site

Ruby Plus is a site offering free Ruby and Rails related screencasts recorded by Bala Paranj, much in the same vein as Ryan Bates’ Railscasts. The screencasts are generally similar in length and overall format to those from Railscasts. So far there are 29 episodes you can download.

The first twelve screencasts in the archive (for which you have to register to download, alas) were exclusively Ruby, covering topics like blocks, class_eval, modules, recursion, and so on, but unfortunately the rest of the screencasts have been entirely Rails focused beyond those first twelve. It’s still a source worth checking for Ruby and Rails screencasts though, so give it a look.

(Update: Several people have reported to me that they have an issue with Ruby Plus being portrayed in a positive light. I’ll admit I haven’t watched a significant number of the screencasts, just a couple in fact, but what I saw seemed okay in terms of production. With all the complaints, however, I figure you should be aware that there appear to be quite a few people who are not keen on the site, so you may just want to skip this post.. but I cannot remove it as it is now part of the public record and, as you probably know, I don’t do censorship.)

Ruby: Inside Ruby

Merb + Shoes = Interesting Web / GUI App Crossovers

Shoes Meets Merb: Driving a GUI App through Web Services in Ruby by Gregory Brown and Brad Ediger leads us on a six page tutorial extravaganza through not only building a cross-platform GUI app (namely, a pastebin of sorts) using WhyTheLuckyStiff’s Shoes system, but using Rails-killer Merb as a backend for storing the data. It’s an impressive enough effort that Why himself has linked to it and added a few notes of his own (including the provision of a much better illustrative screenshot - as used above).

In related news, yesterday Why announced the launch of a new version of Shoes, known as “Curious.”

Ruby: Inside Ruby

A Great Ruby on Rails Security Presentation

Jonathan Weiss recently had a session about Ruby on Rails security at 24C3, the 24th Chaos Communication Congress, in Germany. He has made the slides (44 of them) available, as well as a 45 minute long Google Video with the slides, video, and sound to enjoy. Jonathan goes into data sanitation, cross site scripting attacks, cookies, and lots of similarly good stuff.

(Credit for letting me know about this: Martin Sadler)

Ruby: Inside Ruby

Several Ruby Related Interviews

There have been a bunch of interview related links coming in over the past week, so it makes sense to put them all together to give you a nice pre-Christmas injection of interesting interviews to read. Enjoy!

Why Several Ruby Experts Are In Love With Ruby/Rails

Job search site OdinJobs interviewed several "Ruby experts" (and I only use quotes there because I'm in the list!) and asked them why they like Ruby and Rails and for tidbits of advice to newcomers to the Ruby community. The experts are Satish Talim, Alex Wayne, Alex Leverington, Abhay Kumar, Adam Williams, Alex Kane, Adam Keys, and Peter Cooper.

Peter Cooper (Me!)

Larry Wright took the opportunity to interview me, Peter Cooper of Ruby Inside, and asked me about what I get up to, how I got into Ruby and Rails, what sort of tools I use in my work, and my opinions on JRuby.

Topher Cyll - Author of Practical Ruby Projects

Intrepid interviewer Pat Eyler (of On Ruby) has interviewed Topher Cyll, the author of Practical Ruby Projects, published by Apress. Pat and Topher basically stick to the topic of the book, including how the contents were chosen and what Topher plans to do next.

Participants of Satish Talim's online Ruby class

Pat Eyler interviews three participants of Satish Talim's fine online Ruby classes: Marcos Souza, Chris Porter, and Michael Uplawski. They talk about how the class works and cover some things that the beginning Ruby developers found interesting about the language.

Ruby: Inside Ruby

Videos from RubyConf 2007's RejectConf Now Online

Rd
Ryan Davis starting off the RejectConf proceedings (License: CC ASa)

Just learned via Michael Riley on Twitter that the videos from the 4th RejectConf held alongside RubyConf 2007 are available to watch online. There are plenty of good presentations to watch, such as Dr. Nic Williams' introduction to Rubigen and Magic Controller, Tom Preston talking about GOD, and Eric Mills on rubedo - a Ruby powered jukebox. There are 20 different presentations you can watch (including Ryan Davis' introduction) so there's bound to be something you'll find interesting. Being RubyConf's RejectConf, the presentations are nearly all about Ruby-specific topics, rather than Rails.

Ruby: Inside Ruby

Interesting Ruby Tidbits That Don't Need Separate Posts #3

Tracking Down a Rails App Memory Leak

Tom Copeland posts about how he tracked down a memory leak in a Rails application. The results are interesting.

RubyGems Runs on Ruby 1.9-ish

Eric Hodel reports that all of the tests for RubyGems now pass on Ruby 1.9 and that a 1.9 compatible beta version will be due shortly.

R2Check - Tiny app that checks your pre-Rails 2.0 apps for compatability

Mislav Marohnic has built a pretty cool Ruby script that checks the source code of a Rails app for compatibility with Rails 2.0 and then points out the changes required.

Advice for Ruby Beginners - Part 1

Satish Talim has posted the first part of mass interview with 13 Ruby gurus with questions surrounding topics important to Ruby newbies. The "gurus" (quoted because I'm in the list) include Jamis Buck, Jamie van Dyke, Ola Bini, and a whole range of people from a stunningly diverse array of countries.

RubyForge vs CPAN

Daniel Berger does a quick comparison of Perl's infamous CPAN library and code repository with Ruby's own RubyForge. I was pretty surprised at the numbers.. it seems RubyForge is not only winning on quality but for the size of the Ruby community versus the Perl community, the quantity is amazing.

Ruby: Inside Ruby

Ruby's Multithreading: On Processes and Threads

Threadpic

Manuel Holtgrewe presents Ruby's Multithreading: On Processes and Threads, a great look at the processes (pun intended) involved with Ruby's threading system and the difference between kernel level threads and pure user level threads. He then makes an argument why a process oriented system for division of labor can make more sense than a thread oriented one.

Ruby: Inside Ruby

ActiveRecord Screencast & Presentation

Arscreencast

Gregg Pollack of RailsEnvy, co-author of the infamous Rails vs PHP/Java "commercials", has put together a presentation cum screencast about ActiveRecord and object mapping in general. It's based on a presentation given on June 16 to the Orlando Ruby User Group. He covers the origins of ActiveRecord, the rationale for its use, and walks through topics like many to many relationships, polymorphic relationships, and tagging.

Ruby: Inside Ruby

Indonesian Official Ruby Web Site Launched

(English translation of the text below follows)

Situs Resmi Ruby Indonesia telah diluncurkan. Jadi sekarang telah tersedia 9 terjemahan dalam situs web Ruby, belum termasuk beberapa lagi yang masih dalam pengerjaan.

Programmer Indonesia yang menyukai Ruby semakin banyak, berdiskusi menggunakan wadah milis id-ruby, yang sekarang sudah semakin ramai.

Adanya situs ini diharapkan dapat semakin membantu kemajuan Ruby dan teknologi di tanah air tercinta. Selain berisi materi yang terdapat di situs Ruby versi Inggris, situs ini juga menyediakan materi-materi yang spesifik terhadap komunitas Ruby di Indonesia.

Tim pelaksana proyek ini terdiri dari Arie Kusuma Atmaja, Yohanes Santoso, dan Hendy Irawan.

Translation:

Official Ruby web site in Bahasa Indonesia has been launched.
This brings the total number of translations available for the entire Ruby web site to 9 languages, in addition to several more translation projects that are still in progress.

The number Indonesian developers interested in Ruby has been growing, discussing topics through the id-ruby mailing list which is now more active than ever.

Native Indonesian translation of the Ruby official site is hoped to be beneficial to both Ruby and development of technology in Indonesia. In addition to standard content, the Indonesian site also provides Indonesian-specific materials and resources.

The team for this translation project consists of Arie Kusuma Atmaja, Yohanes Santoso, and Hendy Irawan.

Update: Typo fix.

Ruby: Inside Ruby

Adhearsion: Ruby Framework for Sophisticated VoIP / Telecoms Applications

Adhearsion

Adhearsion is an open-source, telecommunications application framework that uses Ruby, coupled with Asterisk, the popular open source telephony platform. It lets you build telecommunications systems and scripts in a quick and powerful way:

Adhearsion2

Creator Jay Philips has written a chapter for O'Reilly forthcoming "Asterisk: The Future of Telephony" about Adhearsion, and O'Reilly have published an extended excerpt of it online. It covers the installation of Adhearsion, basic script writing, database integration, and how to put together "micromenus" that operate in a vendor-independent fashion.

Learn more about the framework at the official Adhearsion site, and enjoy twisting together your phone system with a little Ruby!

Ruby: Inside Ruby

"Ruby Multipled By Agile" - A Video with Matz

Matzlive

Here's an interesting video for all you Matz die-hards. It features Kenji Hiranabe, Shintaro Kakutani, and our own Yukihiro Mastumoto and looks at the history of C++, Java, Ruby, and agile development practices. It's in Japanese with English subtitles. It's not dated, but from what I can make out, it's very recent.

Ruby: Inside Ruby

RFaceBook: Ruby library for FaceBook's new API

Facebookplatform

FaceBook, a popular social networking site, recently announced the availability of an API, allowing third party developers to build tools, apps, and systems that integrate with FaceBook and which FaceBook users can use from within their accounts. MySpace users, who are used to copying and pasting crazy blocks of HTML into their profile foxes, will be aware of what a big deal this is.

Hot on the heels of this announcement, Matt Pizzimenti has updated RFaceBook, a Ruby library for integrating with FaceBook, to support various features of the API. It's not something I'm likely to use, or that I fully understand, but the initial response to RFaceBook appears to be incredibly positive, so if FaceBook is your cup of tea, check it out.

(Post fixed.)

Ruby: Inside Ruby

Classifier Gem: Bayesian and LSI Classification for Ruby

Classifier is a Ruby gem developed by Lucas Carlson and David Fayram II to allow Bayesian and other types of classifications, including Latent Semantic Indexing.

Bayes classifier is a probabilistic algorithm which apply Bayes’ theorem in order to learn the underlying probability distribution of the data. One popular use for this is implemented in most spam filtering packages.

It can also be applied to many other cases of machine learning to make your Ruby application more intelligent (the complicated implementation is transparently handled for you, thankfully!) Ilya Grigorik recently posted an interesting tutorial on Bayes classification, with an easy-to-follow demonstration on how to use it for distinguishing between funny vs. not funny quotes:

require 'rubygems'
require 'stemmer'
require 'classifier'

# Load previous classifications
funny     = YAML::load_file('funny.yml')
not_funny = YAML::load_file('not_funny.yml')

# Create our Bayes / LSI classifier
classifier = Classifier::Bayes.new('Funny', 'Not Funny')

# Train the classifier
not_funny.each { |boo| classifier.train_not_funny boo }
funny.each { |good_one| classifier.train_funny good_one }

# Let's classify some new quotes
puts classifier.classify "Peter: A boat's a boat but a box could be anything! It could even be a boat!"
puts classifier.classify "Stewie: Damn you ice cream, come to my mouth! How dare you disobey me!"
puts classifier.classify "Brian: I could take my sweater off too, but I think it's attached to my skin. "
puts classifier.classify "Peter: Hey, anybody got a quarter? Bill Gates: What's a quarter? "
puts classifier.classify "Peter: I had such a crush on her. Until I met you Lois. You're my silver medal. "
puts classifier.classify "Meg: Excuse me, Mayor West? Adam West: How do you know my language? "
puts classifier.classify "Meg: You could kill all the girls who are prettier than me. Death: Well, that would just leave England. "

Alternatives and other useful resources: bn4r (article), Bishop, Microsoft Belief Network

Ruby: Inside Ruby

Interview with Francois Lamontagne, the "Ruby Fleebie"

Frank

Francois Lamontagne is a Québecois Ruby and Rails developer whose blog, Ruby Fleebie, has recently become quite popular due to both having some great tutorial / reference-type posts, and Francois' rather proactive methods of promoting it on DZone.
Ecstatik

Francois has also released Ecstatik, a Rails-powered Digg-like site that presents humorous links (to photos and videos, etc). In many regards it feels like a user-driven equivalent of Fark, although the focus is on funny links over community (for now).

I decided to ask Francois some questions about the Ruby Fleebie blog and how Ecstatik was developed and deployed. Read on after the break..

Ruby Inside: I first heard of you from your Ruby Fleebie blog which only started in March 2007 but already has a lot of useful, tutorial / reference style posts on it. What's your history with Ruby (and Rails?), and why did you decide to start the blog?

Francois Lamontagne: I discovered Ruby in a moment of my life where I was starting to get bored with programming. I felt like I had stagnated and that I needed to push more if I wanted to become a better developer overall. That's how I luckily stumbled upon Ruby. I played a lot with that great online tutorial you can find on the official website. I loved the syntax, the dynamic stuff, the code blocks, the symbols... I was amazed by anything ruby was throwing at me. I was like a kid in the 80ies who unpacked the G.I. Joe base for Christmas. I wanted to know more and more about the language. I knew that my career as a web developer had just taken a new direction.

Then I discovered Rails... and I went completely nuts. I bought the famous "Agile Web Development With Rails" book and read it almost entirely in 2 or 3 days in my holiday. Everyone around me thought I was crazy to waste my spare time like that, but I told them that it wasn't "work" to me and that I was enjoying every single pages of this book... so I looked even more crazy. Hey, I'm not as freak as you can think, it was raining outside... so reading a programming book was completely acceptable, isn't it?

A friend of mine told me he wanted to start a blog about JavaScript, a language that he thinks is underrated. One day he told me, "Hey, you should start a blog on ruby, I'm sure it would work". I immediately liked the idea. I had another blog project going on at this time and I decided to push it aside to start working on my ruby blog right away. A few days later, pratically at the same time, javascriptkata.com and rubyfleebie.com were born!

Ruby Fleebie seems to have become quite popular very quickly. How did you promote the blog and what's been your strategy in developing it?

I like to say that my goal with Rubyfleebie is to "learn and share". First I start at the "learning phase": I learn a concept the best as I can, I test my stuff with IRB, I make some rough drawings of my progress on paper, I go take a walk thinking about that concept I'm trying to grasp, I test with IRB again, etc. Once I think I know enough, I switch to the "sharing phase". In this phase I have a single goal: I want people to understand my explanations and leave my website with the feeling that they have learnt something. I try to think of all the things that confused me when I was in the learning phase and I put more emphasis on them. I tweak my post as much as I can, adding bold to key concepts, removing confusing sentences, adding relevant information, etc. If someone proves me wrong about something I wrote, I update the original post to correct the mistake and I link to the person who made the comment.

The main promotion tool I use with Ruby Fleebie is DZone. It's an amazing service that gives extremely good results. The second most effective promotion tool I am using is StumbleUpon. It's a fact : StumbleUpon users are curious. Most of them don't leave my blog after the first page, that's what the Google Analytics stats are saying. Ruby inside and Javascript Kata bring me some great traffic too. The rest is almost all Google. After this interview however, I expect Ruby inside to crush the competion for a while!

What advice would you give other developers who want to start a Ruby or Rails related blog who haven't done so already?

I'd just tell them to put a lot of effort into it. I think that publishing a blog post should never be an afterthought. Before hitting the publish button, we must realize that we are about to share something with the rest of the world. I don't know for you, but I don't want to share "drafts", I prefer to share something that, without being perfect, feels more polished.

Using promotion tools is also very important. Take time to find as many as possible. DZone, StumbleUpon, Digg, Reddit, 101out, del.icio.us, furl, netvouz, Simpy, blinklist, etc. Some doesn't work too well, but you should try them all at least once to see for yourself. Also, submit your RSS feed everywhere. A good starting place for this is here.

The design is important, too. Use a big font that is easy to read, use bold to draw the attention of your readers, use short paragraphs, use a light background-color. To be effective, a blog must breath and be pleasing to the eyes. A long paragraph written with a tiny font is a turn off for a majority of web users.

The last and most important advice I would give? Bring something of your own. May it be your writing style or your sense of humor, make it so that your blog becomes a unique experience for your readers.

What was involved in the Ecstatik development process?

Developing Ecstatik took way less time than what we expected. I think there are 3 reasons for that. #1 The project in itself was simple, #2 We had some meaningful experience with web development, #3 We used Rails. The other person behind Ecstatik! is Dan Simard, the maintainer of Javascript Kata. Other collaborators are expected to join the project in the near future and we're really excited about that.

We didn't encounter a lot of problems because our objective was to keep the first version as simple as possible. No fancy features, No "perhaps we could add this..." features. Just the basic stuff you expect with these kind of services : Registering, Voting, Submitting, Watching the hottest stuff. We wanted to release fast. Too often we have great ideas that remain great ideas. We didn't want Ecstatik! to be just an idea. We wanted it to live! Now it's online and we can enjoy that great feeling of achievement. We're now ready to adapt. We'll add features over time, we'll tweak the code, we'll change our hosting plan if scaling becomes an issue. We are humans, we cannot know what will happen in advance. We believe that releasing early was the best thing we did with Ecstatik! Future will tell us if we were right or wrong.

How is Ecstatik deployed?

I hate to say this, but at the moment our setup is (the least we could say) subpar. I would lie if I told you that we're not a little bit worried about scaling issues. Nonetheless we're ready to implement "Plan B." We're currently hosted on HostMonster, which isn't bad, but the fact that we ran into stability issues at a couple of occasions is worrying to say the least. For now, we have deployed "by hand" (the dirty way). We're not hiding the fact that our initial setup is a little bit chaotic. Our "real" setup will consist of a stable and fast hosting plan, a Mongrel server and we'll make use of Capistrano as well as migrations. We're already working on this. Like I've said earlier, the objective with the first version was to release early. The current objective is now to get serious and efficient in our deployments.

Ruby: Inside Ruby

"Rails Refactoring" by Trotter Cashion

Railsrefactoring

Rails Refactoring is an e-book written by Trotter Cashion (of MotionBox) and published by Addison-Wesley. Targeting developers who are tentatively dipping a toe into the world of REST, Rails Refactoring looks at how to turn your old-fashion unRESTian Rails code into the modern REST-capable equivalent. The first major section, for example, delves into respond_to and provides a 'motive', the 'steps' for implementation, and example code samples to back up the steps. Other refactorings, such as CRUD routing and ActiveResource are presented in a similar 'motive', 'steps' and 'examples' format.

Beyond basic refactoring, the e-book has several chapters covering controllers, routes, views, tests, authentication, and the consumption of external REST APIs all from a REST point of view. The RESTful Controllers chapter gets as far as explaining the methods involved, to_xml and MIME content types before the RESTful Routes and Views chapters look at the generation and integration of RESTful URLs in your applications. Curiously, the RESTful Tests and RESTful Authentication chapters are only two pages a-piece with only very cursory information.

At only 74 pages, Rails Refactoring is a quick read and littered with practical knowledge. I fear, though, that any Rails developer who doesn't already use respond_to or have a cursory knowledge of REST is unlikely to be tempted by the examples on show here, and more experienced developed will find Rails Refactoring a little simple going. Still, it's useful information that's well presented, and could make a useful reference to any Rails developer. It costs $14.99 direct from Addison-Wesley or you can read it for free if you're already a member of Safari (an online book system by O'Reilly Media and Pearson Technology Group).

(WARNING: There have been some issues reported about the DRM used within the PDF download. Read the comments left by readers on this post before purchasing.)

Ruby: Inside Ruby

"Introduction to Ruby" Videos for Beginners

Begrubyvids

Ian Ozsvald wrote to tell me that ShowMeDo now features a new series of introductory Ruby videos by Chinmoy Gavini. There are currently five videos in the series and they start off with a basic walkthrough of irb and Ruby's basic features, moving on to topics such as creating and using classes, deep copy versus shallow copy, regular expressions, marshaling, and CSV.

Ruby: Inside Ruby

MyConfPlan: Plan your RailsConf 2007 schedule now

Myconfplan

MyConfPlan is a new Rails and Hobo powered conference session scheduling site by Dr. Nic Williams. MyConfPlan's biggest use at the moment is planning RailsConf schedules. Frustrated by the sheer unfriendliness of the official RailsConf Sessions schedule, Nic put together MyConfPlan to make it easy to plan your own choice of sessions to attend.
Myconfplan2

The sessions are laid out in a grid-like layout, with all sessions taking place at the same time on the same row. You can click on each session you want to visit in each row and you end up with an easy-to-follow conference attendance plan. You can then share your plan with other people with a URL to the MyConfPlan site. For example, here's Graeme Mathieson's RailsConf attendance schedule.

Ruby: Inside Ruby

Data Structures and Algorithms with OO Design Patterns in Ruby

Cs
Data Structures and Algorithms with Object-Oriented Design Patterns in Ruby is an online book (free to read!) by Dr. Bruno R. Preiss, an incredibly well qualified engineer and computer scientist. It covers all of the various data structures and algorithms that beginning Computer Science students have to learn, but from a Ruby perspective and using object oriented design patterns.
The book itself is now a few years old, but I've only just come across it and it still seems relevant although, rather sadly, the on-page code is in graphics only (a ZIP file containing the source is available) and feels like a line-by-line conversion from C++ rather than true Ruby code. Still, if computer science, data structures, and algorithms elude you to any degree, and you want to learn about them while following Ruby code, it's a good place to start. There are also versions for C++, Java, C# and Python available from Bruno's homepage.

Ruby: Inside Ruby

8 Easy to Follow Ruby Presentations

Slideshare is like the YouTube or Scribd of presentations and slideshows and it features a few good Ruby and Rails related slideshows that are worth flicking through. This post links to some of the best:

Ar1 Ar2
Introduction to Active Record by Evan 'Rabble' Henshaw-Plath.

Ar3
Unobtrusive Ajax With Rails by Dan Webb.

Ar4
Diligent People, Lightweight People by Masayoshi Takahashi.

Ar9
Higher Order Procedures in Ruby by Nathan Murray.

Ar5
Rubyists Dream of Eclectic Java by Vishnu Gopal.

Ar6
Building Your First Gem with Hoe by Jacob Harris.

Ar7
The Top 10 Reasons The Ruby Programming Language Sucks by Yukihiro Matsumoto.

Ar8
Ruby Insurgency by Andrew Hunt.

Want to see more? Check out the Ruby tag on Slideshare.