タグ

ブックマーク / blog.hide-k.net (14)

  • hide-k.net#blog: USB接続のHDDによるソフトウェアRAID

    USB接続のHDDでRAIDを組んだので備忘録です。ハードウェア構成はこんな感じです。 すでにインストールされているFedora Core 4に対してUSBで外付けHDDを2台追加してソフトウェアRAIDでミラーリングしましょうって実験です。 参考サイト: http://www.asahi-net.or.jp/~qi3m-tngw/Linux/KnowHow/HardDisk/HardDisk.htm 今回は/dev/sdaと/dev/sdbとして認識された2台のHDDにそれぞれ1パーティションづつ作成してRAID 1でミラーリング構成とし、/homeにマウントしてみました。 各HDDにfdiskでパーティションを作成します。 [root@localhost ~]# fdisk /dev/sda このディスクのシリンダ数は 4982 に設定されています。 間違いではないのですが、1024

  • iPad2 で docomo の SIMカードを使ってみた - hide-k.net#blog

    会社の役員が珍しくスーツを着ていたので「コスプレですね」とからかったら「握手してあげるからCDたくさん買ってね」と切り替えされました。 ぎゃふん。 こんばんは。 docomoがSIMカードの提供を始めて、SIMロックフリーの3G端末でdocomo回線が使えるようになりました。 この辺を見越して iPad 2はAT&Tのモデルを買ったわけで、早速試したのでそのお話を。 量販店とかでは買えなくて、docomoショップに行って来ました。 このとき必要なのは身分証明書くらいだけど、技適マークの表示を求められるので体も持って行く必要があります。 技適マークの出し方は[設定]-[一般]-[情報]-[認証]から。 2011年4月30日まで「定額データプランスタンダードバリュー」に「定額データスタンダード割」で二年契約すれば一年間は上限4410円というキャンペーン中だったので、それに入りました。二年目は

  • Plack::Middleware::Auth::OAuth を作ってみた - hide-k.net#blog

    最近、咳のしすぎであばらにヒビが入りました。 大多数の人は心配をしてくださってありがたいのですが、ごく一部の極道達がおもしろ画像を連投して笑わせてくるおかげで全治が大分先になりそうです。 こんばんは。 先日、「モバイルなプラットフォームでの OAuth Signature の検証」ってエントリーを書いた際にPlack::Middlewareとかでやるべきとか書いておいて放置していたのですが、某極道が「とっとと書かないと笑わせてあばらへし折るぞ!ごるぁ!」と脅してきたのでサクッと書きました。 GitHubに置いてあります。 Plack-Middleware-Auth-OAuth 使い方は簡単。 use Plack::Builder; my $app = sub { return [200, ['Content-Type' => 'text/plain'], ['Hello World']];

  • namespaceを使ったDBIx::Classのスキーマ構成 - hide-k.net#blog

    良くあるDBICのサンプルではDBIx::Class::Schema::load_classes()を使ってクラスのロードを行っています。 CD.pm package CD; use strict; use warnings; use base 'DBIx::Class::Schema'; __PACKAGE__->load_classes; 1; load_classes()はクラスを指定しないと CD Album Track という構成において自動的にクラスをロードすることができます。 ここでResultSetの拡張をしたいと考えます。例えば CD/ResultSet/Album.pm package CD::ResultSet::Album; use strict; use warnings; use base 'DBIx::Class::ResultSet'; sub search

  • local::libを使った非rootでのCPAN環境構築 - hide-k.net#blog

    miyagawaさんが紹介されていたlocal::libを使って非rootでのCPAN環境を作ってみました。平たく言えばさくらインターネットのレンタルサーバで一般ユーザーでCPAN環境を作ってみました。 とはいえ、多くは先人たちの otsune's FreeBSD memo :: ユーザー領域にCPANをインストールする方法 さくらインターネットでCPAN - Charsbar::Note と大差ありません。 まずはlocal::libのアーカイブを取得・解凍します。最新のバージョンは1.003001です。 wget http://search.cpan.org/CPAN/authors/id/A/AP/APEIRON/local-lib-1.003001.tar.gz tar xzvf local-lib-1.003001.tar.gz cd local-lib-1.003001 ots

  • 続:Catalystでマルチバイトを取り扱うときのまとめ - hide-k.net#blog

    以前、Catalystでマルチバイトを取り扱うときのまとめという記事を書いたのですが、情報が少し古いので、最近僕がやっている方法を紹介します。 この記事では Catalyst 5.7015 Catalyst::View::TT 0.27 Catalyst::Plugin::ConfigLoader 0.22 Catalyst::Plugin::FillInForm 0.10 Catalyst::Plugin::Static::Simple 0.20 Catalyst::Plugin::Unicode 0.8 の環境で紹介しています。 また、基的にDBICに関しては以前の記事の通りDBIx::Class::UTF8Columnsを使うという感じです。 まず、こんな感じのアプリケーションを用意します。 MyApp package MyApp; use strict; use warnings

    typester
    typester 2009/02/04
    ENCODINGオプションしらなんだ。 hidek++
  • hide-k.net#blog: Kazuho式フレンド・タイムライン実装をDBICで表してみた

    Kazuho@Cybozu Labs: フレンド・タイムライン処理の原理と実践 奥さん人の中でブームが去った感もあるRDBMSで実現するフレンド・タイムライン処理ですが、そういえばDBICで使ってみたのを思い出したので晒してみます。 要はDBICからストアドプロシージャの叩き方を知りたかっただけなんですけどね。 パッケージ名はWebインターフェースはどーせCatalystで作るでしょってことでCatalyst + Twitter = Catatter…って安直なネーミングですね。 記事中ではプッシュ型とプル型が紹介されているのですが、データ量やfollow, removeの際のコストとか考えたらプル型の方が好みかなってことでプル型を採用してみました。 また、基的にスキーマやストアドプロシージャはオリジナルと同じですが、DBICでPKをマルチカラムにするとめんどっちーのでサロゲートキーを

  • hide-k.net#blog: MooseのPODの翻訳始めたよ

    YAPCでのMichael Schwernのトーク、"perl is unded"を聞いて、Perlは確かに死んじゃいないけど新しい人材は必要だよねって思ったわけです。 で、今年のYAPCには会社の若い子たちを誘って行ったんだけど、口を揃えて言うのが難しい上にさらに英語だからたまらんと。 気持ちは分からんでもないんですよ。僕もあまり得意な方じゃないし。 で、未熟な僕でも何かできないかなーと思ったのがpod(マニュアルね)の翻訳。 しかもMooseなら、敬遠されがちなPerlのややこしいオブジェクト指向プログラミングを分かりやすく書けるので、他の言語の人にも受け入れられやすいかなーと。 まぁ単に今はやりだってだけだけどね(Yapooさん曰く来年にはないらしいけど)。 で、やったもん勝ちってことで、つたない翻訳だけどとっとと始めちゃいました。 とりあえず、日人が多いってことでcod

    typester
    typester 2008/05/20
    hidek++
  • hide-k.net#blog: CatalystCon#1

    CatalystCon#1に行って来たよ。 一応スピーカーとして話してきたよ。 で、感想。 MVC論 - dann とってもJava的で懐かしかった。 Controller::Resouces - ikasam_a 出て意外と早く触ってたけど、やっぱ便利 ROAって妙に説得力がある $c Catalystの歴史の話が面白かった Pluginはなるべく作らない方向で やっぱり時間足りなくて途中で加速装置が働いてた コピペをしないための10の方法 - typester catalyst.plを最初に否定した人なので説得力あった 最後のほうは苦しかった Model::Apadtor - hide-k ここにあげておいた Catalyst☆Complex - tokuhirom Sledge::Request::Catalyst どっちがウケか結論が出てなかったので気持ち悪い HTTP::Se

  • hide-k.net#blog: Catalyst::Model::Adaptorを使ってみた

    Catalyst::Model::Adaptor - use a plain class as a Catalyst model 要はどんなクラスでもCatalystのモデルにしてくれるクラスです。 たとえばこんなクラスを作って lib/MyApp/DateTime.pm package MyApp::DateTime; use strict; use warnings; use base qw/DateTime/; use DateTime::Format::W3CDTF; sub now { my ($class, $args) = @_; $args->{time_zone} = 'local' unless $args->{time_zone}; return $class->SUPER::now(%$args); } sub parse { my ( $class, $str )

  • hide-k.net#blog: TTでDBICのhas_manyなメソッドを使う

    よくわからない表題ですが要は・・・ MyApp::Schema::TopicsとMyApp::Schema::Commentsが1:nの関係にあるとして package MyApp::Schema::Topics; use strict; __PACKAGE__->has_many('comments' => 'MyApp::Schema::Comments'); 1; こんなアクションで sub list : Local { my ( $self, $c ) = @_; my $topics = $c->model('Topics')->search({}); $c->stash->{topics} = $topics; $c->stash->{template} = 'list.tt'; } TTで素でやる場合 <html> <body> <ul> [% WHILE (topic =

    typester
    typester 2007/05/22
    あーそうすればよかったんか
  • hide-k.net#blog: 続 C::P::Email::Japaneseの文字化け対処

    hide-k.net#blog: C::P::Email::Japaneseの文字化け対処 でWAVE DASH問題に何とか対応しようとしてMIME::TT::Lite::Japaneseに手を加えるというトンチンカンなことをやっていましたが、subtech - Bulknews::Subtech - cp932 vs. shift_jisでEncode::Aliasを使えばいいんじゃないかというお話があったのでEncode::Unicode::Japaneseとからめて試してみました。 sub send : Private { use Encode::Alias; use Encode::Unicode::Japanese; define_alias( qr/jis$/i => '"unijp-jis"' ); $c->email( Template => 'email.tt', To

    typester
    typester 2006/11/16
    なるほど
  • hide-k.net#blog: C::P::FV::Simpleをmod_perlで動かすときの注意

    Catalyst::Plugin::FormValidator::SimpleでmessagesのYAMLを指定する時やCatalyst::Plugin::FormValidator::Simple::AutoでprofilesのYAMLを指定するときに __PACKAGE__->config( validator => { messages => 'messages.yml', profiles => 'profiles.yml', }, ); てな風にします。 これだとCatalystビルトインのサーバーで動かす分にはいいのですが、mod_perlで動かす場合にはフルパスで指定する必要があります。 いちいち指定するのも面倒だしポータビリティもよろしくない気がするので C::P::FV::Simpleは if ( $setting && exists $setting->{message

  • hide-k.net#blog: C::P::Session::DynamicExpiryを使ってremember me

    CatalystでSessionを使うときexpireが動的に変えれないのがナニなので、Catalyst::Plugin::Session::DynamicExpiryを無理やり最近のバージョンのC::P::Sessionで使えるよう実装しなおしてMLにポストしたらYavalがC::P::Sessionを書き直してまで実装してくれました。 Catalyst::Plugin::Session::DynamicExpiry 0.02 C::P::Session 0.11以上と一緒に動作します。"remember me"なんかでお得です。 使い方はMyAppで use Catalyst qw/ Session::Dynamic::Expiry Session Session::Store::FastMmap Session::State::Cookie /; として sub foo { my (

    typester
    typester 2006/09/01
    MLのログとあわせてあとでよむ
  • 1