Ki Kim's blog

Redesigning a site as a long-term project

Ki Kim's picture

One of the earliest sites developed by Urban Insight is It still remains one of biggest sites that we actively develop and maintain. When the site was upgraded from Drupal 5 to 7 a few years back we had to plan and implement a full content migration. That is, we built a brand new Drupal 7 site from scratch and migrated all data and settings from the Drupal 5 site.

Embracing Laravel as a new toolkit

Ki Kim's picture

Laravel 5 has moved from being a Rails copycat to standing on it's own as a modern MVC framework. Here are some of the pros and cons I considered when adopting Laravel for a recent product that needed to ship quickly.

Semi Native LAMP Stack on OS X

Ki Kim's picture

One of the most popular LAMP stacks on Mac OS X platform, MAMP is a "one click" package solution for web developers to quickly set up website development environment. It provides convenient buttons to start/stop Apache and MySQL. You can also easily switch between different PHP versions if your web application requires a specific PHP version. Pro version offers even more conveniences such as handling virtual host settings.

Indexing Unmanaged Files for Solr Search

Ki Kim's picture

The method presented creates multiple Solr documents from a single content element (aka node in Drupal lingo), only applied to files. Apache Solr module provides an API to allow just that. That is what actually happens with the Apache Solr Attachments module for managed files. If a Drupal node has three attached files parsable by Tika, total of 4 Solr documents would be indexed; one node plus three files. Solr documents derived from files will show up as a search result as if they are an independent entity.

Configuring Varnish for Drupal

Ki Kim's picture

Varnish cache is an accelerator that sits in front of the web application, and serves cached web pages. It can speed up the web site significantly and lift loads off the web application. The web application gets to receive web traffic through Varnish. The unintended side effect is that all incoming traffic for the web application look as if they are originating from a single IP, say,, because they do come from a single source, Varnish.

Here is how to configure Drupal 7, Varnish and Apache web server to log correct client IP addresses.

Creating a table with draggable weights in Drupal 7

Ki Kim's picture

Drupal 7 has built-in support for draggable tables that enables users to order rows by dragging the cross hair icon up and down. drupal_add_tabledrag() function is the secret to building draggable tables. Here is how to do it.

Sublime Text 2

Ki Kim's picture

I use Sublime Text editor (ST2) to quickly open and edit text files while using NetBeans for Drupal development. Sublime Text version 2 was recently released, which triggered me to explore more of its features augmented by its extensions called packages.

The home page for Sublime Text is

Here is a list of notable features and packages for people who want to get started quickly.

How to Display One Value from Two Fields in a Drupal View

Ki Kim's picture

There is a situation where one field of a Drupal View needs to pull its content from two fields (aka cck fields) of a node. In my case, they were default author field and a custom field called contributor. This example uses Drupal 7 and Views 3.

If optional the contributor field was not empty, it would display the contributor and skip the author field. If there was no contributor, then the author, which cannot be optional, would be displayed by default.

Add two fields; order matters

This conditional display can be achieved with the View's configuration interface.

Things that I like (or don't) about OS X Lion as a Windows user

Ki Kim's picture

While it was a PC dominated environment a few years ago at my work place, people have started to switch to Macs when they are allowed to choose their workstation. Now most of my co-workers use Mac as their main machine while their PC is still around as a backup machine, for testing, or for .NET development.

Building Slideshows with Navigation Based on Views

Ki Kim's picture

Slideshow is a popular feature on the front page of many web sites. Drupal makes it quite easy to build one. Here are the steps to build a Views-based slideshow in Drupal 7.