タグ

2011年1月17日のブックマーク (9件)

  • FrePAN - I Use This Ranking

  • YouTube の動画を保存する - Articles Advent Calendar 2010 Hacker

    最近寒過ぎて家からでられない xaicron です。 みなさん YouTube の動画をダウンロードしたいですよね? そんな時は、WWW::YouTube::Download を使いましょう。 死ぬほど内部実装が変わってそのたびに泣ける YouTube ですが、いまだにくじけずにちゃんとメンテしていて、現役でダウンロードできます。 基編 use WWW::YouTube::Download; my $client = WWW::YouTube::Download->new; $client->download('http://www.youtube.com/watch?v=Ry6Rupm3kqM'); とすれば、「Ry6Rupm3kqM.mp4」という名前でダウンロードされます。 ファイル名を変えたい ファイル名はタイトルにしたいところかと思いますので、 my $params = $cl

    YouTube の動画を保存する - Articles Advent Calendar 2010 Hacker
    tzccinct
    tzccinct 2011/01/17
  • Text::MeCab(日本語変換系Acmeモジュールを支える偉大なモジュール) - Articles Advent Calendar 2010 Acme

    こんにちは、とみたトミールです。 Text::MeCabに依存しているモジュールリストがAcmeばかり、しかもかなりぼくのモジュールじゃないかwと気づいたので、この偉大な日語変換系Acmeモジュールを支えるText::MeCab様についてあらためて使い方を紹介してみます。 mecabとは mecabとは、日形態素解析を高速に、未知語もいい感じで補足してくれるよくできたライブラリです。作者の方はGoogleにいて(今も、たぶん。)エイプリルフールに日語お笑い系機能を出したりしています(それが職じゃないと思いますけど)。 インストールすると入るmecabコマンドから、コマンドラインではこんな感じに使います。mecabを起動してから、文を入力してエンターです。 $ mecab わたしはたわしをわたしました。 わたし 名詞,代名詞,一般,*,*,*,わたし,ワタシ,ワタシ は 助詞,係助

    Text::MeCab(日本語変換系Acmeモジュールを支える偉大なモジュール) - Articles Advent Calendar 2010 Acme
  • PerlIO::via で遊ぶ - JPerl advent calendar 2010 acme Track

    こんにちは、こんなにトミールを名乗っているのにいつまでたってもトミールの検索結果が抗ウイルス製剤のトミールです。今年も1位奪還は失敗しました。 さて、今日は Acme じゃないんだけど限りなく Acme ぽい PerlIO::via をご紹介しましょう。 役に立つ PerlIO 基礎知識(Acme に入る前に) perl の IO レイヤーは、実はいろいろできて便利です。一番便利なのは、:encoding() でしょう。 こういう、 use autodie; use Encode; open(my $fh, '<', 'file.txt'); while (my $line = Encode::decode('cp932', <$fh>)) { print Encode::encode('utf-8', $line); } 入力を cp932 エンコーディングで decode()、出力は

    PerlIO::via で遊ぶ - JPerl advent calendar 2010 acme Track
  • @INC にみる Perl のやりかたがいっぱい - Articles Advent Calendar 2010 Casual

    こんにちは。最近は PHP ばっかり書いている、永遠の Perl 初心者 hatyuki です。 とつぜん質問ですが、みなさんが最も多くみている Perl のエラーはなんですか? 自分の場合は、う〜ん。。。 Can't locate Hoge.pm in @INC (@INC contains: ~~~~ .). BEGIN failed--compilation aborted. かな?いつまでも進歩がないのが伺えますね! 皆さんご存知の通り、このエラーは "@INC" で指定されたディレクトリの中にモジュールが見つからなかった場合に発生するエラーです。つまり、モジュールをインストールし忘れているか、モジュールがどこに置いてあるのかを適切に設定していないか、の (およそ) どちらかですね。 さてさて、Casual Perler な皆さんは、このエラーを回避するためにどんな方法を使って @

    @INC にみる Perl のやりかたがいっぱい - Articles Advent Calendar 2010 Casual
  • “バカ・マジメ”をメンバーに入れるな!

    この法則は、チームメンバー人選に関する法則である。オペレーションズリサーチの初期の名著にあったと記憶している。 将兵は「リコウかバカ」「マジメとズボラ」に区分できるが、 “リコウ・ズボラ”は将校にせよ “リコウ・マジメ”は下士官にせよ “バカ・ズボラ”は炊事当番にせよ “バカ・マジメ”は絶対にメンバーに入れてはならない! というのだ。 情報システムの開発や保守にかかわる費用は、ブルックスの法則により、規模の指数乗に比例して増大する。それに対して、情報システムの効果はパレートの法則により、機能(規模)の対数に比例して増大するだけである。このことから、上図に示すように「利益=効果?費用」が最大になる規模が最適規模だと言える。 「ユーザーが必要なニーズを上げてこない」と嘆いたのは昔の話だ。現在では、ユーザーが多様な要求をしてくるし、IT部門はそれを至上命令として受け入れる傾向がある。そのために、

    “バカ・マジメ”をメンバーに入れるな!
  • HTML::Shakanでフォーム生成・バリデーションからモデル作成まで - JPerl advent calendar 2010 casual Track

    こんにちは!先日のYAPC2010ではhirataraさんと共にgihyo.jpでレポータをさせていただいたusuihiroです。 フォーム処理とかバリデーションっていつも面倒だなぁと思っていたのですが、今日はtokuhiromさんが作成されているHTML::Shakanが便利そうだったので試してみました。 HTML::Shakanはフォームタグの生成とバリデーションを行ってくれるモジュールです。 コンセプトは作者のtokuhiromさんが書かれているこちらを参照。 フォーム生成とバリデーション よくあるログインフォームだと、こんな感じでフォームの生成の入力値のバリデーションが行えます。 my $req = shift; # CGIとかPlack::Requestとか # フォームオブジェクトを作る my $form = HTML::Shakan->new( fields => [ Ema

    HTML::Shakanでフォーム生成・バリデーションからモデル作成まで - JPerl advent calendar 2010 casual Track
  • libmysqlclientを使うプログラムはset namesをutf8であっても使ってはいけない | へぼい日記

    mysql_enable_utf8 => 1 で DBIC::UTF8Columns 要らなくなるっぽいComments 上記の記事のブクマに set namesを直接実行しちゃうのはutf8であってもコンパイルオプションによっては問題起こるのでお勧めできない http://b.hatena.ne.jp/nihen/20090204#bookmark-11950629 ってことを書かせてもらったんだけど、この最後のset namesはutf8でも使っちゃダメという話を軽く説明します。 まずは、基的なことはMySQL5開拓団 – 日語処理の鉄則 / KLab株式会社を読んでください。mysqlの日語処理についてのドキュメントとしては、私は今一番信頼できるドキュメントだと思っています。 さて、上記のページの< 図3:クライアント側文字コードの指定チャート>を、勝手ながらすべて引用させてい

  • 正規表現によるDoS(Deny of Service)を調べてみた。 - akira_youの私見

    Wikileaksへの(or 周辺から)のDDoSとかで、DoSって単語をちょくちょく聞くのでふと気になって調べてみた。例えば、namazuを使って全文検索を行っているサイトで以下の検索を行うと、デフォルトで60秒間めいっぱいCPUに負荷を掛けることができます。この性質についてはnamazu公式サイトでも言及されてています。(http://www.namazu.org/security.html)/(.|.){200}/これは正規表現の性質によるもので、真面目に解釈すると任意文字Aにマッチするか、任意文字Bにマッチするかの連続が200回続く文字列を検索する事になります。ここではわかりやすいように最初の.をA、後の.をBと表現していますが、実際にはどちらも「任意文字」なので両方ともマッチします。両方ともマッチするので、コンピュータは馬鹿正直に両方の可能性があるものとして、色々試すことになりま

    tzccinct
    tzccinct 2011/01/17
    ReDoS