RubyFoo proudly presents
Yukihiro "Matz" Matsumoto |
|
1. What three things do you love and dislike about Ruby?
2. How do you get yourself into flow?
3. Favourite text editor
4. Name a book you read recently that you would recommend?
5. What inspires you? |
Matz' presentation: Styles of Ruby programming The real power of the language lives not only in the syntax, but the community, culture, and styles of programming, it brings. In 16 years of history, Ruby has been grown so much. At the beginning, it was a mutant hybrid of Perl, C, Lisp and Smalltalk. Now it is establishing its own culture and styles. In this talk, the creator of the language reviews the history of evolution of the Ruby. |
Sam Aaron |
|
1. What three things do you love and dislike about Ruby?
Dislike:
2. How do you get yourself into flow?
3. Favourite text editor
4. Name a book you read recently that you would recommend?
5. What inspires you? |
Sams presentation: Notes on the Synthesis of Ruby Form Communication is a key aspect of software development; it drives the conception, design, implementation and evaluation of the software we create. Is it possible that learning to more effectively communicate can enhance our ability to implement more relevant and maintainable software? In this talk we will explore methods and strategies to combine Ruby's flexible syntax and powerful features with linguistic concepts such as abstractions and analogies. In doing so we shall explore the importance of the more natural communication of intention and design whilst enjoying how much programming with Ruby can help us to achieve these goals. |
Aslak Hellesoy |
|
1. What three things do you love and dislike about Ruby? a) Productivity: Less reading, typing and waiting. I (like all other programmers) spend most of the time reading code, and with Ruby there is less scrolling and mental filtering of syntax noise than some of the more mainstream languages. Not having to set up a complex build environment (that I have to wait for everytime I want to run a test) helps keep my pace. b) Community: The Ruby community is full of people with a sense of innovation, simplicity, elegance and pragmatism that keep me busy learning new things every day. An example is the massive adoption of DSCM (Git/GitHub) - it makes collaboration so much easier. People in the Ruby community also understand the web. They get HTTP, Javascript, HTML and CSS. This is unknown to most mainstream programming language programmers.
c) Freedom: I'm allowed to take shortcuts and bend things. I believe programmers should be set free, not put in a straightjacket, and Ruby is a language of freedom. a) Poor Windows support. I have been using OS X since 2004, but I frequently have to work in a Windows environment, and it is always a huge pain for various reasons. The situation is getting better, but I still feel uneasy whenever I use Ruby on Windows. b) Lack of refactoring tools in editors and IDEs. This is getting better too, especially with RubyMine (and possibly other IDEs I haven't tried). c) Adoption: I work for a consulting company, and many of the clients I work with are sceptical when we recommend Ruby. The most common questions are: "Where will we find other skilled Ruby programmers?", "Does it scale?" and "If it's so great, why don't more people us it?". The community needs to grow (and then we'll get other problems, when the fools rush in).
2. How do you get yourself into flow? The backbone of my flow is BDD, working from the outside in, starting with a simple outcome expressed as a Cucumber scenario and code until I it passes, then repeat. I never know where I'm going and for me there is no better guidance than a failing test that tells me what to do next. Once I get into this flow I can usually repeat the cycle a dozen times or so per hour. Work environment is important for me in order to get into this state of mind. My favourite is to sit down with a pair and do ping pong programming, switching the keyboard for every passing test. When I work alone I like to shut down all external communication channels. People around me don't bother me (I don't even know they are there), but I usually turn off chat programs so I can keep focused. 3. Favourite text editor TextMate. I want to learn vim, but haven't gotten around to it yet.
4. Name a book you read recently that you would recommend? People who believe in something that others don't believe in, and follow through with it to prove to others it can work. |
Aslaks presentation: Do you speak my language? We programmers use two different kinds of languages in our work. We use a natural language (English, French, Norwegian etc) to discuss and express what the software should do. This happens both through conversation and writing. We use programming languages to translate the ideas expressed in natural language to code. Most of us use a single programming language per project, but in the past couple of years it has become more common to use several programming languages within the same project. When Cucumber entered the scene a year ago, many teams (both programmers and non-programmers) finally got a simple way to bridge the gap between natural language and Ruby. But what about other programming languages than Ruby? And what aboutother natural languages than English? I will show you the basics of Cucumber with English and Ruby. Then I will show you how polyglot teams can use Spanish with Cucumber to develop a Scala application. Or a team of LOLCATS writing a Groovy application. In fact, I will show you how you can use Cucumber with almost 40 natural languages and 8 different programming languages: Ruby, Java, Groovy, Scala, Python, C#, Erlangand Haskell. Cucumber speaks *your* language. |
Ola Bini |
|
What three things do you love and dislike about Ruby?
How do you get yourself into flow? |
Olas presentation: JRuby for the win! JRuby is emerging as one of the most interesting language implementations on top of the JVM. Together with Groovy, Scala and Clojure, it is changing the way people are using and combining languages together with the Java platform.
The Ruby language is beautiful, powerful and extremely malleable. By using Ruby on top of the the JVM it is possible to create the most unusual combinations of languages, principles, paradigms and libraries. |
Adam Wiggins |
|
What three things do you love and dislike about Ruby Love: * It strikes a perfect balance between succinctness and expressiveness. * Metaprogramming. * It's just so damn pretty. Dislike: * Backtraces doesn't show the values of method call arguments. * Confusion over string vs. symbol hash keys. myhash['key'] != myhash[:key] * That defined? returns a string instead of true/false. I even wish that Ruby automatically ran the return values from any method name ending in a question mark through !!, to force them to true/false. How do you get yourself into flow? I turn off all distractions: close the door, turn off the phone ringer, log out of chat. Then, I grab a project that ignites my passion, find the smallest conceivable iteration that would produce a measurable chunk of value, and dig in on that. Favourite text editor Ed. It is the Standard Text Editor. Name a book you read recently that you would recommend? "Future Imperfect" by David Friedman What inspires you? Complexity. I am inspired to destroy it. People that quietly and consistently kick ass at whatever they do. I am inspired to be like them, for what I do. Reading about the history of technology. Every piece of modern life has an innovator behind it, buried somewhere in history. These innovators challenged the status quo to make the world a better place for everyone, forever. |
Adams presentation: Next-Generation Ruby Deployment with Heroku Agile development, web standards, Ruby frameworks like Rails and Sinatra, and cloud computing are all speeding trains rushing headlong toward each other. The convergence of these things will be a massive explosion of awesome. Heroku, the instant deployment platform for Ruby, puts all these pieces together into a way to deploy and manage your Ruby web apps. Manage your deployments using Git; scale your app up and down instantly by grabbing a slider; and fast, headache-free deployment. In this talk we'll cover the basics of using Heroku, as well as advanced topics like using work queues for background jobs, HTTP caching, memcached, full text indexing, config vars, and streaming database transfers. Then we'll dive into how it all works behind the scenes: how Heroku uses AMQP messaging for communication between Ruby and Erlang components; how we can scale your app instantly; and how we use cloud computing (in the form of Amazon EC2) to its full advantage.
|