タグ

ブックマーク / nippondanji.blogspot.com (37)

  • Rroongaで楽しく全文検索!!(RubyでXchatをもっと便利にするシリーズその3)

    今日も引き続きXChat-Rubyでプラグインを作る話である。そろそろ読者の皆さんも飽きて来た頃だろうかと不安を覚えつつも、「書きたいから書くのだ!」という強い信念をもって日もつっ走りたいと思う。さて、前回のエントリでは「自動的に挨拶をするボット」を作成した。実際に利用できるプラグインをどのようにして作成できるかをおおよそご理解頂けたかと思う。(まだ見てない人はすぐにチェックすること!) 今日はもう少し実用的な機能として、XChat上のメッセージを全文検索するためのプラグインを紹介しようと思う。 ※いろいろとツッコミを頂いたので追記しました。 Groonga!!まずは肝心の全文検索エンジンであるGroongaをインストールしよう。GroongaはSennaの後継である。Groongaの正式版は、Groongaのホームページから入手できる。Mecabを利用する場合にはMecabを事前にイン

    Rroongaで楽しく全文検索!!(RubyでXchatをもっと便利にするシリーズその3)
  • オープンソースの道 〜 よりよい社会を育てる方法 〜

    最近、自治体においてオープンソースソフトウェア(以下OSS)を採用する例が増えてきたように思う。(注1)ニュースに上がったものだけでも、次のような例がある。 自治体に広がるOpenOffice.org - ITpro さらばWindowsLinux時代幕開け - 読売新聞 県が「オープンオフィス」導入へ 次期オフィスソフト - 山形新聞 ニュースになっているのはOpenOffice.orgやGNU/Linuxであるが、採用に至った主な理由はOSSにするとコストが下がるからであると記されている。確かにOSSはタダだ。商用で提供されているものもあるがタダでオペレーティングシステム(以下OS)やオフィスソフトのように人数に応じたライセンスが必要なものは、そのライセンスコストだけでも相当な額になる。しかも古くなってソフトウェアを更新するたびにライセンス料金が発生してしまう。それがタダになるのは確

    オープンソースの道 〜 よりよい社会を育てる方法 〜
    asip
    asip 2010/11/17
  • 大人のためのInnoDBテーブルとの正しい付き合い方。

    InnoDB関連でよくある質問のひとつに「テーブルのメンテナンスは何をすればいいんですか?」というものがある。InnoDBMySQL 5.5でデフォルトストレージエンジンとなるため、InnoDBのテーブルメンテナンス計画を立ようと思う機会も増えることだろう。そこで、今日はInnoDBのテーブルメンテナンスの各種方法となぜそうしなければいけないかという理由を解説しようと思う。 ANALYZE TABLEテーブルメンテナンスの代名詞といえば、インデックス統計情報の更新ではなかろうか。運用を続けるうちに、知らず知らずインデックス統計情報が狂ってしまい、思うような性能が出ない。RDBMSにはそのような問題がつきものであるが、InnoDBの場合、ANALYZE TABLEは不要である。なぜなら、InnoDBが自発的に統計情報を更新するからだ。InnoDBは以下の条件に適合すると、ANALYZE T

    大人のためのInnoDBテーブルとの正しい付き合い方。
  • Ruby会議2010へ行ってきた。

    Ruby会議2010へ行ってきた。何を隠そう、Ruby会議に参加したのは今回が初めてである。休日に自由時間を確保するのは、小さな子供が居る既婚者男性諸君であればそれが如何に厳しいことかということを理解しているはずだ。だが息子も3歳になり、さらに幸いにも予定が一切かぶっていなかったため、3日間すべて参加することが出来たのであった。 Ruby会議2010のテーマは「Conflict and Resolution」(衝突と解決)である。大規模なオープンソースプロジェクトには人々の衝突がつきものであるため、日有数のオープンソースプロジェクトであるRubyにはピッタリのテーマであるといえよう。というわけで、Ruby会議初参加者による視点で、面白かったことや気になったことなどについてレポートをお届けしたい。 1日目まず最初に、今回一番の目当てにしていた「Ruby開発会議つくば」を傍聴。gdgdなリラ

    Ruby会議2010へ行ってきた。
    asip
    asip 2010/09/07
  • ラップトップ購入!OSは・・・

    実は最近、プライベートで利用するノートPCを新調した。用途はブログを書いたり趣味のプログラムを書いたり音楽を聴いたり写真を管理したりと、ごく一般的なものである。だが、プライベートで利用するからこそ徹底して使い心地にはこだわりたい。 ほう、今日はMacのエントリか。 と思ったそこのアナタ!早合点してはいけない。確かにMacは素晴らしい。だが、今回俺がチョイスしたのはMacではない。Linuxだ!そんなわけで、エントリではノートPC購入からインストールしたアプリについて紹介しようと思う。 なぜMacを買わなかったのか?この点について疑問に感じる方も多いことだろう。最近、ギークの間ではMacが流行しているように思う。しかるに、iPhoneの開発プラットフォームとしての需要があるせいだろう。 いや、確かにMacUIは洗練されてるしアプリケーションも充実しているので、プライベートで使うにはもって

    ラップトップ購入!OSは・・・
    asip
    asip 2010/08/27
  • 漢(オトコ)のコンピュータ道: モダンなMySQLの開発環境の構築方法

    遅ればせながら モダンな Perl の開発環境の構築方法 モダンなPHPの開発環境の構築方法 モダンなPythonの開発環境の構築方法 モダンな Java の開発環境の構築方法 に続いてみる。MySQLは言語じゃないけど。 コンパイラ等MySQLをソースからビルドするのでなければコンパイラ等は必要ないけど、どうせアプリ開発に必要なので「MySQLなんかいつでもハックしてやるぞ!」という意気込みを示すために入れておこう。OSXならXcode、LinuxならGCC。最新のソースコードじゃないとヤダ!という粋な人にはBazaarのインストールもお勧めしたい。Bazaarは言わずと知れた分散バージョン管理システムであり、MySQL開発チームも採用している。最新のソースコードは次のコマンドでゲット可能だ。 shell> bzr branch lp:mysql-server/5.1 mysql-5.1

    漢(オトコ)のコンピュータ道: モダンなMySQLの開発環境の構築方法
  • 受託開発とGPL

    GPLに対する代表的な誤解・・・というかむしろ謎のひとつに、受託開発(SI)におけるライセンスの扱いがある。この点が明確になっていないため、受託開発において無意味にGPLを回避しようとしたり、GPLに対するFUDを流布することに対する原因になっていたりするように思う。フリーソフトウェアおよびオープンソースソフトウェアを愛する者として、そのような状況は断じて見過ごすことができない!!というわけで、今日はGPLを受託開発(SI)において用いる場合の注意事項を説明しよう。 GPLの使いどころ受託開発においてGPL(とその仲間たち=LGPL、AGPL)が登場するのは、第三者、つまり発注側でも受託側でもない者が作成したGPLのソフトウェアを利用する場合である。例えばGPLが適用されたライブラリなどだ。周知の通り、GPLのソフトウェアをリンクしたソフトウェアを再配布する場合は、そのソフトウェア全体に対

    受託開発とGPL
  • 「エキスパートのためのMySQL[運用+管理]トラブルシューティングガイド」発刊のおしらせ。

    来たる6月12日、我が入魂の書籍が発刊される運びとなった。執筆を開始したのはすでに一年以上前であり、ブログでも何度か「執筆中です!」といいながらなかなか発刊に至らずお待たせしてしまったのだが、しかし時間がかかってしまった分、内容には磨きがかかったと思うので期待して頂きたい。書籍のタイトルは「エキスパートのためのMySQL[運用+管理]トラブルシューティングガイド」。筆者にとって初の著書(単著)である。名前にエキスパートと冠している通り、中級〜上級者向けの一冊となっている。初心者の方は、まずMySQL 徹底入門 第2版などを先に読んでから書を購入するといいだろう。以下もくじである。 第1章 MySQLの概要 1 MySQLとは 1-1 世界で最も有名なオープンソースのRDBMS 1-2 LAMPの"M" 1-3 History 2 MySQL Serverの種類 2-1 FOSS Exc

    「エキスパートのためのMySQL[運用+管理]トラブルシューティングガイド」発刊のおしらせ。
  • 今さらだけどChromeのTabキーによる検索が凄く便利だということに気がついた。

    既出すぎる話で恐縮だが、役立つと思うのでエントリにしてみる。 Chromeはアドレスバーのところに適当な単語を入れてENTERを押すと、デフォルトの検索エンジンを使ってキーワード検索をするようになっている。デフォルトの検索エンジンはもちろんGoogleだ。Google検索だけでも十二分に便利なのだけど、検索エンジンをカスタマイズして必要に応じて切り換えると、もっともっと便利になってしまうからこれを使わないのは損である。Tabキー検索を使いこなせば、必要な情報にたどり着くまでの時間が大幅に短縮されることだろう。 まず、デフォルトで登録されている他の検索エンジンに切り換える方法を説明する。例えば、Bingを使って検索するには、アドレスバーにフォーカスがある状態で「bing.com」と入力し、<Tab>を押す。すると、次の図のようにBingが検索エンジンとして使われるようになる。 この状態で検索

    今さらだけどChromeのTabキーによる検索が凄く便利だということに気がついた。
    asip
    asip 2010/05/14
  • オープンソースでお金を稼ぐ方法いろいろ。

    オープンソースソフトウェア(以下OSS)が広く使われるようになって久しい。ご存じの通りOSSは無償で入手できるものばかりであるため、多くの人が疑問に思うことがひとつある。それは、「OSS開発者はどこから収入を得ているのか?」ということだ。収入源の実体がよく分からないために「霞をって生きているのか?」などと揶揄されることもある。実際OSS開発者は「どうやって収入を得るか?」ということについて色々と悩んでいる場合も多かったりするのだが、実はOSSには様々なビジネスモデルも存在する。そんなわけで、今日はOSSを活用して収入を得る様々な方法について詳解しよう。OSS開発者になることに躊躇している人の背中を後押しすることが出来れば幸いである。 プロプラエタリソフトウェアのビジネスモデルまずはおさらいである。OSSのビジネスモデルについて考える前に、プロプラエタリソフトウェアのビジネスモデル(特にラ

    オープンソースでお金を稼ぐ方法いろいろ。
    asip
    asip 2010/05/11
  • 貧乏だってプロファイリングは出来る!! - poor man's profiler

    従来より、プロファイリングのためのソフトウェアと言えば高価なものが中心であった。もっと安く、お金を掛けずに、簡単に、早くプログラムのボトルネックを探し出す方法はないのか?!ということで編み出されたプロファイリングテクノロジーがある。その名も、「poor man's profiler」だ。 poor man's profilerの全容は、次のページで知ることが出来る。 Poor Man's Profiler http://poormansprofiler.org/ poor man's profilerは、現Facebook(元MySQL ABのサポートエンジニア)のDomas Mituzasによって開発されたプロファイリングテクノロジーである。以下が、その全ソースコードである。 #!/bin/bash nsamples=1 sleeptime=0 pid=$(pidof mysqld) f

    貧乏だってプロファイリングは出来る!! - poor man's profiler
  • 真の自由とは?フリーソフトウェアにおける究極の選択。CopyleftかPermissiveか。

    オープンソースソフトウェアにとって、ライセンスが何であるかというのは非常に大切なことである。なぜならば、ソフトウェアのライセンスの種類によっては、組み合わせることができるものと、そうでないものがあるからだ。ソフトウェアの利用制限がない「自由なライセンス」として有力なものの中には、Copyleftと呼ばれる種類のものとPermissiveと呼ばれる種類のものがある。いずれも、フリーソフトウェアライセンスとして定義されているライセンス形態であり、Copyleftで代表的なものにはGPL(GNU Public License)、Permissiveの代表格としてはBSDLやMIT Licenseなどが挙げられる。これらは一体全体どちらが真に自由をもたらすソフトウェアライセンスなのであろうか? CopyleftライセンスGPLでは「ソフトウェアの自由」を以下のように定義して、これが守られるようにC

    真の自由とは?フリーソフトウェアにおける究極の選択。CopyleftかPermissiveか。
  • まるで魔法のようなストレージエンジン??VP for MySQLによる驚愕のテーブル操作テクニック。

    先日、SPIDERストレージエンジンについて2度に渡りブログで紹介した(その1:Not Only NoSQL!! 驚異的なまでにWRITE性能をスケールさせるSPIDERストレージエンジン、その2:快適スケールアウト生活への第一歩。SPIDERストレージエンジンを使ってみよう!)が、SPIDERの作者である斯波氏は、実はもう一つ驚くべきストレージエンジンを開発している。その名も、VPストレージエンジンだ。ちょっと地味な名前だが、VPとは、Vertical Partitioning(垂直パーティショニング)の略で、複数のテーブルの上にVPストレージエンジンを被せて、垂直パーティショニング(カラムごとにデータを格納する領域を分ける)を実現するというものだ。他のテーブルの上に被せるアーキテクチャをとっているという点では、VPとSPIDERの発想は同じである。以下は、VPストレージエンジンの動作

    まるで魔法のようなストレージエンジン??VP for MySQLによる驚愕のテーブル操作テクニック。
  • MySQLコミュニティ騒然!MySQL 5.5.4が与えるインパクト。

    先週、MySQL Conference & Expo 2010が開催され、盛況のうちに終了した。カンファレンスに合わせる形で、MySQL 5.5.3および5.5.4がリリースされたのだが、これが目を見張るような進化を遂げている。特に性能面での進化には目を見張るものがある!Jeremy ZawodnyやMark Calleghanといったコミュニティの重鎮たちも「非常にエキサイティングなリリースだ!」などと表して歓迎の意を表している。 というわけで、日はMySQL 5.5.3/5.5.4の新機能および変更点についてレビューしてみよう! おさらい。 〜 MySQL 5.5の既存の機能 〜MySQL 5.5が登場したとき、その新機能については以前にもエントリで紹介したが、ここで改めておさらいしてみよう。MySQL 5.5は、正確にいうと現在最新バージョンであるMySQL 5.1の「次の次」のバ

    MySQLコミュニティ騒然!MySQL 5.5.4が与えるインパクト。
  • 快適スケールアウト生活への第一歩。SPIDERストレージエンジンを使ってみよう!

    先月、Not Only NoSQL!! 驚異的なまでにWRITE性能をスケールさせるSPIDERストレージエンジンというエントリでSPIDERストレージエンジンによるスケールアウトが凄い!という話を書いた。SPIDERストレージエンジンは凄いヤツだが、ノウハウがあまりウェブ上で見つからない。唯一見つかる日語の記事は、ウノウラボによる「国産MySQLストレージエンジン「Spider」の作者、斯波健徳氏に聞く 」だけである。SPIDERストレージエンジンは斯波氏による単独の作品であるため、斯波氏は開発だけで手いっぱいであり、使い方の紹介記事を書くことまでは手が回らないのであろう。こんな凄いストレージエンジンをドキュメントが足りないせいで使って貰えないなんて勿体ない!! というわけで、今日はSPIDERストレージエンジンの基的な使い方について紹介する。少し長いエントリであるが、最後までお付き

    快適スケールアウト生活への第一歩。SPIDERストレージエンジンを使ってみよう!
  • Not Only NoSQL!! 驚異的なまでにWRITE性能をスケールさせるSPIDERストレージエンジン

    Webサービスでは、世界中からのトラフィックを捌く必要があるため、いくらチューニングしようとも一台のRDBMSでは捌ききることが出来ないのが常だ。MySQLは最初からマスター・スレーブ型のレプリケーション機能が搭載されており、スレーブをたくさんぶら下げることによって参照の負荷をスレーブに割り振るというスケールアウトによってその問題に対処してきた。スレーブによるスケールアウトは、参照(=PV)が多いWebサイトと非常に相性が良く、幾多のWebサイトにおいて実績を作ってきているし、まだまだ利用されている。 しかしながら、サイトのトラフィックが劇的に増加してくるようになると、レプリケーションによる負荷分散では追いつかなくなってきた。そこで人々がとった選択肢は、memcachedを利用することである。memcachedはインメモリ型の高速なKVSであり、参照・更新性能はMySQLより格段に高い。M

    Not Only NoSQL!! 驚異的なまでにWRITE性能をスケールさせるSPIDERストレージエンジン
  • MySQL管理者最速マスター

    巷ではプログラミング言語の最速マスターが流行ってるので、MySQLも参戦。ただし管理者向け。 まずはダウンロードとインストールダウンロードサイト http://dev.mysql.com/downloads/ バイナリにはインストールパッケージ(Windows=MSI、Mac=DMG、Linux=RPMとか)とアーカイブ(*NIX=tar.gz/Windows=zip)があるけど、初心者は黙ってパッケージをチョイス。インストールはウィザードに従うだけ。英語だけどそこはガマン! パッケージリポジトリがあるOSを使ってるなら、リポジトリからインストールするのもありだ。例えば、 shell> sudo yum install mysqlとか shell$gt; sudo apt-get install mysqlとか。これは楽チンだけどMySQLのバージョンがちょっと古くなるので注意。 もちろん

    MySQL管理者最速マスター
  • MySQLバックアップ頂上決戦!! LVMスナップショット vs InnoDB Hot Backup

    スナップショットを使えばとある瞬間のディスクやファイルシステムのデータをいつでも後から参照することができる。しかもスナップショットの作成は一瞬だ。スナップショット機能を活用すれば最強のオンラインバックアップソリューションが出来るだろう。 しかし、スナップショットでバックアップを取るなんて危険な操作じゃないのか?!と不安に思われる方もいらっしゃるかも知れない。MySQL Serverが稼働中にいきなりデータだけをとってくるのだから、そのような疑問を持たれるのは頷ける。しかし仕組みさえ分かればスナップショットによるバックアップは怖くないということが分かるはずだ。そこで、まずはスナップショットによるバックアップの仕組みについて説明する。スナップショットを取る際の要件は次の通りである。 全てのデータを単一のボリュームに置くこと。つまり、一回のスナップショット操作でバックアップが取れることだ。 ディ

    MySQLバックアップ頂上決戦!! LVMスナップショット vs InnoDB Hot Backup
  • MySQLに纏わる10の都市伝説

    誰の口から飛び出したのかは定かではないが、巷ではMySQLにまつわる様々な「都市伝説」がまことしやかに囁かれているようだ。恐らくMySQLに対する理解が低い人や、MySQLがあまり好きではない面々によってFUDっぽく言われているのだと思うが、世の中にはそのような「都市伝説」を真に受けてしまう人が居るのもまた事実であである。MySQLにおける昨今の開発スピードには目覚ましいものがあり、MySQLは性能・安定性・使い易さ共に進化し続けている。(特に先日リリースされたMySQL 5.5は性能・安定性・使い易さを両立している優れたバージョンだ!!)しかし「都市伝説」で語られることは総じて「MySQLはダメな子ちゃん」であるという烙印を押すものばかりであり、MySQLerとしてはそのような言われ無き汚名を全身全霊をもって晴らさなければならない使命を背負っている。そこで、今日はMySQLについて語られ

    MySQLに纏わる10の都市伝説
  • Chrome OSアーキテクチャ大予想!

    Chrome OSが出るぞ!というニュースを聞いたとき、ある種の衝撃が走った。というよりとても腑に落ちたと言った方がより正確に俺の心情を表しているかも知れない。そう、まるで心の鍵穴にChrome OS発表のニュースが鍵となって、今まで開くことが出来なかった心の奥底にある謎の扉を開いたような感覚だった。世間的には「ChromeブラウザがのっかったLinuxの1ディストリビューション」だという見方が趨勢であるように思うが、俺はChrome OSが断じてそのような安易で在り来たりなものとして登場するのではないと予感している。そしてまだ見ぬChrome OSにワクワクしながら、そのアーキテクチャを想像してニヤニヤしたりしているのである。まだChrome OSのアーキテクチャについては詳細が公表されていないが、以下のようなものになるんじゃーないだろうか。 この図はあくまでも個人的な予想というか妄想に

    Chrome OSアーキテクチャ大予想!
    asip
    asip 2009/07/15