タグ

perlに関するtokadaのブックマーク (71)

  • 三項演算子は左辺値にも使える - Craftworks Tech Blog - Branch

    $var = $bool ? $foo : $bar; という書き方はよく見ますが、 if ( $bool ) { $foo = $value; } else { $bar = $value; } 実は、こういう書き方も、 $bool ? $foo : $bar = $value; こう書くこともできます。 可読性とのトレードオフを考慮して使用してください。PBP の Damian 氏は非推奨派です。 LVALUE 属性のなせる業ですね。他に substr() も左辺値に使えます。 ちなみに、この機能はビルトイン関数以外にも Attribute を使って、サブルーチンやメソッドに自分でも実装できます。 詳しくは、perldoc perlsub を lvalue で検索してみてください。 http://perldoc.jp/docs/perl/5.10.0/perlsub.pod

    三項演算子は左辺値にも使える - Craftworks Tech Blog - Branch
  • PerlとRubyで省メモリなハッシュを使おう - mixi engineer blog

    サボっていた早朝ジョギング@駒沢公園を再開して2週間たち、やっと抜かれる数より抜く数の方が増えてきたmikioです。今回は、PerlRubyのハッシュの代用としてTokyo Cabinetを使うことでメモリ使用量を激減させられることを説明します。 抽象データベースAPI Tokyo Cabinetには抽象データベースという機構があり、先日、そのPerlRubyのバインディングをリリースしました。それを使うと、各種言語のハッシュとほぼ同じような共通したインターフェイスで、以下のデータ構造を利用することができます。 オンメモリハッシュ:各種言語に標準のハッシュと同じく、メモリ上でkey/valueの関係を表現する。 オンメモリツリー:メモリ上の二分探索木としてkey/valueの関係を表現する。 ファイルハッシュ:いわゆるDBMとして、ファイル上でkey/valueの関係を表現する。 ファ

    PerlとRubyで省メモリなハッシュを使おう - mixi engineer blog
  • Perlでアニメ顔を検出&解析するImager::AnimeFace - デー

    というのを作ったので自己紹介します。 2月頃から、コンピュータでアニメ顔を検出&解析する方法をいろいろ試しつつ作っていて、その成果のひとつとして、無理やり出力したライブラリです。 はじめに はじめにざっとライブラリの紹介を書いて、あとのほうでは詳細な処理の話を僕の考えを超交えつつグダグだと書きたいと思います。 Imager::AnimeFaceでできること Imager::AnimeFaceは、画像に含まれるアニメキャラクター的な人物の顔の位置を検出し、さらに目や口など顔を構成する部品位置や大きさの推定、肌や髪の色の抽出を簡単に行うことができるライブラリです。 これらが可能になると、 画像から自動でいい感じのサムネイルを作成できる 動画から自動でいい感じのサムネイルを作成できる 自動的にぐぬぬ画像が作れる 自動的に全員の顔を○○にできる 顔ベースのローカル画像検索 など、最新鋭のソリューシ

    Perlでアニメ顔を検出&解析するImager::AnimeFace - デー
    tokada
    tokada 2009/04/12
    ほとんどCライブラリか。しかしすごい
  • PDL で PageRank - naoyaのはてなダイアリー

    id:smly さんが PageRank や HITS を Python で実装 されているのに触発されて、自分も PageRank を Perl で実装してみました。 PageRank の計算の中心になるのは Power Method (べき乗法) です。べき乗法では行列とベクトルの積を計算しますので、手軽に使える行列演算ライブラリがあると楽でしょう。 色々調べてみたところ、PDL (The Perl Data Language) が良く使われているようでしたので、これを選択しました。PDL では各種行列演算が簡単に行える他、文字列評価をオーバーライドして行列の文字列出力を良い具合で定義してくれていたりと、なかなかに便利です。PDL は行列計算以外にも色々な科学技術計算やグラフ描写などの操作をサポートしているようです。 さて、PDL を使った PageRank 計算のコードは以下のように

    PDL で PageRank - naoyaのはてなダイアリー
  • デブサミ2009 はてなの開発戦略 - 2nd life (移転しました)

    先日のデブサミ2009で発表した、はてなの開発戦略 (すごい名前だ…) のプレゼン資料を公開します。前半は主に git の話で、後半ははてなブックマークリニューアルの、Perl 層の開発をどんな感じで行っていったか、という話です。 デブサミ2009 はてなの開発戦略View more presentations from hotchpotch. はてなの git では、中央のマスタレポジトリサーバがあって、そこから各自 clone / fetch して開発を行ってるので、完全に github のような分散のメリットを生かしているわけではありません。 しかし完全に分散を生かさずとも、git に移行したメリットは十分にあって、資料の中でもふれていますが、やはり一番便利なのが git のブランチ機能です。もうこれ無しでの開発は考えられないなぁ、ぐらいで、さくっとブランチ切って開発、ブランチの切り

    デブサミ2009 はてなの開発戦略 - 2nd life (移転しました)
  • 潜在的意味インデキシング - download_takeshi’s diary

    id:naoyaさんやたつをさんなどの超有名人な方々が以前から実施されている「IIR輪読会」というものがありまして、どうやら今回は第18章の "Matrix decompositions and latent semantic indexing"を輪読したようです。 http://d.hatena.ne.jp/naoya/20090208 http://chalow.net/2009-02-08-2.html Latent Semantic Indexingとは、通称LSIとかLSA(Latent Semantic Analysis)とかいいますが、日語だと「潜在的意味インデキシング」なんて呼びますね。 簡単に言ってみると でっかいマトリックス(数万×数万とかの行列)をたとえば「数百×数万」ぐらいにまで、ぎゅぎゅっと横に押しつぶすように圧縮してみると、あら不思議、のこった行列はとても意味

    潜在的意味インデキシング - download_takeshi’s diary
  • 『モダンPerl入門』本日発売! Webで立ち読みできるサンプルPDFも提供中

    翔泳社は2月9日、中級者向けのPerl技術書『モダンPerl入門』を刊行した。『楽々ERDレッスン』『達人に学ぶ SQL徹底指南書』に続くCodeZine BOOKSシリーズの第3弾として、今回は完全書き下ろしの内容となっている。 執筆者の牧大輔氏(lestrrat)は、Perl開発者を支援するための社団法人「Japan Perl Association」(JPA)を最近立ち上げた他、今週開催される「Deverlopers Summit 2009」では、Perlを使った実践的なテスト手法についてのセッションを講演する予定だ。書は、Perlの初中級者やPerlをサブ言語として使いたい開発者を対象に、効率よく業務をこなすための実践的な内容が豊富に盛り込まれている。 仕様 書名: 『モダンPerl入門』 著者: 牧大輔著 頁数: 344ページ 定価: 2,800円(+消費税) 判型: B5変型

    『モダンPerl入門』本日発売! Webで立ち読みできるサンプルPDFも提供中
  • Skype4COM で電話をかけて音声ファイルをながす - KAYAC engineers' blog

    こんにちは。休日もプログラミングをしている村瀬です。 先週末、突然 Skype で電話をかけ、相手が出たら指定した音声ファイルを一方的に流して電話を切る、というスクリプトがほしくなったためちょろっと書いてみたのでそれを紹介します。 この記事は Windows + Skype4COM での例ですが、弊社の大塚が自身のブログにLinuxで同じことをやる方法を書いていますので Linux でやりたい方はそちらを参照してみてください。ちなみに、元気が出る電話ではこの大塚の方法を元にしたもの使用していたりします。 さて、Skype4COM ですが、これは SkypeAPI を COM 経由で叩けるようにしてくれるラッパーです。COM は言語を問わず利用することができるので、ここでは perl を使用しました。 ここで紹介するスクリプトの全ソースは github にあげましたので、あわせて参照ください

    Skype4COM で電話をかけて音声ファイルをながす - KAYAC engineers' blog
  • キャッシュしよう

    京都観光で散財しすぎて貯金がないmalaです。こんにちは。キャッシュの話を書きます。 色んなキャッシュがあります データベースから引く前にmemcachedから取得したり テンプレートエンジンのレンダリング結果をキャッシュしたり 各種ウェブサービスのリクエスト結果をキャッシュしたり その他諸々CPUったり時間のかかる処理をキャッシュしたり 簡単に思いつくのはこの程度ですが、スケーラブルなウェブサイトを構築するには常識的に考えてそんなのキャッシュしねーだろうというようなものをキャッシュする必要があります。 DateTimeをキャッシュしよう 同じ時刻に対するDateTimeオブジェクトをキャッシュします。 package MyDateTime; use strict; use base qw(DateTime); my %CACHE; sub now { my $class = shif

  • GitHub - livedoor/cicindela2: a highly customizable recommendation engine written in perl + MySQL

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

    GitHub - livedoor/cicindela2: a highly customizable recommendation engine written in perl + MySQL
  • nDiki: Twitter への書き込みを自動的に Skype ムードメッセージに設定する for Windows (2008-08-05)

    半年ぐらい前に Skype for LinuxTwitter への書き込みを自動的に Skype ムードメッセージに設定するスクリプト(記事)を作って cron で 10分毎に更新するようにした。 Windows BOX 上 Skype を使っている時も同様にできるように、Skype4COM を使うバージョンも書いてみた。 D-Bus ではなく Skype4COM を使うようにすることと、Skype4COM にはシフト JIS の文字列を渡すようにすること以外はほとんど同じ。 Skype4COM の DLL を登録し、Skype が起動している状態で以下の Perl スクリプトを実行。 #!/usr/bin/perl use strict; use warnings; use Win32::OLE; use URI::Fetch; use XML::RSS; use Date::Pa

    nDiki: Twitter への書き込みを自動的に Skype ムードメッセージに設定する for Windows (2008-08-05)
  • ORMを作るために最低限必要な4+1のコンポーネント - Yappo::タワシ

    短期間でCPANに上がってる名が通ったO/Rマッパ+αを目を通して、ORMマッパの必要最低限なコンポーネントを整理した。ぶっちゃけもっと削っても良いが一般的にするためにもリストアップ。 ORM 基幹的なクラスで使い方はORMによりけりで、特に無くても良い。 ORM::Schema テーブル定義を行う場所。物によってはデータベースの定義だけ行って。テーブルの定義はORM::Table的な物で行う。 どっちにしろテーブルの定義には変わらない。 大ざっぱに言うと、このクラスからselect系のメソッドが生えている。 ORM::Iterator 結果の行を取り扱うイテレータ。 DBICならDBIx::Class::CursorになりMoCoならDBIx::MoCo::Listが担当。 ORM::Row 結果の行ごとのオブジェクト。だいたいはORM::Schema or Table で定義してるco

  • Shibuya.pmでしゃべってきました - 最速転職研究会

    遅くなったけど資料、と、動画。最近のお仕事について話しました。 http://svn.coderepos.org/share/docs/mala/20081127-shibuyapm10-lt/index.html http://svn.coderepos.org/share/docs/mala/20081127-shibuyapm10-lt/main.txt 転職とか退職とか何のことだか良く分からない。

    Shibuya.pmでしゃべってきました - 最速転職研究会
  • Wavelet Tree - naoyaのはてなダイアリー

    圧縮全文索引の実装などでしばしば利用される Rank/Select 辞書と呼ばれるデータ構造があります。詳しくは参考文献を参照していただくとして、今回は一般の文字列に対して効率的に Rank/Select を可能とするデータ構造である Wavelet Tree (ウェーブレット木) のライブラリを作りました。 http://github.com/naoya/perl-algorithm-wavelettree/tree/master my $wt = Algorithm::WaveletTree->new("abccbbabca"); is $wt->rank(6, 'a'), 2; is $wt->rank(6, 'b'), 3; is $wt->rank(9, 'b'), 4; is $wt->select(0, 'a'), 0; is $wt->select(1, 'a'), 6;

    Wavelet Tree - naoyaのはてなダイアリー
  • Higher-Order Perl

    by Mark Jason Dominus Order Higher-Order Perl online from Powell's Books Download full text here There are three versions available. You have your choice of structure or presentation, but not both. License reminder Higher-Order Perl is copyright ©2005 by Elsevier Inc. Unauthorized reproduction or distribution is absolutely forbidden. You may download the book for your personal use, but you may not

  • ustreamを見ながらflvにダンプする - KAYAC engineers' blog

    kamaitachi開発者の村瀬です。 kamaitachiの開発のためにRTMP専用のスニファーを書いたのですが、そのアプリにほんの遊び心でflv保存機能をつけてみたところなかなかおもしろいのでここで紹介してみます。 ソースコードはこちら: Sniffer::RTMP この中の script/rtmp_flvdump.pl がRTMPストリームをflv形式でダンプするスクリプトです。(Net::Pcap を使用していますので実行にはスーパーユーザー権限が必要です。) 使い方は sudo perl ./script/rtmp_flvdump.pl en1 filename.flv のように、インタフェース名と保存するflvファイル名を与えると、RTMPのパケット中のビデオデータを filename.flv として書き出してくれるというものです。 たとえば、これを起動した状態でustream

    ustreamを見ながらflvにダンプする - KAYAC engineers' blog
  • livedoor Developers Blog:String::Trigram でテキストの類似度を測る - livedoor Blog(ブログ)

    こんにちは。検索グループ解析チームの nabokov7 です。 今回は、livedoor キーワードでの事例より、テキストの類似度を測るのに便利な手法を紹介します。 livedoor キーワードは、livedoor ブログでその日その日で話題になった語をランキング表示するサービスです。 当初、はてなキーワードやWikipediaを足して2で割ったようなサービスを作れといった開き直った指示のもとで開発が開始されたともいう、分社化前の芸風の名残で、キーワードの検索結果にはユーザが自由に解説を書き込める Wikipedia 的スペースもついています。 で、この解説部分に、さまざまなサイトから文章をまる写ししちゃう人がとても多いのですね。 特に多いウィキペディア日語版からの剽窃を防止するために、livedoor キーワードでは以下のような対策を講じることにしました。 ウィキペディア日語版の解説

  • shibuya-perl-mongers

    USTREAM shibuya-perl-mongers : .

  • woremacx.com - https://woremacx.com/

    Windows 10 の入ったディスクのバックアップが clonezilla で外形的にできることがわかった Posted on Jun 27, 2020 Windows10 が載ってるディスクに破壊的な変更加える前にバックアップしたくて、SystemRescueCd で clonezilla 使ってディスクまるごとイメージ化した(内部的には partimage が使われてる?)。 でこれ、レストアしたら起動する状態まで持っていけるんかな? すんごく不安だ。。。 — woremacx (@woremacx) June 15, 2020 systemrescuecd に同梱されている clonezilla を使ってまるまる取った Windows 10 のバックアップが戻せるか不安で仕方なかったので、VirtualBox に戻せるか試した。 そもそもなぜ clonezilla を試したかったの

    tokada
    tokada 2008/11/17
  • Burrows Wheeler Transform と Suffix Array - naoyaのはてなダイアリー

    ,. -‐'''''""¨¨¨ヽ (.___,,,... -ァァフ|          あ…ありのまま 今日 起こった事を話すぜ! |i i|    }! }} //| |l、{   j} /,,ィ//|       『BWT について調べていたら Suffix Array のライブラリができていた』 i|:!ヾ、_ノ/ u {:}//ヘ |リ u' }  ,ノ _,!V,ハ | /´fト、_{ル{,ィ'eラ , タ人        な… 何を言ってるのか わからねーと思うが /'   ヾ|宀| {´,)⌒`/ |<ヽトiゝ        おれも何をされたのかわからなかった… ,゙  / )ヽ iLレ  u' | | ヾlトハ〉 |/_/  ハ !ニ⊇ '/:}  V:::::ヽ        頭がどうにかなりそうだった… // 二二二7'T'' /u' __ /:::::::/`ヽ /'

    Burrows Wheeler Transform と Suffix Array - naoyaのはてなダイアリー