Blog Archives

Lights out management of a NetApp FAS2020

Posted in Inside TFG, Tips and Tricks

Our DEVOPS team manage a NetApp FAS2020 filer for a customer, and recently our network monitoring systems began reporting an issue connecting to the device’s BMC (Board Management Controller). This is the independent processor that provides the lowest level access to the system. In theory, if everything was to break and the machine was to blow up, we should be able to log into the BMC and find out what is going on. It’s an entirely separate computer tasked with providing a (secure!) back-door to the system in case of catastrophic failure.

Even though NetApp has a phenomenal reputation – at a technical seminar last year, a sales engineer said that no NetApp customer has ever lost data due to a hardware failure – I still don’t feel comfortable without access to the BMC.

Access to the BMC (on other NetApp devices the LOM controller is called a Remote Management Controller, or RMC) is via SSH, using naroot as the username. From here you can move “up the chain” to a system console, and use CTRL-G to move “down the chain” back to the BMC.

mlambie@prime:~$ ssh naroot@ilca-netapp-bmc
naroot@ilca-netapp-bmc's password:
=== OEMCLP v1.0.0 BMC v1.2 ===
bmc shell ->
bmc shell -> system console
Press ^G to enter BMC command shell
Data ONTAP (ilca-netapp.thefrontiergroup.net.au)
login: root
Password:
ilca-netapp> Mon Mar 12 11:40:27 WST [console_login_mgr:info]: root logged in from console
ilca-netapp> <ctrl g>
=== OEMCLP v1.0.0 BMC v1.2 ===
bmc shell ->

The filer also allows management via SSH directly, and not through the BMC. I used this shell to restart the BMC.

ilca-netapp> bmc help status
bmc status
- Display status for a Baseboard Managment Controller (BMC).
ilca-netapp> bmc help reboot
bmc reboot
- Reboot the Baseboard Managment Controller (BMC)
ilca-netapp> bmc reboot
ilca-netapp> The BMC rebooted successfully

It looks like the SSH daemon was simply hung (it had an uptime of 270+ days prior to the reboot) and restarting the BMC through the management console in this way corrected the issues the monitoring systems were reporting.

Learn Ruby with the Ruby Koans

Posted in Agile Development, Code, Inside TFG, Ruby on Rails, Websites or Tools

If you’re looking for an engaging and interactive way to learn Ruby, I’d recommend Ruby Koans by EdgeCase. I think that the koans are especially interesting if you’re coming from another programming language like PHP or Java, because they rely on some basic programming knowledge, but don’t presume any Ruby-specific abilities.

The Koans walk you along the path to enlightenment in order to learn Ruby. The goal is to learn the Ruby language, syntax, structure, and some common functions and libraries.

By manipulating and building upon Ruby’s TestUnit framework, the EdgeCase developers have created a step-by-step process for teaching Ruby through the practice of “Red, Green, Refactor.” They’ve added some simple game mechanics too, by showing your systematic progression through the 270+ challenges (puzzles). Reaching enlightenment results in a pretty ASCII graphic, and a legitimate sense of achievement.

Before you start with the koans though you’ll need a working Ruby installation. I recommend you take a look at the excellent rvm project, which will allow you to install multiple rubies (1.8.7 and 1.9.2 for example, alongside each other) and multiple gemsets in your home directory. Former Frontiersmen and 2011 Ruby Hero Award winner Darcy Laycock was heavily involved in this project as part of the 2010 Ruby Summer of Code, so we really like rvm at TFG.

The GitHub repository even includes a handy Keynote presentation, which I used as the basis for my talk about Ruby Koans at last week’s Ruby on Rails Oceania Perth meetup.

Lastly, if you’d like to have a play with the koans before diving in too deep, they’re available online through your web browser at Ruby Koans Online. This is a no-risk way of trying out Ruby (hint: team them up with why’s Try Ruby project) in your browser.

Positions available: Development Manager and Ruby Developers

Posted in Inside TFG

The Frontier Group is a boutique software development company based in West Perth. We have a strong focus on web software, and utilise Ruby on Rails and JavaScript to build web applications, and Objective-C for our iOS projects. We’re looking to take on experienced iOS and Web Developers and also a Development Manager (at TFG that means you’re a part-time project manager who also writes code).

Is this you?

You understand the difference between websites and web applications, and you want to write apps that matter for people that care about them.

You’ll have a track record of working on completed projects, and if you’re a Development Manager, you’ll have delivered some of these projects personally. You’ll have a few years commercial experience, probably working as part of a team doing solid but under-appreciated work. You will have experience with Mac, Linux or UNIX, but it might not be your daily environment. Similarly you will have an opinion about vi vs. Emacs or Python vs. Ruby, but you’ll understand that they’re just opinions.

You’ll care about your tools and will take real, genuine pride in the quality of the code you create. You won’t consider automated testing and continuous integration as optional components of a project, and will appreciate automated deployment procedures too. Learning new programming languages and getting more out of the languages you already know will excite you. Efficiency will be important too, and you’ll be looking for ways to automate your workflow and push the repetition off to a script.

You’ll be confident in your programming ability, regardless of the language you prefer, yet humble enough to seek guidance when needed. You’ll know how JavaScript can be used to enhance the web, and will have demonstrated experience with a leading JavaScript library. You might even care about SASS and HAML, if you’re really cool.

Using the right tools is important and we realise that. We don’t have a parent company dictating how we do things or what our “standard operating environment” is – you’ll get to make those decisions with us. We all use MacBook Pros for development, but you might want a new iMac, for example. You’ll keep up to date with current trends and care about using modern techniques and practices, as well as tools and technologies.

What we give you

  • Variable salary, dependent on position (Starting at $63,000 on probation)
  • 9% superannuation (on top of salary)
  • A MacBook Pro with SSD (yours to keep, replaced every two years) ~$3,500
  • $1,000 travel allowance per year (parking, bike servicing, public transport)
  • Internet and mobile allowance ($80 each per month)
  • Current and relevant books, training, tools and gear
  • Opportunities to work from home/flexi-time
  • Pay reviews every 6 months with no ceiling on earning potential
  • Freedom to grow your role with our organisation

What you give us

  • Agreed units of production (standard working week)
  • Your creative genius and passion

How to apply

Send a short email to jobs@thefrontiergroup.com.au and reference your Github and Stack Overflow accounts, along with any Open Source projects you’re involved with. Include a resume if it’s three pages or less.

*International applicants are also welcome

Pluralizations and Singularizations (Inflections) in Rails 3

Posted in Inside TFG

I was part-way through submitting an answer on Stack Overflow when the initial question was deleted. The developer was having an issue with Rails thinking that the singular of “faxes” was “faxis” when in fact it should be “fax”.

I thought it was an interesting problem, so here’s the answer I prepared:

You can overwrite or set Rails’ singularizations and pluralizations (properly called inflections) in config/initializers/inflections.rb

For example:

Can’t see this Gist? View it on Github!

As you can see below, Rails now understands how to count “faxes” correctly. One fax, two faxes, three faxes, and so on. You can test that from within the Rails console:

Can’t see this Gist? View it on Github!

Checking form submissions with Cucumber-Nagios

Posted in Inside TFG

We use Cucumber-Nagios at The Frontier Group to monitor live web applications and web sites. It’s the natural extension to the integration testing we conduct on our applicaitons as we develop them, and it gives us a deeper insight into an applications real-time availability and responsiveness… or so I thought.

Due to an oversight on my part, the Cucumber feature that we use to search this blog was failing “in real life” but passing according to Cucumber-Nagios. I was searching for a text string that should have appeared only after conducting a successful search of the articles, however it was also appearing in the list of popular articles on the sidebar. Whoops!

After the test started failing for real, because the blog post was no longer referenced in the sidebar, I dug deeper in an attempt to find the problem.

In the end Aaron did most of the hard work, and tracked the problem down to webrat not submitting the form properly. As such the response data that was being parsed was incorrect.

Here’s the feature file:

Can’t see this Gist? View it on Github!

The trick that we used (and it is a nasty hack, to be sure) is to fool webrat into operating in “Rails mode”, whereby it POSTs the form properly. I added the last four lines to features/support/env.rb and it’s done the trick.

Can’t see this Gist? View it on Github!

So if you’re having a problem with webrat posting data, maybe this will help you. Alternatively, if you have a suggestion on how this could be fixed in a cleaner way, please leave a comment.

Twitter

Great web stats at @petrescue , the driving force behind the rebuild of their systems by @frontiergroup . http://t.co/MTvfoxnU

@frontiergroup about 3 weeks ago #

Search Posts

Featured Posts

Categories

Archives

View more archives