You start a brand new Ruby project. You elegantly glide around your application sprinkling it with tests using tools like Cucumber. Time passes, test numbers grow and suddenly you find yourself wading through the thick sludgy swamp of a 1-hour test build. Your ability to deliver code in a timely manner gets difficult. Discipline gets slack ?Well I know that fix will turn the build green, just deploy it anyway?. Commit code now, find out in an hour if it breaks.
For the last few years hardware manufacturers have driven increasingly powerful multi-core processors into consumer-grade computing hardware. Power which twenty years ago was restricted to a handful of government-funded research institutes is now available on the desktop, introducing many developers to the conundrum of how best to use it with languages implemented primarily for sequential environments. In this presentation we'll use code to explore the various traditional models for concurrent execution supported directly by Ruby - such as Threads, Processes and Fibres - and their limitations before turning to the approaches pioneered in other languages and seeing how many we can bring into the Ruby fold. We'll present characteristic examples of techniques drawn from a variety of languagesand demonstrate how to construct similar architectures in Ruby using its native features and libraries such as EventMachine or RevActor.
A follow up to our ?Learning to Smile at your Code? talk from the last Arrrrcamp, this time we will focus on: What makes clean code? Taking you through several examples of bad code, we will analyze the smells and explore better, more elegant ways to solve the problem.
In his provocatively titled blog post ""Everyone Who Tried to Convince Me to use Vim was Wrong"", Yehuda Katz showed how he switched from TextMate to Vim without experiencing an initial dip in productivity. Begin by emulating the working environment that you are comfortable with, then adopt Vim's idioms as and when you discover them. This is a welcome alternative to the hazing ""do everything the Vim way from day 1"" approach, which is widely advocated by veterans. Anything that offers a leg-up Vim's infamous learning curve is to be commended. But be careful not to get too comfortable. Mastering Vim requires a change in mindset and if you don't break some of your old habits you could miss out.
I will begin by showing how a TextMate user can make Vim feel almost like home. I will show what preferences you can set in your vimrc file, and which plugins you can install to emulate the TextMate experience. Like walking with crutches, some of these features are useful while you build your strength, but if you can learn to walk without them you will be able to move faster. I will show how.
Five minutes presentations, five minutes questions, times five. The Arrrrcamp lightning talks.