タグ

ブックマーク / hirobanex.net (18)

  • mysqldump+bin-logによるInnoDBのbackupの設定とPerl実装スクリプト | hirobanex.net

    若干それますが、あまりに対応するのもどうかと思いますが、ディレクターや顧客が「あのデータ手が滑って削除にしちゃったんだけど、やっぱり戻せない??」っていうのを無視するのはどうかと思いますし、開発時とか運用当初はいまいち要件も定まっていないことが多いはずなので、そういう観点からもしっかりそのほかの手法も組み合わせるべきですよね? 実際の組み合わせ 運用状況に応じて以下のように組み合わせるのが一般的ではないでしょうか? [Web型]mysqldump系 + bin-log + レプリケーション [Web型]mysqldump系 + レプリケーション [どうでもいい系,α版]mysqldump系 + bin-log [バッチシステム]mysqldump系 バッチの場合は楽ですね。で、今回はたいしてお金ないんだけど、まぁしっかりバックアップっぽいことをやりたいケースへの対応として最低限の「mysq

    kazuph1986
    kazuph1986 2014/04/15
    “--single-transaction ”
  • Hachioji.pm#33に参加したご報告 | hirobanex.net

    10/26(土)に開催されたHachioji.pm#33に行ってきました!台風が去ったから前日に開催が決まって、なんと7人も参加するという柔軟っぷり! もろもろと まず、突然にbayashiさんが参加して、結構話せて楽しかったです。YAPC::Asia2013に参加した多くの人が、極楽汁麺 らすたにいったことでしょう。 Data::Dumper::AutoEncodeとかたまに使うし、utf8フラグが文字列に立っているか確認するときに毎回bayashiさんのPerl5.8でUTF-8のメモという記事を調べて、コードコピペするということをしているので、大変感謝&感動でした!あと、「パッチとか書かないんですか?」と聞かれて「コードあまり書けません」ってぶっちゃけましたが、今何個かモジュールとかプロダクトのアイデアがあったので、おかげさまでやる気をもらって今年中にgithubにはあげようと思いま

    kazuph1986
    kazuph1986 2013/10/30
    "Amon2のオープンソースプロダクトリスト募集中"
  • Perlのデータ構造をダンプするためのモジュール群 | hirobanex.net

    マコピー(@mackee_w)にDDPって教えてもらったので、この機会にみんなに大人気のCPANモジュールまとめ記事を書くよ!!とりあえず、みんな大好きなまとめ記事なんで、はてぶをポチっとしてね!! 今回紹介するモジュール群 Data::Dumper Data::Dumper::AutoEncode Data::Dumper::Concise Data::Printer DDP 結論的には、DDPがいいよって話ですが、よく知らない方は以下を読んでいただくととても楽しいと思います。 Data::Dumper みんな大好き定番モジュールですね!!これがないと死んじゃうって近藤先生がおっしゃっていた気がします。 以下のように使います。 #!/usr/bin/env perl use strict; use warnings; use utf8; my $data = +{ hash => +{

    kazuph1986
    kazuph1986 2013/09/30
    DDPが素晴らしい!
  • YAPC::Asia2013に参加したご報告 | hirobanex.net

    今年で四回目ということで、YAPC::Asiaに参加したのでそのご報告を。参加セッションの概要と感想、カンファレンス全体の印象、今後の個人的タスク、来年について、など。 YAPC::Asia2013とは YAPCとは、Yet Another Perl ConferenceというPerlのお祭り(大きな勉強会)です。YAPC::AsiaはそのAsiaにけるカンファレンスで、前夜祭含め三日間開催されました。2006年から始まり今年で第8回目となります。今年は、動員規模も1000人以上あったようで、またも最大規模を更新したようです。 全体の感想 まず、スタッフのみなさん(特に、牧さんと941さん)大変お疲れ様でした、そしてありがとうございました。今年も大変楽しいイベントでした!!!!私は、941さんか主催になってからの4年間きっかりしかいったことがなかったので、今後体制変更というのが気がかりとい

  • YAPC::Asia 2012で発表してきました ~不安定な環境の中でのバッチ処理~ | hirobanex.net

    YAPC::Asia三度目の参加で、お陰様でSpeakerとして参加させて頂きましたので、もろもろの感想を徒然なるままに綴ります。とにかく、JPAの皆様、ボランティアの方々、LTソンの運営の皆様、大変お疲れ様でしたっ!! YAPC::Asia2012とは YAPCとは、Yet Another Perl ConferenceというPerlのお祭り(大きな勉強会)です。YAPC::AsiaはそのAsiaにおけるカンファレンスで、2006年から始まり今年で第七回目となります。今年は、動員規模も800人以上あったようで、その他、スポンサー数など様々な意味で過去最大規模になったようです。催のJPAの皆様、ボランティアの皆様大変お疲れさまでした、また、大変ありがとうございました。 Readmine::Chanのトークがよかった ~それぞれのトークについて~ 今年は残念ながらそれぞれの会場が狭く立ち見に

  • PerlのCPANモジュールPickles::ContainerにみるFlyweightパターン | hirobanex.net

    PerlのCPANモジュールに学ぶオブジェクトデザインパターン』第3弾としてPickles::ContainerからFlyweightパターンを読み取ります。 問題:毎回同じインスタンスを生成している 前回の『PerlのCPANモジュールObject::ContainerにみるSingletonパターン』で述べた問題と同じような問題を想定します。 せっかくなので、今回は具体例を厚くしてみます。例えば、オレオレ環境に即したHTTPクライアントとしてLWP::UserAgentの設定を書いて、いろんなところで使いたいと思います。 #search.cpan.orgの検索結果を取得するクラス package Scraper::SerpSearchCPAN; use strict; use warnings; use LWP::UserAgent; use HTTP::Cookies; sub g

  • PerlのCPANモジュールQudoにみるTemplateMethodパターン | hirobanex.net

    PerlのCPANモジュールに学ぶオブジェクトデザインパターン』第一弾、かつ、エアHachioji.pm#8のLTとしてQudoからデザインパターンの中でも基であるTemplateMethodパターンを読み取ります。 問題:似たような処理を毎回ぐちゃぐちゃ書いている 概要 「大枠のやっていることは同じなんだけど、対象がちょっと異なって対象毎の特徴に合わせてコードを書いていると、なんだかまったく別のコードになって、最終的にコード全体のメンテナンス性の低下する」ということはしばしばあります。 具体例 例えば、Twitterとfacebookのタイムラインを取得するというコードを考えます。 #facebookのタイムライン取得クラス package TL::Facebook; use WWW::Facebook::API; sub fetch_tl { my $facebook = WWW:

  • PerlのCPANモジュールObject::ContainerにみるSingletonパターン | hirobanex.net

    PerlのCPANモジュールに学ぶオブジェクトデザインパターン』第二弾としてObject::ContainerからSingletonパターンを読み取ります。 問題:毎回同じインスタンスを生成している 前回の『PerlのCPANモジュールQudoにみるTemplateMethodパターン』で紹介したQudoのようなモジュールのインスタンスを生成するときには、以下のような長いコンストラクションコードを書いてジョブの登録とかを行います。 my $client = Qudo->new( driver_class => 'Skinny', # DBIx::Skinny databases => [ +{ dsn => 'dbi:SQLite:/tmp/qudo.db', username => '', password => '', } ], ); # enqueue job $client->e

  • PerlでTDD(テスト駆動開発)するなら覚えておきたいCPANモジュール群 | hirobanex.net

    最近、久しぶりに新規コードを書いたんですが、そのテスト書く中でTest::Mock::Guardってモジュール使って便利だったんで、ここらで、動作確認テストを書く上でいいな(使ってみたいな)って思ったモジュール群やテスト関連ネタを個人的なメモとしてまとめておきたいと思います。 いいなって思うPerlの動作確認テスト系CPANモジュール群 私が実際に普段使っているものから、これいいなー使ってみたいなーと思うものまで、一覧にまとめて見ました。結構いろんなモジュール使わないと、いい具合にTDDってできないものだと思います。 入門編 モジュール名 概要 参考日語記事

  • PerlモジュールFurlから学ぶ省エネコーディング | hirobanex.net

    いいなーと思ったPerlの書き方を「軽量で速い URL fecher」というFurlの0.32バージョンから簡単にピックアップしていきます。Furlを使うこと自体がエコですね。また、使う側の労力としていろいろなPerlハック的なものを覚えておく大変省エネですね。 Furlから学ぶPerlコーディング ハッシュリファレンスでもハッシュでも渡せる気遣い #Furl::HTTP l.40 sub new { my $class = shift; my %args = @_ == 1 ? %{$_[0]} : @_; ... } #使う側 ハッシュ Furl::HTTP->new( GET => 'http://yahoo.co.jp/', timeout => 30, ); #使う側 ハッシュリファレンス my $args = +{ GET => 'http://yahoo.co.jp/', t

  • 引数の明示という観点からのPerlモジュール群 | hirobanex.net

    Perlモジュールのバリデーターと呼ばれるジャンルのモジュールなどをバリデーションという観点ではなく、引数を明示するという観点から整理しました。 バリデーターの種類 バリデーターというものは、一般的に引数が期待される型など(整数か、文字列か、URLか、メアドか等)になっているかどうかをチェックするというものです。特に、Webアプリにおけるフォームから入力されるデータのチェックに活用されることが多いです。そういういった意味から、Perlのバリデーターモジュールはフォーム系と非フォーム系に分類することができます。 フォーム系のバリデーター等 FormValidator::Lite CPANにも紹介されている強力なフォームバリデーターです。フォームバリデーターとしては、フォームの型の定義、チェック、エラーメッセージの定義、が必要ですが、やりたいであろうことのだいたいがそろっているモジュールで実

  • PerlのWAFのAmon2を使う時のオレオレTips集 | hirobanex.net

    Amon2を使い込もうと、ちょっとコード読んだり、オレオレカスタマイズしたりしたので、そのときに「こんな感じにした/こんな感じでお茶を濁した」というのを「オレオレTips」と題して公開していきますー。 PerlWebサービスを開発する PerlWebサービスをいまどき開発するなら、PlackベースのWAF(ウェブアプリケーションフレームワーク)を使うのがモダンPerlですね。候補はたくさんあると思うのですが、なんとなくCPANでドキュメントとかクラス数とか見ていると、DancerとMojoliciousと、そしてAmon2くらいが汎用的でいいんじゃないかなーと思っている次第です。 ちなみに、このブログはKamuiというnekokakさん製のWAFで書かれていて、仕事でも未だにKamuiベースでモリモリ開発しちゃったりしているんですが、CPANにも公開されていないし、特にメンテナンスも予

  • 【Amon2のオレオレTips】MVCを意識したModelの実装要件 | hirobanex.net

    PerlのウェブアプリケーションフレームワークのAmon2を使うときModelってどうするの?って疑問が沸きませんか?Largeフレーバー以外でセットアップすると、シナトラリッシュなDispatcher(Router)でセットアップされるので、基的にコントローラーに全部実装してしまおうかなーって気になるんですけど、そうじゃないMVCを意識したケースはどうしようかなーという時のオレオレ理想の要件です。 MVC的なWAFの実装について ウェブアプリケーションフレームワークを使うと、M(モデル)とV(ビュー)とC(コントローラー)の3つにわけてクラス設計を行うのが基と言われていますが、細かい実装をどこに持って行こうか悩むケースにしばしば出くわしますね。とくに、薄いフレームワークと言われるWAFほど、Modelについてはノータッチで自由な設計が逆にできすぎて悩んでしまうことがしばしばではないで

  • 【Amon2のオレオレTips】MVCを意識したModelの具体的な実装とその考察 | hirobanex.net

    Tengをかます場合は、Rowクラスをどうするかで一長一短という感じだと思っているんですが、どうでしょうか?SQL系のDBを使わない場合とか、よく知らなんで、そういう場合はどうなるのかなーと思ったりするのですが、なかなかNoSQL的なやつを使うという状況にも出くわさないので、そんなケースにも出会ってみたいなーとか思ったりする次第です。 「DBクラスを拡張」の実装コード 次に個別の実装例別にサンプルコードを、DBクラス、MyAppクラス別、Dispatcherクラス、テストコードなどを、示していきたいと思います。 MyApp::Model::DBクラス package MyApp::Model::DB; use parent 'Teng'; use Smart::Args; __PACKAGE__->load_plugin('Count'); __PACKAGE__->load_plugin

  • Perlのメモリ保存型Job Queueフレームワーク入門覚書 ~ClutchとGearmanとWorkerのFork~ | hirobanex.net

    仕事をメモリに保存するタイプのジョブキューフレームワークのGearmanとClutchをそれぞれ使ってみて、実用的なワーカーのforkのコードを書いた、そのあたりの備忘録を、Hachojio.pmでLTした内容です。 やりたいこと ~なんでJob Queueとか使おうとしたのか~ なんで入門するかって話ですが、こんな経緯があったのです。「いくつかのAPIをたたいてその結果を集約して返したい」、あるいは、「たくさんAPIをたたきたいんだけど短時間で処理して、結果を返したい」と思ったんです。つまり、「並列処理をしつつ、結果をまとめて返したい」ということ実現する必要が出たんですね。それで、Perlでじっそうするとなると、以下の4つから選ぶんだと思います。 Coro AnyEvent Fork Job Queue AnyEventとかCoroとかは並列処理をさせる中身によって気にしなきゃいけない

  • PerlのWAFのKossyとO/RマッパーTengでつくるWIKIアプリ | hirobanex.net

    Like a ハッカソン(pre Hachioji.pm #15)の準備として、Kossyの勉強用アプリとしてWIKIアプリを作ってみました。O/RマッパーをTengで、Object::Container::Exporterでインスタンスキャッシュという感じの構成。 Kossyの特徴 作ったアプリの話に入る前にちょっとした個人的なメモをば。 ディスパッチャー/ルーターとコントローラーはSinatra-ish,filterがいい按配 テンプレートエンジンは、Text::Xslate(Kolon) 独自のバリデーター セットアップスクリプトあり フロントサイドのサポートして、CSSフレームワークのbootstrapとJqueryもついてくる Kossyのメソッドについてのメモ filter(DISPATCHER METHODS for Kossy class) $appのコードリファレンスをラ

  • Kossyを使ったペアプロイベントとPerlのWAFのあれこれ | hirobanex.net

    先週、クロージャーをまともに知らなかったことを露呈してしまったばかりですが、今日は「PerlのウェブアプリケーションフレームワークのKossyを使ったペアプロイベントやるよ!」って話と、PerlのWAFについていろいろと考えてみた記録を公開です。 【宣伝】Like a ハッカソン(pre Hachioji.pm #15)開催のお知らせ 日時 :2012/03/24 9:00- 参加者 :7/19(2012/3/18現在) 会場 :八王子南口MTビル時間貸し会議室 (東京都八王子市子安町4-9) 会費: 1000円〜2000円位 概要 : ペアプロやるか、モクモクやる宣言してモリモリコーディングする(詳細は下記参照) ATND : http://atnd.org/events/25927 イベント内容 前回の取り組みの結果から、「Like ハッカソン」とは、「モクモクやりたいことをやる」とい

  • Plack時代のReverse proxyによるサーバー運用方法 ~YAPC::Asia2010の復習(後編)~ | hirobanex.net

    後編を書く前に、YAPC::Asia2011が終わってしまったので、変な勘違いをされるかとやめようかと思ったのですが。。。とりあえず、YAPC::Asia2010の復習として、Plack時代のPerlによるサーバ運用では、わりと一般的なリバースプロクシによる運用を、このブログの実例で報告します。 前置き:plackupはわかったけど、実際どうするの? 「Perlは遅い」の原点だったApacheのcgi時代は終わりを告げ、Apacheに依存したmod_perl時代も終りを告げました。Plackを使えば、CGIだろうとmode_perlだろうとPerlのスタンドアローンサーバーであろうと、かなり汎用的に動かせる時代です。mod_perlとかFastCGI前から使っていれば、あるいは、「Rubyではふんふん、Pythonではふんふん」とか語れれば、いろいろな歴史をしっているからすぐ実践しやすいと

    kazuph1986
    kazuph1986 2011/11/09
    「メモリリークの調査」が気になる。
  • 1