Thinking and Writing Software!

A infrastructure and software engineer's blog

New iPad

I bought a new iPad. I’m enjoying to browse my working site with it. Illusts on a new iPad with Retina display are very beautiful.

At the same time I feel that it needs to make thumbnails’ size bigger than before. Because Retina dislay’s resolution is far higher quality than before. Though making thumbnails’ size bigger is the technically-difficult challenge, it is also the very technically-interesting challenge at the same time. I should work this challenge.

ngx_small_light v0.1.0 released!

I released ngx_small_light v0.1.0. This release includes the function of embedding a icon image in a image. It is necessary for using this function to assign a directory to the directive ‘small_light_material_dir’.

small_light_material_dir /tmp/materials;

And assign a file-name in ‘small_light_material_dir’ to the parameter ‘embedicon’.

small_light_pattern_define embedimage embedicon=icon.jpg,ix=5,iy=5;

Moreover I created the document of ngx_small_light with the wiki in github.

exercise for programmers

I think that day-to-day programming makes programmers improved technically. But as time went on, programmers get to avoid programming. Especially more they belong to same organization…


Though depending on a company, a programmer might become a manager with age. This is one of the reasons for it. But a programmer might get to avoid programming even if they are not.

Someone said following(If I’m not mistaken Brooks wrote the similar thing in ‘The Mythical Man-Month’)

the best way to make no bug is non-programming.

Programmers must work out something quickly at work. So programmers reutilize written codes in old days if there are already necessary codes in them. If there are( or was) superior programmers in your company, their codes would be useful in-house software library.

Even if in-house library is useful or not, programmers will work out with it. Because it is quicker than re-implementing from now. Of course, re-implementing might be more appropriate than using an existing library. But it is a rare case.

If that happens, programmers get to write programs like building lego-blocks. So-called lego-block-programming makes productivity of programmers improved. It’s wonderful! But as they would do only easy works, their tecnical skills would be break down. Furthermore, a lot of programmers get to think that someone else do difficult things. This is not a serious problem. However it is a serious problem that they get less able to solve technically-complicated problems.

What I’m practicing

I will say previous term again. I think that day-to-day programming makes programmers improved technically. So I’m programming day-to-day. But you might not have themes of programming at all times. In that case, you may implement primary data structures and algorithms.(I often implement them in my favorite languages)

They are stack, queue, heap, binary-search, and so on. Of course their implements are not superior to exsiting libraries. But programmers will grow up by day-to-day programming even if they are re-implements.


I developed ngx_small_light. This is a dynamic image transration module for Nginx and is the port of mod_small_light. ngx_small_light is written for using as the same way as mod_small_light as possible in Nginx.(mod_small_light is a Apache module).

Reason I developed ngx_small_light

I have been operating the customed mod_small_light at work.

When I completed the work of customizing mod_small_light at work, My workmate said to me,

Why don't you do it with Nginx?

My worksite is a heavy user of Nginx. But we use Apache also. mod_small_light has most features we require and what we have to do with customization of mod_small_light is only adding the few special functions.

As count of Nginx user is increasing in recent years, I thought dynamic image transformation module for Nginx is in demand. Already Nginx has standard image transformation module as name as HttpImageFilterModule. But HttpImageFilterModule provides little functions and expects complex configurations.