PerlのAttributeについてのお勉強 このエントリの内容は結構適当です。 今更ですがCatalystなどで使われているattributeに興味を持ったので調べてみた。 やや日本人向けははてな勉強会の資料などにもあります。 今回は、関数のattributeについて。SCALARとかARRAYとかHASHはスルーです。 あと、モジュールなperlではやってません。超シンプルです。 今のPerlでは sub foo : baz {}のように記述出来ますが、通常ではエラーになってしまうのです。 デフォルトで対応しているattributesは(lvalue|method|locked|unique|shared)のみらしいので、bazは対応してないのでエラーが出ます。 perldocを見るとMODIFY_CODE_ATTRIBUTESって関数でattributesの処理をしているそうなので、
というようなことをつぶやいていたら、 Twitter / hchbaw: @typester 最近になって screen -Q windows とできるようになってますね。 と教えていただいた。 -Q コマンドというのは -X と同じようなものだけど、コマンド結果を screen 内のステータス領域ではなく標準出力で得ることができる。また、-X はつねに実行時にそれ自体がアクティブな screen セッションになるのに対し -Q はアクティブなセッションにクエリを投げる感じで、セッションが切り替わらない。(この辺は理解が怪しいので突っ込み歓迎) それでそれを使うと screen -Q windows と実行することで :windows で echo されるのとおなじ文字列を標準出力で得ることができる。その出力をパースすれば、自分が screen の裏にいるかどうか判断することができるという
pure-ftpdのカスタム認証ハンドラ ライブドアBlogでも使っているらしいpure-ftpdは、カスタム認証ハンドラを簡単につくれます。 認証だけではなく、ftpd内蔵のquota機能なんかも使えて便利です。 http://www.pureftpd.org/ ドキュメントも上のサイトから行けます。 インストールは、 $ ./configure --with-altlog --with-extauth --with-paranoidmsg --with-quotas --with-throttling --without-inetd --prefix=/usr/ $ make install-strip こんなconfigureでやってます。 認証ハンドラに使うスクリプトでは環境変数として #!/bin/sh $AUTHD_REMOTE_IP $AUTHD_ACCOUNT $AUTHD
● ソースコードの色付け どうせお前らは、日記やWebのコンテンツで、ソースコードを色付けしたいんだけど、以前ちょっと調べたときにはグッとくるものが見つからなくてそのままペンディング状態になっていて、自慢の記憶力の悪さが幸いして簡単に記憶から消えてしまって幸せな日々を送っていたのだけれど、「はてなの人の日記」 http://d.hatena.ne.jp/naoya/20051231 を見たせいでそのことを思い出しちゃって、さらにそこで見た実際に色付けされたコードがあまりにも綺麗で、脳裏に焼きついてしまって(※1)、どうにも羨ましくなった、というか何か負けた気がして悔しくなってきて、いやこれは自分が超えないといけない壁なんだ、神様が俺に与えた試練なんだ、と勝手にいつもの妄想がはじまるんだけど、かといってご褒美がないとヤル気の出ないゆとり教育の弊害のようなワガママなお前らだから、これで再調査し
テーブルゲームで遊ぶなら人気No.1! ベラジョンカジノのオンラインテーブルがオススメです! 世界中のカジノは、運試しにゲームをし、人生を変えてしまうようなジャックポットを引き当てる様々なタイプの人間たちであふれている。カジノに来る人間のタイプは大方、予想可能で、いくつかのグループに分けられる。 タバコ好き TVシリーズ『Xファイル』に出てくる ” 煙草を吸う男” はミステリアスだが、カジノのスモーカーには謎めいたところなどない。彼らはただひたすらにタバコを吸い、ウエイトレスが灰皿をせっせと片付けなければならないだけだ。 タバコ好きたちは彼らの側を通りすぎる人たちとは違い、タバコの煙の刺激に慣れている。さらに、特に理由がなければ、誰も彼らの側にとどまりたくはないのだが、しょっちゅう咳をしては周りの注目を集めている。 酒飲み タバコと酒は切り離せない存在だ(もちろん、一概には言えない)。スロ
チケット便利!と思いつつ、原稿整理に使うのにcomponent1とか、defunctとかはないだろうと思ったので、管理機能たるwebadminというプラグインを入れてみる。例によって Win32 環境の Apache2+mod_python 2.3系+trac 0.9.3 が前提となっとりますが、他の環境でもそんなには変わらないでしょう。英語を気にしない人は http://projects.edgewall.com/trac/wiki/TracModPython http://projects.edgewall.com/trac/wiki/TracPermissions http://projects.edgewall.com/trac/wiki/WebAdmin http://projects.edgewall.com/trac/wiki/TracPlugins の四つを読んでおけば問題
CPANに Toolkit っていう粋なモジュールがあります。これは、emacsとかvimのカスタイズ性が持つ楽しさに近いラブリーなモジュールです。どういうモジュールなのか、順に説明してみます。 まず前提として、なんで Perl を使うの? というと、そこには中央ライブラリCPANがあるからさ、というのが大きいと思います。 ようするに、何やろうと思ってもたいていはなんかを use すればすんじゃうわけです。 ところが慣れてくると、useがずらーっと並んでしまうという弊害が。 例えばまあ最初に use strict; use warnings; とかで始めるのは基本として、DBに問い合わせ処理をしつつ、ファイル変換をし、メールで最後通知を送りたいよみたいな場合、 use DBIx::Simple; use File::Slurp; use Template; use MIME::Lite::
誰もが,データベースができるだけ高速で動くことを望む。そのために様々なテクニックを駆使してチューニングを試みる。 チューニングの結果を確認するには,何かしらの指標が必要となる。「体感的に向上した」というのは,まったく当てにならない。正確に性能を把握してこそ,効率的なチューニングが行えるのだ。今回は,ベンチマークについて紹介する。 MySQLのベンチマーク方法 ベンチマークには,2つの方向性がある。一つ目は,決まった処理を通じて,MySQLサーバーの処理速度を計測するものだ。これは,手順が決まっているため,それほど準備は必要ない。また,常に同じ処理を行うので,MySQLサーバーの基本的な処理能力を測るのに適している。 2つ目は,作成したデータベースの処理スピードを計測するものだ。一つ目も重要であるが,結局は,作成したデータベースが高速で動作するかが重要である。さらに,同時アクセス数やデータ量
Vim の YAML Compiler Plugin。 Plagger とか、Catalyst とか Rails とかで YAML を書くことが多くなったので、ちょっと前に作ってみた。 これを ~/.vim/compiler/yaml.vim に作っておくと、:make → :cw でエラーチェック、修正が出来る。 とは言うものの、かなり無理やり。 makeprj が perl のワンライナーって。 Perl と YAML.pm が必要。 if exists("current_compiler") finish endif let current_compiler = "yaml" let s:savecpo = &cpo set cpo&vim if exists(":CompilerSet") != 2 " older Vim always used :setlocal command
g:subtech:id:secondlife さんのところで、 パイプで受け取るとエスケープシーケンスが消去されてるよ!どうやってんだこれ。 というのがあったので、コメント欄に どうやって実現しているのかを書いていた時に、 すでに回答がされているのに気づいて、 俺は何をやっていたんだ、とショックを受けたのでココに書く。 実は、isatty(fd) という関数があり、 指定したファイルディスクリプタが端末かどうか調べる事が出来ます。 つまり、出力先が端末だったとき、エスケープシーケンスを付加し、 端末ではなく、別のプログラムの標準入力に渡されたときは、 エスケープシーケンスを除去しています。 以下は、 標準出力がターミナルだったときのみ "this is terminal" と出力します。 1 #include <stdio.h> 2 #include <unistd.h> 3 4 int
Shiubya.js #1で話したネタですが、Winkでデモを作ってみました。 http://la.ma.la/misc/demo/realtime_cssedit.htm エディタとブラウザが並んでて窮屈ですが、実際はこれを20インチワイド液晶縦置きデュアルでやります。 仕組みは、WEBrickでローカルプロキシを立てて、同名のファイルがローカルにある場合は内容を置き換えて表示する、というもので、CSSやJavaScriptを編集するのに向いています。 プロキシサーバーはPerlで書かれた同等のものがここにあります。 http://www.ornithopter.jp/archives/2006/05/perl_perl.html 自分が使ってるのは必要に応じて行き当たりばったりに拡張していったりするのですが、現時点でのソースを置いておきます。 http://la.ma.la/misc/
Perl 5.8.xのHTMLヘルプは、ActivePerlのActivePerl 5.8 documentationを元にしたものなどいくつかあるのだけど、ブラウザで愛用しているPerl 5.8.8 documentationを元にしたものは見つけられなかったので作ってみた。連続してHTMLヘルプのエントリ。 Perl 5.8.8 documentationは配布しているHTMLでも、ローカルでちゃんと動く検索機能があったりとかなり使えるのだけど、たまに変な言葉で検索しちゃうと検索が終わるまでブラウザが固まってしまったりとかするのが痛い。なので、HTMLヘルプにして超高速に全文検索をできるようにしたかった。速くて、超快適。 Perl 5.8.8 documentation 目次とキーワードが中途半端。キーワードはコア・モジュールのメソッドなんかにも対応するように作り直したいところだけど、
はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28
はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28
After seen a small webservers in Perl and Ruby (webrick) here is my try with using Mongrel: Start an webserver on all interfaces (0.0.0.0), port 3002, serving static pages from ./html/ directory: require 'mongrel' config = Mongrel::Configurator.new :host => "0.0.0.0", :port => 3002 do listener { uri "/", :handler => Mongrel::DirHandler.new("html/") } trap("INT") { stop } run end config.joinAnd wit
複数のファイルの名前を変更する際に、 便利なコマンドというものがある。 いくつかご紹介させていただこう。 カレントディレクトリにあるファイルの名前を、 たとえば、*.html を *.htm と名前を変更するという課題に対し どのぐらいエレガントに書けるかというのを比較してみる。 まず、普通にやったらどうだろう。 おそらく、for文 をつかうことだろう。 for file in *.html do base=`basename $file .html` mv $base.html $base.htm; done; zshだともうちょっとスマートにかけて、 for file in *.html do mv $file:r.html $file:r.html; done; こんな具合。 for文 が嫌いなネット右翼のために、 xargs を使ってこの問題を解いてみよう。 ls -1 *.htm
shell のちょっとしたテクニック - odz buffer odzさんのところで単語の出現頻度を調べるためのワンライナーが紹介されている。 単語抽出についてはいくつかやり方があるので紹介する。 特に egrep -o は非常に実用的。 もちろん、この話はリンク先において主題ではない。 俺のただの自己満足。 tr -cs で単語抽出 $ tr -cs 'a-zA-Z' '\n' < ./.zshrc 上記コマンドで、a-zA-Zのみで構成される文字列を抽出できる。 -c オプションで、'a-zA-Z' の補集合(以外)を '\n' に変換し、 -s オプションで、最後の引数で指定される要素の重複を除去している。すなわち '\n' の連続を除去している。 grep -o で単語抽出 grepには、( -o、--only-matching ) オプションというのがある。 これは、指定された正
最近サーバーを巷で噂の DreamHost に乗り換えてみました。決めては価格が安かったことと SSH が使えたこと。ついでに Subversion も使えるのである程度自由がきく。 DreamHost は root になれない、deamon が扱えないとか規制はあるみたいですが、他は何でも出来そうです。とりあえず Emacs もインストールできました。Var.21 だと日本語周りで色々インストールしてあげないといけないので Var.22 を持ってくる方が作業が早いはず。Subversion も手間はかかるけど自分でインストールも出来そうですね。 Perl の場合は Perl 自体のバージョンとモジュールが使えるかってのが重要なんですが、自前でインストールすれば問題なく使えるみたいです。っと言うことでみんな大好き CPAN を使えるように設定してみました。 1. Stable の Perl
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く