Tag Archives: Ruby

Gollum with Apache ProxyPass

Say if you have Gollum running on and you have a reverse proxy (ex: www.abc.com) in front of it such that you want to allow the team to access it on http://www.abc.com/docs. You need to setup a ProxyPass on the reverse proxy. Say in Apache.

<VirtualHost *:80>
  ServerName www.abc.com
  ProxyPass /docs
  ProxyPassReverse /docs


It would work but the site asset path would be incorrect. So you need to specify the base path when you start Gollum. Continue reading Gollum with Apache ProxyPass


Gollum – Auto sync to git remote repository

Update @ 2015-09-23: Frank suggested using incron to execute the sync base on file changes instead of time periods. Thanks!.

Whenever you have edited any page on Gollum, it will committed to the local repository which is checked out on the server. These commits WILL NOT be pushed to the Git Server. Similarly any push to the Git server will not sync to the repository running Gollum as it won’t execute git pull neither.

You may think of using the Git post-commit hook to trigger the synchronization whenever a commit is done but Gollum run Grit as the Git adapter and Grit doesn’t support hook.

A workaround suggested by Rod Hilton is to setup a cronjob and keep running the git push and pull on the server running Gollum.

So add the following sync.sh to your Gollum project root. Continue reading Gollum – Auto sync to git remote repository

Gollum – Add Git identity by running Gollum as a Rack appliaction

Gollum is a simple documentation app base on Git. I could write the docs in markdown and all changes would be governed by the Git repository.

But the application doesn’t support any authentication and that means there is no way to trace who has committed the code.

Kudos to Stephanie Collett who wrote a rackup file for Gollum such that it will prompt for user email before the user start editing. That email is stored in session and would be used as identifying during commit.

Here is the config.ru Continue reading Gollum – Add Git identity by running Gollum as a Rack appliaction

mdpress – Present your markdown file in slideshow

I have been using reveal.js to create slideshow from markdown. It’s very nice and powerful. But the setup is a bit complicated. Sometimes i want to have a more simple solution.

Other than reveal.js, impress.js is a similar tool which allows you to present your ideas in a even more fancy way. I am not going to go into details of impress.js. Instead, i would introduce a tool called Mdpress which generate the .html presentation from markdown.

1. Install the Mdpress.

gem install mdpress

Continue reading mdpress – Present your markdown file in slideshow

rbenv – Ruby version manager

rbenv is an alternative to rvm for managing your Rubies. You can find some articles comparing the two. In general, rbenv is more lightweight without overriding the cd and gem command which rvm does and their similarities outweigh their differences. Here is a great article written by Jonathan Jackson about the two solutions.


For Mac users, you could install rbenv using Homebrew. Otherwise, you need to checkout the repository on GitHub.

Continue reading rbenv – Ruby version manager

Manage your Python projects with virtualenv

Last week we talked about managing multiple Pythons using pyenv.


But still we are lacking something like the Gemfile in Ruby for managing the version of those Python packages in a Python project. And here comes the Python virtualenv.

We can create different virtualenv on the same machine and each of them has its own Python binary, the pip package and the all other standard Python libraries needed to run the Python. In other words, each virtualenv acts like the Gemfile in a particular Python project.
Continue reading Manage your Python projects with virtualenv

Setup Yeoman in Windows PowerShell

Update @ 2015-09-23: Using PowerShell is just my personal preference, You could use MS-DOS in Windows if your machine doesn’t have PowerShell installed.

1. Download Node.js and install it and make sure you have the npm package manager selected before the installation.
Continue reading Setup Yeoman in Windows PowerShell

Mongoose – Simple web server

Thanks my friend Mart who introduces reveal.js to me. It’s a great presentation framework and we used it for our Front End Web Development course in General Assembly.

Without the web development framework like Python Django or Ruby on Rails which bundle with pserver and WEBrick, i would like to find a light weight web server such that i could edit and preview my markdown which runs on reveal.js. Finally i find Mongoose.
Continue reading Mongoose – Simple web server

DumpCamp – Introduction to New Relic

In the 2nd DumpCamp meeting, Ronnie showed us a SAAS service called New Relic which provides Application Performance Management solution mainly for web applications and servers. It’s capabilities include but not limit to:

  • Performance analytics on Ruby, Rails, PHP, Java, .Net, Python applications
  • Real User Monitoring
  • Server Monitoring
  • SQL/NoSQL Performance Monitoring
  • Web Application Transaction Tracing

The Lite account is free and i tried it today. The setup is easy and straight forward. Just register an account online with some configurations on your web server through SSH. Then you could views your server and web application performance online.
Continue reading DumpCamp – Introduction to New Relic