Close and Go BackBack to Viget

Events

Recap: Refresh the Triangle Holiday Meeting

Clinton R. Nixon
Clinton R. Nixon, Senior Developer, December 07, 2007 0


Refresh the Triangle 002


Yesterday, I had the honor of speaking at the second meeting of Refresh the Triangle. We were hosted by Shoeboxed.com, a local start-up, and their space accommodated the crowd of about 30 people nicely.

My talk was on techniques for securing web applications, and common security holes to look out for. After a very inspiring similar talk at Refresh DC, I was definitely excited to share my knowledge about security with the mixed group of designers and developers and show off the glaring holes in some Ruby on Rails and PHP sample applications. As a presentation geek, I wanted to try out a more experiential technique, using demonstrations instead of slides.  The crowd got involved, asking great questions about topics like Cross-Site Request Forgery and laughing at the insecurity of “Upload King!” and “Festival of Bookmarks.” The demo code and security resources are available for you to enjoy.

As is Refresh custom, a post-meeting meeting at a local pub inspired great discussion and showed what a vibrant group of web professionals we have in North Carolina. We’re very lucky at Viget Labs to be part of both Refresh DC and Refresh the Triangle, and we invite you to visit the Refresh the Triangle site to suggest future topics or find out about upcoming events!

RubyConf Recap

Mark Cornick
Mark Cornick, Web Developer, November 08, 2007 0

Several Viget Labs developers participated in RubyConf 2007 from November 2-4 in Charlotte, North Carolina. Ben was once again selected as a speaker, and Patrick, Clinton, Kyle and I came along.

Unlike the Ruby on Rails-oriented conferences we attended earlier in the year, RubyConf is devoted to Ruby outside of the specific context of Rails. As such, although several presenters made passing references to Rails, it was not the focus of any presentation. Our attendance at RubyConf would, therefore, provide an opportunity to think outside the Rails box we usually occupy in our work at Viget.

Friday’s agenda started with Rails core developer Marcel Molina Jr.’s “What Makes Code Beautiful?” attempting to bring definition to what is always a subjective matter. This was followed by Jim Weirich’s “Advanced Ruby Class Design” which approached readable code from a slightly different angle. Following a tasty lunch, afternoon sessions included discussions of Camping, a “micro-framework”; Treetop, a system for text parsing and interpretation; and the intriguingly-named “Hurting Code for Fun and Profit.” The day concluded with Yukihiro “Matz” Matsumoto, creator of Ruby, answering a variety of questions from the audience.

Saturday morning brought a discussion of three alternate Ruby language implementations: IronRuby, targeting .NET; JRuby, targeting the JVM; and Rubinius, targeting Ruby itself. In his evening keynote, Matz made reference to these three implementations, as well as the upcoming YARV virtual machine, calling himself merely the “designer” of Ruby, rather than its implementor. Matz is famous for this humility and good humor and sees these alternate implementations as widening the scope of Ruby rather than competing with his own work. Between the morning plenaries and evening keynote, break-out sessions included profiling and tuning Ruby, shipping desktop applications written in Ruby, and the vastly-improved Ruby support in the new Leopard release of Mac OS X.

On Sunday, we were awakened to the sounds of TV’s “A-Team” in Dr. Nic’s presentation on Rubigen, an extraction of Rails’ generators into more generic Ruby form. This was followed by David Chelimsky and Dave Astels presenting on the current state of behavior-driven development with RSpec, and Jay Phillips speaking on his Adhearsion VOIP framework. Ben finally got to speak in the last set of break-out sessions; his “Cleanliness is Next to Domain-Specificity” showed how creating a domain-specific dialect in Ruby can really clean up your code. Other afternoon sessions included discussions of OpenID, JRuby, and the solr search engine.

Outside of the conference hours, we enjoyed taking in some of downtown Charlotte’s restaurants and bars (be sure to stop in at Mert’s for some excellent soul food if you’re ever in the area); meeting with friends, colleagues and clients; and reuniting with our fellow developers, whom we mostly see over Campfire since the opening of our Durham office. For all of these reasons, RubyConf 2007 was a great experience, and a fitting end to a year of conference appearances in Portland, Berlin, Raleigh, Austin, and Pisa, among others. We’re already making plans for 2008, so keep an eye on the Four Labs blog for details, and look for us to come near you soon!

Back From RailsConf Europe

Patrick Reagan
Patrick Reagan, Development Director, September 22, 2007 0

On Friday, Ben and I returned to Falls Church after a week-long trip to Berlin for the 2nd annual European Rails Conference.  Berlin was a lot of fun and the conference was a blast – again, the folks from both Ruby Central and O’Reilly Media organized another great event.  Thanks to FiveRuns and their Try and Fly contest, we were fortunate enough to attend.

After experiencing a packed schedule in Portland, we knew that this time around we had to get out and enjoy some local German culture (and beer).  We started our adventure off with the excellent Bratwurst on Rails event held at Kalkscheune and hosted by the Berlin Ruby User Group with support from ELC Technologies and O’Reilly.  It was great to see some familiar faces and connect with new people from around Europe at the event.  In the following days we visited some chilling historical spots, checked out some local cuisine, and tried our best at becoming Berliners – all while being painfully aware of how bad our German was.

Despite all our extracurricular activities, I was able to catch up on some aspects of Rails development at the conference:


  • RSpecDan, David, and Aslak did a great job providing a history of Behaviour-Driven Development and demonstrating how to use the RSpec framework to exercise BDD in Ruby.  I had seen David give a live demo of RSpec at LSRC the week before, but the 4-hour tutorial format at RailsConf really helped fill in some of the missing pieces.

  • Rails 2.0 – Though I missed David’s keynote (it wasn’t me, it was the Pilsner!), he announced the upcoming release of Rails 2.0 in the coming months in addition to some new features since 1.2.3.  While it was good to finally hear that 2.0 is on the horizon, we’ve actually been ahead of the curve now that we’re building our greenfield apps against the current “edge” release.

  • Capistrano – Though our deployments have made use of Capistrano 2.0 for quite some time (thanks, Mark), I was able to pick up some new tips from the useful recipes that Ferdinand discussed.  Selfishly, the highlight for me was when he mentioned his affinity for Mark’s RSync deployment strategy that he’s been using for a majority of his deployments – it’s always great to see people in the community benefiting from our open-source efforts.

  • Metaprogramming – Fresh off his RejectConf performance in Portland, Dr. Nic discussed some great metaprogramming techniques in Ruby and demo’ed his Magic Model Generator plugin as well as some controversial uses of metaprogramming.

  • Amazon Web ServicesJohnathan’s talk again reminded me that I need to start looking more into the EC2 and S3 platforms that Amazon offers to anyone who needs quick access to additional computing or storage needs.  The availability of AWS along with the RightScale platform promises to make multi-server scaling less painful.

  • Selenium – Till Vollmer (of MindMeister) got me thinking about using Selenium (on Rails) again for automated UI testing.  The MindMeister application has some pretty complicated AJAX functionality, and he was able to clearly demonstrate the benefit of using Selenium on an application with such a complex user interface.

  • (A) Presenter Pattern – I had never heard Jay Fields speak at a conference before, but I do follow his blog and thought this would be a good talk to attend.  I had seen Marcel discuss his presenter pattern in January at the Rails Edge conference and I was interested in seeing how Jay’s implementation differed.  After his 15 minute talk, and at his own urging, Jay’s “solution” is not something that we will pursue.

Due to a scheduling issue, one of the sessions was transformed in to an hour-long lightning talk session.  At Chad’s request, Ben was able to give a quick demonstration of Sandstone, his new CMS plugin, to a responsive crowd.  This format is always a big hit with the attendees, so it was nice to see it happen again at the European conference.

From what I can remember, my experience in Berlin was a great one.  Thanks again to the guys from AutoScout, Rails for All, and FiveRuns for the beers, food, and good times.

Fall Rumble Shakes Out Harvest of Applications

Clinton R. Nixon
Clinton R. Nixon, Senior Developer, September 14, 2007 0

Last weekend, September 7 and 8, Viget Labs entered two teams in the Rails Rumble, a 48-hour grueling marathon of web application development. In those 48 hours, each team had to design, develop, and successfully deploy a web application built in Ruby on Rails. Both Ben’s team and my team finished the race, creating a beautiful interface for using IRC from the web and a social calendaring system.

Exercises like this are chances to stretch your creativity and they present a unique opportunity to learn. Lessons learned while under stress—“in the trench,” one might say—are lessons kept a long time. I learned several interesting things while completing Clubhouse.


  • The Triangle area of North Carolina is really heating up for quality web development. We had Ben working as a solo team, and my team was made up of three members from some of the highest-caliber web companies in the area. It was amazing to see how three people from different work environments were able to achieve a high level of cohesion in one weekend. Our shared vocabulary of web standards, Agile development, and simplicity in design didn’t hurt. The Triangle also produced a brilliant new take on Digg, a document collaboration system, and a way to find restaurant recommendations from your friends.

  • Rails is moving very quickly towards a 2.0 release. Even over the weekend, as we developed, the code base changed. There are so many good things in Edge Rails right now to take advantage of.

  • Confronted with such a time limit, our team looked for options to lay out web pages without spending a lot of time tweaking CSS to work with every browser. I had not used the Yahoo! User Interface CSS tools before; but, after using them for a weekend, I can fully recommend their CSS for grids. It is, frankly, amazing in its cross-browser support for complicated grid-based layouts.

  • One thing I found that the Rails community needs, though, is a way to point out the highest quality plugins. When it came time to add tagging and pagination to my application, I was presented with myriad options. Options are good; but, a way to find the pros and cons of each option is better.

  • Writing software truly is a multi-faceted process. Having a project manager, a designer, and a developer on my team helped us out. Those three perspectives let us describe the elephant we were groping for in the dark with much more accuracy.

  • With that said, a sharp focus and a small group can greatly heighten the chance of success. Out of about 150 teams that entered the Rumble, 92 completed a functioning, useful application. That is a tremendous success rate! Many of those teams are going on to try to turn their application into a start-up. The limit on team size—four people—is, I believe, directly responsible for the ability to make quick decisions and keep application requirements focused and simple.

Of course, we were fueled all weekend by the promise of fabulous prizes (and a championship belt.) If you have a chance, feel free to check out Viget’s entries into the Rumble, Irksome and Clubhouse, as well as the other fabulous entries, and vote!

Lone Star Ruby Conference 2007 Recap

Kyle Peyton
Kyle Peyton, Web Developer, September 12, 2007 0

This past weekend, from September 7th to the 8th, marked the first-ever Lone Star Ruby Conference in Austin, Texas. Great coding minds from around the nation convened to discuss the language they’ve all come to know and love. Some people lived in the area, some convinced their bosses it was worth flying them across country for a two-day drink code-fest, and some just wanted to escape their .NET, Java, and PHP day jobs.

Whatever the reason for attending, each person there had a unique and interesting story behind their love for Ruby. Some, like Glenn Vanderburg, adore it for its beauty. More cherish Ruby for its friendly testing frameworks, like David Chelimsky, Chris Wanstrath, and Viget’s own Patrick Reagan. And, practically all, including Adam Keys, would love to see more social cohesion in the Ruby community.

The conference got kicked off in the early hours of September 7th with a rousing account of the beautiful intricacies of Ruby by Glenn. A comparison he made between Java and Ruby code opening a file and reading in the contents did wonders to extol Ruby’s terse syntax. Glenn’s speech went on to compliment Ruby’s openness with classes by way of mix-ins, which were later explored in more detail by Patrick Farley. A final example Glenn provided, which modified the Regexp class to allow for a return of named values, provided convincing closing arguments to any developers on the fence about mix-ins’ usefulness.

Immediately following Glenn was our own Patrick Reagan, who led off a series of speeches that lauded Test-Driven Development (TDD). Patrick defined, explained, and demonstrated TDD in a set of slides which stood as a testament to the value of the “test first” mind-set. His speech made it clear that regression tests provide developers, project managers, and clients with the necessary confidence to move forward with refactoring or feature development. The need for excellent code coverage was another subject Patrick touched on, which other speakers (David Chelimsky) reiterated throughout the conference. Emphasizing that it can provide developers with a “false impression” of the tests’ thoroughness, he cautioned that a balanced mix of TDD and coverage analysis is the healthiest form of testing.


James Edward Gray II
gave an insightful speech on “Ruby as a Glue Language” which drew parallels between characters on the TV show “Heroes” and programmers who make use of Ruby to tie together external systems for the purpose of speed and efficiency. Evan Short later touched on Domain Specific Languages (DSLs) in Ruby. David Chelimsky wowed the audience with a walkthrough of writing tests in RSpec and indicated some soon-to-come features.

H D Moore shocked the audience with a 60-minute lightning talk on his newly resurrected application, appropriately named Metasploit. Whirring through slides, interjecting comments about “owned” systems, and likely intimidating much of the audience, H D gave a chronology of Metasploit’s development. One question following the talk which probably resonated in everyone’s mind was “what can we do to prevent exploitation from people like you?” to which he reasonably replied “keep your systems up to date with patches, be smart with what you download, and use common sense when surfing the net.”

Speeches by Hal E. Fulton and keynote Charles Nutter predicted the future of Ruby and attempted to motivate cautious developers respectively. Hal’s lecture gave a broad view of Ruby’s history, followed by Hal’s own prognosis of things to come. Charles, devoted to developing JRuby himself, encouraged timid developers to get out and get involved, marking the importance of blogging about, experimenting with, and promoting Ruby.

PJ Hyett of Err.the_blog followed up with a talk about monetization and upkeep of a “killer rails app.” PJ stressed the importance of interacting with the site’s users. He noted it’s not only important to give them a voice, but to make sure those voices are heard. Ad revenue, he says, is not really a fiscally reliable way to make money with a site. All in all, PJ’s messages rang to the tune of getting involved in your site from top to bottom, designing to testing, bug tracking to promoting.

Jay Phillips later spoke on his experience writing a Ruby DSL named Adhersion, designed to ease the development process of calling systems. Jay had many encouraging things to say about Voice over IP (VoIP), including an upbeat attitude about the “cool things” anyone can do with just a few pieces of hardware.

Bringing up the rear of non-keynote speakers was Rick Olson. Rick touched on his experience with file uploads and attachments and gave the audience a synopsis of his work on attachment_fu. His mostly technical talk about storing uploaded photos in the database left the audience with the sense that Rick really knew what he was talking about.

Finally, Zed Shaw, keynote from day 2, fascinated everyone with a high-energy speech, the text of which he delivered through IRC displayed on projectors. Zed’s opinionated mind-set and resolute demeanor projected his personality very well. Reiterating and reinforcing a message heard throughout the conference, he emphasized the need for people to “not be afraid of something new”, “stick your neck out”, and “get involved.” Writing better code was another theme of the speech, including a story about a developer he knew who hated Single Table Inheritance (STI) so much that he ignored some of the easiest-to-implement features in Ruby.

In conclusion, Lone Star Ruby Conference 2007 was a success, a great success. Those who came looking for new ideas weren’t disappointed and those who just needed a point in the right direction found hundreds of people ready to help. Minds were opened, knowledge was imparted, and the stage was set for a generation of developers to make a difference with the common language of Ruby.

We're the Developers

at Viget Labs. We write about web development trends, tips, best practices, industry events, and our projects — all with an emphasis on Ruby on Rails.

Upcoming Events

Twin Tech III - 6 PM, January 22 - 22, 9 PM

Refresh the Triangle - 6:30 PM, January 22

Recent Comments

:D

thats exactly what i have been looking for, though i do not need it so badly since memoize arrived…