Perl

最近の技術的な勉強について

入社して恐しいことにもう5ヶ月(!!)経とうとしていますが、Web開発にも段々慣れてきたかなと思います。この5ヶ月で勉強したことや復習したこと、これから勉強が必要そうかなと思う技術について、忘れないうちに書きとめておこうと思います。 サーバーサイド …

大きなプロダクトを作っているチームに配属された間もない時期に、どうやったら早くコードを読み書きできるようになるか?

前提: 配属の前は一人でスクラッチから書くことがほとんど。チームでコードを書くという経験はあまりない はてなのシステムはコードが大変大きくなっているため、チーム配属後、コードの読み書きをいかに正確に早くできるかが自分の直近の課題だと思っていま…

YAML::XSのインストールに手間どった

使用する予定のスクリプトがPerlのYAML::XSに依存しており、cpanmでインストールしようとしたが、以下のエラーでこける。 cpanm (App::cpanminus) 1.7039 on perl 5.018002 built for darwin-thread-multi-2level Work directory is /Users/yasuhisa/.cpanm/…

perlbrewのインストール

最近のPerl事情がよく分からないので、ちまちまと調べながら環境を入れる。 昔はシステムにcpanでガンガンライブラリを入れていたが、最近はユーザー領域に入れるのがいいようなので、そのやり方で。使われているツールとしてはperlbrewとplenvがあったが、…

dispatherについてのメモ

某所のほげほげでCGI的何かを作るお仕事をやろうと思って、HTTP::Engineを久しぶりに見てみたり。dispathはやってくれないようなので、その辺について調べる。ディスパッチャの比較 - モダンなPerl入門で紹介されていたPath::Dispatcherが使いやすそうなので…

ある年代のディレクトリにおいてあるファイル数を調べる

こんなディレクトリ構成になっていて /Users/syou6162/dbcls/pne% ls 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 1885-1995のディレクトリ配下にあるファイルの数と1996-2006以下にあ…

アルファベット、数字、記号のみからなるような行を捨てる

Perlワンライナー。 perl -nle 'print unless $_ =~ m/^[!-~\s]+$/' result.txt ついでに半角カタカナさんも死んで欲しいとき。 perl -nle 'print $_ if $_ !~ /^(?:\xEF\xBD[\xA1-\xBF]|\xEF\xBE[\x80-\x9F])+$/' umls.txt 参考 http://code.nanigac.com/so…

Trieとかtcとか系列タギングとか

タブ区切りデータの三列目を取り出す「-F」の使い方、すぐ忘れる。。。 perl -F"\t" -anle 'print $F[2]' umls2ja.tab Trieを構築するためのライブラリTx http://www-tsujii.is.s.u-tokyo.ac.jp/~hillbig/tx-j.htm dartsのほうは日本語だとうまく動かない…?T…

色々メモ

コマンドラインオプションを活用 perldoc を使いこなす コマンドラインスイッチと特殊変数を使いまくる perldoc -l Web::Scraper perldoc -m Web::Scraper emacsclient `perldoc -l Web::Scraper` perldoc -f -X perldoc perlrun 関数のラッピング 型グロブ …

Path::Classが便利そうだったのでメモ

use strict; use warnings; use Path::Class; use Perl6::Say; dir("/Users/syou6162/hoge")->recurse( callback => sub { my $path = shift; say $path; } ); おおお。

MVCによるウェブアプリケーション開発(Ridgeを使った開発)

今日はRideによるMVCによるアプリケーション開発でした。昨日Modelの部分は作っていたので、それを使ってコントローラー周りを中心に実装しました。予習をしていたときに「MVCのCとMがよく分からん!!」と書いていたんですが、id:nanolia先生の講義のおかげで…

はてダラがhttpsなページでうまく動かない

インターンのことが大体はてなグループに載っているような感じなので、はてなグループを書くことになる。それを編集すると言えばはてダラだが、httpsなページだとはてダラがうまく動かない。https://hoge.g.hatena.ne.jpのようなページだと。インターンで使…

今日のPerl

無名関数っぽいものとか。 /Users/syou6162/config/.emacs.d/elisp% perl -MPerl6::Say -e 'map {say $_->("hoge")} @{[sub {shift}, sub {my $s = shift; $s x 10}]}' hoge hogehogehogehogehogehogehogehogehogehoge Devel::REPLが便利 perlshとかでなんと…

はてなグループのキーワード機能の劣化版を実装してみた

この前書いてみたのは、Template Toolkitの練習ということでDBを見ることしかできないやつでした。というわけでinsert、update、deleteとかもできるような機能があるものを作ろうと思った。世の中にははてなダイアリーをローカルのテキストファイルからアッ…

Perlとテスト

テストというものをほとんど知らなくてやばいので、勉強します。モダンPerl入門 (CodeZine BOOKS)によるとCPANの形式で開発を進めていくとテストを走らせるための基本機能も組み込まれているということなので、CPAN形式にまとめます*1。こんな感じ。 /Users/…

DBIモジュールを使ってデータベースを叩いて、Template Toolkitで整形する簡単なお仕事をやってみた

昔はtomcatとかを使ってjsp&サーブレットで遊んでいたりしたんですけど、最近はWeb関連のところはほとんどやってませんでした。。。ということでこのままではインターン破滅なので、簡単な例をとりあえずやってみることに。テーブルの作成とかはこの付近を参…

深さ優先探索をPerlで

深さ優先探索自体はどうでもいいんだけど(ぉ、Perlのデリィファレンス付近を復習しないと破滅なので深さ優先探索を題材に書いてみる。Rubyでも昔書いてた。 package Graph; use strict; use warnings; use Perl6::Say; use Data::Dumper; use base qw(Class:…

設定でやったこと

Perlな会社に行くので、設定を整えるというありがちなところから。 perltidy IT Office Nishimiyahara インデントとかを整理してくれるもの。 sudo perl -MCPAN -e shell として、 install YAML install Perl::Tidy をやった。その後に.emacsに以下を追記。M…

クイックソート

数学的基礎とデータ構造 (アルゴリズムイントロダクション)のp140付近。 クイックソートも分割統治のアルゴリズム A[q]で配列を2つの部分配列に分解、A[q]より大きいか小さいかで分解する 部分配列の中でもクイックソートする 全ての部分配列の中でソートさ…

優先度付きキュー

数学的基礎とデータ構造 (アルゴリズムイントロダクション)のp131付近。エラー処理をさぼっている。。。 ヒープソートは優れたアルゴリズムだけど、ソートのアルゴリズムとしてはクイックソートのほうが実際上より優れている なんだって!! でも、ヒープのデ…

ヒープソート

数学的基礎とデータ構造 (アルゴリズムイントロダクション)のp129付近。これまで作ってきた ヒープ条件の維持 ヒープの構築 を元にヒープソートを行こなう。ヒープの根を取り除いて(根は必ず一番大きくなっている性質を利用)、ヒープを再構成というのを繰り…

ヒープの構築

数学的基礎とデータ構造 (アルゴリズムイントロダクション)のp126付近。 use strict; use warnings; sub parent { my $i = shift; return int($i/2); } sub left { my $i = shift; return 2 * $i; } sub right { my $i = shift; return 2 * $i + 1; } sub he…

ヒープ条件の維持

数学的基礎とデータ構造 (アルゴリズムイントロダクション)のp124付近。 use strict; use warnings; sub parent { my $i = shift; return int($i/2); } sub left { my $i = shift; return 2 * $i; } sub right { my $i = shift; return 2 * $i + 1; } sub he…

Ruby&Perlでマージソート

数学的基礎とデータ構造 (アルゴリズムイントロダクション)のp28付近にあるマージソートをRubyでそのまま書きくだす簡単なお仕事。2行で書けるとかそんなの知るか。 require 'pp' def merge_sort(a, p = 1, r = a.length) def merge(a, p, q, r) n1 = q - p …

Shibuya.pmに参加するよ

Shibuya Perl Mongers : Shibuya Perl Mongersテクニカルトーク#11 id:wakutekaと一緒に行く予定。

ファイルの先頭に空白を入れる

自己メモ。pukiwikiにプログラム結果を張ろうとしたら、はてなのpre記法っぽいのもがなくて、空白を入れるとかだった。行数が長いので手で入れたくはない。というわけでワンライナー。 /Users/yasuhisa% perl -pe 's/^(.*)/ $1/' test.txt 似たようなやつ。 …

EmacsからPerlのデバッグしようとしたら、モジュールの関係で怒られたので、設定を変更した

Perlでデバッグをやろうとしていたら、cpanでつっこんだモジュールを探せないと怒られた。terminalとかでやるとちゃんと動くのに、Emacs上でデバッグすると言われる。悩んでたら、@elimさんに教えてもらった。 https://twitter.com/elim/statuses/955405133 …

一連のほげほげをいっぺんにダウンロードしてくるためのワンライナー

とあるサイトのpdfが連番になっていて、それをダウンロードしたいが、手だと面倒。そんなときのワンライナー。上のxargsはそのために調べた。 perl -e 'map{printf ("http://example.com/%02d.pdf\n",$_)} 1..20;' | xargs -P0 wget パイプの前までを出力す…

RでPerlのmapを実装するのにてこづる

いや、それだけ。まだ、できてない。この辺を実装しようとしている。ベクトルとかを投げると、べき集合っぽいものを返すような関数を再起を用いて書きたいのだが、なかなかうまくいかない。

データマンジング

Unixのパイプを使って柔軟性を持たせるperlのプログラムの中ではを使って、起動時に perl test.pl < test.txt とかってやるとよい。 ダイヤモンド演算子 perl test.pl < test.txt と、ダイヤモンド演算子を使ったりしたときの perl test.pl test.txt は等価…

localたんの使い道etc

やっと、自然に「あ、localたんの出番だ」と思えるところと出会えた。入力セパレーターを変更するときとかか。なるほど。あと 何でいままでハッシュを自分がこれまで使ってこなかったのか不思議になってきた リファレンスの柔軟性に3回泣いたところ Parse::R…

ちょっとPerlerな人聞いてみたい

教えて君っぽくって非常に申し訳ないんですけど。 Template Methodパターン - 理系学生日記 LoveTeamクラスではprint_loveメソッドとか定義してないけど、Perlではこれが普通なのかな?僕はJavaから入った人間なので、abstractなメソッド*1とか書いとくのがよ…

渋滞のASEPモデルたるものをCUIで作ってみた

前のセルオートマトンに感動できなかったので、他のをやってみることにした。僕が読んでもあんまり分からなかった渋滞学 (新潮選書)に載っている中で数少ない分かったものをやってみる。どんなやつかは下のほうを見てもらうとして。 404 Blog Not Found:書評…

miyaga50のお題に答えてみるテスト

一次元セルオートマトンをやってみるテスト。へぼいミスで動かなかったけど、うちに帰る間に考えてたら分かった。アホすぐる。 1次元セル・オートマトンの体験 #!/usr/bin/perl use strict; use warnings; my @list = ( 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1…

誰か正規表現を。。。

教えてくれ。。。 空白文字が任意個続くときは取り除く 空白文字の集合には改行文字も含まれるってことは分かったんだけど、改行はちょっとこの集合に含まないで考えたい 取り除いた後の行頭に「-」を付ける 改行だけの行に対しては処理しない 例えば下のや…

プログラミング勉強会を始めるよ!!

昨日、id:repose*1とid:g7umz1cuwvsyでぐだぐだとやっていたところ、id:reposeがどうしてもRubyを勉強したいというのでプログラミング言語勉強会が開かれることとなりました。Rubyの赤い本も貸した。一週間に一個くらいのペースでお題を誰かが決めて、それに…

ってわけでCUIベースの単語帳を作ってみたよ

自分で作ってみた感じだとなかなかよさげな気がする。csvにもとのデータを保存しているので、他の用途に使うのも楽チン。紙の単語帳だとできないところ。TOEFL対策講座の勉強に使ってます。 特徴 registerって打つとcsvファイルに登録 間違ったらdeleteで消…

大分すっきりしてきた

僕にはクックブックで例を見ながら、というスタイルがあっているようだ Perlクックブック〈VOLUME1〉 Perlクックブック〈VOLUME2〉 WebDBのPerlのコーナーも参考になる Javaで勉強したことが役に立っていると思う 微妙に違う付近は継承使って、ごまかし(?)た…

ぱっけーじで書いたよどらえもん

もはやいみふ。

XML-RPCでPerlとPythonを結ぶ

ここのToDoがちょっと終わった。僕が何をやりたいのかを説明すると Perlで引っ張ってきたデータをRに処理させたい でも、そのままじゃ処理させることができない RSPerlとかあるけど、あんまり好きじゃない*1 バッチファイル処理させて、云々やってもいいけど…

まだまだひどいスクリプト

こいつちょっと進化させて、今年のアクセスのユニークアクセス数を片っ端から持ってきてみた。コードがひどい。

はてなカウンターから日付とユニークアクセス数を持ってくるperlスクリプト

最新一ヶ月分を持ってくるスクリプト。

Emacs上からasinを取ってくるためにスクリプトを書いてみた

最近はブログをはてダラ on Emacs with simple-hatena-modeで書いているんですが、本の情報を引っ張ってくるときにいちいちFirefoxに移動してはまぞう開いて…という作業がだるい。Emacsは統合なんたら環境なのだから、すべてをemacsの上で済ませないと気がす…

追加

xmlからデータ引っこ抜いた後、Rで遊べるようにデータの加工をやった。そのためのスクリプト。 #!/usr/bin/perl use strict; use warnings; use XML::LibXML; use LWP::Simple; my $path = "/home/yasuhisa/svn/public/perl/friends"; opendir( DIR, $path )…

リハビリ

emacsでperl書く環境もやっと整ってきたことだし、リハビリがてらにコードを書いてみる。お題はtwitter関係の。 2007-08-11 - きしだのはてな ここのrubyのコードをほぼぱくってみますた。 http://d.hatena.ne.jp/Makots/20071024#twitter で、followersがあ…

emacsの適当なリージョンでPerlを実行する

Perl Hacksを立ち読みしてたらこんなのあった。 (defun perl-eval (beg end) "Run selected region as Perl code" (interactive "r") (shell-command-on-region beg end "perl")) (global-set-key "\M-\C-p" 'perl-eval)実験コード書くときにはすごい便利だ…

ワンライナー

一行めのやつを入力すると二行目のやつが返ってくるようなやつをワンライナーで書きたい。 a,b,c,d,e "a","b","c","d","e",twitterで適当につぶやいていたらotuneさんから教えてもらいました。foreach(@array)をmapに置き換えて、ついでに@arrayも消してしま…

Text::HatenaとParse::RecDescent

はいはい、またまたText::Hatenaの登場ですよっと。興味のない人は(ry昨晩、はてなグループで作ったテキストをコンバートしてpdfでプレゼン資料作れないかな、と考えていた。ネットがつながらないところでも、はてな記法使ってプレゼンできたらうれしいから…

自分メモ

勉強会の資料をローカルで作るときのためのメモ。Text::Hatenaを使って、はてな記法で書いて、htmlで吐くみたいなことをやっている。ほとんど大丈夫であるが、画像がちょっとおかしくなる時がある。 <img src="http://d.hatena.ne.jp/images/diary/s/syou6162/syou6162_p.gif" />のような時だ。はてなダイアリーやはてなグループでは大丈…

Perlでデータ構造

クックブックとラクダ本で勉強中。「配列の配列」と「配列のハッシュ」を勉強した。 配列の配列 Javaとかで言う2次元配列とか。記法が違うだけでそんなに変わらん。 配列のハッシュ 一つのキーに対して、複数の値を対応させたい時に使う。例にこういうデータ…