In the past year or so, the front-end developers at Planet Argon have taken more of a modular approach to writing CSS. This means writing CSS in a way that promotes forward-thinking, scalability, and ease of development. Before I get into the pros and cons, here’s a quick example of the difference between a modular and non-modular approach.

Today I’m concluding the series of interviews with Epicodus students! I got the chance to talk to Mac Eisenberg who is a native to Brooklyn, NYC. He came out to Portland from New York and is loving it.

Throughout this week I’ll be posting my interviews with three students from local code school, Epicodus. They’ll talk about their experiences with the program and how they have been growing as web developers in the past few months.

With the emergence of of code schools in recent years, it can be hard to keep track of them all. Which ones should we be paying attention to as potential employers or students? I wanted to delve a little deeper and take a look at how current students felt about the program.

After an OS X upgrade from 10.8 to 10.9, I noticed some previously-passing Capybara specs were failing. The failing specs all shared a similar structure:

it 'should show some text in the 2nd tr' do
visit some_path
page.should have_selector('tr:nth-child(2)', text: 'some text')
end

Notice nth-child pseudo-selector; this seemed likely to be involved as other specs using have_selector with plain class selectors continued to pass.

I applied a number of patches that folks seem to be performing on their new 10.9 installs (installed XCode 5.0.1 and then dev tools via xcode-select --install, running brew updates, etc) and nothing changed. What led me to a solution was this Nokogiri Github issue from the Mountain Lion release:

Last week Neil ventured to Boston for the inaugural Wicked Good Ruby Conf, an event drawing technologists from many disciplines who share a common trait: it was for those who love Ruby and use it to get work done. The two-day, two-track event provided a rich array of talks, from the pragmatic and studied, to the irreverent, theoretical and forward-looking. It speaks to the ambition of the conference that within its span, one could learn how to fine-tune a Rails backend, learn the innards of a linotype machine, use one language to bridge the chasm between desktop and mobile, predict capital market behaviors, and see how JRuby might come to eat the world. Here are his favorite three.

MRI Magic Tricks by Charlie Somerville

A hacker's hacker, Charlie used his time to decimate the Ruby language, peeling off the layers of the MRI implementation and revealing what it takes to build a dynamic language with the flexibility and power of Ruby. His initial caveat of "Don't try this at home" set the tone, as he proceeds to exhume the secret core classes of MRI, and use his findings (with some clever dynamic programming) to redefine some of the language's most basic behaviors, such as hash construction and method aliasing. He concludes by rewriting class hierarchies at runtime and patching the language to rescue itself from pesky segmentation faults.

RubyMotion: Under the Hood by Joshua Ballanco

Joshua's talk was the kind that adds to the depth and breadth of your knowledge. He uses RubyMotion, the increasingly popular iOS development platform, to convey some of the core abilities and limitations of code execution on desktop and mobile devices. He details the work that went into MacRuby on the OSX platform, highlighting the balance achieved through direct source compilation and the OSX Ruby VM. He then notes why RubyMotion relies on direct compilation alone: the memory isolation inherent in iOS. Meanwhile, we learn some of the nuances of garbage collection and reference counting on those platforms, and when one would need to be explicit in writing mobile Ruby code that interacts pleasantly with ARC. The power of these parallel platforms becomes more clear as he hits the REPL to express the same objects in both Objective-C and Ruby.

Understanding Ruby's Method Cache by Rachel Myers and Sheena McCoy

As as web developer, you typically would spend your time optimizing for reduced network and backend invocations, and so it was a nice break to get an introduction to language-level caching with Ruby. Rachel and Sheena led us down this path with a sense of humor and copious Jurassic Park references. We start with method-caching (or lackthereof) in Ruby 1.8, how everything changes in 1.9 with the merge of of the YARV implementation, and what lies ahead for more advanced, context-sensitive caching. Tips to avoid invalidating your cache are presented (hint: don't go crazy with define_method, alias_method, openstruct, refinements, etc), and we get a clear picture of how Ruby is evolving alongside its big-brother languages.

I’ve been scouring the internet to find some folks in our fair city of Portland, OR who are willing to talk about their developer experience.

I was lucky enough to connect with Ken Stowell of Metal Toad Media. Metal Toad Media has an agency here in Portland as well as L.A. and San Francisco.

Ken lives here with us in Portland and was happy to answer my questions. I was hoping to learn a little more about Javascript developers and how developer interns like me could find our way into the industry.

I know you have seen it. You are searching for a hack to make IE behave itself and you come across search results with someone’s smiling mug right there next to the link. If you are like me, you are more likely to click these results instead of the boring, all-text results. Something about seeing the author’s face right next to their link inspires an added air of credibility and expertise. Pretty good deal for those people.

So, now you are thinking, how can I get my photo up on my Google search results? Well, let me explain.

GitHub just announced the release of their GitHub Pages Gem, a simple tool that makes it a cinch to mirror the GitHub Pages server environment locally. A quick install of the Ruby Gem will download the Jekyll gem, all its dependencies, and anything else that GitHub Pages uses to customize its Jekyll environment.

GitHub Pages, a free hosting platform with built-in version control, is powered by Jekyll, a “simple, blog aware static site generator.”

In the past month and a half of interning here I’ve made the role switch from Designer to Front End Developer. It’s been a really fun and rewarding process. I wanted to go over some of the new tools I’ve been learning about that have really changed my life for the better.

RailsConf 2013 was held in our hometown of Portland, Oregon. Most of us had been to RailsConf at least once before, though it had been a few years. The Rails ecosystem has really matured since then, and maintainability and APIs dominated many of the talks instead of social networks and new toolkits. There were many good talks and speakers, but a few truly exceptional ones that we really enjoyed. So we each selected our favorites and suggest anyone that couldn’t go this year should check these out online at Confreaks They should be posted shortly.

Here is a little knowledge nugget that Jack and I picked up during our time at An Event Apart: Seattle (more on that to come). We learned about this handy little site called caniuse.com that was created by Alexis Deveria. The site lets you look up HTML5, CSS, JS API, SVG, etc. elements to see what their support is across browsers. Then you can assess.. Can I use that?

We are freshly back from the conference and I have already started using and benefiting from it. Give it a look and find out what you can use. (Turns out you can use the first-child pseudo-element in IE8!)

Planet Argon will hold its first Modern Web Dev workshop on May 6, 2013 in Portland, OR at the historic Kennedy School. This workshop will focus on new and emerging front-end development techniques including Bootstrap, SCSS, Jekyll and Github.

Last week several argonauts made our way to Couchbase Dev Day PDX, where members of the Couchbase development team Jasdeep, Tugduall and John provided us with a walkthrough of the new features of Couchbase Server 2.0, along with tips and use cases for squeezing performance from data-centric apps. They gave us a rundown of their quickly evolving NoSql technologies and, since then, we've been mulling over how best to leverage Couchbase here at Planet Argon.

When Robby asked me to migrate our app, heybrainstormr.com, over to AppFog, I was surprised. I am a Frontend Developer here at Planet Argon and am not used to doing things that include the words migrating, database or runtimes. He assured me that if I needed help, a developer would be within shouting distance to assist. Confident in the fact that backup was available, I headed into the fog.

In 2009 we asked the community how they hosted their Rails applications. Over 1,200 people chimed in with their answers. Once the data was compiled, we released the results to the community so that everyone could see where we were and where we were going.

In 2012, we set out to find what had changed over the last three years.

This time around 1,306 people took time out of their days to let us know how they were hosting their apps.

As before, we’re releasing the results back to the community along with this handy infographic that we’ve put together.

Let’s take a look at the data.

Rails Community – Still Growing

It looks like Ruby on Rails is still attracting new people, with over 25% of the respondents saying that they’ve joined the community in the last two years.

Ruby and Rails Versions – Old and New

This year, we asked two new questions. We wanted to know what versions of Ruby and Ruby on Rails people have deployed out there.

The data is interesting. 45% of people reported that they had at least one application out there still running on the venerable Rails 2.3.x version. In addition to that, 85% of people have deployed an application running on Rails 3.2.

On the Ruby side, a similar trend emerges, over 50% of people said that they were using Ruby 1.8.7 (either REE or MRI), but people overwhelming said that they also had applications running on Ruby 1.9.3.

I think that this shows that the community is pragmatic, supporting applications that are older, but unafraid of adopting the latest and greatest when the opportunity presents itself.

A Few Surprises

There were a few surprises this year.

In 2009, 80% of people said that they were using MySQL and 63% said that they preferred using said database server. This year, PostgreSQL eats up a large chunk of MySQL’s market share. 40% of people said that they were using Postgres in production and 60% of people said that they wanted to use it in production.

Although the majority of developers are keeping track of exceptions there is a significant number of developers that aren’t; nearly 30% of all developers.

Of those developers that are tracking exceptions, the most popular method is by using the Airbrake app (formerly known as Hoptoad). Airbrake zoomed past ExceptionNotifier gobbling up 50% of the vote. ExceptionNotifier used to reign in this space with 53% of the vote in the last survey.

This is the first year that we’ve asked about the use of Continuous Integration and we were surprised to see the number of people that aren’t using one so high. 64% of people said that they aren’t using a CI server.

Of the people that are using a CI server, Jenkins is by far the most popular with nearly 66% of the vote with Travis CI coming in a distant second with 27%.

One more surprise showed up in the results from this year. Apache and Nginx did a bit of role reversal.

In 2009, 69% of people said that they were using Apache, while Nginx took a backseat with just 24% of the vote. In 2012, things are quite different as Nginx is now the leader with 61% of the vote and Apache drops to 35%.

Predictable Trends

In addition to the surprises this year, there were some predictable trends. In 2009, over 60% of the people chose Git as their source control software, but there were still 36% of people out there using Subversion.

In 2012, people resoundingly chose Git. That number jumped to 94% and Subversion withered away to a mere 4%.

Another unsurprising trend is the battle of the Rails servers.

In 2009, 38% of people were using Mongrel. In 2012, someone let the dogs out but they didn’t come back. Mongrel’s share dropped down to a measly 3%. Most of this market share went over to the relatively new upstart Unicorn, while Passenger picked up a few percentage points to its lead.

Wrap-up

It’s definitely been interesting seeing the trends in between the two surveys and I think it’s going to be interesting to see what happens in another few years.