株式会社クリアコード > ククログ

ククログ



ソーシャルウィジェットtDiaryプラグイン

kdmsnrさんが設定していたFacebookコメントプラグインがうらやましかったので、ククログにもつけてみました。ククログはtDiaryを使っていますが、CGIやRackで動かすのではなく、オフラインで静的なHTMLに変換してからWebサーバーにアップロードしています。そのため、tDiaryが持っているツッコミ機能は使っていません*1

追加でfacebook_comments.rbを使おうとしたのですが、section_footer2.rbと衝突するのでやめました。また、section_footer2.rbに以下のような不満がありました。

  • 名前に「2」と入っていて名前付けとして不適切。
  • (インラインCSSでスタイルを設定しているからなのか)一列に並んだウィジェットがガタガタになっている。

そこで、section_footer2.rbが提供している機能のうち必要なものだけと、facebook_comments.rbの機能を合わせたsection-footer-social-widgets.rbプラグインを作りました。上記の不満や衝突問題は解決しているのですが、設定画面には対応していないので、簡単には使えないでしょう。同じようなことをしたかったら参考になるかもしれません、という程度の扱いのものです。

興味があったら見てみてください。

*1 tDiaryなのに。

タグ: Ruby
2011-03-15

CPUの使用率とメモリの使用量を表示するFirefoxアドオン「システムモニター」をFirefox 4用に更新しました

システムの情報をFirefoxのツールバー上に表示するアドオン「システムモニター」のバージョン0.6バージョン0.6.1*1をリリースしました。以下のリンク先からダウンロードできます。

前のバージョンからの主な変更点は以下の通りです。

  • Firefox 4に対応しました。
  • Firefox自身のメモリ使用量の表示に対応しました。
  • 背景を半透明で描画するようにしました。

機能的な改善点

このバージョンから、Firefox(Thunderbird)自身のプロセスが使用しているメモリの量*2を取得できるようになりました。全体の消費メモリのうちのどれだけをFirefoxが使用しているのかを、グラフによって視覚的に確認する事ができます。 Firefoxのメモリ使用率の表示

また、グラフの背景自体の透明度を変更できるようになったため、Personas(軽量テーマ)と組み合わせて利用しやすくなりました。 Personasと併用した様子

技術的な改善点

このバージョンではFirefox 4への対応にあたって、バイナリ形式のコンポーネントの代わりにJavaScriptベースのモジュールを使用するように実装を改めました*3

この新しい実装は、Firefox 3.6以降で導入されたjs-ctypesという技術に基づいています。Firefox 4では構造体による情報の受け渡しが可能になった事により、バイナリ形式のコンポーネントを開発せずにこのようなアドオンを簡単に実現できるようになりました。これまではビルド環境を整えるのが難しかったために対応できていなかったような環境でも、低レベルな処理が必要なアドオンを開発しやすくなっています。

まとめ

Firefox 4に対応したシステムモニターの新バージョンをリリースしました。Firefox 4ではこのような、低レベルの層と連携して動作するアドオンも開発しやすくなっています。

関連情報:システムモニターのこれまでのリリース情報

*1 バージョン0.6.0にはLinux環境で動作しない問題があったため、修正版としてリリースしました。

*2 各環境において、メモリ使用量の表示は以下の基準に則ります。Windowsの場合:タスクマネージャの「メモリ(プライベート ワーキング セット)」に対応する値。Mac OS Xの場合:アクティビティモニタで表示されるメモリ使用量に対応する値。Linuxの場合:psコマンドで表示されるメモリ使用量に対応する値。

*3 Firefox 3.6以前のバージョンでは今まで通りバイナリ形式のコンポーネントを使用します

タグ: Mozilla
2011-03-23

ソフトウェア開発者を1名募集

クリアコードではMozilla・メール・検索関連を中心にソフトウェア開発を行っています。徐々に認知されてきたおかげで、声をかけてもらえることが増えてきました。しかし、大変残念なことにリソース不足ですべてのお話に応えることができないのが現状です。

そこで、現在、プログラミングが好きなソフトウェア開発者を1名募集しています。応募方法などはリンク先を参照してください。ただ、リンク先では「Mozilla・メール・検索関連」で使うことが多い技術にはあまり触れていないので、ここで簡単に紹介します。

Mozilla関連

Mozilla関連ではJavaScript・C++・XULなどを使うことが多くなります。アドオンを開発する場合はUxUを用いた自動テストを作成しながらの開発になります。

また、Firefox/Thunderbird本体のソースコードを読んで問題を解析するなど、突っ込んだ調査をこともあります*1。このような作業の場合、すべてのソースコードを把握していることよりも、把握していないソースコードでも的確に問題を解析できる技術が重要になります。このような技術はフリーソフトウェアの開発に関わっていると身につきやすい技術ですね。ふだんのフリーソフトウェアの開発で身につけた技術を役立てることができます*2

メール関連

メール関連ではC・Rubyを使うことが多いです。ベースシステムに近い部分なので、シェルスクリプトを使う機会も多少はあります。

Rubyといっても、ふつうではないRubyの使い方が多くなります。メールシステム自体はパフォーマンスが要求されることが多いため、より速度がでるCと密に連携したり、より並行処理に向いた処理方法*3を採用したりします。milter managerがまさにそのようなことをしています。

Ruby on Railsなどフレームワークの上で開発する場合は、いかにうまくフレームワークと連携するかが重要となりますが、このような使い方の場合は新しく最適な解を切り開いていくという違った技術が必要になります。

検索関連

検索関連でもC・Rubyを使うことが多いです。速度を犠牲にしないためにCと密に連携する部分はメール関連と同じですが、作業範囲はもっと上位のレイヤーまで広がります。高速な検索サービスを提供するWebアプリケーションやWeb APIの開発をする場合はRackやRuby on Railsなど、RDBを用いたWebアプリケーションでも使われている技術を利用します。

速度をカリカリにチューニングする検索エンジンの改良からリッチなユーザインターフェイス・APIの開発までシステム全体に関わることになるため、幅広く技術を活かすことができます。また、業務の中で技術の幅を上のレイヤーにも下のレイヤーにも広げていくことができます。

検索に関してはgroongaの開発者である森さんが書いた「検索エンジンはなぜ見つけるのか」がおすすめです。検索について優しく書かれているので検索に関してあまり知らない人でも理解を深めることができます*4

検索エンジンはなぜ見つけるのか
森大二郎
日経BP社
¥ 2,592

まとめ

ソフトウェア開発者を募集しているので、業務で必要になりそうな技術を紹介しました。クリアコードではこれらの技術を身につけるにはプログラミングが好きであることがとても重要な要素だと考えているため、応募資格はプログラミングが好きなことだけとなっています。

また、クリアコードでは業務で開発したソフトウェアはできるだけ自由に利用できるようにしています。業務で価値のあるソフトウェアを開発し、それをさらに広く自由に使ってもらいたいプログラミングが好きな人は応募してみてください。

*1 場合によってはパッチを書きます。

*2 まだそれほどでもない場合は業務の中で伸ばしていくことができます。

*3 CRubyではグローバル・ロックがあるので1プロセス複数スレッドよりも、マルチプロセスにしたりI/Oを多重化したりするなど。

*4 詳しい紹介はまた後で。

この記事の続き

2011-03-28

«前月 最新記事 翌月»
タグ:
年・日ごとに見る
2008|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|06|07|08|09|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|08|09|10|11|12|
2016|01|02|03|04|05|06|07|08|09|10|11|12|
2017|01|02|03|04|05|06|07|08|09|10|11|12|
2018|01|02|03|04|05|06|07|08|09|10|11|12|
2019|01|02|03|04|05|06|07|08|09|10|11|12|
2020|01|02|03|04|05|06|07|08|09|10|11|12|