2009-01-01から1ヶ月間の記事一覧

n以下の素数のリストを作る

http://code.nanigac.com/source/view/709 def primeList num return [] if num < 2 arr = (2..num).to_a primes = [] begin primes << (p = arr.shift) arr.reject!{|i| i%p == 0} end while p**2 < arr.last primes + arr end puts primeList(100) ほんと…

正規表現の先読み、後読みアサーション

ってのを使ったらアルファベットと数字を簡単に分割できるかなと思ったんだけど、 んー、イマイチ。 $_="ab12cde3f"; s/(?<=[a-z])(?=\d)|(?<=\d)(?=[a-z])/-/g; print "$_\n"; ## ab-12-cde-3-f でもこれもなぁ・・・ $_="ab12cde3f"; s/([a-z])(\d)/$1-$2/…

ツリー走査プログラム

テキトウな質問にテキトウに答えた。 http://code.nanigac.com/forum/view/402 %tree = (A => ['B','G'], B => ['C', 'E'], C => ['D'], E => ['F'], G => ['H'], H => ['I','J'], J => ['K'], ); &search('A'); sub search { my @stack = @_; my @childs = …

YukiWikiMiniのコードを読んでみよう

Wikiってあんまりちゃんと触ったことないなぁ・・・ というわけではてなの人や多くのWiki制作者に多大な影響を与えたYukiWikiのコードを読んでみよう。 http://www.hyuki.com/yukiwiki/ まずはminiから・・・ 解凍してみる。ファイルは4つしかない。 [mikeda…

ログ監視スクリプト

syslog-ngからこんな感じに起動してエラー発生時に指定の処理を行うスクリプトを書いた。 destination d_log_handle { program("cd /home/mikeda/bin;./log_handle.pl match_list"); }; log { source(s_sys); destination(d_log_handle); }; 仕様は ・エラー…

不明な正規表現で後方参照があるかどうか

正規表現をリストコンテキストで評価すると()で括った部分の配列が取れる。 gオプションも使うとさらに便利。

Perlメモをメモ

テックウェブという会社の取締役さんのPerlに関するメモ書き。 Perlメモ 僕の癖が強いものもありますがご容赦を。 たしかにww トリッキーで楽しいコードがいっぱいです。 いくつか紹介 リストシャッフル sub Shuffle{ BEGIN{srand} my @OUT; push @OUT,splic…

最近読んだ本

スーパーコンピューターを20万円で創る (集英社新書)作者: 伊藤智義出版社/メーカー: 集英社発売日: 2007/06/15メディア: 新書購入: 10人 クリック: 250回この商品を含むブログ (131件) を見るスーパーコンピュータといっても地球シミュレータみたいな(金銭…

おとなり日記探索

よしみ視点 IT中心ちょっとジャズ、学生時代からの日常とモノ思うことを綴った日記。 著者のキャラクタがまずおもしろいです。 「エンジニアなら、開発用・本番用・布教用の3つのiPhoneが必要です。」 ちょwwww 目のつけどころセンスもありそうでうらやまし…

Rails勉強会@東京第37回

完全な素人が突入してきました。 http://wiki.fdiary.net/rails/?RailsMeetingTokyo-0037 こんな感じに進行。 テーマを募る。 参加希望の多いものを実施。 前半 named_scopeについて Railsがはまるビジネス Railsでメール送信がうまくできません(参加) 後…

Perlで日本語メール送信(2)

id:mikeda:20090115をEncodeモジュールでかきなおし。 #! /usr/bin/perl use Encode; use utf8; $to = 'mikeda@sample.to'; $from = encode('MIME-Header-ISO_2022_JP', 'そうしんもと') . '<mikeda@sample.from>'; $subject = encode('MIME-Header-ISO_2022_JP', 'だいめい'); $</mikeda@sample.from>…

Perlで日本語メール送信(3)

前回のスクリプトを使ってメール送信フォームを作ったとする。 ヘッダの一部、例えば送信元にこんなアドレス渡されたらどうなるだろう。 mikeda@sample.to Bcc: aaa@aaa.jp, bbb@bbb.jp, ... プロバイダやキャリアのブラックリストに載ってしまうかも。 「se…

Perlで日本語メール送信(1)

基本となる考え方はこう。 ヘッダ JISコード + MIMEエンコード 本文 JISコード JISコードでスクリプトやWebページを書く人はいないだろうから文字コードの変換をやることになる。 よく見るのはjcode.plとmimew.plを用いるプログラム。 #! /usr/bin/perl requ…

iD

オサイフケータイ使い始めました。やっぱ便利です。 主に使ってるのは、 単純なクレジット機能 コンビニ マクドナルド 自販機 クーポン マクドナルド 自販機 小銭の出し入れがずいぶん減りました。会社の自販機がiD対応になったのもありがたいです。今までは…

指定コマンドを繰り返し、出力を監視するwatchコマンド

例えば非常に大きなディレクトリをtarで固めるとき、 進捗状況を確認するのにlsを手でうちまくる必要はない。watchを使えば指定コマンドの結果がデフォルト2秒ごとに更新表示される。 コマンド $ watch -d ls -l aaa.tgz 出力 Every 2.0s: ls -l aaa.tgz Tu…

macのPHPのstrptimeの挙動がおかしい

strptime関数を使って「20081122」のように区切りのない日付文字列を「%Y%m%d」というフォーマット文字列で解析したところ以下のような結果に。 ・Linux 2008年11月22日 ・mac 20081122年・・・? Linux [mikeda@cent ~]$ php -v PHP 5.2.6 (cli) (built: No…

最近読んだ本

ローマ人の物語〈17〉悪名高き皇帝たち(1) (新潮文庫)作者: 塩野七生出版社/メーカー: 新潮社発売日: 2005/08メディア: 文庫 クリック: 9回この商品を含むブログ (92件) を見るローマ人の物語〈18〉悪名高き皇帝たち(2) (新潮文庫) ローマ人の物語〈19〉悪名…

シェルでサイコロをふる

シェルスクリプトで乱数を得るにはRANDOM変数を参照しましょう。 $ expr $RANDOM % 6 + 1 3 使用例として毎秒5種類のメッセージのどれかをシスログ出力するスクリプト。 while :;do logger -p local5.debug $( sed -n `expr $RANDOM % 5 + 1`p <

MD5つかっちゃダメ?

SSL証明書の偽造に成功、ハッシュ関数の脆弱性を応用 US-CERTなどによると、MD5の弱点を用いた衝突攻撃の理論は1996年から指摘されていたが、現実的な攻撃方法は示されていなかった。しかし、2008年末のセキュリティカンファレンスで、信頼されている認証局…

基数変換

なんだかんだ言って(まだなんも言ってないが)dankogaiのプログラムはおもしろい。 javascript - 基数変換 とりあえず10進数値の基数変換プログラムをPerlで手抜き書き直し。 ($int, $base) = @ARGV; do{ push @chars, (0..9,'a'..'z')[$int % $base]; } wh…

マンガよみまくり

親父の趣味で実家には数千冊のマンガがあります。 今回の里帰りでも空き時間はずっとよんでました。 特におもしろかったのはこのへん。大使閣下の料理人 (1) (モーニングKC (631))作者: 西村ミツル,かわすみひろし出版社/メーカー: 講談社発売日: 1999/05メ…

あけました

おめでとうございます。 実家の香川に帰ってます。 ノートPC持ってきたもののネットは無理かなと思ってましたが、よくわからん無線LANみつかりました。 近所の家からは電波届かないだろうからアニキでしょう。 暗号化とかパスワードはもちろんなしです。 香…