Ruby におけるバイナリ文字列に対する正規表現マッチング

Ruby 1.9 系において、バイナリ文字列 (ASCII-8BIT の String オブジェクト) に対する正規表現マッチングをさせる方法について記します。 Ruby 1.9 系において URL デコードを行う際などに役に立ちます。 正規表現リテラルの n オプション 正規表現リテラル…

Ruby においてメソッドがどこで定義されているのかを調べる方法

ruby-talk の 381425 で 「どのメソッドが呼び出されているのか調べる方法を知りたい」 という内容の質問がありました。 私も知らなかったのですが、Method オブジェクトを使えば簡単に知ることができるそうです。というわけで、メソッドがどこで定義されて…

Twitter のアイコン画像 (プロフィール画像) を取得する Ruby スクリプト

Twitter のユーザー名 (screen_name) を指定して複数人のプロフィール画像をダウンロードする必要があったので、Ruby でスクリプトを書きました。 特に面白くもないですが置いておきます。 プロフィール画像を取得するための Twitter API プロフィール画像を…

JavaScript におけるクラスベースの継承方法色々

JavaScript Patterns: Build Better Applications with Coding and Design Patterns作者: Stoyan Stefanov出版社/メーカー: O'Reilly Media発売日: 2010/10/01メディア: ペーパーバック購入: 2人 クリック: 79回この商品を含むブログ (5件) を見る先日、Java…

告知: 東日本大震災チャリティ CD / ブック企画

3 月 11 日に発生した 2011 年東北地方太平洋沖地震により多くの被害が発生したこと、心痛みます。 お亡くなりになられた方のご冥福をお祈り申し上げますとともに、行方不明の方が早期に発見され、被災者の方々が一日も早く安息を取り戻すことを願っておりま…

ECMA-262 5th edition で導入された Object.defineProperty を使い、属性を指定してプロパティを定義する

ECMAScript *1 において、プロパティとは名前と値のペアを意味します。 より詳しく言うと、名前が付けられたプロパティは、その状態を表す属性 (Property Attribute) *2 の集合を値として持っています。ECMA-262 5th edition では、この属性の値を指定してプ…

JavaScript に新しく導入された accessor property について

ECMAScript の 5th edition では、新しく accessor property (アクセサプロパティ) というものが導入されました。 本記事は、この accessor property について説明します。 accessor property に対応している JavaScript 処理系はまだ多くないと思いますが、…

JavaScript におけるクラスの作成と継承

JavaScript はプロトタイプベースのオブジェクト指向言語であり、クラスという概念を持っていない *1、というのはよく言われることですが、new 演算子とコンストラクタとプロトタイプを使うことでクラスのようなものを作ってインスタンス化することが可能で…

書評: 『JavaScript: The Good Parts ― 「良いパーツ」 によるベストプラクティス』 Douglas Crockford 著, 水野 貴明 訳

JavaScript: The Good Parts ―「良いパーツ」によるベストプラクティス作者: Douglas Crockford,水野貴明出版社/メーカー: オライリージャパン発売日: 2008/12/22メディア: 大型本購入: 94人 クリック: 1,643回この商品を含むブログ (190件) を見るAmazon.co…

JavaScript で OAuth 認証を行う方法

最近、twitter クライアントを Firefox 拡張機能として作ったりしているのですが、twitter では認証方式として OAuth が採用されているため、JavaScript で OAuth 認証を行う必要があります。 ここでは、JavaScript の OAuth ライブラリを用いて OAuth 認証…

内容サイズよりも大きな実サイズを持つ VirtualBox の仮想 HDD のサイズを小さくする方法

仮想マシン VirtualBox がいつの間にやらバージョン 4 になっていますね! VirtualBox 公式サイト それはともかく、私の環境において VirtualBox の仮想 HDD (ハードディスクドライブ) の実サイズ (ホスト OS 上の VDI ファイルのサイズ) が内容サイズ (ゲス…

Ruby にて文字と Unicode コードポイントの相互変換を行う

Unicode のコードポイントを指定して文字を得たり、逆にある文字のコードポイントを調べたり、ということをする機会は結構多いと思います。 が、Ruby でそれをやる方法をぐぐってもあまり上位に情報が出てこないなー、と思ったので簡単にまとめておきます。 …

Firefox の拡張機能で全てのウィンドウで共通の 1 つの処理を行う (または異なるウィンドウ間で情報の共有を行う)

Firefox の拡張機能の話。 バックグラウンドで行うべき何らかの処理 *1 があるとします。 以下のように load イベントを捕捉してその処理を起動すると、新しくウィンドウ ((ここでいうウィンドウとは、JavaScript のグローバルオブジェクト (window) を新た…

nsIProcess.init 実行時に MacOS X で NS_ERROR_FAILURE が発生する問題

自作の Firefox 拡張機能 *1 の互換性の報告の中に 「MacOS X Snow Leopard において nsIProcess.init が失敗する (例外が発生する)」 というものがあったのでちょっと調べてみました。 具体的な例外のメッセージは以下のとおり。Component returned failure…

『Ruby ベストプラクティス ―― プロフェッショナルによるコードとテクニック』 Gregory Brown 著, 高橋 征義 監訳, 笹井 崇司 訳

Rubyベストプラクティス -プロフェッショナルによるコードとテクニック作者: Gregory Brown,高橋征義,笹井崇司出版社/メーカー: オライリージャパン発売日: 2010/03/26メディア: 大型本購入: 9人 クリック: 307回この商品を含むブログ (47件) を見るこれまで…

JavaScript の this キーワードは何を指すのか - コールバック関数内では this を使ってはいけない

本記事では、関数呼び出し (Function Call) の際の this キーワードの値の決定され方について説明していますが、より全般的な this キーワードの決まり方について別の記事を書きました。 合わせて参照してください: JavaScript の this キーワードに結びつけ…

Ubuntu に RVM をインストールして Ruby のバージョン管理を行う

Ruby には多くの実装があります。 リファレンス実装 (CRuby) としては Ruby 1.8 系 (MRI) と 1.9 系 (YARV) の 2 つが現役で使われていますし、Java で書かれた実装である JRuby や .Net で動く IronRuby などの別実装もあります。 最近では Rubinius が注目…

スマートフォンでも見やすい web ページを作るために media queries を使うという選択

最近スマートフォンを使って web ブラウジングしていて気になることがあります。 それは、幅固定の web ページや複数カラムの web ページが非常にみにくい ということ。 当然ながらスマートフォンの画面の横幅は狭いため、PC 用に作られた幅固定や複数カラム…

CSS の display: table-cell を使って画面中央に要素を配置する

なんらかの要素を画面の中央に配置したい、ということはしばしばあります。 水平方向 (横方向) の中央揃えは CSS の text-align: center を使ったり、ブロック要素ならば margin: auto を使ったりして簡単に実現できますが、垂直方向 (縦方向) の中央揃えは…

Firefox 4 にてコンテキストメニューを開く際に右クリックしたノードを取得する方法

Firefox の拡張機能 (アドオンの一種) の開発をして、コンテキストメニューに項目を追加し、コンテキストメニューからいろいろと操作をできるようにすることがあります。 コンテキストメニューを変更したり、イベントを取得したりする方法については次のペー…

Android のアプリ開発環境と IS01 での実機テスト環境を構築

せっかく IS01 を買ったので Android アプリの開発環境をインストールして、IS01 での実機テストもやってみました。 開発環境、および IS01 の実機テスト環境の構築の流れを簡単にまとめておきます。 Android アプリ開発環境の構築 Android アプリの開発環境…

Android 端末 IS01 を安く入手して運用する方法

前々から Android 端末が欲しかったので、安いと巷で噂になっている SHARP 製の Android 端末 IS01 を購入しました。携帯電話に類するものの契約をしたのは今回が初めてだったので、自分としてはちょっと失敗した部分もありました (この記事に書いてあるよう…

応用情報技術者試験の勉強法 (主に電気系の学生向け)

2010 年度秋期の応用情報技術者試験 (応用情報) を受験してきました。 自己採点したところ、午前、午後ともに 9 割程度は取れてそうです。あんまり役に立たないかもしれませんが、どういう風に勉強したのかを電気系の学生向けに書いておきます。 試験内容 応…

Apache 2 で SuexecUserGroup ディレクティブを使うとエラーが発生する問題

問題 Apache 2 の設定ファイルに SuexecUserGroup ディレクティブを使用するように記述し、Apache を再起動すると次のようなエラーメッセージが表示されるというもの。username@hostname:~$ sudo service apache2 restart * Restarting web server apache2 S…

Windows の C で Guarded Suspension パターンを実現する (条件変数を実装する)

マルチスレッドプログラミングをしているときに、「ある条件が満たされているかどうか調べ、満たされていなければ条件が満たされるまで待機する」 という処理が必要になることがあります。 このような処理はパターン化されており、『増補改訂版 Java言語で学…

『増補改訂版 Java 言語で学ぶデザインパターン入門 マルチスレッド編』 結城 浩 著

増補改訂版 Java言語で学ぶデザインパターン入門 マルチスレッド編作者: 結城浩出版社/メーカー: ソフトバンククリエイティブ発売日: 2006/03/21メディア: 大型本購入: 15人 クリック: 287回この商品を含むブログ (206件) を見るマルチスレッドの基本を勉強…

『プログラミング言語 Ruby』 まつもと ゆきひろ, David Flanagan 著, 卜部 昌平 監訳, 長尾 高弘 訳

プログラミング言語 Ruby作者: まつもとゆきひろ,David Flanagan,卜部昌平(監訳),長尾高弘出版社/メーカー: オライリージャパン発売日: 2009/01/26メディア: 大型本購入: 21人 クリック: 356回この商品を含むブログ (129件) を見る『初めてのRuby』 (Yugui …

Ruby の Proc オブジェクトと Method オブジェクトの違い (proc, lambda, ブロック, メソッドについて)

プログラミング言語 Ruby作者: まつもとゆきひろ,David Flanagan,卜部昌平(監訳),長尾高弘出版社/メーカー: オライリージャパン発売日: 2009/01/26メディア: 大型本購入: 21人 クリック: 356回この商品を含むブログ (129件) を見るRuby には、手続きを表すオ…

Ruby でのイテレータを使った繰り返し #2

プログラミング言語 Ruby作者: まつもとゆきひろ,David Flanagan,卜部昌平(監訳),長尾高弘出版社/メーカー: オライリージャパン発売日: 2009/01/26メディア: 大型本購入: 21人 クリック: 356回この商品を含むブログ (129件) を見る前回 (#1) に引き続き、イ…

Ruby でのイテレータを使った繰り返し #1

プログラミング言語 Ruby作者: まつもとゆきひろ,David Flanagan,卜部昌平(監訳),長尾高弘出版社/メーカー: オライリージャパン発売日: 2009/01/26メディア: 大型本購入: 21人 クリック: 356回この商品を含むブログ (129件) を見る『プログラミング言語 Ruby…