タグ

Perlに関するzegenvsのブックマーク (73)

  • ゆーすけべー日記

    サキとは彼女の自宅近く、湘南台駅前のスーパーマーケットで待ち合わせをした。彼女は自転車で後から追いつくと言い、僕は大きなコインパーキングへ車を停めた。煙草を一吸ってからスーパーマーケットへ向かうと、ひっきりなしに主婦的な女性かおばあちゃんが入り口を出たり入ったりしていた。時刻は午後5時になる。時計から目を上げると、待たせちゃったわねと大して悪びれてない様子でサキが手ぶらでやってきた。 お礼に料理を作るとはいえ、サキの家には材が十分足りていないらしく、こうしてスーパーマーケットに寄ることになった。サキは野菜コーナーから精肉コーナーまで、まるで優秀なカーナビに導かれるように無駄なく点検していった。欲しい材があると、2秒間程度それらを凝視し、一度手に取ったじゃがいもやら豚肉やらを迷うことなく僕が持っているカゴに放り込んだ。最後にアルコール飲料が冷やされている棚の前へ行くと、私が飲むからとチ

    ゆーすけべー日記
  • http://devolio.com/blog/archives/34-8-Practical-PHP-Regular-Expressions.html

  • WWW::NicoVideo - ニコニコ動画を3倍楽しむためのPerlモジュール

    NAME SYNOPSIS DESCRIPTION METHOD new() ranking() entry() tag() save_flv() SEE ALSO AUTHOR COPYRIGHT NAME WWW::NicoVideo - ニコニコ動画を3倍楽しむためのPerlモジュール 2007/8/1現在、ニコニコ動画のページ変更によりエラーが発生しています。近日修正予定 SYNOPSIS use WWW::NicoVideo; my $n = new WWW::NicoVideo( 'mail', 'password'); # ランキング情報を取得する my $data = $n->ranking( span => 'weekly', type => 'mylist', all => 1 ); # 任意のタグ一覧情報を取得する my $data = $n->tag( word =

  • Vim を 256 色で使いたい

    Vim を 256 色で使いたい 2007-06-30-2: [Vim][Solaris] 以前ターミナルを 256 色にしたのですが,せっかくなので Vim も 256 色で使いたいと思って以下のようなスクリプトを書きました. #!/usr/bin/env perl use strict; use warnings; my $fg = "\x1b[38;5;"; my $bg = "\x1b[48;5;"; my $rs = "\x1b[0m"; my $color = 0; for (my $row = 0; $row < 32; ++$row) { for (my $col = 0; $col < 8; ++$col) { print get_color($color); $color++; } print "\n"; } sub get_color { my ($color) =

  • spiritlooseのはてなダイアリー - Vimで括弧/クォートを自動補完

    人がコード書いてるところを見ると、閉じ括弧を先に入力してひとつ戻ったり、あとで入力するつもりで閉じ忘れていたりと、無駄な苦労だなぁとおもうことがよくある。 Vimで以下の設定をしていると括弧やクォートを入力したときに自動で閉じてくれる。 Eclipseとか、VS.NETとかの一般的なIDEの動作に近い感じ。 inoremap { {}<LEFT> inoremap [ []<LEFT> inoremap ( ()<LEFT> inoremap " ""<LEFT> inoremap ' ''<LEFT> vnoremap { "zdi^V{<C-R>z}<ESC> vnoremap [ "zdi^V[<C-R>z]<ESC> vnoremap ( "zdi^V(<C-R>z)<ESC> vnoremap " "zdi^V"<C-R>z^V"<ESC> vnoremap ' "zdi'<C-

    spiritlooseのはてなダイアリー - Vimで括弧/クォートを自動補完
  • PHPがどうにも好きになれない理由 - Unknown::Programming

    仕事PerlPHPも使うんだけど、どうにもPHPが好きになれない。 いったいなんでだろうか。先にPerlから入ったもんだから後から入ったPHPに対して不満があるのかな? ま、とにかく両方やっててPHPが微妙だなぁと思う部分を列挙してみよう。 ただPHPに関してそれほど詳しくないので間違っている部分もあるかもしれません。 あ、ちなみにここでいうPHPってのはPHP4(PHP4.4.1)のことです。 変数のtypeミス(strict 'vars') これが一番痛い。 まさしくPerlでstrictを使わずに実装してるような、そう、まるで先祖帰りしてるような感覚になってしまうので当につらい。 変数のスコープ 変数のスコープが関数単位でしか発生しないのが痛い。 これによりif条件の場合のみとかループ中でしか使わない変数とかを定義できない。 つまり、変数の存在範囲を細かく設定できないのだ。 配

    PHPがどうにも好きになれない理由 - Unknown::Programming
  • PHP の array_multisort は Schwartzian Transform 向きかな

    PHP の array_multisort は Schwartzian Transform 向きかな 2007-11-07-3 [Programming] - PHP: array_multisort - Manual http://jp2.php.net/array_multisort - PHPのarray_multisort関数が激便利だったので紹介 : akiyan.com http://www.akiyan.com/blog/archives/2007/10/phparray_multis.html PHP の array_multisort 関数というのが紹介されています。 ある配列をソートするときに、別な配列の値を使ってソートする、というものですね。 Perl のシュウォーツ変換、シュワルツ変換 (Schwartzian Transform) [2003-07-11-2]っぽ

    PHP の array_multisort は Schwartzian Transform 向きかな
  • PHPにおける文字列比較の2a問題 - Unknown::Programming

    PHPの文字列比較に関しては古の時代から皆がいばら道を通っているので今更何か語ることも無いんだけどやっぱり良くハマっちゃうということで軽くメモを残しておく。 とりあえずは先人達の苦悩ということでこのあたりの記事は見ておいた方がいいだろう。 素晴らしき自動的な世界〜或いは「型のない」世界〜 - がるの健忘録 PHPでの入力値チェックのすり抜け 上記記事の方が名づけたと思われる(w)いわゆる「2a問題」というものについて書いていく。 この2a問題というのはもう一度再確認すると <?php $a = '2a'; $b = 2; if ( $a == $b ) { // ここを通る } という問題のことだ。 何故こうなるかは元記事やマニュアル等に詳しく書かれているが、カンタンに説明すると「2a」という文字列を数値評価すると「2」として扱われるということだ。 実はコレはPerlでもまったく同じ問題を

    PHPにおける文字列比較の2a問題 - Unknown::Programming
  • 値の検証を楽にしてくれるDataValidator_SimpleというPHPクラスを作った - Unknown::Programming

    これもだいぶ昔に作ったやつなんですが、処理とドキュメントをちょこちょこっと手直ししたので公開します。 →DataValidator_Simple-0.02.tar.gz いわゆるPerlのFormValidator::SimpleのPHP版と思ってもらって結構です。 使い方は至って簡単 <?php require_once 'DataValidator/Simple.class.php'; $valid =& new DataValidator_Simple(); // プラグインロードして・・・ $valid->load_plugin(array('Standard')); // チェックの定義をして・・・ $valid->add_check_table(array( 'name' , array('NOT_NULL',array('LENGTH',1,50)), 'mail' , ar

    値の検証を楽にしてくれるDataValidator_SimpleというPHPクラスを作った - Unknown::Programming
  • PHPでcamelize - Unknown::Programming

    前にPerl版書いたけど hoge_mugeをHogeMugeにする - Unknown::Programming それのPHP版です。 Perl版と同じくワンライナーで書いてみた。 <?php function camelize ($str) { return str_replace(' ','',ucwords(str_replace('_',' ',$str))); } function decamelize ($str) { return ltrim(preg_replace('/([A-Z])/e',"'_'.strtolower('$1')",$str),'_'); } ってかこーゆー処理のことをcamelizeっていうんだね、最近まで知らなかった。

    PHPでcamelize - Unknown::Programming
  • 配列からランダムで要素を抽出する - Unknown::Programming

    覚え書。 Perl版。 my @array = (0,1,2,3,4,5); my $value = splice @array, int rand @array , 1; PHP版。 <?php $array = array(0,1,2,3,4,5); $value = array_shift(array_splice($array,array_rand($array),1)); PHPのことだから一発で抽出できる関数あるもんだと思ってたけど無かったっぽい。 肝心なとこで関数無いんだよないつも・・・。 追記: ちょっと言葉足らずだったので補足。 配列からランダムで要素を”取得”したいわけではなく、”抽出”したいわけです。 つまり上記のソースを実行すると、 @array = (0,1,2,4,5); $value = 3; みたいな感じで元配列から抜き取るような結果になって欲しいと。 Li

    配列からランダムで要素を抽出する - Unknown::Programming
  • PerlとPHPのソート処理 - Unknown::Programming

    良く書き方を忘れがちなソート。 特にPerlPHP両方使ってるとPerlはこうだけど、PHPはどうだっけ?とかよくあるのでここらでまとめをしておく。 配列を文字列で昇順・降順ソート # 昇順 @sarray = sort @array; @sarray = sort { $a cmp $b } @array; # 降順 @sarray = sort { $b cmp $a } @array; Perlのsort関数はブロック表記を省略するとデフォルトで昇順ソートになります。 <?php // 昇順 sort( $array , SORT_STRING ); // 降順 rsort( $array , SORT_STRING ); PHPのsort関数は引数に渡された配列をソートする。 第二引数を指定しなくも動くには動くが、省略すると値に数値と文字が混在してるときにおかしくなるので明示的に

    PerlとPHPのソート処理 - Unknown::Programming
  • TMTOWTDIの謎を探る(調査報告:単純さと複雑さの関係とは?)

    イントロ : 調べようと思ったきっかけ Perlって他のコンピュータ言語よりもなんか複雑じゃない? 個人的にはC言語よりもスラスラ書けるようになるまでの時間が 長かったように思う。 それは、Perlの言語設計の哲学と関係があるんじゃないか? そういえば TMTOWTDIと関係がありそうだ。調べるてみると やっぱり関係ありそうだということになった。 TMTOWTDIというPerlのスローガンの質が世間で理解されているんだろうか? (少なくとも僕は、調べるまで質を知らなかった。) 調べて、自分なりの結果を発表してみよう。 違うと思った方は、つっこみお願いします。 結論 : スローガンTMTOWTDIの質って? TMTOWTDI=There's more than one way to do it 皆さん、TMTOWTDIがThere's more than one way to do i

  • 画像ファイルに PHP コードを埋め込む攻撃は既知の問題

    Last Updated on: 2015年9月10日国内外のメディアで「画像ファイルに攻撃用のPHPコードが含まれていた」と比較的大きく取り上げられています。しかし、この攻撃手法は古くから知られていた方法です。条件は多少厳しくなりますがPerl, Ruby, Pythonでも同様の攻撃は考えられます。PHPの場合は言語仕様的に他の言語に比べ攻撃が容易です。 典型的な攻撃のシナリオは次の通りです。 追記:Tokenizerを使った例に修正しました。 アバダなどの画像ファイルをアップロードできるサイトを探す ローカルファイルインクルードバグを探す 画像ファイルにサイトが利用している言語のコードを埋め込む 攻撃コードを含んだファイルを画像ファイルとしてアップロードする ローカルファイルインクルードバグを利用して攻撃コードを実行する PHPの場合、リモートインクルードバグを攻撃するための攻撃用コ

    画像ファイルに PHP コードを埋め込む攻撃は既知の問題
  • クロスサイトスクリプティング(XSS)とCSRFの違い早分かり - ockeghem(徳丸浩)の日記

    昨日の日記で、DK祭りで使われている脆弱性がXSSかCSRFかという問題になった。どうも、XSSとCSRFがごっちゃになっている人もいるように見受けるので、簡単な整理を試みたい。 XSSとCSRFには似た点がある。 どちらも「クロスサイト」という言葉が先頭につく なりすましのようなことが結果としてできる どちらも受動型攻撃である それに対して、もちろん違う点もある。専門家から見れば「似てるも何も、そもそも全然違うものですよ」となるのだろうが、現に混同している人がいるのだから紛らわしい点もあるのだろう。 私思うに、XSSとCSRFの決定的な違いは、以下の点ではないだろうか。 XSSは攻撃スクリプトがブラウザ上で動くが、CSRFはサーバー上で動く このため、XSSでできる悪いことは、すなわちJavaScriptでできることであって、攻撃対象のCookieを盗み出すことが典型例となる。一方、CS

    クロスサイトスクリプティング(XSS)とCSRFの違い早分かり - ockeghem(徳丸浩)の日記
  • Building Scalable Web Sites - The Flickr Way - naoyaのはてなダイアリー

    Building Scalable Web Sites: Building, Scaling, and Optimizing the Next Generation of Web Applications 作者: Cal Henderson出版社/メーカー: O'Reilly Media発売日: 2006/06/15メディア: ペーパーバック クリック: 26回この商品を含むブログ (20件) を見る 発売されました。なんかまた Amazon の発売日が変だな。再取得したら更新されました これはもう絶対読む。まだ Perl Hacks も読んでないんだけど。積ん読積ん読!! [あとで読む]

    Building Scalable Web Sites - The Flickr Way - naoyaのはてなダイアリー
  • PEG - 西尾泰和のはてなダイアリー

    あー。なんかトークン間のスペースを明示的に指定しないと行けない点をけなされるPEGだけど、それはトークンの区切り方が「一番メジャーな方法一つに決めうち」ではない、という逆の見方もできるんだ。 というのは、今見ていたPEGによるPEGの定義では、コメントや改行を区切りに含めていた。それもすごくシンプルでわかりやすく書ける。 Spacing <- (Space / Comment)* Comment <- ’#’ (!EndOfLine .)* EndOfLine Space <- ’ ’ / ’\t’ / EndOfLine EndOfLine <- ’\r\n’ / ’\n’ / ’\r’式を書いていて長くなってくると、適宜折り返してコメントをつけて見やすくしたくなるよね。そういうことが簡単にサポートできる。yaccとかでどうやってやるのかは僕は詳しくないけども、下のような式はRubyで-

    PEG - 西尾泰和のはてなダイアリー
  • CodeRepos::Share – Trac

    Powered by Trac 0.11 By Edgewall Software. Visit the Trac open source project at http://trac.edgewall.org/

  • Perl入門講座 - builder by ZDNet Japan

    今を知り、未来を見据える 培ってきたノウハウを最新技術へ対応させる レガシーシステムのモダン化実現への道 ネットワークもサービスとして使う いま企業ネットワークが受ける大きな制約 クラウドシフトで大きく変わる! 激変するビジネス環境の中でのDX モダンアプリケーション戦略への取り組みが 市場の競争力の源泉となる 体験から学んだ成功への知見 マネーフォワード×エム・フィールド対談 Fintechプラットフォーム開発の「鍵」 ともにDXを推進する コンテナ化されたワークロードを管理 継続的な価値を生みだす「協創」への挑戦 自社利用の知見・経験を顧客に提供 コンテナ活用を推進する日立製作所 VMware Tanzuを利用したモダナイズを伝授 大学、研究機関、製造業など いま目覚ましい躍進ぶりを見せるデルのHPC その背景と選ばれる理由にせまる エッジからハイブリッド環境まで 考えられる全てのイン

  • PHPで高速に携帯ゲートウェイのIPから携帯キャリアを判別する - グニャラくんのグニャグニャ備忘録@はてな

    [追記]id:hetimaに指摘された、32bitアーキテクチャでの問題を修正。大感謝。 携帯電話からのWebアクセスゲートウェイのIPアドレスから、 携帯キャリアを判別したい場合がある。 通常は、id:tokuhiromによる Net::CIDR::MobileJP(WWW::MobileCarrierJP)を使うといいと思う。 DSAS開発者の部屋:携帯ゲートウェイのIPアドレス帯更新を効率的に確認する方法 http://d.hatena.ne.jp/tokuhirom/20071207/1196989588 YAMLが出力されるので、さまざまな環境で利用ができるよ! 今回、PHPで携帯キャリアを判別したいと思ったんだけど、 PHPYAMLを読んでその中身をすべて検査するなんてやだいやだい! と沸き立つような強い衝動が。 というわけで、cidr-mobilejpというPythonスク

    PHPで高速に携帯ゲートウェイのIPから携帯キャリアを判別する - グニャラくんのグニャグニャ備忘録@はてな