タグ

perlとprogrammingに関するemergentのブックマーク (32)

  • いやなブログ: 配列操作の比較表: Ruby, Python, JavaScript, Perl, C++

    配列操作の比較表: Ruby, Python, JavaScript, Perl, C++ プログラムを書いていると、他のプログラミング言語の記憶とごっちゃになって、「配列の後ろに要素を追加するのは push だっけ、 append だっけ」などと混乱することがあります。特に Ruby, Python, JavaScript はコードの書き方が似ているので、この問題が起きがちです。 そこで、備忘録として、 Ruby, Python, JavaScript, Perl, C++ の配列操作の比較表を作りました。一番慣れている Ruby を基準にしています。間違いなどがあったらご指摘いただけると助かります。他の言語のもあるといいなあ。 Ruby (Array) Python (list) JavaScript (Array) Perl (@) C++ (std::vector)

  • 芸能人の相関関係を探ってみるスクリプト - download_takeshi’s diary

    ちょっとした実験をしてみました。芸能人の相関関係を機械的に探索してみます。 具体的には「○○というタレントと関係が深い芸能人は?」といった、芸能人にフォーカスした類似検索みたいな実験です。 技術的には「潜在的意味インデキシング」(Latent Semantic Indexing)といった手法を使います。 これは普通は自然言語処理の世界で使われるテクニックですが、なにも言語だけでなく他のデータ素材でも面白い結果が得られるかもしれないので、やってみようという試みです。 以下に大まかな手順をまとめます。 wikipedia から有名人のリストを抽出 それらの有名人リストについて、一人ずつ「誰と関連が深いか」を集計。具体的には有名人個々のwikipediaのページ中に、先ほど抽出しておいた人名リストとマッチする人名がどれだけ掲載されているかをピックアップしていきます。 上記の方法で有名人の間の相関

    芸能人の相関関係を探ってみるスクリプト - download_takeshi’s diary
  • 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のはてなダイアリー
  • ギターのタブ譜を perl で簡単に出力するモジュールを作ってみた : にぽたん研究所

    一個前のエントリで、はてなダイアリーのウクレレ記法をけっこう使ってるだなんだって話をしましたが、私はどちらかというとウクレレとか全然弾かなくて、ギターばっかり弾いてたりするので、なんか Music::Image::Chord という、それっぽいモジュールがあったので使ってみたら、何だか色々と残念な結果だったなんてつぶやきました。 で、やっぱ、ギターのタブ譜を出力するのは大変だなーって思ってたら、コメント欄でようちゃんから むしろ、GD::Tab::Ukuleleを改造する方向でどうでしょう? と提案してもらったので、その方向で検討してみました。 まず、ギターの場合、ウクレレと違って弦が 6 なので、2 追加して、フレットの長さを変えました。 それにともない、画像のサイズはウクレレのものより大きくしました。 ギターには、ミュート弦という概念があって「この弦は音を鳴らさないんだよー」なんて

  • Makefile.PLを書こう

    今日で株式会社ソフリットが設立されて1年です。また「会社を作って1年たったまとめ」を書こうかとも思ったんですが、あんまり面白くならなかったので、今年覚えたことのうちでいちばん重要そうなことをまとめようと思います。それは「Makefile.PLを書こう」ということ。 ではさっそく、これからHoge.pmというperlモジュールを書くとしましょう。 [danjou@guido] $ mkdir Hoge [danjou@guido] $ cd Hoge ここでおもむろにMakefile.PLを書き始めます。 [danjou@guido] $ vim Makefile.PL use inc::Module::Install; WriteAll; とりあえずこれだけ書いて保存します。そしてperl Makefile.PLとして実行します。 [danjou@guido] $ perl Makefil

  • split の研究 - bkブログ

    split の研究 split 関数の挙動が言語ごとに微妙に異なると知人と話題になったので調べてみました。結果はまとめをどうぞ。 Ruby まずはRubyから調べてみます。irb を使って調べました。 % irb ... まずは普通に分割 >> "a,b,c".split(",") => ["a", "b", "c"] 末尾に空要素があると、省略されてしまう >> "a,,c,,".split(",") => ["a", "", "c"] 末尾の空要素を省略しないためには -1 が必要 >> "a,,c,,".split(",", -1) => ["a", "", "c", "", ""] 空文字列だと結果も空 >> "".split(",") => [] -1 をつけても同様 >> "".split(",", -1) => [] 分割パターンを指定しない場合も同様 >> "".split

  • ITPro Challenge 2008 で講演しました&資料公開: blog.bulknews.net

    ITPro Challenge 2008 で講演しました&資料公開 日経BP さんのイベント ITPro Challenge! にご招待いただきまして、Why Open Matters という話で講演させてもらいました。 Why Open Matters It Pro Challenge 2008View SlideShare presentation or Upload your own. (tags: itprochallenge) 他の皆さんの話もとてもおもしろくて、とくに奥地さんのかわりのきかないエンジニアになる話、金子さんのシミュレーションプログラミングは興味深かったです。Winny の技術 にサインしてもらおうとおもったんですが引っ越しのごたごたでどこにいったか見つけられず、かないませんでした。 懇親会・2次会も楽しめました。会場に来ていたオライリージャパンのWさんが ELL

  • Ruby には Perl の Plagger のようなお手本はないの? - gan2 の Ruby 勉強日記

    その中でも直近の大規模なオープンソースプロダクトである Plagger はまさに Perl Hacker の教科書とも言えるべき存在だ。 http://d.hatena.ne.jp/tokuhirom/20080719/1216423454 ということで、Perl では「Plagger」が お手となるソースとしてお勧めされているようなのだけど、 Ruby には Plagger のようなお手となるソースはないのだろうか? 先日行われた Yugui さんと角谷さんのトークセッションでは BitClustなどの青木さんが最近書かれたライブラリのソースがお勧めされていた模様。 青木さんの書かれたライブラリはLoveRubyNetに一覧がある。 でもこのトークセッションでは「Perl の Plagger にあたるものが Ruby にはない」とも言われていたそう。 そういえば前に id:rubik

    Ruby には Perl の Plagger のようなお手本はないの? - gan2 の Ruby 勉強日記
    emergent
    emergent 2008/07/22
    私はRubyへのとっかかりがIRC Bot作りたい、だったので nadokaのコードをよく読んでた。当時はevalで死ぬほど悩んだけど今見るとすっきりしたいいコードだと思う。
  • Perlプログラマのためのgdb入門(at Shibuya.pm #9 LT) - とあるはてな社員の日記

    先日のShibuya.pm #9のLightening Talkで「gdbでXS on mod_perlをデバッグ」という話をしてきました。XSを使い出すと、従来のPerl的デバッグだけでは不十分なのでgdbをうまく使って、効率的にデバッグしましょう、という話です。実は、はてな社内では1年近く前に勉強で話したネタだったのですが、ようやく公開することができました。 Shibuya.pmでは5分という枠があったのでショートver.でしたが、ここでは制限はないので、来のロングバージョンの資料をアップします。ちょっと公開できない情報が混っていたので、xxxで隠していますが、ご了承ください。 ちなみに、Rubyとかでも似た感じでデバッグできると思うので、そちらの人も参考にしてください。長いよ!という人は、最後の「これは設定しておけ的gdb初期化マクロ」だけでもどうぞ。かなり便利です。 (資料公開が

    Perlプログラマのためのgdb入門(at Shibuya.pm #9 LT) - とあるはてな社員の日記
  • Hadoop Streaming - naoyaのはてなダイアリー

    id:naoya:20080511:1210506301 のエントリのコメント欄で kzk さんに教えていただいた Hadoop Streaming を試しています。 Hadoop はオープンソースの MapReduce + 分散ファイルシステムです。Java で作られています。Yahoo! Inc のバックエンドや、Facebook、Amazon.com などでも利用されているとのことです。詳しくは http://codezine.jp/a/article/aid/2448.aspx (kzk さんによる連載記事)を参照してください。 Hadoop Streaming 記事にもあります通り、Hadoop 拡張の Hadoop Streaming を使うと標準入出力を介するプログラムを記述するだけで、Hadoop による MapReduce を利用することができます。つまり、Java 以外

    Hadoop Streaming - naoyaのはてなダイアリー
  • MapReduce - naoyaのはてなダイアリー

    "MapReduce" は Google のバックエンドで利用されている並列計算システムです。検索エンジンのインデックス作成をはじめとする、大規模な入力データに対するバッチ処理を想定して作られたシステムです。 MapReduce の面白いところは、map() と reduce() という二つの関数の組み合わせを定義するだけで、大規模データに対する様々な計算問題を解決することができる点です。 MapReduce の計算モデル map() にはその計算問題のデータとしての key-value ペアが次々に渡ってきます。map() では key-value 値のペアを異なる複数の key-value ペアに変換します。reduce() には、map() で作った key-value ペアを同一の key で束ねたものが順番に渡ってきます。その key-values ペアを任意の形式に変換すること

    MapReduce - naoyaのはてなダイアリー
  • Perl入門講座 - builder by ZDNet Japan

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

  • livedoor Developers Blog:String::Trigram でテキストの類似度を測る - livedoor Blog(ブログ)

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

  • Shibuya Perl Mongers Tech Talks #8 いってきました: blog.bulknews.net

    Shibuya Perl Mongers Tech Talks #8 いってきました ちょうど日に帰ってきた時期と台湾から gugod が来日するのがかぶっていることで実現した Shibuya.pm Tech Talk #8 にいってきました。 YAPC::EU でやった Web::Scraper のトークを修正したものを20分で。今回は前半をとばし気味にやったのでなんとか時間に間に合ったかんじです。スライドはいつものように slideshare にあげておきました。 会場の質問でもでましたが、process() などの DSL を使わないAPIを求めているニーズは結構ありそうだなと思いました。この辺はバックエンドのAPIをOOで書き直して、その上に scrapi とか scRubyt のラッパーをかけていくというのがいいかもしれません。 他のトークでは gugod の JavaScri

  • λ萌え - たらいを後回し : 404 Blog Not Found

    2007年05月13日06:30 カテゴリLightweight Languages λ萌え - たらいを後回し Gauche Nightではしゃぎすぎたところにもってきて、昨日はEncodeをメンテしながらホームパーティーなんぞをしていたらどうやら風邪を引いてしまったみたい。 風邪で頭が痛いときには、λと戯れるに限る、ということでこの話題。 前回までのあらすじ 404 Blog Not Found:たらいを回すならHaskell 404 Blog Not Found:javascriptでもたらいを回してみた 404 Blog Not Found:gaucheでもたらいを回してみた 404 Blog Not Found:C - Judyでたらい回し ここまでのあらすじでわかった事は、遅延評価(lazy evaluation)するHaskellがむちゃくちゃ優秀なこと、遅延評価がない言語で

    λ萌え - たらいを後回し : 404 Blog Not Found
    emergent
    emergent 2007/05/16
    遅延評価よくわからないので要勉強
  • ここギコ!: FizzBuzz問題

    どうしてプログラマに・・・プログラムが書けないのか?  FizzBuzz問題、面白そうだったので考えてみた。 考えてみて1分以内で戦略はできたが(15の剰余でフィルタした後、3の剰余でFIzz、5の剰余でBuzzを出す)、3の剰余と5の剰余を取るにも関わらず15の剰余も計算するのが、同じ事2度やっててどうにもいけてないやり方な気がして、5分くらい考えたが代案浮かばず。 あきらめてブクマを見てみる。 dankogai !dankogai, 一行野郎, oneliner perl -le 'print $_%15?$_%5?$_%3?$_:Fizz:Buzz:FizzBuzz for(1..100)' いけてないと思ってたが弾さんも同じ戦略だったので一安心。 でもやっぱり15の剰余を使わないやり方ないか探してみると、 gomis 最短を目指してみる。perl -le 'print(($_%

    emergent
    emergent 2007/05/14
    Rubyでも考えてみたい
  • FC2.com - 404 Error

    404Error - Page not found ご指定のファイルが見つかりませんでした 30秒後にトップページへ移動します

  • Image::ObjectDetectを使った顔認識サービスまとめ - spiritlooseのはてなダイアリー

    この前 http://d.hatena.ne.jp/spiritloose/20070308/1173314595 で作ったImage::ObjectDetectですが、Perlな方々にいろいろと遊んでいただいているようで、どうもです。 とりあえず以下自分用まとめ。 Perl & Image::ObjectDetect 404 Blog Not Found:perl - 顔を認識するcgi 顔にエフェクトをかけてプライバシーを守るWebサービスの作り方まとめ id:k-z-h - 顔を認識するCGI 顔認識&合成 antipop - The Laughing Man Hacks You! The Laughing Man Hacks You! 「顔面認識→笑い男貼り付け」ツールがすごすぎる! | i d e a * i d e a Ruby RubyForge: ObjectDetect:

    Image::ObjectDetectを使った顔認識サービスまとめ - spiritlooseのはてなダイアリー
  • いやなブログ - スクリプト言語用のデバッガの使い方 - Ruby, Python, Perl

    スクリプト言語用のデバッガの使い方 - Ruby, Python, Perl スクリプト言語用の CUIのデバッガの使い方を簡単にまとめました。対象言語は Ruby, Python, Perl です。 私は C, C++ でプログラムを書いているときはデバッガ (主に GNU/Linux 上の gdb) を頻繁に利用します。しかし、スクリプト言語ではそれほどでもありません。これはおそらく次のような理由によります。 ビルドが不要なので printf デバッグが容易 (ある程度大きい C++ のプログラムではビルド時間が長いので printf の挿入はしんどい) 異常終了時にスタックトレースが表示される (Ruby, Python なら自動、Perl の場合は use Carp; $SIG{__DIE__} = \&Carp::confess; など) オブジェクトのインスペクトが簡単 (Ru

  • Ruby for Perl programmers

    Introduction to Ruby for Perl programmers A presentation for the Israeli Perl Monger's October 2003 meeting, by Mikhael Goikhman.