タグ

2009年2月19日のブックマーク (21件)

  • モダンなCatalystコンポーネントを書くときは - とほほのN88-BASIC日記

    Catalystがモダンかどうかは置いておいてCatalystのコンポーネントを書く時のお作法として 大昔は ... use base qw(Catalyst::Action); use NEXT; sub execute { my $self = shift; $self->NEXT::execute( @_ ); ... ちょっと前は ... use base qw(Catalyst::Action); use Class::C3; sub execute { my $self = shift; $self->next::method( @_ ); ... モダンなのは ... use base qw(Catalyst::Action); use MRO::Compat; sub execute { my $self = shift; $self->next::method( @_ )

    モダンなCatalystコンポーネントを書くときは - とほほのN88-BASIC日記
  • 2ちゃんねるBOTの作り方 実装編1 - GIOの日記

    2ちゃんねるBOTの作り方 準備編 - GIOの日記 2ちゃんねるBOTの作り方 設計編 - GIOの日記 必要な機能を思いだそう 1.掲示板一覧からニュー速VIPのURLを取得 2.ニュー速VIPの全てのスレッド情報を取得 3.全てのスレッドから全ての画像URLを取得 4.全ての画像をダウンロード 5.同じ画像をダウンロードしないようにスレッド情報を保存 最初にAPIを決めよう 最初にAPIを決めるのはテスト駆動開発を進めたり、美しいコードを書く上で有利です。まずはスケルトンコードっぽく実装 module Bot2ch class Menu def get_board(subdir) end end class Board def get_threads end end class Thread def get_images end end class NormalImageDownlo

    2ちゃんねるBOTの作り方 実装編1 - GIOの日記
  • 2009-02-18 - 登 大遊@筑波大学情報学類の SoftEther VPN 日記|Windowsをリモートから強制的に再起動する方法(カーネルモード)

    前回の日記で、『再起動に失敗した Windows をリモートから強制的に再起動する方法』を書きましたが、カーネルモードドライバを用いて、やはり Windows を強制的に再起動する方法を紹介します。 NTSTATUS DriverEntry( IN PDRIVER_OBJECT DriverObject, IN PUNICODE_STRING RegistryPath ) { KeBugCheckEx(0x000000E5L, 0, 0, 0, 0); return STATUS_SUCCESS; } 上記のドライバを Windows の DDK で適当にビルドし、再起動したいマシンの SCM (サービスコントロールマネージャ) 経由でシステムサービスとして Windows レジストリに登録し、そのドライバを開始するだけで、コンピュータをブルースクリーンにして再起動することができます。 こ

    2009-02-18 - 登 大遊@筑波大学情報学類の SoftEther VPN 日記|Windowsをリモートから強制的に再起動する方法(カーネルモード)
  • はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知

    はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28

    はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知
  • CPANモジュールをスクリプト一発で依存解決しつつrpm化する - とあるはてな社員の日記

    少し前にmizzyさんに そういえば、まっさらなサーバを30分で番投入できるようにする で stanaka さんが「CPANの依存関係を解析してrpm化する手製スクリプトで、CPANモジュールのrpm化が、ほぼ自動化されています」と書いてるんだけど、これって公開してくれないのかなー。 HowToRpmizeCpanModules - mizzy.org - Trac と突かれたので、githubで公開してみます。 http://github.com/stanaka/cpan-dependency/tree/master 突かれたついでにmizzyさんに軽く動作確認してもらったところ、それなりに動いているようです。また、はてなでは、このスクリプトを利用して、日々それなりの数のCPANモジュールのrpm化を行っていますので、だいたいうまく動くのではないかと思います。 CentOSやFedor

    CPANモジュールをスクリプト一発で依存解決しつつrpm化する - とあるはてな社員の日記
  • バンビみたい…(o^-^o):ぁゃιぃ(*゚ー゚)NEWS 2nd

    http://changi.2ch.net/test/read.cgi/kankon/1233357848/ 319 名前:おさかなくわえた名無しさん[sage] 投稿日:2006/11/14(火) 11:43:22 ID:wbDe8oy6 居酒屋の階段をへべれけで降りてく同僚♂が 足を踏み外し、尻を打ち付けながらドドドドドと十段くらい落ちた。 どうやら腰が抜けてしまったらしく脱糞&失禁して立ちあがれないようだ。 人通りもある時間帯なのでたくさんのギャラリーが我々を囲み手を貸してくれたりしたが、 同僚は足がプルプルしてうまく立てない。 詰まれてたビール樽に手をついたヨツンバイの姿勢でプルプル震える様は まさに産まれたての小鹿。 それを見ていた可愛い女子社員が「バンビみたい…(o^-^o)」と惚れてしまい、交際がスタート。 来年春に結婚することになりました。 結婚式にむけ、二人のな

    koko1000ban
    koko1000ban 2009/02/19
    ww
  • ウノウラボ Unoh Labs: Emacsを自分で拡張する際のTips

    ウノウでは少数派なEmacsユーザのbokkoです。 今回は自分でEmacsLisp(以下、elisp)を書いてEmacsを拡張する際のTipsについて紹介します。 拡張する際に気に留めておくこと Emacsを拡張する上で覚えておくべきなのはEmacs上で行える対話的な動作は「M-x 関数名」で実現できるということです。例えば、C-bはカーソルを1文字分左へ戻しますが、これは「M-x backward-char」とタイプすることと同じです。もしC-bが押しにくい(多分私だけです)のであれば、以下のようなelispを評価してキーバインドを変更することができます。 (global-set-key "\C-l" 'backward-char) Emacsではこのようなキーバインドに限らず、あらゆる操作をelispを使って変更したり、新たに定義することができます。関数名もしくはキーバインドの一方し

  • Mooseのwithってクラス名を省略できないのかな? - Unknown::Programming

    ちょっとした疑問。 Mooseでwithするときに、例えば package MyClass; use Moose; with qw{ FooFooFoo::BarBarBar::BazBazBaz::Role::Base FooFooFoo::BarBarBar::BazBazBaz::Role::Hoge FooFooFoo::BarBarBar::BazBazBaz::Role::Muge FooFooFoo::BarBarBar::BazBazBaz::Role::Pugera MooseX::Foo MooseX::Bar }; みたいな感じになっててちょーメンドイ。 とりあえず package MooseX::WithIn; use strict; use warnings; sub import { my $pkg = caller; my $with = $pkg->can(

    Mooseのwithってクラス名を省略できないのかな? - Unknown::Programming
  • はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知

    はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28

    はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知
  • Myth: Moose is an unnecessary dependency

    It always strikes me as odd how people single out Moose as a dependency they're afraid to use or introduce into their application. One of the arguments I've heard is "I don't want to make something overly complex with dependencies that don't relate to the task". I think this view is misguided, because the alternative is to add unnecessary code and tests to your application. The best code is code t

  • Iterators in elisp

    A long time ago, before I knew elisp, someone told me to never use lexical-let. I've ignored their "advice" and have written this: (require 'cl) (defun get-iterator-over-words-in (buffer) (lexical-let ((buf buffer)(pos 1)) (lambda () (save-excursion (let ((cur (current-buffer)) result) (switch-to-buffer buf) (goto-char pos) (forward-word) (let ((pt (point))) (if (not (eq pos pt)) (progn (setq res

  • hide-k.net#blog: Module::Starter::PBPを使ってみた

    Damian先生推奨のModule::Starterでモジュールを書き始めてみようと思い立ち、使ってみました。 んで、色々散策しているとModule::Starter::PBPというPerl Best Practicesなモジュールの雛形を生成するプラグインを見つけたので使ってみました。 設定ファイルを生成します。 $ perl -MModule::Starter::PBP=setup Creating /home/hide/.module-starter/PBP...done. Creating /home/hide/.module-starter/PBP/t...done. Creating /home/hide/.module-starter/config... Please enter your full name: [名前をタイプ] Please enter an email a

  • A Definition of Closures - selflearn @ ウィキ

    という記述と共にブログの記事が紹介されていました。Closureとは何なのか、そしてClosureについてまだよく分かっていないので、勉強がてら訳してみようと思いました。 ちなみにこの方、Googleの中の人です。2008/10/3時点の情報ではMicrosoft転職されたようです。

    A Definition of Closures - selflearn @ ウィキ
  • HTTP::Request::AsCGIを使ってCGI scriptをテストする方法 - 空繰再繰

    HTTP::Request::AsCGIを使ってCGI Applicationをテストする 最近blosxomとmentaとかの軽量WAFを足して二で割ったようなCGI Applicationを書いてるんだけど、 CGI Applicationのテスト方法について最近ノウハウがちょっと溜まってきたので、 Blogの記事にまとめてみる。 CGI Applicationのテストというと、簡易サーバを起動して実行するとか方法はいろいろあるわけだけど、 要するにCGI ApplicationをテストするにはCGIの実行環境と同じ環境変数を用意してCGI scriptを実行すればいいわけで、 そういうごにょごにょとした処理をしてくれるのがHTTP::Request::AsCGIというワケ。 で、HTTP::Request::AsCGI使ってテストを書くとこんな感じ。 #!perl use stric

  • 秀丸からEmacsへ移行する - selflearn @ ウィキ

    秀丸は言わずとしれた有名エディタで、開発業務を行っている人にとってなくてはならないアプリです(若干の誇張有り)。強力かつ高速な編集機能、かゆいところに手が届く機能、などなど。 これがなければ皆の生産性は半分以下に落ちてしまうと思います(若干の誇張有り)。使いこなせば使いこなすほど馴染んでくる、というカスタマイズ性の高さも素晴らしい。 その辺はおあつらえのIDEじゃ味わえないです。もうね、開発者だったらどんなことがあっても入れて使いこなせるようになっておくべき、とも思うくらい。 バージョンが上がるごとに「この機能がほしかった」というツボな機能が入ってくるところもね。開発者のことを大切にしてくれているな、という気持ちにさせてくれる「分かっている」アプリなのです。

    秀丸からEmacsへ移行する - selflearn @ ウィキ
  • wakaponさんのよく☆ある☆ふつーの備忘帳: パッケージ変数の代入について

    久々にはまった!!!1 以下のプログラムで,パッケージHOGEの$numの中身は空(undef)と表示される. test.pl print "$HOGE::num\n"; package HOGE; our $num = 2; 1; なぜ$numに何も入っていないかというと,$num = 2という文が実行されていないからである.C言語やその他の言語のコンパイラ型言語の感覚で行くと,$numにはコンパイル時に数値が代入されていると錯覚してしまう.代入はあくまでインタプリタ上で実行されるので,その部分のパスを通らないと$numには数値が入らないのである. じゃあ,コンパイル時に代入させるようにしちゃえばいいや,ということでBEGINを使ってみるとうまくいく. 期待通りに$numの中身が表示されるtest.pl print "$HOGE::num\n"; package HOGE; BEGIN

  • automakeやautoconfで困ったときに簡単に解決するためのtips - 射撃しつつ前転 改

    エラーメッセージから重要キーワードを抽出して、Google Code Searchで検索する。 一行で終わるのも何なので、実例を挙げる。例えば、先日はgtk-doc-toolsをインストールしていないとautoreconfをする際に"gtk-doc.make:7: GTK_DOC_USE_LIBTOOL does not appear in AM_CONDITIONAL"というエラーメッセージが出て先に進めない、という問題を経験したが、これを解決してあるパッケージではGTK_DOC_USE_LIBTOOLというキーワードは絶対に出てきているはず。そこで、GTK_DOC_USE_LIBTOOLでCode Searchしてみると、問題を解決してあるパッケージが見つかった。 今のところ、3回に2回ぐらいはこれでサクッと解決できてる気がする。

    automakeやautoconfで困ったときに簡単に解決するためのtips - 射撃しつつ前転 改
  • macports.confの設定 - 『書物の迷宮』予告篇

    先日新調して構築中のFreeBSDサーバで、make.confを弄ったりしているうちに「これって同じ設定macportsでも出来ないのかな」と思って確認したところ、いろいろ可能でした。 とりあえず設定したのは、 ビルド時にccacheを使う 参考: otsune's FreeBSD memo :: ccacheとdistccでビルドを高速に 同時に処理するジョブの数を増やす 「make -j4」とかな感じにする pipeを使う メモリを消費する代わりに処理が高速化 まずは下準備。ccacheが使いたいので、最初にccacheのインストール。 % sudo port install ccache次に、/opt/local/etc/macports/macports.confの編集。 configureccache yes configurepipe yes buildmakejobs 4それ

    macports.confの設定 - 『書物の迷宮』予告篇
  • flymakeでTemplate::Toolkitによるテンプレートファイルのシンタックスチェックを行う - Kentaro Kuribayashi's blog

    Template::Toolkitによるテンプレートが複雑化してきて、flymakeによるシンタックスチェックをしたくなったのでやってみました。以下、あんまり整理されてないので、僕以外の環境ですぐに動くようになるというものでもないと思いますが、参考までに掲載しておきます。 実行例は以下の画像の通り。 まずは、以下のスクリプトをPATHの通ったところにでも、tt_parse.plとして保存します。 #!/usr/bin/env perl use strict; use warnings; use Path::Class qw(file); use Template::Parser; my $file = file(shift); my $template = $file->slurp; my $parser = Template::Parser->new; if (!$parser->par

    flymakeでTemplate::Toolkitによるテンプレートファイルのシンタックスチェックを行う - Kentaro Kuribayashi's blog
  • 多段sshfsを簡単に実現する方法 - 射撃しつつ前転 改

    ほぼ書き上がってたのが、 プレビュー見る→なんかおかしい→間違えてブラウザで戻る で消えてしまった。ああ、このやるせない気持ちをどうすれば…。やっぱり、ブラウザ上で何かを書くという行為が間違っていた。もう簡単に下書きが保存できないサービスには絶対ブラウザ上で書かない。(要するにgmail以外ではということだ。) 閑話休題。踏み台マシンを経由しないと望みのサーバにログインできない、というような状況はよくある。例えば、会社で編集中のファイルをサーバにアップロードし忘れたまま家に帰ってきてしまった場合とか。そういうときにこれまではポートフォワードを使って対応してたんだけど、そろそろめんどくさくなってきたし、sshfsを使いたくなってきたので、ProxyCommandを使う方法を調べてみることにした。 これまで、ProxyCommandを使った多段sshにはconnect.cが必須であるとなぜか思

    多段sshfsを簡単に実現する方法 - 射撃しつつ前転 改
  • Ubuntuカーネルの最適化 ‎(App2u‎)

    Ubuntuのカーネルを再構築を行います。 CPU関連パラメータの最適化を行いデスクトップ用途に適したカーネルを作成します。  コンパイル環境の準備  コンパイルに必要なツールとカーネルソースをインストールします。 $ sudo apt-get install kernel-package libncurses-dev ncurses-dev libqt3-mt-dev $ sudo apt-get install linux-source $ cd /usr/src/ $ sudo tar xfv linux-source-2.6.24.tar.bz2  カーネルコンフィギュレーション  $ cd /usr/src/linux-source-2.6.24 $ sudo cp /boot/config-2.6.24-21-generic .config $ sudo make oldcon