2012年のまとめと2013年にやりたいこと

毎年、年の最後にはその年の記事をまとめていたのですが、2012年分のまとめをし忘れたので、ここでまとめておきます。

もっと読む

設計判断事例の紹介:E4Xの事実上の廃止を受けての、UxUの開発方針の検討

設計判断とは何か?

ソフトウェアの開発においては、仕様を決める時に、並立できない複数の選択肢の中からどれか1つを選ばなければならないことがあります。特に設計に関わる場面での判断のことを、一般的に「設計判断」と言います。「この新機能を加えるのか、加えないのか」「この新形式をサポートするのか、しないのか」などのような、「やるか、やらないか」の判断はその典型です。

もっと読む

Ruby用単体テストフレームワークtest-unitでのデータ駆動テストの紹介

test-unitはRuby用のxUnit系の単体テストフレームワークです。2.3.1からデータ駆動テスト機能が追加されていたのですが、2.5.3まではリファレンスに記述がなく、知る人ぞ知る機能でした。

もっと読む

社宅制度による社会保険料と所得税の削減

はじめに

来年4月の消費税率引き上げを前に、政府では軽減税率の導入や低所得層向けに現金給付する案などが検討されています。しかし、消費税負担額の増加は不可避な状況です。さらに健康保険、厚生年金といった社会保険料もその料率が年々引き上げられており、庶民の負担は増える一方です。

もっと読む

Developer Migration 2013で「開発者は仕事でリーダブルなコードを書けるのか?」という話をします

来月の3/2(土)14:00からDeveloper Migration 2013というイベントで「開発者は仕事でリーダブルなコードを書けるのか?」という話をします。

もっと読む

クリアコードのサポートサービス

クリアコードでは、Mozilla製品、milter manager、groonga、GStreamer、WebKitといったフリーソフトウェアのサポートサービスを提供しています。サポートの対象となるフリーソフトウェアについて、クリアコードで対応できるものは、できる限りサポートサービスの枠組みの中で対応しています。今回はクリアコードのサポート契約の特徴や障害調査における作業の進め方を紹介します。

もっと読む

インターン募集を開始

クリアコードでは4月からインターンシップを実施します。インターン募集は今日から開始しました。4年ぶりのインターンシップということで、内容も大きく見直しました。そこで、今回は4月から実施するインターンシップの特徴を紹介します。

もっと読む

るびま0041号の「Rubyコードの感想戦」のお知らせ

ここ数日のRuby界隈はすっかりRuby 2.0.0の話題で持ちきりですが、るびま0041号咳さんから文通のお返事が届きました。たくさん言い訳しています。

もっと読む

クリアなコードに囲まれて - クリアコードでの二年間

クリアコードでアルバイトをしているおやまだです。このたび、二年間お世話になったクリアコードを離れることとなりました。はじめてのククログ記事が、お別れの記事となってしまいました。

もっと読む

Developer Migration 2013: 「開発者は仕事でリーダブルなコードを書けるのか?」 #devmi

2013年3月2日にDeveloper Migration 2013が開催されました。

もっと読む

開発したいFirefox for AndroidおよびFirefox用アドオン

こんにちは。クリアコードでMozilla FirefoxおよびThunderbirdのサポート業務を主に担当している結城です。

もっと読む

ぐんまRuby会議01: 「プログラマー」 #guruby

2013年3月9日にぐんまRuby会議01が開催されました。

もっと読む

Mac OS XのCocoa版GTK+で日本語入力を行うためのgtkimmodule(GtkIMCocoa)の開発

Mac OS X1には、Cocoaと呼ばれるネイティブアプリケーション構築のためのAPIがあります。

  1. 現在は「OS X」が正式名称のようですが、ここではX Window Systemとの混乱を避けるために「Mac OS X」と表記します。

もっと読む

日本OSS奨励賞受賞!

先日、オープンソースカンファレンス2013 Tokyo/Springにて第8回 日本OSS貢献者賞および第4回 日本OSS奨励賞の授賞式が行われました。今回、クリアコードのメンバーおよび関係プロジェクトが日本OSS奨励賞を受賞いたしました。それぞれ推薦して下さった皆様、誠にありがとうございます。

もっと読む

Sylpheedのプラグインの作り方

はじめに

軽快で使いやすいオープンソースのメールソフトを標榜しているソフトウェアとしてSylpheedがあります。

もっと読む

GaaS: Groonga as a Service

4年ぶりにインターンシップを開始することを2月にお知らせしました。そこで予告していた通り、4月からインターンシップを実施します。インターンシップをどのように実施するかを3行で説明すると以下の通りです。

もっと読む

RubyKaigi 2013にSilverスポンサーとして参加

おととしに引き続き、クリアコードは今年もRubyKaigi 2013のスポンサーになりました。

もっと読む

Rubyで定義したメソッドの引数にYARD用のドキュメントを書く方法

はじめに

YARDというRuby用のドキュメンテーションツールがあります。以前、Cで記述したRubyの拡張ライブラリにYARD用のドキュメントを書く方法を説明しました。今回は、Rubyで定義したメソッドの引数についてYARD用のドキュメントを書く方法を説明します。

もっと読む

Fedoraプロジェクトで新規パッケージをリリースする方法

はじめに

今回は、Fedoraプロジェクトで新規パッケージをリリースする方法を、Cutterリリースしたときの経験をもとに紹介します。

もっと読む

Rubyで定義したメソッドに戻り値のYARD用ドキュメントを書く方法

はじめに

YARDというRuby用のドキュメンテーションツールがあります。これまでに2回、YARD用のドキュメントの書き方についてククログで紹介しました。

もっと読む

わかりやすいコミットメッセージの書き方

もう1年以上前になりますが、コミットメッセージの書き方を説明しました。ざっくりまとめると、以下のことを説明しています。

もっと読む

るりまをより便利にするために開発したい機能

こんにちは。クリアコードで組込み機器向けのサイネージシステムの開発やRubyでのmilter1開発などを担当している沖元です。プライベートでは、るりまプロジェクトなどで活動しています。

  1. milter managerを使うとRubyでmilterを開発することができます。

もっと読む

GDBでデバッグするなら-g3オプション

RubyやPythonなどのスクリプト言語では実行中に例外が発生するとバックトレースを出力してくれます。バックトレースがあるとどこで問題が発生したかがわかるためデバッグに便利です。一方、CやC++では不正なメモリアクセスをすると、バックトレースではなくcoreを残して1終了します2。デバッガーでcoreを解析するとバックトレースを確認できます。

  1. limitulimitでコアファイルのサイズを制限している場合はcoreを残さないこともあります。

  2. catchsegv ./a.outというようにcatchsegvコマンド経由で実行するとC/C++で書いたプログラムでもバックトレースを出力します。

もっと読む

働く環境としてのクリアコード(福利厚生編)

はじめに

クリアコードでは一緒に働くプログラマーを募集しています。昨年6月からパッチ採用という採用方法にしましたが、それ以来、採用へのお問合せがほとんどなくなりました。今年2月からインターンの募集を開始しましたが、まだお問合せがありません。しかし、採用やインターンシップページヘのアクセスは増加しています。採用ページを見た方がクリアコードは何か特別なスキルを要求しているように感じたり、パッチ採用のプロセスは時間や労力がかかりそうだがそれだけのコストを払う価値があるか判断できない、あるいはそもそも応募するかどうか判断するための情報が不足していることが原因ではないかと仮説をたてました。

もっと読む

GtkIMCocoaの動作状況

もっと読む

コミットへのコメントサービス導入事例のご紹介

はじめに

昨年12月、クリアコードは「コミットへのコメントサービス」を始めました。このサービスは、「みんながみんなのコードを読む」文化づくりを支援するサービスです。どうして「みんながみんなのコードを読む」文化づくりを支援するかというと、よいコードを書くことを当たり前にするためにはまず「みんながみんなのコードを読む」文化にすることからはじめるのがよいという考えからです。

もっと読む

RubyKaigi 2013の予告:ステッカー・チラシの配布とRubyHirobaでの企画案と発表内容 #rubykaigi

早いもので今週後半(2013/5/30-6/1)はRubyKaigi 2013です。クリアコードはシルバースポンサーとしてRubyKaigi 2013を応援しています。

もっと読む

RubyKaigi 2013にシルバースポンサーとして参加したまとめ #rubykaigi

シルバースポンサーとして応援したRubyKaigi 2013が終了しました。今後、どこかのスポンサーの参考になるかもしれないので、クリアコードがスポンサーとして参加したRubyKaigi 2013をまとめます。

もっと読む

クリアコードの1日

クリアコードがこの「ククログ」というブログを始めたのが2008年5月なので、先月でククログを始めてから5年経ちました。今月から6年目に入ります。実は、ククログでは毎週1本以上記事を公開するという目標を設定しています。何度か公開できない週もありましたが、5年間こつこつと続けてきました。

もっと読む

TAMA協会様主催キャリア体験フェア2013(インターンシップマッチング会)に参加します

クリアコードは、社団法人首都圏産業活性化協会様主催のキャリア体験フェア2013に参加します。

もっと読む

クリアコードがインターンシップを実施する理由

こんにちは。初代社長の南です。クリアコードでは開発以外のあらゆる業務を担当しています。

もっと読む

問題の原因調査のためのログ収集のセオリー

はじめに

クリアコードでは、FirefoxやThunderbirdのサポート業務において、ログファイルを使って原因を調査することがあります。

もっと読む

Mac OS X版GTK+における日本語入力対応の近況

以前の記事で、Mac OS X版GTK+の日本語入力対応モジュールGtkIMCocoaを開発中であることを紹介しました。

もっと読む

Software in 30 Days - スクラムによるアジャイルな組織変革"成功"ガイド

2013年3月に「ソフトウェア開発を『しない』人がスクラムでスクラムを導入する」ための本がASCIIから出版されました。

もっと読む

クリアコードの開発の様子をフォローしやすくしました

クリアコードでは、社名からわかる通り、日頃からクリアなコードを書くべく日々コードと向き合っています。そのために「みんながみんなのコードを読む文化」を維持しています。

もっと読む

Fedoraプロジェクトでパッケージを更新するには

はじめに

以前、Fedoraプロジェクトで新規パッケージをリリースする方法という記事を書きました。パッケージを初めてFedoraプロジェクトでリリースしようとしているときに、どんなことをするのかというのを実際の例にもとづいて紹介する内容でした。

もっと読む

クリアコードのフリーソフトウェアビジネス

はじめに

7月12日につくばインターンシップ・コンソーシアム主催の夏休みインターンシップマッチングフェアにインターンを受け入れる企業として参加してきました。中小、ベンチャー企業16社と50名ほどの学生さんが参加していました。クリアコードのブースには10名近い学生さんがきてくれました。ブースではクリアコードの業務内容、インターンシップを実施する理由、現在実施しているインターンシップを紹介しました。ブースにきてくれた学生さんはフリーソフトウェアでビジネスをしているというクリアコードの特徴に興味をもったようで、どうやってフリーソフトウェアでビジネスができるのかという質問をよく受けました。そこで今回はクリアコードがどうやってフリーソフトウェアでビジネスをしているのか紹介します。

もっと読む

milter manager 2.0.0 リリース

2013年7月29日にmilter managerの約2年ぶりのメジャーバージョンアップである2.0.0をリリースをしました。

もっと読む

インターンシップで学んだこと1:コメントを書きたくなるときはコードを見直す機会

RubyKaigi 2013で発表したらインターンシップの応募があり、6/17から7/29まで1ヶ月半くらい週3日でインターンシップを実施しました。インターンシップでやったことはメモに残して公開していました。ただメモに残すだけではなく、まとめておき、次のインターンシップや新しくクリアコードのメンバーになった人に伝えるために役立てようと試みています。

もっと読む

インターンシップで学んだこと2:1人で開発しているときはていねいに開発を進める

インターンシップ1日目と2日目ではコメントに注目するとよいということを学びました。インターンシップ3日目のメモを読み返すと3日目は3つ学んだことがありました。今回はそのうちの1つ「1人で開発しているときにtypoとどうつきあっていくか」です。

もっと読む

パーフェクトRuby

2013年8月にRuby 2.0.0に対応したRubyの解説書が技術評論社から出版されました。

もっと読む

インターンシップで学んだこと3:テストを整理する方法

インターン募集を開始したのが半年前の2月で、6月に開催されたRubyKaigi 2013までは1件も応募がありませんでした。RubyKaigi 2013に参加したところ1件応募があり、6月後半から7月にかけて実施しました。ここ最近まとめているインターンシップで学んだことはこの時期に実施したインターンシップで学んだことです。

もっと読む

インターンシップで学んだこと4:何をテストするか

前回は3日目に3つ学んだことの中の2つめ「テストを整理する方法」についてまとめました。今回は3日目に学んだことの最後、3つめである「何をテストするか」についてまとめます。

もっと読む

Autotools事始め

はじめに

クリアコードが関わるプロジェクトの多くでは、ビルドシステムとしてAutotoolsを使用しています。そのため、新しくプロジェクトに参加した開発者にもAutotoolsに関わる修正を担当してもらうことがあります。しかし、個々の開発者のバックグラウンドは様々であり、必ずしもすべての開発者がAutotoolsに関する知識を持っているわけではありません。その上、プログラミング言語などの基礎的な知識とは異なり、学校の授業や企業の研修などでAutotoolsについて学ぶことができる機会は稀であり、まとまった解説書も少ないなどといった事情があるため、その使い方を伝授するのには毎度手間を要しているというのが実状です。

もっと読む

Rubyで定義したメソッドの使用例をYARD用のドキュメントとして書く方法

はじめに

YARDというRuby用のドキュメンテーションツールがあります。APIのドキュメントの記述方法は大きく2種類ありますが、YARDはコードにコメントとしてドキュメントを埋め込む形式を採用しています。専用の記法を使って構造化された読みやすいドキュメントを書けることが類似ツールであるRDocとの大きな違いです。

もっと読む

インターンの作業を進めやすくするための工夫

はじめに

リーダブルコードの解説やつくばインターンシップコンソーシアムのマッチングイベントをきっかけに、インターンシップへの応募が2件あり、今年2回目のインターンシップを9/2~9/6の1週間実施しました。インターンシップの記録はメモに残して公開しています。今回もインターンシップを通じてたくさんのことを学ぶことができました。

もっと読む

現状共有の会で進行役をするとき気をつけていること

複数人でおなじゴールに向かってものごとを進めていたつもりなのに、気づいたらそれぞれ違うゴールに向かっていたということがあります。違うゴールに向かっていると、達成しようと思っていたことがなかなか達成しません。たとえば、ソフトウェアがなかなかリリースできない、といった具合です。向かっているゴールが違うと達成したいこと以外の作業をしています。達成に向けた作業をしていないので、なかなか達成しないことはしょうがありません。

もっと読む

Windowsの32bit/64bit版Ruby用バイナリ入りgemをDebian GNU/Linux上で作る方法

2013年10月時点での情報です。長いです。

もっと読む

消費税率引き上げへの対応

はじめに

2013年10月1日、来年4月から予定通り消費税率を8%に引き上げるとの発表がありました。そこでクリアコードでも消費税率引き上げに対して、どのような対応が必要か確認してみました。すると、すぐに対応しなければいけないものがあることがわかりました。そこで、今回は消費税率引き上げにともないクリアコードで実施した対応とこれから必要となる対応を紹介します。

もっと読む

segv-handler-gdb:Rubyスクリプトがクラッシュしたときにより詳しくCレベルのバックトレースを出力するgem

Rubyで拡張ライブラリーを使っているとクラッシュすることがあります。自分が開発している拡張ライブラリーならどうにかして直したいものです。そのときに役立つのがGDBなどのデバッガーです。Cレベルのより詳細な情報を取得できるため、問題の特定に役立ちます。しかし、次のようにデバッガー上でクラッシュさせることが難しいことがあります。

もっと読む

github-post-receiverの複数サイト対応

はじめに

クリアコードでは最近Gitリポジトリの管理ツールをgitoliteからGitLabに移行1しました。

  1. GitLab 6.0のリリース後に移行しました

もっと読む

gettextとバージョン管理システムの相性の悪さを解消する案

Gettextという翻訳の仕組み1はフリーソフトウェアではよく使われています。いくつか不便な点はありますが、長年使われている仕組みでツールが揃っていることが理由でしょう。不便な点の1つである、「バージョン管理システムとの相性の悪さ」を解消する案が浮かんだので紹介します。

  1. gettextという仕組みの1つの実装がGNU gettextです。この記事では「gettext」を実装ではなく仕組みのことを指すために使います。

もっと読む

Rubyで変数宣言っぽいものをした方が読みやすくなるとき

RubyはCのように変数宣言のための特別な構文はなく、変数に代入する式を書くとそれ以降その変数を使えるようになります。

もっと読む

GTK-Docの使い方

もっと読む

全文検索エンジンGroongaを囲む夕べ 4での発表資料

2013年11月29日(いい肉の日)に全文検索エンジンGroongaを囲む夕べ 4が開催されました。会場の提供から運営、懇親会の飲み物や肉メインのおいしい食べ物の提供まで、DeNAさんが全面的にバックアップしてくれました。とても感謝しています。

もっと読む

スクリプト言語の拡張機能の作り方とGObject Introspectionの紹介

GNOME Advent Calendar 2013 9日目の記事です。

もっと読む

パーフェクトRubyのおかげでYARDがよくなってGroongaイベントも開催できた話

パーフェクトRuby Advent Calendar 2013の10日目の記事です。

もっと読む

GObject Introspection対応ライブラリーの作り方

GNOME Advent Calendar 2013 16日目の記事です。

もっと読む

Mac OS X版GTK+の日本語入力対応 その後

これまでの記事で、数回に渡ってMac OS X版GTK+の日本語入力対応状況について紹介してきました。

もっと読む