Every software development house is confronted with the challenge of effective and efficient knowledge and skills dissemination. For example, when the teams are dedicated to serve specific projects or customers, it may not be easy to spread good techniques across the whole company.  These techniques or approaches, should enable the sharing of gems originating in one of the teams, across other, or all team boundaries.

Some companies, may try to resolve these issues by creating internal or public-facing technology blogs, knowledge bases or by mixing team members when moving from one project to the next. Sometimes, however, the measures may not be sufficient; for example, when a company deals with long-term projects that do not allow staff to move easily, or it is not part of a company’s culture to break teams apart. Blogs, on the other hand, take quite some time to read. So is there another way to tackle this challenge?

Most of us – developers – are probably familiar with the feeling we experience when we resolve a difficult problem, or just produce a really neat string of code:  “Dang! I need to show it to somebody! It is so damn cool!”.   Quite naturally our first targets are our co-workers. However, we do not want to write extensive emails or blog posts – we want to show them the thing. So why not hold an internal presentation, where we can flash our insights once in a while?

This is actually how the idea of “HaXorZ” was first conceived in Selleo,  “Have you found/made something neat? Note it down and show it to other guys like you, during the next HaXorZ day!” After a few iterations, we have already discovered a few advantages to this way of knowledge sharing, e.g.:

  • Spreading the knowledge, or at least information that a certain person knows how to approach a specific (type of) problem;
  • Spreading the word about the scope of your interest – so that co-workers will know later on that you are, for example, the SQL-wizz guy;
  • Improving spoken language skills – why not kill two birds with one stone. BTW, it is better to do it in-house before going public;
  • Practicing presentation skills (as above)
  • Letting steam off (“I’ve finally shown this cool stuff to others … I can move on.”)
  • If the presentations cover very interesting topics and are well-prepared, they may as well be made publicly available, which helps to build your own (as well as your company’s) brand in the developers’ community.

At the time of writing this, we have already been through seven Haxorz meetings, where we presented and shared a lot of ideas, code snippets, awkward moments and the like.

We polished and improved our Rules of Engagement, which can be found here (as a bonus, we include the original introduction, the spark which ignited the whole thing). It took us two Haxorz meetings to learn that we want to share our ideas using google docs & presentations instead of gists . Also at some point, we decided to record our presentations, so that spreading our ideas, would not be limited to our conference room. Seven Haxorz meetings later,  means that this is a good time to post a short summary and a review of our efforts so far:

Haxorz #3:

  • If you’re looking for select dropdown components compatible with Rails, which supports images, or Open Street Map location picker tips, check this presentation by Tomasz Noworyta.
  • Ever wondered how you can improve your programmers workshop, by developing a character sheet wizard for a RPG game? You can learn about it here (thanks to Radek Jędryszczak)
  • Want to learn something about KSS methodology, for writing maintainable code, as well as a documentation for your stylesheets files? Click here (courtesy of Rafał Bromirski).
  • Błażej Kosmowski squeezed a lot of information in his presentation about Rails, including Hstore stuff and Formtastic I18n support.
  • Tomek Borowski shared some info about how to render coffeescript partials within coffeescript templates and the behaviour of turbolinks in colorbox containers.

Haxorz #4:

  • Błażej again presented a big plate of delicious code snippets and tricks.
  • Radek presented to us, how to extend Ruby and have a lot of fun whilst doing it.
  • Michał Czyż shared some tips and tricks about using PostgreSQL with Ruby on Rails.

Haxorz #5 (Unfortunately we had some issues with our recording hardware. Videos are unavailable):

  • Leaflet.js and Marker combo for OSM map embedding in the web/mobile applications, by Tomasz Noworyta.
  • This time, Błażej presented some of his techniques for refactoring Rails applications mixed with a good dose of helpful pieces of code, library methods and gems.
  • Some insights on pg_array / hstore, using PusherApp to keep the data fresh and writing daemons in Rails.
  • Bartek Wójtowicz demonstrated how to use arrayformula combined with sum function and data validations with custom formatting.

Haxorz #6:

  • A quick reminder on Ruby’s dup and clone methods differences. An example of defining methods on top of AR associations and why it is so cool. Lastly Radek introduced us to Postgres weekly, a RubyWeekly clone, but about Postgres.
  • This time Błażej talked about some not well known refactoring techniques – method rebinding. Later on. he explained the differences between various class level accessors and got us up to date with the gem he released recently. At the end of his presentation, following his tradition, Błażej showed us a few cool thingies.
  • Enforcing custom separators in CSV files, tips on how to break out of loops in JS and when it is not possible. A few words on Mandrill service and a short example of template usage. Kudos goes to Tomasz Noworyta.
  • console.log(“tips & tricks”) by Rafał Bromirski
  • Szymon Kieloch told us about his recent discovery, which allows him to speed up the Ruby on Rails development: Zeus. Also Szymon introduced us to to Zsh and OhMyZsh

Haxorz #7:

  • This time Błażej showed us how to yield to multiple, named blocks and how instance_eval can optimize the usage of simple blocks. As usual, the presentation included a few tapas – short ideas, tests or interesting chunks of code.
  • Discover how easy it is to update ActiveRecord relations with update_attributes method, thanks to Radek Jędryszczak.
  • A quick introduction to javascript libraries like moment.js, countdown.js, jquery.knob.js. As a bonus: mapped_attributes gem and fast translating technique with I18n and RubyMine. The presentation was made by Tomek Borowski.
  • A bunch of Haxorz tapas by Irek Skrobiś.
  • How to change the filename of the asset which was downloaded from URL by Open URI and how to use regular expressions in PostgreSQL database. Courtesy of Tomasz Noworyta.
  • Want to learn more about chaining rake tasks, deployment notifications, deep_dup of Hash and working with Date/Time? Check out Bartek Danek’s presentation.
  • Some tricks and how-tos on how to boost performance of your database, by Bartek Wójtowicz.

As you can see, during our seven Haxorz meetings we have gathered quite a lot of good stuff, which we can now share with the rest of the world. I purposely didn’t link to the presentation authors, whilst making summaries of each Haxorz meeting. I wanted to make it easier to navigate to the presentations themselves. Nevertheless, if you would like to learn more about the authors, you can find out more about us here.