メタプログラミングをして割に合うかの判断基準:処理を1箇所に局所化できるか
毎日他の人のコミットをながめる文化で生活していると、理由は浮かばないけど「ん?このコミットはなんか気になる」と感じるようになります。それは、新しいことを知ることができたコミットだったり、真似したくなるようなコードが入っているコミットだったり、なんかまずそうな気がするコミットだったり、様々です。
消費税率引上げへの対応 契約時の対応編
はじめに
10月に消費税率引上げへの対応を書いたところ多くのアクセスをいただきありがとうございます。前回の記事の時点では、2014年4月1日の消費税率引上げの日をまたいだ契約はそれほどありませんでした。しかし、この3ヶ月間で締結した契約のほとんどが2014年4月1日をまたぐもので、取引先ごとの消費税率引き上げへの対応がまちまちで調整に時間がかかりました。例えばまだ社内システムが消費税率8%に対応していないので、8%での支払いはできないケースや、2014年3月31日までの支払い分はすべて5%とするケースなどがありました。そこで今回はこのような取引先の事情にあわせて、クリアコードがとった対応を紹介します。
監視統合ビューアHatoholのセットアップ方法
わかりやすい設定ファイルの項目名:否定形で修飾しない
数週間ほど前、コミットをみていたら「ひっかかる」APIがありました。それについてコメントし、わかりやすいAPIについてやりとりしました。そのやりとりの中で、設定ファイルの項目名をわかりやすくするために、いままであまり意識せず工夫していたことに気付きました。それは「設定ファイルの項目名を否定形で修飾しない」というものです。「否定形」という言い回しではなく、「ネガティブな単語を使う」というような言い回しの方が近いような気がしますが、あまりしっくりくる言い回しを思いつかないので、ここでは「否定形」ということにします。
Rubyで自然なDSLを作るコツ:値を設定するときはグループ化して代入
最近、fluent-plugin-droongaという分散データストリームエンジンを書いています。その中で、RubyでDSLを実現するときに工夫していることに気づきました。それは、値を設定するときは代入する字面にするということです。代入する字面にするために、グループ化用のオブジェクトを作っていました。
Mozilla Firefox/Thunderbirdの法人利用者向けFAQを編纂中です
現在、Mozilla Japan主導でFirefoxとThunderbirdの法人利用者向け情報の整理が進められています。 クリアコードもMozilla Japanサポートパートナーとしてこの作業に協力しており、弊社内で蓄積されてきた技術情報を積極的にFAQ項目へフィードバックしております。
Groongaビジネスパートナーズ発足の経緯と発足後の変化
2/9にクリアコードをはじめ6社が集まりGroongaビジネスパートナーズ(略称グルンパ)が発足しました。グルンパはGroongaの普及とGroongaに関するビジネスの拡大を目的とした団体です。Groongaに関する有償サービスの紹介やGroongaの導入検討に関する資料を共同で作成するなどして、Groongaの導入を促進するような活動を行います。今回は、グルンパ発足の経緯や発足後の変化を紹介します。
Debianでパッケージをリリースできるようにしたい - WNPPへのバグ登録
はじめに
オープンソースのカラムストア機能付き全文検索エンジンといえば、Groongaがあります。Groongaを使うと全文検索機能付き高性能アプリケーションを開発することができます。
Groongaでの可変長データの管理方法
Groongaには可変長データを削除・更新しつづけるとデータベースのサイズが大きくなり続けてしまうという問題があります。次回のリリースではこの問題が解消される見込みで、現在、ユーザーにテストをお願いしています。(詳細は[groonga-dev,02173] データベース肥大化に悩むみなさんへテストのお願いを参照。)
test-unitならRSpec 3のComposable Matchers相当のことをどう書くか
RSpec 3の新機能であるComposable Matchersの使い方の例をtest-unitならどう書くか紹介します。リンク先のコードを示し、それのtest-unitバージョンを示す、という流れを繰り返します。
Firefox・Thunderbirdの組織内向けカスタマイズの方法の簡単な紹介と比較
企業や団体などにおいて、組織内標準のWebブラウザとしてFirefoxの導入を検討されているお客様や、Firefoxを既に導入済みであるというお客様から、「Firefoxの設定を管理者が一括して管理したい(ユーザに管理させたくない)」という要望をよく伺います。
Debianでパッケージをリリースできるようにしたい - よりDebianらしく
はじめに
以前、オープンソースのカラムストア機能付き全文検索エンジンであるGroongaをDebianに入れるために必要な作業について、最初のとっかかりであるWNPPへのバグ登録の紹介記事を書きました。
GitHubのWikiが変更されたら差分付きで通知する方法
一人でWikiを使っている場合はそんなことはありませんが、複数人でWikiを使っている場合はだれかがWikiを変更したらそれを知りたいものです。複数人でWikiを使っている場合は、情報共有のために使うことが多いです。Wikiが変更されたことがわかると、最新の情報を入手することが容易になるため、情報共有という目的を達成しやすくなります。
2014/6/22(日)に学生向けリーダブルコード勉強会を開催予定
要約:6/22(日)に学生向けリーダブルコード勉強会を開催する予定なので、興味のある学生の人は予定を空けておいてください。興味のありそうな学生を知っている人は教えてあげてください。
Jekyllで複数言語のコンテンツを継続してメンテナンスする方法
GitHub PagesのWebサイトジェネレーターであるJekyllで複数言語のコンテンツを管理する方法を紹介します。複数言語のコンテンツを管理するとは、例えば、英語と日本語のコンテンツを提供しているWebサイトにコンテンツを追加・修正・削除し、継続的にメンテナンスするということです。
LXCのテンプレートをカスタマイズする方法
最近LXC - Linux Containersで開発環境を構築したので、その作業の中からコンテナのカスタマイズについて書きます1。
-
LXCのバージョンは0.9系を想定していますが、0.8でも1.0でも基本的には変わりません。 ↩
学生向けリーダブルコード勉強会の参加者募集を開始
2014/6/22(日)にSEプラスさんが学生向けリーダブルコード勉強会を開催します。リーダブルコードの解説を書いた須藤がトレーナーをします。会場提供はクックパッドさんで、ランチも提供してくれます。
Thunderbirdの要約ファイルやアドレス帳ファイルの内容を読む方法
FirefoxやThunderbirdではデータの永続的な保存のためにSQLiteやJSON、プレーンテキストなど、様々な形式のファイルが使われていますが、その中にMork形式という物があります。この記事では、それらのファイルの内容を見る方法について解説します。
HerokuでRroongaを使う方法
Heroku用Groongaのビルド方法
HerokuにGroongaはインストールされていないので、HerokuでGroongaを使うためにはGroongaをビルドしなければいけません。今回はHerokuでGroongaをビルドする方法を説明します。
Launchpadを利用してパッケージを公開するには
はじめに
オープンソースのカラムストア機能付き全文検索エンジンのひとつにGroongaがあります。Groongaを使うと全文検索機能付き高性能アプリケーションを開発することができます。
SEゼミ - リーダブルコード勉強会(1回目)を開催
2014/06/22にプログラミングが好きな学生のためのリーダブルコード勉強会を開催しました。後述の通りチャレンジングな目標設定にしたので、学生のみなさんがついてこられるのかという点が不安でしたが、9割以上の参加者が満足し1、半数以上の人がこれからコードを読んでいこうという思いを持ってくれたようです2。このため、この勉強会で目指していたことは達成できたと言えます。よかったです。
Debianでパッケージをリリースできるようにしたい - mentors.debian.netの使いかた
はじめに
以前、オープンソースのカラムストア機能付き全文検索エンジンであるGroongaをDebianに入れるために必要な作業について、最初のとっかかりであるWNPPへのバグ登録やDebianらしいパッケージかどうかチェックするためのLintianについて紹介記事を書きました。
SEゼミ - リーダブルコード勉強会(2回目)を開催
2014/07/06にプログラミングが好きな学生のためのリーダブルコード勉強会の2回目を開催しました。内容を知りたい方は資料やこれまでの記事を読んでください。
Groongaユーザ向けの、はじめてのDroonga
昨年11月29日に開催したイベント「全文検索エンジンGroongaを囲む夕べ 4」 において、Groonga族の新たな一員としてDroongaが加わった事をお知らせしました。その後現在に至るまでにリリースを着実に重ね、現在はバージョン1.0.4となっているのですが、その間に方針や開発の優先度が変わってきている事についてのきちんとしたアナウンスができておらず、今改めてDroongaの事を知ろうとした時に「で、結局これって何なのよ?」ということが分かりにくくなってしまっています。
GStreamerのエレメントをつないでパイプラインを組み立てるには
はじめに
オープンソースのマルチメディアフレームワークとしてGStreamerがあります。音声・動画の再生、フォーマットの変換、録音・録画など基本的なことはもちろん、RTSPなどを用いたネットワーク通信を行うこともできます。
LXCコンテナに名前でアクセスする方法
LXCコンテナを複数作って、開発に使用しているとIPアドレスではなく名前で各コンテナにアクセスしたくなります。
もちろんlxc-consoleを使えば名前でアクセスできるのですがlxc-consoleではC-aが取られてしまって不便です。
LXCコンテナにホスト側のユーザをバインドする方法
LXCコンテナを作ったとき、毎回自分の設定をコピーするのは面倒です。 dotfilesを変更する度にLXCコンテナ側に設定を反映するのは特に面倒です。
新装版リファクタリング
2014年7月にリファクタリングの新装版がオーム社から出版されました。旧版は2000年にピアソン・エデュケーションから出版されていましたが、今は絶版となっています。
PassengerでRroongaを使ったWebアプリケーションを動かすときにチューニングのコツ
FedoraプロジェクトのGroongaパッケージを一緒にメンテナンスしてみませんか?
はじめに
オープンソースのカラムストア機能付き全文検索エンジンに、Groongaがあります。Groongaを使うと全文検索機能付き高性能アプリケーションを開発することができます。
2014年10月30日(木)にリーダブルコードワークショップを開催予定
クリアコードは社名の通り、クリアなコード(書いた人の意図が明確なコード)を大事にしている会社です。自分たちが日々クリアなコードを書くことはもちろんですが、自分たち以外の人たちもクリアなコードを書いて、世の中のクリアなコードが増えていくとうれしいと考えています。
AC_ARG_WITHでオプションを省略するとき、しないとき
はじめに
クリアコードの林です。今回はAutotools 1 にまつわる、最近遭遇したAC_ARG_WITH(に限らず)マクロの省略可能引数の落し穴の事例を紹介します。
-
Autotoolsに関しては Autotools事始め という過去記事もあるのでAutotoolsをまだよく知らない人は参考にしてみてください。 ↩
RubyKaigi 2014:Three Ruby usages - High-level interface, Glue and Embed #rubykaigi
RubyKaigi 2014の最終日(2014/9/20)にThree Ruby usagesというタイトルでRubyの使い方を紹介しました。
Cutterで画像を使ったテストを書くには
はじめに
今回は弊社が中心となって開発しているCutterという、書きやすさ・デバッグのしやすさを重視したC言語・C++言語用のテスティングフレームワークを使って、画像を使ったテストを簡単に書く方法を紹介します。
OSC2014 Tokyo/FallでMySQLユーザー向けに日本語全文検索について紹介予定
今週末(2014年10月18日(土)と19日(日))、オープンソースカンファレンス2014 Tokyo/Fallが開催されます。初日(18日(土))の11:00から11:45の枠で日本MySQLユーザ会の須藤がいろいろ考えると日本語の全文検索もMySQLがいいね!という発表をします。
いろいろ考えると日本語の全文検索もMySQLがいいね! #osc2014tk
先日お伝えした通り、10月18日(土)にオープンソースカンファレンス2014 Tokyo/Fallでいろいろ考えると日本語の全文検索もMySQLがいいね!という発表をしてきました。
12/9にリーダブルコードのWeb授業(生放送)を開催予定
須藤はリーダブルコードの解説の著者1としてリーダブルコード普及のために活動しています。その一環として、約1ヶ月後の12/9に名著『リーダブルコード - より良いコードを書くためのシンプルで実践的なテクニック』を解説者と一緒に読み解こうというWeb授業を開催します。
-
本文は書いていないです。解説を書いただけです。 ↩
Debianでパッケージをリリースできるようにしたい - そしてDebianへ
はじめに
以前、オープンソースのカラムストア機能付き全文検索エンジンであるGroongaをDebianに入れるために必要な作業について、最初のとっかかりであるWNPPへのバグ登録やDebianらしいパッケージかどうかチェックするためのLintian、mentors.debian.netの使いかたについて紹介記事を書きました。
Groonga 4.0.7の実験的機能であるカラム値の圧縮とRroongaからそれを使うには
はじめに
オープンソースのカラムストア機能付き全文検索エンジンとしてGroongaがあります。 この記事を書いている時点の最新版であるGroonga 4.0.7では、カラムの値を圧縮して保存することができるようになりました。
Ubuntuでdebパッケージのお手軽クリーンルーム(chroot)ビルド環境を構築するには
はじめに
debパッケージを用意してDebianの公式リポジトリからインストールできるようにするために必要な作業については以前いくつか記事を書きました。
12/9のリーダブルコードのWeb授業(生放送)用の資料
一ヶ月ほど前に告知した通り、12/9(来週の火曜日)の21:00からschoo(スクー)でリーダブルコードのWeb授業「名著『リーダブルコード - より良いコードを書くためのシンプルで実践的なテクニック』を解説者と一緒に読み解こう」の先生をします。
schooでリーダブルコードのWeb授業を開催
1週間ほど前になりますが、schoo(スクー)でリーダブルコードのWeb授業「名著『リーダブルコード - より良いコードを書くためのシンプルで実践的なテクニック』を解説者と一緒に読み解こう」の先生をしました。
Sphinx 1.3で使えるgettextとバージョン管理の相性の悪さを改善する仕組み
ドキュメントを作りたくなってしまう魔法のツールとしてSphinxがあります。 全文検索エンジンGroongaでは、Sphinxを英語と日本語のドキュメントの生成に利用しています。
Clangの静的解析を使ってコードの潜在的な問題点を探すには
Firefox OSのサポートサービス開始のお知らせ
クリアコードはFirefox OSのサポートサービスを開始しました。すでに2014年12月23日にMozilla JapanからFirefox OSとそのエコシステムに期待される企業のご紹介において、アプリの開発・最適化・Firefox OSの移植といったFirefox OSに関するサービスを提供する企業として、クリアコードを紹介して頂いています。