00:00:14.740
Welcome to Aloha RubyConf! My name is Evan Machnic, and we're going to embark on a little journey, perhaps a conversation. This talk will primarily focus on Rails development on Windows.
00:00:32.660
Before we dive in, let's do a brief introduction. I've heard that it's customary to start with a cat picture because, you know, people love cats! My name is Evan Machnic, and I've been working with Ruby and Ruby on Rails since around 2008.
00:00:46.219
I initially got my start in college, which was an interesting experience since many programs offer poor web development education, especially concerning Ruby on Rails. Currently, I'm an Application Support Engineer for Engine Yard, which involves helping people deploy or utilize our platform.
00:01:37.700
You can also find me at broadmagnetin, which is a blog I write occasionally. But let’s address the elephant in the room: Windows development does not typically receive much love. However, that's not entirely accurate. Many individuals have worked hard to make Windows a first-class citizen for Ruby developers.
00:01:58.340
Still, there's undeniably a Unix-like feel to Ruby, and those who have tried using it on Windows have noticed issues, like gems not working as expected or just strange behaviors that are hard to explain.
00:02:56.090
Interestingly, about 25% of Engine Yard's trial users are on Windows, which really underscores how significant this group is. Many of these users may not have substantial programming experience, yet they are diving into Ruby on Rails as their first language. While I might not have started with it, we’ve made it relatively easy to get up and running.
00:04:18.260
Instead of fostering an attitude of discouragement towards Windows users, several community members were motivated to create tools that simplify the setup process. For instance, RailsInstaller installs various components, making it just about the only thing needed to start building applications, apart from a proper text editor.
00:05:13.170
Interestingly, it's easier to get set up on Windows with RailsInstaller than on Mac OS X 10. Installing Rails on a Mac requires additional steps, like installing Xcode or GCC, which Apple makes cumbersome.
00:06:02.050
With RailsInstaller, you can have everything installed in about 20 minutes. While that’s fantastic for quick setups, many customers still feel overwhelmed or frustrated, as I did when I first started exploring this topic.
00:07:01.290
I remember beginning with a virtualized environment, wanting to truly understand the Windows experience, and quickly learned that there are mainly two ways to achieve this. You could either run Windows inside a Mac using virtualization software or opt for Boot Camp. Boot Camp makes it easy to set up Windows on a separate partition and fully immerse yourself in the Windows experience.
00:08:10.200
After getting my Windows environment running, the next step was setting up Ruby on Rails. It’s essential to have Ruby and Rails installed, along with SQLite for database management. It's also imperative to have Git for version control since everyone wants to collaborate easily.
00:09:08.320
Additionally, you'll require a way to build native extensions since Ruby on Windows can get a little tricky in that department. On Unix, building with a C compiler is standard, but Windows adds complexity.
00:09:43.170
As I mentioned earlier, I work for Engine Yard, and we sponsor RailsInstaller, which simplifies the setup for users who are on our platform. This ensures that those experimenting with Rails are having a smoother experience right from the start.
00:10:55.610
Now, regarding my workflow, I've realized that on the Mac, command-line usage can be quite efficient. I primarily use Vim as my editor, which allows for quick edits and file navigation without the overhead of a GUI. However, Vim presents challenges on Windows, as it doesn't operate as seamlessly.
00:12:01.940
On Windows, editing and switching between files in Vim can become cumbersome due to its cross-platform issues. To solve this, I had to rethink my approach to Ruby on Rails development on Windows and succumb to using an Integrated Development Environment (IDE), which makes sense given the Windows environment.
00:13:44.880
Despite my love-hate relationship with IDEs, they do offer convenience, and I eventually settled on Aptana as my editor. However, the integration with a web browser for development remains a preference.
00:14:07.550
While IDEs combine everything into one window and can streamline workflows for many, I still prefer lightweight command-line tools for quick edits and tests. Yet, on Windows, I found myself constantly re-evaluating how to best organize my workflow.
00:15:07.610
The topic of testing quickly emerged as one of the challenges when developing Rails applications on Windows. When I first tried writing tests, the performance was abysmal, with tests taking nearly 30 to 45 seconds just to run.
00:16:20.620
After some trial and error with Google, I discovered that the MRI Ruby interpreter is notably slow on Windows and that there are improvements that can be made to speed this up.
00:17:39.060
A solution is to use the CodeShop project. This community aims to enhance the Ruby experience on Windows. Adjustments in the environment variables and paths can facilitate transitions, making test completion roughly half as fast.
00:18:45.700
With the implementation of a guard program, we see increased efficiency in automated testing. However, guard's functionality can be subpar on Windows, leading to issues with repeated failed tests.
00:20:00.290
Eventually, I switched over to a simpler automation tool — AutoTest. This tool managed my test runs effectively without causing issues for every failure.
00:21:12.130
Now, after discussing tests, let’s move on to collaboration, specifically with GitHub. As my team collaborated on software, I recognized the importance of managing SSH keys.
00:22:10.080
Ultimately, using a Rails Installer aligns with GitHub collaboration, providing support for any Ruby version needs. The RubyPick tool assists in transitioning between various Ruby environments on Windows effortlessly.
00:23:05.019
That brings me to the conclusion of my talk. While there are still growing pains associated with Rails development on Windows, I assure you it's not an insurmountable challenge.
00:23:13.090
We can henceforth make our commitments to aiding others in their Ruby on Rails journey on Windows, contributing to the gems and libraries that support this platform.
00:23:31.860
Thank you for your attention! If you have questions, I’m here to assist!