タグ

perlとPerlに関するioxのブックマーク (89)

  • CodeZine:DeNAの人気サイトに学ぶ LAMPによるWeb-DBシステム構築/運用の極意(前編)(モバオク, モバゲー)

    シングルマスタの非同期レプリケーション機能では、マスタサーバーが1台に限定され、マスタからスレーブへの複製は非同期で行なわれるため遅延が生じ、短時間のスケールで見ると全スレーブとの同期が保証されない。しかし、その反面スレーブの台数を増加させていってもマスタサーバーの更新負荷は大きくならず、スケーラビリティを維持できるという利点がある。DeNAによる運用実績でも、マスタとスレーブ間の遅延は通常数秒程度以内に収まる。 このレプリケーションを利用する場合、アプリケーション側ではデータ更新時にはマスタサーバーへ接続し、データ参照のみを行なう場合はスレーブサーバーへ接続するように作成する必要がある。 Webや携帯電話向けサービスの場合、小さな規模で始めてユーザー規模、データ規模、ページビュー数を徐々に増加させていくことが多い。小さな規模のためDBの負荷分散が不要な場合でも、マスタサーバー1台、スレー

  • アジアのペンギン: Perl の CPAN モジュールの RPM 化

    こんにちは、moriyama です。 次期 Asianux (Asianux Server 3) に、Perl でのエンコーディング変換を行なう Encode モジュールに eucJP-ms などのエンコーディングを追加するために、Encode::EUCJPMS モジュールを入れることになりました。 CPAN に登録されている Perl のモジュールは、cpan2rpm というツールで自動的に spec ファイルを生成して RPM パッケージ化する事ができる為、このツールを使わせてもらいました。 それでは、実際に cpan2rpm を使って、Encode::EUCJPMS モジュールを RPM 化してみましょう。 cpan2rpm のビルド&インストール cpan2rpm-2.028.tar.gz をダウンロード http://perl.arix.com/cpan2rpm/ からは cpa

    iox
    iox 2007/07/28
    CPAN モジュールの RPM 化
  • とあるはてな社員の日記 - まっさらなサーバを30分で本番投入できるようにする

    すこし前にはてなスターのリリースがされたのですが、サービス開始直後にありがちなことに、時々負荷で遅くなったり、アクセスしにくくなったりしてしまいました*1。これではいけない、ということで、すぐ次の日に、バックエンドのサーバを一気に10台近くまで増やして、おおむね快適に使える状態になっていると思います。この時に、新しいサーバをまっさらな状態から、だいたい30分程度で番投入することができていました。これを、どのように実現したのかを軽く紹介したいと思います。 ちなみに、サービスの重さは、サーバ増強だけで済むものではなく、それ以降も、Javascriptが重い!とか、アプリケーションロジックで重いSQL を走らせてしまって遅いという問題は何回かありました。が、そこはインフラではなく、アプリケーションの問題で、アプリケーションの改善は、継続的に進んでいると思います。ので、今回は、インフラの話に限定

    とあるはてな社員の日記 - まっさらなサーバを30分で本番投入できるようにする
    iox
    iox 2007/07/28
    CPANモジュールのrpm化が知りたいなぁ。あとpuppetが気になる
  • TokuLog 改め だまってコードを書けよハゲ - ケータイシミュレータなんて使ってないで Moxy 使えばいいのに

    Blog Search when-present<#else>when-missing. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)?? ---- ---- FTL stack trace ("~" means nesting-related): - Failed at: ${entry.path} [in template "__entry.ftlh" at line 3, column 25] - Reached through: #include "__entry.ftlh" [in template "entry.ftlh" at

    iox
    iox 2007/07/28
    携帯シミュレーション
  • ここギコ!: 何回やっても何回やってもCPAN::Miniが使えないよ

    Posted by nene2001 at 09:31 / Tag(Edit): perl cpan minicpan / 1 Comments: Post / View / 0 TrackBack / Google Maps タイトルはネタなので使えるようにした話です。 仕事場のサーバ群が内から外への接続が禁じられているので、Perlモジュールの設定がしたくてもcpanスクリプトが使えません。 というかwgetすら使えないので、いつも泣きながら、手動で依存解決しつつ1つ1つモジュールアップしてインストールという作業をし、cpanさえあれば2、3分で終わらせられる作業に何時間も費やしたりしていました。 そのボヤキをtwitterでつぶやいたら、CPAN::Miniというモジュールを使ってローカルにCPANレポジトリを作ってしまう方法をすぐさま教えてもらいました。 その時は

    iox
    iox 2007/07/23
    ローカルにCPANリポジトリ
  • tokuhirom blog

    Blog Search when-present<#else>when-missing. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)?? ---- ---- FTL stack trace ("~" means nesting-related): - Failed at: ${entry.path} [in template "__entry.ftlh" at line 3, column 25] - Reached through: #include "__entry.ftlh" [in template "entry.ftlh" at

    iox
    iox 2007/07/18
  • 正規表現愛

    弊社には、アンチ正規表現の人がいますが、私は熱烈な正規表現 Lover である。 大崎氏の「Perl 正規表現雑技」とかは、正規表現 Lover 垂涎のコンテンツとして、ブラウザのリンクバーに入れている程である (嘘)。 正規表現は覚えてモノにすれば、シアワセになれる素晴らしい仕組みなのです。 昨日、Shibuya.pm のテクニカルトークに行った際「はてなでは XML 系の CPAN モジュールはあまり使っておらず、XML の parse には殆んど正規表現を使用している」という話が出てきて、嬉しさのあまり身震いした。 parser を書くのが面倒臭くて「XML::Simple 最強」とかホザいた自分に対しての自戒と、弊社の Chief Regular Expressioner という肩書を持つ (自称) 立場の人間として、たまには、正規表現ゴリゴリなネタでも書いてみようかなと思いますた

    正規表現愛
  • 元祖 サトシのブログ : Class::Accessor で setter, getter を自動生成

    しばらく Perl を使っていなかった(ちょこっとしたツールを作るぐらい)のだが、ある目的のために Perl を勉強し直す事にした。これから数日は Perl ネタが続くおそれがある ;-) で、昨晩に色々と見ていてたどり着いたのが、Perl の Class::Accessor モジュールである。これは、オブジェクトの属性を設定したり(setter) 取り出したり(getter)する Accessor をいちいち作らなくても済むようにできる。 例えば、従業員クラスがあって、名前(name)、salary(給料)という属性を set, get するメソッドをわざわざ package Emplyee; sub name { my $self = shift; if(@_) { $self->{name} = $_[0]; } return $self->{name}; } sub salary

    iox
    iox 2007/07/03
    Class::Accessorのこと Class::Accessor::Lvalue::Fastが気になる
  • Time to ditch encoding.pm: blog.bulknews.net

    Time to ditch encoding.pm Perl でソースコードにマルチバイトなリテラルを埋め込む場合には encoding プラグマを使うのが定石でしたが、 use encoding 'utf-8'; my $name = "宮川達彦"; こうすると STDIO まで utf-8 でエンコード・デコードされるという問題があり、また encoding.pm はファイルスコープで動くのでレキシカルに一部分だけバイト列として扱いたい(という需要があるかどうかは微妙ですが)というときにうまくいかず、イマイチ encoding プラグマを全面採用できず、decode() を使ったり \x{XXXX} で書いたりってことが結構ありました。 が、Juerd と RGARCIA が encoding::source と encoding::stdio (もとは encoding::split

    iox
    iox 2007/06/22
    勉強する
  • まぐまぐ! - 読みたいメルマガ、きっと見つかる。

    携帯アドレス、Gmail、YahooMailにメルマガが届かない場合 こちらから受信設定をお試しください。 また、購読期間内のメルマガ(有料・無料)はマイページから再送できます。 マイページをお持ちでない方は、新規にご登録ください! →informationページへ

    まぐまぐ! - 読みたいメルマガ、きっと見つかる。
    iox
    iox 2007/06/21
    Template Toolkit
  • Catalystのデプロイに関するあれこれ - 日向夏特殊応援部隊

    雑多なメモです。 とりあえずCatalystにおけるデプロイってどーよって辺りからごニョゴニョしてた内容です。 Module::Install + Module::Install::Catalyst catalyst.plでgenerateされたMakefile.PLは、 use inc::Module::Install; name 'MyApp'; all_from 'lib/MyApp.pm'; requires 'Catalyst' => '5.7007'; requires 'Catalyst::Plugin::ConfigLoader'; requires 'Catalyst::Plugin::Static::Simple'; requires 'Catalyst::Action::RenderView'; requires 'YAML'; # This should refle

    Catalystのデプロイに関するあれこれ - 日向夏特殊応援部隊
    iox
    iox 2007/06/21
    Catalystのデプロイ
  • Class::DBI::Pager - Pager utility for Class::DBI - metacpan.org

    NAME Class::DBI::Pager - Pager utility for Class::DBI SYNOPSIS package CD; use base qw(Class::DBI); __PACKAGE__->set_db(...); use Class::DBI::Pager; # just use it # then, in client code! package main; use CD; my $pager = CD->pager(20, 1); # ($items_per_page, $current_page) my @disks = $pager->retrieve_all; DESCRIPTION Class::DBI::Pager is a plugin for Class::DBI, which glues Data::Page with Class:

    iox
    iox 2007/06/14
    Class::DBIで取得したデータのページングを行ってくれる。相当便利らしい。
  • Perl モジュールからの RPM 作成方法

    残っている Perl モジュールのリスト Template Toolkit AppConfig (Template Toolkit が必要としているので、Template Toolkit より前にインストールするほうがいい) GD (Template Toolkit が使用するので、Template Toolkit より前にインストールするほうがいい) Chart::Base RPM パッケージを作成するのは perl モジュールに関しては難しくありません。 cpanflute というコマンドで perl モジュールアーカイブから直接 RPM を作成できます。 cpanflute は調べると perl-RPM-Specfile パッケージに入っています。 # apt-cache search cpanflute perl-RPM-Specfile - Perl extension for

  • Perl/DBIC - Nekokak's core dump

    VERSION-0.05000での記述。http://search.cpan.org/~mstrout/DBIx-Class/ ドキュメントも当初に比べれば増えてきたし、そっち見たほうがよかばい。 まあ以下は簡単なまとめで。一通り使えるくらいは書きたい。 このサイトはWikiなので途中途中に色々追加したり修正したりしますからご注意を DBIx::Class::Schemaを使ってみる これからDBICではSchemaメインらしい。 使うテーブル作成SQL create table user ( id int(10) NOT NULL auto_increment, name varchar(256) NOT NULL, PRIMARY KEY (id) ) ENGINE = InnoDB;

    iox
    iox 2007/06/13
    DBIx::Class
  • YappoLogs: FedoraCoreやCentOS系の遅いPerlのパッチの件

    FedoraCoreやCentOS系の遅いPerlのパッチの件 3月くらいにkazeburoさんがメモしてた遅くなる話。 極端に遅くなる処理のベンチ例みたいなのがほしいかな何やったら遅くなるかわかりました。 すごく正確に検証してるわけでも無いのですが、use overloadしたパッケージをblessするとき。 例えばURIやDateTime等のnew時。 この時にかかるCPUコストが激しく高いため、全体的にアプリケーションがもっさりと動く事になってました。 しかもFC4系列のディストリビューション全体で注意した方が良いかもです。 家はCentOS 4.4の perl 5.8.8-4.el4e1 のRPMで該当のパッチが混入していました。 書いたアプリが見込みよりもパフォーマンスが悪くて、最後の最後にまさかと思ってoverloadしてるモジュールを疑っていたらkazeburoさんにナイス指

    iox
    iox 2007/06/12
    注意
  • 101号室: [Perl][GUI] The GUI LoftでGUIアプリを作る 6 スクリプトをexe化する

    PerlAppは問題なくexe化できた。 PARはできたa.exeを起動するとウィンドウが何分待っても現れず、気づいたらメモリが100M以上われていたので タスクマネージャーから強制終了した。 Perl2Exeで作ったexeは PLEASE SEE THE PERL2EXE USER MANUAL UNDER "Can't locate somemodule.pm in @INC" FOR AN EXPLANATION OF THE FOLLOWING MESSAGE: Can't locate Win32/GUI/Window.pm in @INC (@INC contains: PERL2EXE_STORAGE C:\LoftS ample C:\DOCUME~1\HOGE\LOCALS~1\Tem p/p2xtmp-2160) at (eval 4) line 3. 以下略

    iox
    iox 2007/05/30
    ソースをexe化
  • CGI(Perl)のソースコードを隠蔽する方法を探しています。…

    CGI(Perl)のソースコードを隠蔽する方法を探しています。 Windows(ActivePerl)で開発し、Lnuxで運用する予定ですので 両方で使える物を教えて下さい。 一応perlccを試しましたが、-Cはコンパイルすることが出来ませんでした。 -Bで出来るバイトコードは中身がある程度見えているので不安です。(復元できそう) 何か良い方法は無いでしょうか。 よろしくお願いします。

    iox
    iox 2007/05/30
    難読化、バイナリ、隠蔽
  • SpreadsheetWriteExcel - クロス・プラットフォームなExcelバイナリ・ファイルを出力

    Spreadsheet::WriteExcel version 0.33 by Hippo2000(2001/9/30) もはやPerlではCSVファイルよりExcelファイルに出力する方が簡単!と思わせるようなモジュール。 Linuxでも気にせずExcelファイルが作れます、漢字だってSJISに変換すればOK! 作者はJohn McNamaraさんです。メールで翻訳の許可をいただいています。 目次 名前 バージョン 概要 説明 簡単な始め方 WORKBOOKメソッド new close addworksheet sheetname addformat properties worksheets set 1904 WORKSHEET メソッド Cell notation write row column token format write number row

    iox
    iox 2007/05/21
    perlでexcel
  • holidays-l開発ブログ - Perl::Criticでコーディングスタイルを統一

    Perl::Critic - Critique Perl source code for best-practices. - metacpan.orgをコーディングスタイルを統一するために使っています。 (実際には字面としてのコーディングスタイル(コードレイアウト?)はPerl::Tidy - metacpan.orgが担当しているわけですけども、ここでは「use strictを入れる」「PODを付ける」なども含めてコーディングスタイルと言ってます) コーディングスタイルに唯一絶対的に正しいなんてものはないわけで(だから宗教論争にもなるわけで)、機械的に統一することで揉め事はなくなります。 しかしその時に.perlcriticrcなんかを使ってコーディングスタイルをデフォルトから変更してしまうと元も子もありません。 .perlcriticrcに何を設定するかで揉めますし、例えその時に揉めな

    holidays-l開発ブログ - Perl::Criticでコーディングスタイルを統一
    iox
    iox 2007/05/16
  • 404 Blog Not Found:perl - 万能なnewの書き方

    2007年04月23日22:45 カテゴリLightweight Languages perl - 万能なnewの書き方 Perl 5のOOは、慣れてしまうと簡単だ。 継承とか考えずに、普通にクラスを作りたければ、必要なのは以下の二行だけ。 package Klass; sub new { bless {} }; これだけでは何もできないので、とりあえずnameというアクセサーを追加してみる。これだけ。 sub name { my $self = shift; $self->{name} = shift if @_; return $self->{name}; } しかし、上の形式だと、継承をサポートしていない。だから、 package Klass; sub new { bless {} }; package Klass::Sub; our @ISA = qw/Klass/; # new

    404 Blog Not Found:perl - 万能なnewの書き方
    iox
    iox 2007/04/24
    Perlのクラスの書き方