http://rinu.hatenablog.com/entry/2013/03/17/164151
面倒くさがりでとびきり優秀な外国人のプログラマが職場の環境を次々に自動化
していく話。何言ってるのか殆どわからなかったが、必要なときに役立つかも。
2013年3月23日土曜日
Perl RDBMS Programming
http://www.slideshare.net/karupanerura/perl-rdbms-programmingdbidbixsunny
DBIの使い方をわかりやすくスライドで説明している。
$dbh->select***みたいなの、どういうデータ構造で返ってくるのか忘れたりするので、
構造まで書いてくれるのはわかりやすい。
DBIの使い方をわかりやすくスライドで説明している。
$dbh->select***みたいなの、どういうデータ構造で返ってくるのか忘れたりするので、
構造まで書いてくれるのはわかりやすい。
2013年3月13日水曜日
jqueryについて
http://ascii.jp/elem/000/000/498/498710/
<script src="//ajax.googleapis.com/ajax/ libs/jquery/1.9.1/jquery.min.js"></script>
をページに追加するとそれだけでどこでもjqueryが使えるようになるとのこと。
要素の指定は
$("セレクター")
で行う。とりあえず
$(要素名)
$(#id名)
$(.クラス名)
の3つの指定の仕方を覚えておくと便利そう。
例:
$("#main img"):idがmainのimg要素
$(p#first):p要素のidがfirst。つまり<p id="first">hogehoge</p>のこと。
要素の変更は
$("セレクター").jQueryの命令
で行う。
例:
$("p#first").html(<strong>変更後</strong>)
で<p id="first">変更前</p>が<p id="first">変更後</p>になる。
$("セレクター").イベント(function(){
イベントの処理
})
例:
$("button").click(function(){
$("img").attr("src","sea.jpg");
});
<script src="//ajax.googleapis.com/ajax/ libs/jquery/1.9.1/jquery.min.js"></script>
をページに追加するとそれだけでどこでもjqueryが使えるようになるとのこと。
要素の指定は
$("セレクター")
で行う。とりあえず
$(要素名)
$(#id名)
$(.クラス名)
の3つの指定の仕方を覚えておくと便利そう。
例:
$("#main img"):idがmainのimg要素
$(p#first):p要素のidがfirst。つまり<p id="first">hogehoge</p>のこと。
要素の変更は
$("セレクター").jQueryの命令
で行う。
例:
$("p#first").html(<strong>変更後</strong>)
で<p id="first">変更前</p>が<p id="first">変更後</p>になる。
$("セレクター").イベント(function(){
イベントの処理
})
例:
$("button").click(function(){
$("img").attr("src","sea.jpg");
});
javascriptのイベントリスナーに関して
http://inputxoutput.com/riddle-js-code-reading/
上の記事がちょっとわかりやすかった。
ボタンクリックとかの「イベント」が起きた時にそれを感知してなにかやるという
モジュールということかな。普段は何もしない人。
上の記事がちょっとわかりやすかった。
ボタンクリックとかの「イベント」が起きた時にそれを感知してなにかやるという
モジュールということかな。普段は何もしない人。
javascriptのオブジェクト指向のプロトタイプベースはクラスベースと何が違うのか?
http://codezine.jp/article/detail/222
オブジェクト指向といえばクラスベースのものが多くて、基本的に設計図としての
クラスがあって、それをnewして実体(オブジェクト)としてのインスタンスを生成する
という理解をしていたので、javascriptがプロトタイプベースだということは耳にした
ことはあっても何が違うのか特に知らなかった。
上記のソースを読んだ理解では、クラスベースのものはオブジェクトのプロパティ
やメソッドを勝手に足すことはできないが、プロトタイプベースのものはそれが
できるのが大きな違いのようだ。
プロトタイプってのはクラスと違って「オブジェクト」であって、それにどんどん
他の条件を足していって他のオブジェクトを生成していくという理解。
オブジェクト指向といえばクラスベースのものが多くて、基本的に設計図としての
クラスがあって、それをnewして実体(オブジェクト)としてのインスタンスを生成する
という理解をしていたので、javascriptがプロトタイプベースだということは耳にした
ことはあっても何が違うのか特に知らなかった。
上記のソースを読んだ理解では、クラスベースのものはオブジェクトのプロパティ
やメソッドを勝手に足すことはできないが、プロトタイプベースのものはそれが
できるのが大きな違いのようだ。
プロトタイプってのはクラスと違って「オブジェクト」であって、それにどんどん
他の条件を足していって他のオブジェクトを生成していくという理解。
2013年2月25日月曜日
Perlワンライナーの中でシングルクオートを使いたいとき
http://sonic64.com/2003-05-27.html
perl -e 'print "I'm a student.\n"'
みたいにワンライナーの中でシングルクオートを使おうとするとエラーが出てしまう問題の
対処方法について。
結論としては、シングルクオートを「\x27」のアスキーコードで表現してやればいい。
以下のコードならうまくいく。
$ perl -e 'print "I\x27m a student.\n"'
I'm a student.
perl -e 'print "I'm a student.\n"'
みたいにワンライナーの中でシングルクオートを使おうとするとエラーが出てしまう問題の
対処方法について。
結論としては、シングルクオートを「\x27」のアスキーコードで表現してやればいい。
以下のコードならうまくいく。
$ perl -e 'print "I\x27m a student.\n"'
I'm a student.
2013年2月20日水曜日
PerlのCrypt::OpenSSL::RSAの使い方
CPANは
http://search.cpan.org/~perler/Crypt-OpenSSL-RSA-0.28/RSA.pm
にあるのだが、使い方がわからず苦労した。
一言でいうと公開鍵と秘密鍵を使った暗号化、復号化をやるモジュール。
とりあえず、公開鍵、秘密鍵を作って、平文を暗号化、暗号化された文を復号化、
秘密鍵でシグネチャーを作って公開鍵からシグネチャーを検証という流れで
ワンライナーを書いてみる。
perl -MData::Dumper -MCrypt::OpenSSL::RSA -e '
my $rsa = Crypt::OpenSSL::RSA->generate_key(1024);
print "\nprivate key is:\n", $rsa->get_private_key_string();
print "\npublic key is:\n", $rsa->get_public_key_string();
my $rsa_priv = Crypt::OpenSSL::RSA->new_private_key($rsa->get_private_key_string());
my $rsa_pub = Crypt::OpenSSL::RSA->new_public_key($rsa->get_public_key_string());
my $plaintext = "hogehoge";
my $ciphertext = $rsa_pub->encrypt($plaintext);
print "\nplaintext:\n", $plaintext;
print "\nciphertext:\n", $ciphertext;
my $decrypttext = $rsa_priv->decrypt($ciphertext);
print "\ndecrypttext:\n", $decrypttext;
my $signature = $rsa_priv->sign($plaintext);
print "\nSigned correctly\n" if ($rsa_pub->verify($plaintext, $signature));
'
出力結果が下記。これで大体何やっているのかイメージできるはず。
verifyは$rsa_pub,$rsa_priv,$rsaのいずれを使ってもできる。
private key is:
-----BEGIN RSA PRIVATE KEY-----
MIICXQIBAAKBgQC8/wOauGk2C5F8bNjU5F8nDK0TWuZxKex8a2e1+GPigZ0O2O+0
Cq0mYFaAFpl0rk3N2wfy76A4pW+gngtcWzGubwgcCAmemlPwFMhR6OUjZ14Ej8is
7GLi3kvJeuRTGSJqjIqC5+qGqX/Ms8rBp/ToZdhkwijJZJpSZaJiYz3FrQIDAQAB
AoGABybfTAuOb60gZET6L5Q0xZWFNyZJch7UBCFMW2Z64SdmehlbeMSuqLUckNxK
ElBGQXP4aQkIVxxrjPhuFaCd0JtOdVz5TMSs/9tNSCnBDxliziBAtGWjcQorECv8
ah6KJib3+MmmtP/wBs8dt3dpt3w3VS7Oc6M5x0ND9ZfN0gECQQDvEwAJX/qcdAru
Xb7XxnsYjSO0OHCEzjfEJDPrqHqwDNcyGOTYdLhrgd2ZyH/Elpifv9W0iKEYegzf
P1BwtG9VAkEAymBlIyLatDICBa3u1LWxI61rRwn5r3FLjit4wSJw4TYfoAFVOM16
+cHHjSeQotVXa2EV2gzpXOiviIgkjW+M+QJAREc74nGL5HTrzkntwDhKXaepg8X+
tJ8kpBrmzS3v5Cm2p/MeIIetR97uCAaQHvgXnMAv64B96bypwnSVp6qQhQJBAIHC
fvahcYOakOtdU8Z1XUgX+LIK9lqElUJqIzoKwD/W+T4ZvK/4KIKdujqKhNWzXyMN
k/pEzxhwZaRwTqeVP9kCQQDcHaLAVc7GHFI7PEiWZi2QG8f8jzEkkaZk/qDpKzji
7H44HfLPK/3Zey1AjOQscPE4BM1urBOkN/OfA4GvI7nq
-----END RSA PRIVATE KEY-----
public kye is:
-----BEGIN RSA PUBLIC KEY-----
MIGJAoGBALz/A5q4aTYLkXxs2NTkXycMrRNa5nEp7HxrZ7X4Y+KBnQ7Y77QKrSZg
VoAWmXSuTc3bB/LvoDilb6CeC1xbMa5vCBwICZ6aU/AUyFHo5SNnXgSPyKzsYuLe
S8l65FMZImqMioLn6oapf8yzysGn9Ohl2GTCKMlkmlJlomJjPcWtAgMBAAE=
-----END RSA PUBLIC KEY-----
plaintext:
hogehoge
ciphertext:
8ۺğ;Z~A4u&)|){.+%j;6ǏF8T)
Jטo]юKzߺ>h݈.
decrypttext:
hogehoge
Signed correctly
http://search.cpan.org/~perler/Crypt-OpenSSL-RSA-0.28/RSA.pm
にあるのだが、使い方がわからず苦労した。
一言でいうと公開鍵と秘密鍵を使った暗号化、復号化をやるモジュール。
とりあえず、公開鍵、秘密鍵を作って、平文を暗号化、暗号化された文を復号化、
秘密鍵でシグネチャーを作って公開鍵からシグネチャーを検証という流れで
ワンライナーを書いてみる。
perl -MData::Dumper -MCrypt::OpenSSL::RSA -e '
my $rsa = Crypt::OpenSSL::RSA->generate_key(1024);
print "\nprivate key is:\n", $rsa->get_private_key_string();
print "\npublic key is:\n", $rsa->get_public_key_string();
my $rsa_priv = Crypt::OpenSSL::RSA->new_private_key($rsa->get_private_key_string());
my $rsa_pub = Crypt::OpenSSL::RSA->new_public_key($rsa->get_public_key_string());
my $plaintext = "hogehoge";
my $ciphertext = $rsa_pub->encrypt($plaintext);
print "\nplaintext:\n", $plaintext;
print "\nciphertext:\n", $ciphertext;
my $decrypttext = $rsa_priv->decrypt($ciphertext);
print "\ndecrypttext:\n", $decrypttext;
my $signature = $rsa_priv->sign($plaintext);
print "\nSigned correctly\n" if ($rsa_pub->verify($plaintext, $signature));
'
出力結果が下記。これで大体何やっているのかイメージできるはず。
verifyは$rsa_pub,$rsa_priv,$rsaのいずれを使ってもできる。
private key is:
-----BEGIN RSA PRIVATE KEY-----
MIICXQIBAAKBgQC8/wOauGk2C5F8bNjU5F8nDK0TWuZxKex8a2e1+GPigZ0O2O+0
Cq0mYFaAFpl0rk3N2wfy76A4pW+gngtcWzGubwgcCAmemlPwFMhR6OUjZ14Ej8is
7GLi3kvJeuRTGSJqjIqC5+qGqX/Ms8rBp/ToZdhkwijJZJpSZaJiYz3FrQIDAQAB
AoGABybfTAuOb60gZET6L5Q0xZWFNyZJch7UBCFMW2Z64SdmehlbeMSuqLUckNxK
ElBGQXP4aQkIVxxrjPhuFaCd0JtOdVz5TMSs/9tNSCnBDxliziBAtGWjcQorECv8
ah6KJib3+MmmtP/wBs8dt3dpt3w3VS7Oc6M5x0ND9ZfN0gECQQDvEwAJX/qcdAru
Xb7XxnsYjSO0OHCEzjfEJDPrqHqwDNcyGOTYdLhrgd2ZyH/Elpifv9W0iKEYegzf
P1BwtG9VAkEAymBlIyLatDICBa3u1LWxI61rRwn5r3FLjit4wSJw4TYfoAFVOM16
+cHHjSeQotVXa2EV2gzpXOiviIgkjW+M+QJAREc74nGL5HTrzkntwDhKXaepg8X+
tJ8kpBrmzS3v5Cm2p/MeIIetR97uCAaQHvgXnMAv64B96bypwnSVp6qQhQJBAIHC
fvahcYOakOtdU8Z1XUgX+LIK9lqElUJqIzoKwD/W+T4ZvK/4KIKdujqKhNWzXyMN
k/pEzxhwZaRwTqeVP9kCQQDcHaLAVc7GHFI7PEiWZi2QG8f8jzEkkaZk/qDpKzji
7H44HfLPK/3Zey1AjOQscPE4BM1urBOkN/OfA4GvI7nq
-----END RSA PRIVATE KEY-----
public kye is:
-----BEGIN RSA PUBLIC KEY-----
MIGJAoGBALz/A5q4aTYLkXxs2NTkXycMrRNa5nEp7HxrZ7X4Y+KBnQ7Y77QKrSZg
VoAWmXSuTc3bB/LvoDilb6CeC1xbMa5vCBwICZ6aU/AUyFHo5SNnXgSPyKzsYuLe
S8l65FMZImqMioLn6oapf8yzysGn9Ohl2GTCKMlkmlJlomJjPcWtAgMBAAE=
-----END RSA PUBLIC KEY-----
plaintext:
hogehoge
ciphertext:
8ۺğ;Z~A4u&)|){.+%j;6ǏF8T)
Jטo]юKzߺ>h݈.
decrypttext:
hogehoge
Signed correctly
登録:
投稿 (Atom)