Back to teaching

I loved sharing my knowledge. In the past I used videos and hosted them on YouTube. I am hoping to make a come back in the next few months. The focus of the first series of video tutorials would be Ruby.

The Ruby tutorial will comprise a starter edition and a pro edition.

The starter edition is targeting newbies to coding. This will mostly be video tutorials and be verbose, so that users can visually follow and understand. This is expected to be named Ruby Lite. I will be using a blog post with details and a slide-show with summary which both will be made available through my website.

The pro edition would be for existing software developers. As an existing software developer learning Scala, I believe video tutorials are a waste of time and test is the best way to go forward.

I am actually writing them for my customers/designers/developers who join my teams so that they get to know the language and eventually the stack (Rails, Sinatra, Padrino, Grape).

So yes, once Ruby is complete, I am intending to make tutorials on Rails, Sinatra, Padrino and Grape. But it will take time.

Split Padrino Controllers

Some things are bigger the better. But some, when they are big, are truly ugly! Code makes the top of that list. I recently opened a Padrino class with 2900+ lines of pure spaghetti. It was traumatic to touch that file that had countless number of actions in it.

Making an admin section? Wondering how to avoid writing every thing in app/controllers/admin.rb? Well you are of luck and the approach is really simple.

Xygen is not its real name.

# file: app/controllers/admin/products.rb
class Xygen::App.controllers :admin do
  layout :admin

  get '/products' do
    @products = Product.all
    render 'admin/products/index'

  # get '/products/:id' do
  # end
  # and so on...

Now that you are splitting code in to files, you might wonder where to add common code.

There are few places you can add them to.

  1. Helpers (my preferred)
  2. app.rb (lets keep that slim too, shall we?)
# file: app/helpers/admin.rb
class Xygen::App.helpers do
  def authenticate
    # your foo doo

And finally use it in your code…

# file app/controllers/admin/products.rb
class Xygen::App.controllers :admin do
  before { authenticate }
  # rest of the code ...

TextbookValet Gets Highrise Integration

Highrise is a CRM ideal for small businesses. While we at TextbookValet are not entirely small, and have built required CRM features to our app, we used Highrise integrations to reach out to multiple services used in the hiring processes.

We worked with 5 services (possibly more that I am not aware) that integrated with Highrise. They will make contacts with necessary information set as custom fields. Then our web app will connect to Highrise through the API and synchronize with it.

This way we only need to integrate one service, saving us time, and money.

Link: Highrise API Gem


The Strange Case of Dr. Jekyll and Mr. Hyde tells the story of a lawyer investigating the connection of two persons, Dr. Henry Jekyll and Mr. Edward Hyde. Chief among the novel’s supporting cast is a man by the name of Mr. Poole, Dr. Jekyll’s loyal butler.

Poole is the butler for Jekyll, the static site generator. It’s designed and developed by @mdo to provide a clear and concise foundational setup for any Jekyll site. It does so by furnishing a full vanilla Jekyll install with example layouts, pages, posts, and styles.

There are currently three themes built on Poole:

Learn more and contribute on GitHub.

What’s included

Poole is a streamlined Jekyll site designed and built as a foundation for building more meaningful themes. Poole, and every theme built on it like this one, includes the following:

  • Complete Jekyll setup included (layouts, config, 404, RSS feed, posts, and example page)
  • Mobile friendly design and development
  • Easily scalable text and component sizing with rem units in the CSS
  • Support for a wide gamut of HTML elements
  • Related posts (time-based, because Jekyll) below each post
  • Syntax highlighting, courtesy Jekyll’s built-in support for Rouge

Additional features are available in individual themes.

Browser support

Poole and its themes are by preference a forward-thinking project. In addition to the latest versions of Chrome, Safari (mobile and desktop), and Firefox, it is only compatible with Internet Explorer 9 and above.


These themes are developed on and hosted with GitHub. Head to the GitHub repository for downloads, bug reports, and features requests.


What's Jekyll?

Jekyll is a static site generator, an open-source tool for creating simple yet powerful websites of all shapes and sizes. From the project’s readme:

Jekyll is a simple, blog aware, static site generator. It takes a template directory […] and spits out a complete, static website suitable for serving with Apache or your favorite web server. This is also the engine behind GitHub Pages, which you can use to host your project’s page or blog right here from GitHub.

It’s an immensely useful tool. Find out more by visiting the project on GitHub.