メメメモモ

プログラミング、筋トレ、ゲーム、etc

2010-01-01から1年間の記事一覧

Test::More、Test::Classを使ったテスト

Test::More、Test::Classをそれぞれ使ったテストについて調べました。 テストするモジュールは、下記のようなものです。 # 直線を表すモジュール package Line; use strict; use warnings; # 「ax + by + c = 0」の「a,b,c」部分が渡される sub new { my $cl…

jQueryメモ

jQueryの読み込み 公式サイトからDL jQuery: The Write Less, Do More, JavaScript Library <script type="text/javascript" src="./jquery-1.4.2.min.js"></script> googleから読み込み Google AJAX Libraries API - Google Code <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js">

javascriptメモ2

DOM操作 操作するHTML <html> <head> <title>hogehoge</title> </head> <body onload="init();"> <div> <h1>hogehoge</h1> <div id="test"> <p> fuga </p> <div> piyo </div> </div> </div> </body> </html> var element = document.getElementById('test'); alert('id: ' + element.innerHTML); /* id: <p> fuga </p> <div> piyo…</div>

クロージャの動作確認

クロージャというのは下記のようなものだと認識していました。 use strict; use warnings; sub create_closure { my $i = 0; my $c = sub { $i++; print $i, "\n"; }; return $c; } my $c1 = create_closure(); $c1->(); # 1 $c1->(); # 2 my $c2 = create_c…

Google Chrome Extensionのチュートリアル

Tutorial: Getting Started (Hello, World!) - Google Chrome Extensions - Google Code を参考にExtensionを作成しました。 一番分かりやすいチュートリアルなんじゃないかと思います。 チュートリアルでは、manifest.jsonとpopup.htmlのみを作成するシンプ…

Google Chrome ExtensionのAPIメモ

Browser Action ウィンドウの右上にアイコンを表示する。 アイコンをクリックすると下記のいずれかの動作をする バッヂ(短いテキスト)を表示 ポップアップを表示 イベントを取得 アイコンをクリックした時に、上記のどの動作を行なうのかをmanifest.jsonで設…

Enumerableモジュール

Enumerableモジュールは、繰り返し処理を行なうクラスのためのMixinです。 繰り返す処理とは例えば「sort」「map」「grep」などです。 これらの処理はeach関数を用いるので、EnumerableをMixinするときはeach関数を定義します。 class Vehicle attr_reader :…

Mixinについて

Mixinとは、オブジェクト指向の多重継承の欠点を最小にして利点を生かすテクニックです。 多重継承の欠点とは以下のようなものです。 構成が複雑になってしまう クラス群の優先順位が分からなくなる メソッドの名称が衝突してしまうことがある これらの欠点…

canvasとinterpreterパターンを使った描画

増補改訂版Java言語で学ぶデザインパターン入門作者: 結城浩出版社/メーカー: ソフトバンククリエイティブ発売日: 2004/06/19メディア: 大型本購入: 38人 クリック: 630回この商品を含むブログ (377件) を見る こちらのInterpreterパターンの章で紹介されて…

Rubyについて調べた事メモ

Rubyのソースコードを読んでいる途中で分からなかった事柄について調べたことのメモです。 attr_reader, attr_writer, attr_accessor メンバ変数のアクセサを作成します。 class Class1 attr_reader :a attr_writer :b attr_accessor :c end m = Class1.new(…

javascriptメモ

よく必要となる処理のメモです。 配列制御 // 配列の初期化 var list = [1, 2, 3]; var list = new Array(); var list = new Array(1, 2, 3); // 配列同士の結合 var new_list = list1.concat(list2); // 配列に要素を追加 list.push(1); list.unshift(1); /…

HTML5のcanvas入門メモ

canvas入門メモです。動作確認はgoogle chromeのみで行ないました。 何も無いcanvasを描く まずは、何も無いcanvasを描きます。 描くためにcanvasタグを使用します。 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja"> <head> </head></html>

個人的勉強用資料リンク

テーマ別で資料リンクを集めました。 また、参照できそうな雑誌の記事もピックアップしました。 google chromeの拡張作成 今すぐ使えるのはどれ?Google Chromeのオススメ拡張機能 - はてなブックマークニュース どういったものが作れるのか Google Chrome …

OpenIDについての概要メモ

概要 OpenIDは、ベンダーに依存しないURL/XRIを入力するだけで、ログインが可能にする認証技術標準のことです。 URL/XRIは、特定のベンダーに依存しないものです。 ユーザーは、自身のOpenID URLを入力するだけでログイン可能になります。 OpenIDには下記の…

標準モジュールと関数を用いてディレクトリ操作、ファイル操作

ディレクトリ操作系、ファイル操作系の処理プログラムメモです。 FIle::Path File::Spec Time::Piece stat unlink 保存ディレクトリが無い場合、作成してファイルを保存 File::Path ディレクトリ作成 FIle::Spec OS依存に対応したパス作成 use strict; use w…

cronで実行するプログラムでの「use lib」

任意のディレクトリにあるモジュールを読み込む際に、ディレクトリのパスを設定します。 例えば src/ main.pl lib/ Test.pm Test/ Class.pm という構成があり、main.plからTest.pmを読み込むときのコードは下記のようにします。 use lib 'lib'; use Test; my…

画像の扱いについて

画像のリサイズを行う必要があったので、関連のモジュールやソフトウフェアをインストールしました。 しかし、結構上手くいかないことがあったのでメモ。 環境は「MacOX Snow Leopard」です。 試したモジュールはこちらで紹介されていたものです。 Webから画…

プライベートシステム構築でやったことメモ

jQueryでスライドショー 画像ポップアウト・イメージギャラリー・スライドショー Simple Controls Gallery v1.3 Photo Slider Perlで画像の縦横サイズを取得 Perlで画像の縦横サイズを簡単に取得できるモジュール Image::Size - heavy monologue use Image::…

AnyEvent::Twitter::Streamでベイジアンフィルタの様子を見る

ツイートストリームをベイジアンフィルタでカテゴリ分けしていく様子を見てみました。 カテゴリとしてハッシュタグを利用します。 ハッシュタグが付いているツイートは、フィルタの学習テキストとなります。 ハッシュタグが付いていないツイートは、どのハッ…

ベイジアンフィルタの学習データをデータベースかStorableで管理

WEB+DB PRESS Vol.56作者: 赤松祐希,紀平拓男,牧大輔,西林孝,中島聡,中島拓,角田直行,はまちや2,舘野祐一,きしだなおき,和田裕介,伊藤直也,大沢和宏,塙与志夫,増井俊之,ミック,WEB+DB PRESS編集部出版社/メーカー: 技術評論社発売日: 2010/04/24メディア: 大…

GD::SecurityImageを使ってCAPTCHA画像を生成

GD::SecurityImageを使ってCAPTCHA画像を生成を試してみました。 GDが入っていなかったので、インストール手順から。 GDのインストール CPANモジュールを入れる前に下記のリンクからライブラリをDLしてきてインストールします。 http://www.libgd.org/Downlo…

AnyEventに関する写経用サンプルプログラムリンク集(Tatsumaki含む)

AnyEvent(Tatsumaki)の勉強で写経するのに良さそうなサンプルプログラムがあるページを集めました。 第13回 AnyEvent:イベント駆動モジュールの方言を吸収する(モダンPerlの世界へようこそ) Hello World的な短いサンプルプログラム AnyEventでechoサーバ - …

perlbrewを試してみた

カジュアルPerl #2 *1で、id:miyagawaさんが紹介していた「perlbrew」を試してみました。 「perlbrew」は、ホームディレクトリにperlをインストールするモジュールです。 複数のバージョンのperlをインストールして切り替えることもできます。 cpanも管理者…

AnyEvent::IRCを試す2

http://d.hatena.ne.jp/memememomo/20100416/1271371693 irc_privmsg => sub { my ( $self, $msg ) = @_; my $comment = $msg->{params}->[-1]; my $trans_url = 'http://ajax.googleapis.com/ajax/services/language/translate?v=1.0&q=' . uri_escape($com…

MapReduce::Liteで転置インデックスを作成

MapReduce::Liteを使って、転置インデックスを作成するプログラムを書きました。 docIDとかwordIDとかは無しで、ファイル名や単語をそのままキーとして使うようにしています。 全体的な流れとしては、 複数のファイルを読み込む(perl reverse_index.pl index…

MapReduce::Liteを使って形態素解析と単語ベクトル生成

形態素解析をMapで行ない、単語の登場回数をReduceで行なうプログラムを書きました。 MapReduceのフレームワークは、MapReduce::Liteを使用しました。 Mapperの定義 文章を受け取って、形態素解析を行ない「(単語,1)」のkey-valueペアを作成します。 形態素…

AnyEventを使ってProxyサーバを書いてみた・・・けど2

こっちで書いたプログラムをAnyEvent::Handleを使って書き直してみました。割と短くなりました。 use strict; use warnings; use AnyEvent; use AnyEvent::Socket; use AnyEvent::Handle; my $proxy_port = 8080; my %conn_table; my %request; my $cv = Any…

AnyEventでProxyサーバを書いてみた・・・けど

http://gist.github.com/378947 AnyEvent::Socketを使ってProxyサーバを書いてみました。 けど、ちょっとまだ動作が不安定。 AnyEventを理解しきれていない感がたっぷりです。 AnyEvent::HTTPを使って書き直す予定。 use strict; use warnings; use AnyEvent…

2010年5月号

Software Design (ソフトウェア デザイン) 2010年 05月号 [雑誌]出版社/メーカー: 技術評論社発売日: 2010/04/17メディア: 雑誌購入: 1人 クリック: 50回この商品を含むブログ (17件) を見る 購入しました。 いままで雑誌は「Web+DB press」のみを購読してい…

四則演算と変数の扱いができるlisp

変数を使った四則演算ができる簡単なlispインタプリタを書きました。 トークン解析と構文解析 lispは下記のように書きます。 (- 3 2) ;6 (- 3 (* 2 3)) ;-3 (setq a 3) プログラムはリストで記述されます。 リストとは'('と')'で囲まれた部分です。「(- 3 2)…