こんにちは。NaCl東京支社の小田です。AdaにType Parametersがあったことに驚いている、生粋のRailsプログラマです(^^)。今、上司からたまたま勧められた萩谷昌己さんの「ソフトウェア考現学」を読んでいます。私が生まれた年にかかれた古い本ですが、time-testedな記述も多く、とても楽しみながら読んでいます。生まれ年の本を読む格別は、生まれ年のワインを飲むそれに似ているとよく言われますが、それを実感しています。以下は、その本のまえがきの一部になります。溢れ出る仏教感から諸行無常の鐘の音がきっと聞こえるはずです。興味がわいた方はぜひ。
ソフトウェアとは、流行り歌のようなものではないかと思うことがある。昨日あんなに流行っていたあの歌も、今日はすっかり忘れ去られてしまっている。今日には今日の歌が流れ、明日には明日の歌が作られる。そんな流行り歌に、進歩というものがあるはずもなし、毎日耐えることなく作られてゆく無数の歌の中で、たまたまその時代と同期することのできた歌が街角に流れ、それを口ずさむ人々の心をほんの一瞬だけ潤すのである。
ソフトウェアにも同じようなことがいえる。昨日はあんなに流行っていたプログラミング言語やオペレーティング・システムが、今日にはすっかり忘れ去られてしまっている。人々は、貪欲なまでに、新しいものを追い続けている。
さて、今日はRubyの正規表現のリテラル内で使用できるCharacter Propertiesを紹介します。簡単な使い方と内在する問題、その問題への対応方法をご紹介します。この記事でこの機能の使用機会が増えれば幸いです。
Posted by
Katsuya Oda
on
July 05, 2016 ·
1 min read
こんにちは。NaCl松江本社のyharaです。最近BiwaSchemeにdelay-forceという機能を追加しました。
BiwaSchemeは筆者の個人的なプロジェクトで、JavaScriptで書かれたScheme処理系です。
delay-forceはSchemeの最新規格であるR7RS (small language)から標準として取り込まれた機能で、delayおよびforceと併用してScheme上で遅延評価を実現するためのものですが、それがどういうものなのかについては順を追って見ていく必要があるでしょう。
本記事では以下の順で説明を行います。
- delay-forceをいつどのように使うのか
- delay-forceがどのように実装されるのか
- サンプルプログラム
Posted by
Yutaka Hara
on
May 31, 2016 ·
3 mins read
最近、プログラミング教育が大きな注目を集めています。
日本でも小学校でのプログラミング教育必修化が検討されており、Ruby界隈でも『Hello Ruby』の翻訳本である『ルビィのぼうけん』が今年5月に出版されるといった話題もありますね。
プログラミング教育の盛り上がりは、松江でも例外ではありません。
筆者は、NPO法人Rubyプログラミング少年団の活動を通じて、小中学生にプログラミングを教えています。
そこでは、スモウルビー(Smalruby)というソフトウェアを使っています。
この記事では、いちユーザの立場からスモウルビーを紹介します。
想定読者は、ある程度プログラミングの経験があって、小中学生にプログラミングを教えたいと思っている方々です。
また、スモウルビーでゲームを作る際のノウハウはあまりウェブ上に無いため、それらについてもいくつか紹介したいと思います。
本記事では、それぞれ下記のバージョンを対象としています。
- smalruby: 0.1.10
- smalruby-editor: 0.4.0
Posted by
Nobuyuki Honda
on
May 19, 2016 ·
1 min read
Posted by
Akihiro Sada
on
May 13, 2016 ·
1 min read
何の因果かわかりませんが、お仕事でちょっと賢いリバースプロキシサーバ(以降、RPサーバ)を作る機会が2回ありました。
HTTPヘッダの内容によってプロキシ先のサーバを動的に切り替えるようなものです。

この要件を満たすため、RPサーバには以下のようなプログラムが必要になります。
- HTTPヘッダの内容を知るためにHTTPリクエストをパース
- プロキシ先のサーバへHTTPリクエストをプロキシ
- プロキシ先のサーバはRedisから取得
- レスポンスをクライアントへ返す
- 大量のリクエストも捌ける
1回目はRubyとI/O多重化のライブラリを使ってイベント駆動型のRPサーバを自作してみました。
が、振り返ってみるとこれは失敗でした。
Posted by
Nakamura Narihiro
on
March 23, 2016 ·
1 min read