2016年にやりたいことと2015年のまとめ

年のはじめなので、2016年にやりたいことと2015年のまとめを書きます。

もっと読む

OSS Gateワークショップ2016-01-30開催のおしらせ

2015年10月に「OSS Gate」という取り組みを開始しました。

もっと読む

Groongaプラグイン自作入門 - コマンド詳細編

はじめに

Groongaのプラグイン自作入門では、プラグインの雛形を作成できるgrnplumというgemを使って実際に「hi」と出力するだけのgreetコマンドを作成しました。 今回は、このgreetコマンドを拡張しながら、コマンドについてもう少しだけ詳しくみていきます。 具体的には次の2つのことについてどうやったらいいのか、というのを説明します。

もっと読む

ワークライフバランス推進の取り組み

クリアコードでは社員全員が働きやすい環境をつくることによって、全ての社員がその能力を十分に発揮できるようにすることを目的として、10月からワークライフバランスの推進に取り組んでいます。今回はその取り組みを紹介します。

もっと読む

APIデザインケーススタディ

2015年12月に技術評論社から「APIデザインケーススタディ――Rubyの実例から学ぶ。問題に即したデザインと普遍の考え方」というライブラリー作成者(=APIを設計する人)向けの本が出版されました。

もっと読む

C/C++のソースコードをCppcheckで静的解析してみよう

はじめに

C/C++のソースコードを静的解析するツールのひとつにCppcheckがあります。 今回は、Cppcheckを使って実際に静的解析をするやりかたを紹介します。

もっと読む

OSS Gateワークショップ2016-01-30を開催 #oss_gate

先日告知した通り、2016年1月30日にOSS Gateワークショップを開催しました。

もっと読む

「nginx実践入門」出版記念!執筆者らが語る nginx Tech Talks:ngx_http_groonga - 全文検索nginx

2月8日に開催された「nginx実践入門」出版記念!執筆者らが語る nginx Tech TalksのLT枠が1つ余っていたので「ngx_http_groonga - 全文検索nginx」と題してGroongaでのnginx利用事例を紹介しました。

もっと読む

MySQLとPostgreSQLと日本語全文検索:MySQL・PostgreSQLでGroonga(Mroonga・PGroonga)を使って日本語全文検索 #mypgft

年に一度の肉の日、2月9日に「MySQLとPostgreSQLと日本語全文検索」というイベントを開催しました。次の2つのことについて紹介するイベントです。

もっと読む

Redmineのチケットで始めるタスク管理

Mozillaサポート業務を主に担当している結城です。

もっと読む

Debianの移植作業用のインフラを借りるには

はじめに

Debianプロジェクトでは、移植作業用のインフラが各アーキテクチャごとに用意されています。 それらのインフラはDebian開発者向けに提供されているものですが、開発者だけに限定されているわけではありません。 今回は、移植作業用のインフラをDebian開発者でない人が借りる方法について紹介します。

もっと読む

変更禁止のオブジェクトの一部のメソッドだけをES6 Proxyでオーバーライドする方法

もっと読む

第1回 法人向けFirefox導入セミナーで発表を行いました

2016年3月16日、Mozilla Japan主催の法人向けFirefox導入セミナーでFirefoxの法人利用についての紹介を行いました。

もっと読む

pglogicalとPGroongaを使ったレプリケーション対応の高速日本語全文検索可能なPostgreSQLクラスターの作り方

PostgreSQLは標準機能ではインデックスを使った日本語全文検索機能がありません。PostgreSQLでインデックスを使った高速な日本語全文検索を実現する拡張機能にはPGroonga(ぴーじーるんが)があります。しかし、PGroongaはPostgreSQL標準のレプリケーション機能を使えません。これは、PostgreSQLが拡張機能で追加したインデックスのレプリケーションをサポートしていないからです。

もっと読む

OSS Gateワークショップ2016-03-26を開催 #oss_gate

2016年3月26日に2回目のOSS Gateワークショップを開催しました。

もっと読む

Rubyist Magazine(るびま)0053号に須藤へのインタビューが掲載

Rubyist Magazine(るびま)にはRubyist HotlinksというRubyistへインタビューする企画があります。0053号のRubyist Hotlinks 【第 36 回】はクリアコードの社長である須藤へのインタビューです。クリアコードのビジネスについてやOSS Gateの話題もあるのでご覧ください。それらの話題にそんなに興味のない方でもぜひご覧ください。聞き手・野次馬のみなさんのおかげで読み物としておもしろいものになっています。

もっと読む

OSDNのファイルリリース機能をAPI経由で使うには

はじめに

「オープンソース・ソフトウェア開発/公開のために様々な機能を提供する無料サービス」の1つに、OSDNがあります。 かつてSourceForge.JPとして運営されていたので、そちらのほうに馴染みがあるかたも多いことでしょう。

もっと読む

CygwinのOpenSSHサーバーに公開鍵を使ってログオンする方法

mingw-w64を使うことにより、GNU/Linux上でWindows用のバイナリーをビルドすることができます。GNUビルドシステムを使っている場合でもできますし、CMakeを使っている場合でもできます。(CMakeを使っている場合はRuby-GNOME2が指定しているようなオプションを指定するとビルドできます。)

もっと読む

Redmineで高速に全文検索する方法

Redmineで全文検索するとかなり時間がかかります。

もっと読む

最小構成のFluent Loggerを作成するには

はじめに

クリアコードではFluentdというソフトウェアの開発に参加しています。Fluentdはログ収集や収集したデータの分配・集約などを行うソフトウェアです。

もっと読む

WEB+DB PRESS Vol.86特集「1年目から身につけたい! チーム開発 6つの心得」の全文公開が始まりました

もっと読む

FirefoxアドオンのWebExtensions移行についてMozilla Blogに寄稿しました

弊社メンバーが執筆した、従来からあるFirefox用アドオンを「WebExtensions」ベースに移行させた際の知見を解説した記事がMozilla Add-ons Blogに掲載されました。

もっと読む

RabbitでスライドやPDFの自動ページ送り(スライドショー)をする方法

この記事では、プレゼンテーションツールRabbitでスライドやPDFの自動ページ送り(スライドショー)を実現する方法を説明します。Rabbit以外で作成したPDFのスライドショーにも使うことができます。

もっと読む

PostgreSQL標準添付のpg_trgmでリビルドせずにインデックスを使った日本語全文検索をする方法:LC_CTYPEにC.UTF-8を指定

PostgreSQLのソースアーカイブにはcontribというデフォルトではビルドされないモジュールが含まれています。このモジュールの中にはpg_trgmというモジュールがあります。pg_trgmを使うとインデックスを使って高速に全文検索できます。ただし、pg_trgmはデフォルトでは日本語に対応しておらず、ソースコードを変更してビルドし直さないといけません。いけないと言われています。

もっと読む

Firefox 45ESRとFirefox 47以降で、法人利用に影響のある変更が入ります

Bug 1267567が修正され、Firefox 45ESRの次のリリースとFirefox 47以降のバージョンにおいて、法人利用に影響を及ぼし得る変更が入りました。

もっと読む

東京Ruby会議11でRubyの組み込み方とOSS Gateを紹介予定 #tkrk11 #oss_gate

2016年5月28日(土)に東京Ruby会議11OSS Gateワークショップ2016-05-28が開催されます。どちらも同じ「秋葉原コンベンションホール」という建物で、東京Ruby会議11は2階で開催され、OSS Gateワークショップ2016-05-28は5階で開催されます。

もっと読む

東京Ruby会議11での発表「アプリケーションへのRubyインタープリターの組み込み」とOSS Gateワークショップ2016-05-28 #tkrk11 #oss_gate

5月28日に開催された東京Ruby会議11で「アプリケーションへのRubyインタープリターの組み込み」と題して、アプリケーションにRubyを組み込む実装について話しました。

もっと読む

MySQLとPostgreSQLと日本語全文検索2:初心者向けMroonga・PGroonga情報 #mypgft

6月9日に「MySQLとPostgreSQLと日本語全文検索2」というイベントを開催しました。今回もDMM.comラボさんに会場を提供してもらいました。当日のツイートはMySQLとPostgreSQLと日本語全文検索2 - Togetterまとめにまとまっています。

もっと読む

Let’s Encryptをcloudapp.azure.comで使おうとするときのハマりどころ

はじめに

誰でもSSL/TLS証明書を無償で取得できることを標榜しているサービスとして、Let's Encryptがあります。2016年4月に正式サービスの提供が開始されたことから、実際に試してみた人も多いことでしょう。

もっと読む

OSS開発支援サービスを開始 #oss_gate

クリアコードは「OSS開発支援サービス」の提供を開始します。

もっと読む

クリアコード第11期開始

2016年6月30日でクリアコードは第10期を終えました。10年存続したということです。

もっと読む

MariaDB コミュニティイベント in Tokyo開催のおしらせ

2016年7月21日(木)の午後に「MariaDB コミュニティイベント in Tokyo」というイベントが開催されます。MariaDBの開発に関わっている人(エヴァンジェリストの人)が来日しており、その人からMraiaDBの最新情報を説明してもらったり、その人に質問したりできます。他にもAll AboutがどのようにMariaDBを使っているかという話(たぶん)や、MariaDBにバンドルされているMroonga(全文検索用プラグイン)・Spider(シャーディング用プラグイン)の最新情報の話もあります。MroongaとSpiderはそれぞれ開発している人が話をするので突っ込んだ質問をすることもできます。この機会をぜひ活かしてください。

もっと読む

クリアコード10周年祝いイベント開催のおしらせ

クリアコードは7月25日が設立記念日です。今年の設立記念日(2016年7月25日(月))の夜はクリアコード10周年祝いイベントを開催することにしました。以下のような方はぜひお越しください!

もっと読む

Debian向けにパッケージングするメリットとは

はじめに

フリーソフトウェアのリリースとひとくちに言っても、プロダクトごとにその実態はさまざまです。 単にタグを打つだけのこともあれば、ソースコードのアーカイブをアップロードするまでだったり、独自リポジトリを用意してパッケージを提供するところまで実施するものもあります。 あるいは独自リポジトリではなく、ディストリビューション向けにパッケージングしてリリースしているものもあります。

もっと読む

MariaDBコミュニティイベント in Tokyo:Mroonga 2016 - 高速日本語全文検索 for MariaDB

2016年7月21日に「MariaDBコミュニティイベント in Tokyo」というイベントが開催されました。発表中でも随時参加者から質問があがり質疑応答が始まるという、日本のイベントではあまり見られない活発なイベントでした。

もっと読む

クリアコード10周年祝い開催 #cc10th

お知らせしていた通り、クリアコードの設立記念日である7月25日にクリアコード10周年祝いイベントを開催しました。今回はGroongaのサポートサービスでお付き合いのあった小峯さんにイベントの写真を撮ってもらったので写真多めでイベントの様子を紹介します。小峯さん、ありがとうございました!

もっと読む

OSS Gateワークショップ2016-07-30を開催 #oss_gate

2016年7月30日にクラウドワークス4回目のOSS Gateワークショップを開催しました。今回はこれまでで最多の23名の参加でした。(ビギナーは19人申し込みで実際に参加したのは11人。参加率は約58%。)

もっと読む

コードに改行を入れる方法とその利点についてHTMLを例に考える

あるプロジェクトで、一行が長いコードを扱う機会があったので、一行を短くする(改行を入れる)方法とメリット・デメリットについて考えてみました。

もっと読む

クリアなコードの作り方: 変わらない値とわかるようにする

問題を調査する場合やプログラムを改良する場合、修正する場合などプログラムの挙動を把握しなければいけないことは多々あります。プログラムの挙動を把握する方法はいろいろあります。処理の流れを追う方法や特定の値に注目する方法や状態の変化を追う方法などです。

もっと読む

9月1日開催のSpeee Cafe Meetup #2でOSS開発について話します

2016年9月1日に開催されるSpeee Cafe Meetup #02で須藤がOSS開発について話します。

もっと読む

クリアコード:RubyKaigi 2016にスピーカー・スポンサーとして参加予定

9月8日から10日の3日間RubyKaigi 2016が開催されます。

もっと読む

Fluentdのプラグインのv0.14への移行の仕方

はじめに

クリアコードではFluentdというソフトウェアの開発に参加しています。Fluentdはログ収集や収集したデータの分配・集約などを行うソフトウェアです。

もっと読む

OSS開発支援の一例: Fluentdとその関連ソフトウェア

クリアコードではOSS開発支援サービスの一環でTreasureDataさんが中心になって開発し公開しているFluentdとそのプラグインなど1の開発を支援しています。 かれこれ一年ほどやってきたので、どのようなことをやってきたのかふりかえります。

  1. fluent-plugin-xxxやfluent-logger-xxxが多い

もっと読む

Fluentd v0.14のプラグインヘルパーの使い方

はじめに

クリアコードではOSS開発支援サービスの一環でTreasureDataさんが中心になって開発し公開しているFluentdとそのプラグインなど1の開発を支援しています。 Fluentd v0.14からはプラグインでよく使われる定型の処理をより簡易に扱えるようにするプラグインヘルパーが実装されました。 この記事ではv0.14の執筆時点のプラグインヘルパーの使用方法の概説を行います。また、プラグインヘルパーを解説した各節の最後には実際の使われている箇所の一例を示します。

  1. fluent-plugin-xxxやfluent-logger-xxxが多い

もっと読む

Speee Cafe Meetup #02 :OSS開発者を増やしたい! #speee_lounge

2016年9月1日に「Speee Cafe Meetup #02」という「OSS開発」をテーマにした勉強会がSpeee Loungeで開催されました。

もっと読む

複数の作業環境から変更が同一ブランチにpushされるGitリポジトリについて、リモートにある内容を確実に手元に反映する

この記事では、Gitの「普通のpull」と「rebase」について、「普通のpullではなくrebaseした方が良いと言われるけれども、実際にrebaseを使ってみたら、衝突が発生した時に色々よくわからない事が起こって辛い思いをした」という人を対象として、rebaseの正しい使い方を解説します。 GitそのものやGitHubそのものの説明については省略していますのでご注意下さい。 また、GitはLinuxやmacOS(OS X)の端末エミュレータ上のシェルでコマンド列を実行して利用する形態を想定しています。

もっと読む

書き捨てのRubyスクリプトをgemにするときの育て方の一例

Rubyでちょっとしたこと、例えばテキスト処理などをしたくてスクリプトを書くことはよくあります。そんなスクリプトは意外と再利用したくなるものです。しかし、作業用ディレクトリに適当なファイル名で保存していたりすると探し出すのは困難ですし、コマンドラインにワンライナーで書いたものだとそもそも残っていないこともあります1。別のPCでの再利用も、それらの保存方法では当然ながら不可能でしょう。

  1. 私の環境だとコマンドラインにワンライナーで書いたものでもヒストリーに残っている(参考:おすすめzsh設定 - ククログ(2011-09-05))ため残ってはいるのですが、名前が付いていないスクリプトの山から探し出すのは大変です。

もっと読む

RubyKaigi 2016にスポンサーとして参加 #rubykaigi #oss_gate

予告通り、2016年9月8日から10日まで3日間開催されたRubyKaigi 2016にスポンサーとして参加しました。今年はブースを出せるということだったのでブースを出しました。(スピーカーとしての参加についてはHow to create bindings 2016を参照してください。)

もっと読む

RubyKaigi 2016:How to create bindings 2016 #rubykaigi

2016年9月8日から10日にかけて開催されたRubyKaigi 2016で「バインディング開発者を増やしたい!」という話をしました。

もっと読む

RubyKaigi2016: Ruby Reference Manual 2016 Autumn #rubykaigi

2016年9月8日から10日にかけて開催されたRubyKaigi 2016で「Rubyリファレンスマニュアル(るりま)に関わる人を増やしたい!」という話をしました。

もっと読む

MySQLとPostgreSQLと日本語全文検索3:MroongaとPGroongaの導入方法例 #mypgft

2016年9月29日(肉の日!)に「MySQLとPostgreSQLと日本語全文検索3」というイベントを開催しました。その名の通りMySQLとPostgreSQLでの日本語全文検索についての話題を扱うイベントです。今回もDMM.comラボさんに会場を提供してもらいました。

もっと読む

OSS Gateワークショップin札幌2016-09-24を開催 #oss_gate

OSS Gateは「OSS開発に参加する人を増やす」取り組みで、それを実現するための1つの手段として「OSS Gateワークショップ」を開催しています。これまでは東京でだけ開催していましたが、OSS Gateは「『東京の』OSS開発に参加する人を増やす」取り組みではないので、東京以外でも開催したいという考えがありました。

もっと読む

Groongaでのmrubyの組み込み方:ビルド周り

全文検索エンジンGroongamrubyを組み込んでいます。理由は、速度はそれほど必要ではなく込み入った処理をCではなくRubyで書けると開発が捗るからです。

もっと読む

v0.14 Outputプラグインの仕様解説

はじめに

クリアコードはFluentdというソフトウェアの開発に参加しています。Fluentdはログ収集や収集したデータの分配・集約などを行うソフトウェアです。

もっと読む

バグを踏んだら開発元(upstream)に報告するのをまわりに勧めてみよう

はじめに

クリアコードでは、普段の開発で実践していることを開発スタイルとしていくつかまとめています。 そのなかの一つが、「問題を見つけたらupstreamで直す」です。

もっと読む

Ruby 2.4の新機能:rb_gc_adjust_memory_usage() - バインディングとGCの関係を改善するAPI

(おそらく)2016年のクリスマスにRuby 2.4.0がリリースされます。Ruby 2.4.0で導入されるrb_gc_adjust_memory_usage()というAPIについて紹介します。

もっと読む

fluent-plugins-nurseryのご紹介

クリアコードではFluentdの開発に参加しています。 以前の記事でも紹介した通り多くのプラグインの開発にも参加しています。

もっと読む

OSS Gateワークショップ2016-11-26を開催 #oss_gate

2016年11月26日にクラウドワークスさんOSS Gateワークショップを開催しました。東京でのワークショップ開催は今回で6回目です。今回は24名の参加でした。

もっと読む

新装版 達人プログラマー

2016年10月にオーム社から「新装版 達人プログラマー 職人から名匠への道」というプログラマーとしてよい仕事をするための本が出版されました。

もっと読む

SourceForge.netからOSDNへ移行する方法

以前、OSDNのファイルリリース機能をAPI経由で使うにはという記事で機能を紹介したきりになっていましたが、milter managerというプロジェクトで全面的にSourceForge.netからOSDNに移行したので備忘録を兼ねて記事にします。

もっと読む

PGConf.ASIA 2016:PGroonga – PostgreSQLを全言語対応高速全文検索プラットフォームに! #pgconfasia

2016年12月1日から12月3日にかけて開催されたPostgreSQLの国際カンファレンスPGConf.ASIA 2016PGroongaというPostgreSQLの全文検索モジュールの話をしました。

もっと読む

Ruby on RailsでMySQL・PostgreSQL・SQLite3とGroongaを使って日本語全文検索を実現する方法

MySQL・PostgreSQL・SQLite3の標準機能では日本語テキストの全文検索に難があります。MySQL・PostgreSQLに高速・高機能な日本語全文検索機能を追加するMroongaPGroongaというプラグインがあります。これらを導入することによりSQLで高速・高機能な日本語全文検索機能を実現できます。詳細は以下を参照してください。

もっと読む

Debian GNU/LinuxでCMakeを使ってWindows用バイナリーをビルドする方法

2016-12-26時点でのDebian GNU/Linux sidでの話です。

もっと読む

PolicyKitを用いて適切に権限管理するには

はじめに

CentOS 7ではPolicyKitによりユーザーの権限昇格・拒否の方法を柔軟に指定することができます。 実際に、CentOS 7では/etc/polkit-1/rules.d/50-default.rulesにより、管理者の認証が必要になった時に必要となるメソッドを追加しています。

もっと読む