サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
装丁を味わう
hirobanex.net
Tengでマニアックなクエリを組み立てたいときは、SQL::Makerのドキュメントを読みます。当然、生SQLで書いた方がいいこともたくさんありますが、複雑な検索フォームなどには有効な手法です。久々に書くブログ記事として、ググっても見つけづらい個人的に忘れがちな三つの用途をメモります。 TengからからSQL::Makerを使うと便利な三つの例 複雑なOR検索 InsertOnDuplicate JOIN それぞれ個別に解説しますが、まずその前にそもそも論。 そもそもTengからSQL::Makerを使うには たまに、Teng使っているのに新しくuse SQL::Maker;するっていう人がいますが、TengのクエリビルダーのバックエンドはSQL::Makerなので以下のようにしてSQL::Makerのオブジェクトをとれます。 $sql_maker = $teng->sql_builder
DarkPANをOrePAN2ベースでサーバーとして立ち上げられるOrePAN2::ServerなるものをsongmuさんとCPANにあげたとももに、それによってCPAN Authoerになったことを謹んでご報告いたします。で、使い方とか個人的な回想録をば。 DarkPANとかOrePAN2って何?メリットとラストワンマイル DarkPANとはCPANにあげられないモジュールや、CPANにアクセスできない環境で、CPANモジュールをキャッシュ的にためておく社内用のCPANミラーのことです。OrePAN2は、DarkPANを作成できるコマンドラインツールで大変便利にできています。 ただ、OrePAN2はサーバーではないので、cpanm,cartonから落とすにはplackupするなりApacheとかNginxとかかませる必要があるし、プッシュも、SSH経由でOrePAN2のコマンドをたたいた
forkしたプロセスのメモリチューニングのための調査ツール naoyaさんのshared_memory_size.plっていうのがあって、このブログの記事の内容とか後関連書籍の内容が文系プログラマ的にとても参考になってマジ感謝なんですが、apacheのプロセスチェックするときだとsudoつけて実行するから、いちいちSystem perlにLinux::Smapsいれなきゃいけないくて、しかもぼくのubuntu環境だと最新版の0.12の06-VmFlags.tってテストがこけてキモイし、別にLinux::Smaps使わなくてもいいやと思ったので、スクリプト化しました。 あと、共有していない部分のメモリ使用量もいちいち掛け算するのだるいので、右に出すことにした。 #!/usr/bin/env perl use strict; use warnings; @ARGV or die "usage:
10/26(土)に開催されたHachioji.pm#33に行ってきました!台風が去ったから前日に開催が決まって、なんと7人も参加するという柔軟っぷり! もろもろと まず、突然にbayashiさんが参加して、結構話せて楽しかったです。YAPC::Asia2013に参加した多くの人が、極楽汁麺 らすたにいったことでしょう。 Data::Dumper::AutoEncodeとかたまに使うし、utf8フラグが文字列に立っているか確認するときに毎回bayashiさんのPerl5.8でUTF-8のメモという記事を調べて、コードコピペするということをしているので、大変感謝&感動でした!あと、「パッチとか書かないんですか?」と聞かれて「コードあまり書けません」ってぶっちゃけましたが、今何個かモジュールとかプロダクトのアイデアがあったので、おかげさまでやる気をもらって今年中にgithubにはあげようと思いま
X-editableというBootstrapとかJQuery UIとかのプラグイン的に使用するものがあって、これを使うとかなり使いやすい編集フォームを作ることができるので、そのご紹介。 登録されたデータを編集するときにいちいち編集用のフォームに行って、変更内容をバリデータに流してほげほげってするのってけっこうめんどい。特にURL名も、form/createとかform/updateとかただ、formにするとか、考えるのめんどいし、作成と編集を一緒にしてformとかした場合も、コントローラーの部分が肥大化してきもい。 ケースバイケースで使えないところもあるのも当然だけど、ひとつひとつ編集したときにバリデーション→更新となるのでとても安心感があるしわかりやすい。 X-editableをAmon2::Liteでサンプル作ったので、Perlユーザーならすぐに呑み込めるようにしておきました。 参考U
このブログのバックエンドApacheからNginxに乗り換えたので、それまでの流れをメモとして公開します。Nginxをわざわざ使う上でやっておいたほうがいい基本的な設定とリバースプロクシキャッシュの動く設定からベンチマークツールの賛否両論まで。 次世代WebサーバーのNginxという未来へ! 「Nginxがすごい!!!」みたいな話を聞いて、はや4年。なんだかよくわからず、Apacheを使い続けていましたが、やっとNginxのすごさがわかったので、乗り換えました。そのあたりのより入門的な内容やApacheでよくやる設定をNginxでどうやろうかもつらつら調べているので、そのあたりは別記事としてたぶん公開するとして、まず手っ取り早く導入しないとそのあたりをやる気力もなくなるので、個別のカスタマイズはさておき、導入内容ついて記事にしておきます。とりあえず、Nginxの公式サイトでも見てみるといい
マコピー(@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 => +{
ubuntu10.04とubuntu12.04(VirturalBox)にphpenvのプラグインとしてphp-buildを入れて、php5.5.3いれようたしたら、全然動かなくて、フリーズ状態だったところで、なんとか入ったのでその記録 サマリ ~今回の教訓~ ログには罠がある 最終的にはソースを見よう(例え慣れていない言語でも、でなきゃ早く諦めるべし) /dev/nullの使いどころをわきまえるべき Linux力、最低でもソースからいれている経験は重要 概要と基本的なphpenv + php-buildによるphpのインストール sudo aptitude install -y libxml2 re2c autoconf bison libxml2-dev libcurl4-dev libjpeg62 libjpeg62-dev libreadline6-dev libpng12-0 l
今年で四回目ということで、YAPC::Asiaに参加したのでそのご報告を。参加セッションの概要と感想、カンファレンス全体の印象、今後の個人的タスク、来年について、など。 YAPC::Asia2013とは YAPCとは、Yet Another Perl ConferenceというPerlのお祭り(大きな勉強会)です。YAPC::AsiaはそのAsiaにけるカンファレンスで、前夜祭含め三日間開催されました。2006年から始まり今年で第8回目となります。今年は、動員規模も1000人以上あったようで、またも最大規模を更新したようです。 全体の感想 まず、スタッフのみなさん(特に、牧さんと941さん)大変お疲れ様でした、そしてありがとうございました。今年も大変楽しいイベントでした!!!!私は、941さんか主催になってからの4年間きっかりしかいったことがなかったので、今後体制変更というのが気がかりとい
若干それますが、あまりに対応するのもどうかと思いますが、ディレクターや顧客が「あのデータ手が滑って削除にしちゃったんだけど、やっぱり戻せない??」っていうのを無視するのはどうかと思いますし、開発時とか運用当初はいまいち要件も定まっていないことが多いはずなので、そういう観点からもしっかりそのほかの手法も組み合わせるべきですよね? 実際の組み合わせ 運用状況に応じて以下のように組み合わせるのが一般的ではないでしょうか? [Web型]mysqldump系 + bin-log + レプリケーション [Web型]mysqldump系 + レプリケーション [どうでもいい系,α版]mysqldump系 + bin-log [バッチシステム]mysqldump系 バッチの場合は楽ですね。で、今回はたいしてお金ないんだけど、まぁしっかりバックアップっぽいことをやりたいケースへの対応として最低限の「mysq
mysqldumpってバックアップ使うあれでしょっていう感じですが、突然入ったプロジェクトや、有償/無償のシステムを持ってきたときなど、DBのスキーマ構造やマスターデータの管理に使うと意外と開発者でも役立つなと思いましたので、その内容をば。 逆引き実践Tips とりあえず、釣りっぽいタイトルを「オレオレ」でごまかすの術から始まっていますが、使えねーよって人がいたら無視してくださいw で、まずは実践的なワンライナー的なコードから。 対象のサービスのDB構造の一覧がほしいよ! mysqldump --compact -d -uroot mydbname | egrep -v "(^SET|^/\*\!)" | perl -ple 's/CREATE TABLE /\nCREATE TABLE /g' > ./schema.sql mysqlオプションは以下にまとめて解説を載せますが、それ以外の
最近聞いているmiyagawaさんのrebuild.fmやmozunion氏の職質テックトークなどがなかなか面白いので、もっと番組増えないかなと思って煽り記事をば。 最近のマイブームのテック系のポッドキャスト なんかブログで、リンクシェアされてないな?と思ってこういうのは最近はTwitterとかむしろ前時代のIRCとかで話しちゃうからブログに書くまでもって感じだけど、なんかどっかからリンクとかはってあったほうが流行っている感あっていいのではと思い記事を書くことにしました。 で、具体的には以下のポッドキャスト番組の具体的なお話とか個人的メモとかポッドキャスト全般についてつらつらと述べます。 rebuild.fm@miyagawaさん 職質テックトーク@mozunion氏 日本ではポッドキャスト終わった感があって、そもそもポッドキャストってどうやって聞くのって感じであまり触れてなかったんだけど
naoyaさんの「入門Chef Solo - Infrastructure as Code」を読んで、サーバー状態管理ツールのchef-soloに入門したので、そのメモを書きます。ubuntu10.04,zsh,rubyまったくわからんって状況の人はマルコピで入門できるような未来のオレオレのためのメモを公開します。 chefの概要 chefとは、rubyで書かれたサーバーの状態管理ツールで、apache,mysqlなどなどのサーバーのミドルウェアだったり、ユーザー/グループ作成など、rubyで実行内容を書くことで一括実行し、かつ、そのサーバーへの追加変更事項も管理できます。類似ツールとしては、Puppetなどがあるようですが、僕はよく知りません。 ベースのchefは、server-client方式で、chef-serverに設定情報を保存し、状態管理したサーバーにはchef-clientを
最近、サーバー状態管理ツールのchefがブームですがね、やっぱりufwのようなファイヤーウォールの設定こそ、chefみたいなので管理したいですよね。それで、その設定方法について調べてやってみたので、ちょっとさらしておきます。「ここが変だよ!!」「こんなのあるよ!!」ってツッコミお待ちしております。 そもそもufwとは Linuxのファイヤーウォールのiptablesのubuntuのコマンドラインツールがufwという話みたいです。詳しくはよくわからんです、SentOSの方はお帰りくださいって感じですかね?実際のところ、ファイヤーウォールとは何かいまいちピンと来ていないですが、まぁ、だいたい以下のことを実現するということでしょうか。 指定した外部端末の通信を制限/許可する 指定したアプリケーション/ポートの通信をを制限/許可する ウェブサイト公開している人たちとしては、いろいろな脆弱性をつかれ
schema.sqlみたいなファイルにmysqlのテーブル定義を管理しているとして、その修正をした時にできるだけ楽にMyDB::SchemaみたいなTengのSchemaクラスを生成するというときのオレオレTipsです。 TengのSchemaクラスの生成について このTipsはAmon2とは直接関係ないですが、Teng使う場合はきっとついてくる問題だと思ったのですし、Amon2とTengを一緒に使う人はたくさんいるでしょうと思ったりしたので、オレオレTipsとして入れ込みました。 で早速本題ですが、PerlのO/RマッパーのTengを使う場合は、Schemaクラスというのを用意しなくてはいけないんですが、その作り方としては主に3つあります。 手で色々とゴニョゴニョ書く Teng::Schema::Dumperを使って自動生成する Teng::Schema::Loaderを使ってSchem
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のウェブアプリケーションフレームワークのAmon2を使うときModelってどうするの?って疑問が沸きませんか?Largeフレーバー以外でセットアップすると、シナトラリッシュなDispatcher(Router)でセットアップされるので、基本的にコントローラーに全部実装してしまおうかなーって気になるんですけど、そうじゃないMVCを意識したケースはどうしようかなーという時のオレオレ理想の要件です。 MVC的なWAFの実装について ウェブアプリケーションフレームワークを使うと、M(モデル)とV(ビュー)とC(コントローラー)の3つにわけてクラス設計を行うのが基本と言われていますが、細かい実装をどこに持って行こうか悩むケースにしばしば出くわしますね。とくに、薄いフレームワークと言われるWAFほど、Modelについてはノータッチで自由な設計が逆にできすぎて悩んでしまうことがしばしばではないで
configの設定って、githubに上げたくないものがあったり、あるいは、Amon2だと環境別にconfigファイルの設定ができるようになっていたりするけど共通の設定を入れたかったりというのがあって、カスタマイズしたい気がしたりしますよね?そんな気になった時のTipsです。 デフィルトのAmon2のConfigの設定 バージョン3.66現在、Amon2のConfigは、以下のようになっています。 Amon2->config()から Amon2->load_config()を呼び出し Amon2::Config::Simple->load()が呼ばれ 環境別のconfig/以下にあるファイル(test.pl,development.pl,depoloyment.plのいづれか)で定義されているhashリファレンスが返され Amon2クラスを継承したクラスのconfigメソッドにキャッシュさ
Amon2を使い込もうと、ちょっとコード読んだり、オレオレカスタマイズしたりしたので、そのときに「こんな感じにした/こんな感じでお茶を濁した」というのを「オレオレTips」と題して公開していきますー。 PerlでWebサービスを開発する PerlでWebサービスをいまどき開発するなら、PlackベースのWAF(ウェブアプリケーションフレームワーク)を使うのがモダンPerlですね。候補はたくさんあると思うのですが、なんとなくCPANでドキュメントとかクラス数とか見ていると、DancerとMojoliciousと、そしてAmon2くらいが汎用的でいいんじゃないかなーと思っている次第です。 ちなみに、このブログはKamuiというnekokakさん製のWAFで書かれていて、仕事でも未だにKamuiベースでモリモリ開発しちゃったりしているんですが、CPANにも公開されていないし、特にメンテナンスも予
TwitterやれFacebookやれでOuth認証してウェブサイトのユーザー登録を簡易化、兼、個人情報を持たなくてハッピーな展開がいろんなサイトでも見受けられる今日この頃ですが、PerlのWAFのAmon2では簡単にこの実装ができちゃうよってことで、その備忘録でございます。 【前置き】Amon2はWeb周りの実装が充実している tokuhiromさんがオーサーのPerlのWAF(ウェブアプリケーションフレームワーク)のAmon2ですが、軽量・高速とコードが少ないということで、今度のWEB+DBでも記事が出るそうでとても楽しみな今日この頃なのですが、DancerとかMojoliciousとか軽量と言われるその他のWAFと比べてどうか知りませんが、軽量といってもプラグインで以下のようなウェブ周りのプラグインが充実しているので、結構、使いやすいように思えます。 Amon2::Plugin::W
いま話題の[yusukebe](http://yusukebe.com/)さんの『Webサービスの作り方』を早速でもないですがAmazonで買って読んだので、その感想をば。 概要 『Webサービスの作り方』は、Webサービス/アプリの「企画」から「運用」までについて、Webエンジニアのゆーすけべーさんが書いたとてもユニークな本です。 いいなって思ったところ いくつかあるのですが、それぞれをば。 企画とか設計についてシンプル 「MongoDB!!」、「NodeJS!!」、「groonga!!」、とか「新しい技術!!」を必死に追いかけていたり、「Fizz Buzz!!」とか「きれいなコード!!」とか追求していると、 企画 設計 とか意外と疎くなったりすると思うんですが(設計はそんなことないとは思うんですが、突貫的な仕事しているとやっぱり疎くなったりすると思います)、そういうところをシンプルにお
Kindle日本発売の電子書籍ブームの先駆け?として先日、miyagawaさんがPlackの電子書籍を出していらっしゃいましたが、続いてtokuhiromさんもPerlのテストの電子書籍を出されたので早速読んだ感想とかをば。【2012/11/28:kindleについて追記】【2012/12/02:『Perlテスティングハンドブック Version 4 』について追記】 電子書籍ブーム! 2012/11の中旬に(もうすぐ♪)Kindleが日本で発売になるということで、目下空前のKindle対応電子書籍ブームですね!!とりあえず、ハードウェアとしてのKindle発売前にKindleのiPhoneアプリのKindle for iphoneで電子書籍を読むのってどんなもんだろう?というのを検証しつつ、せっかくPerlに訪れた新しい情報拡散の潮流を盛り上げたくて、tokuhiromさんの『Perlテ
Plack Handbookは、CGI以降の最近のPerlを使ったウェブサイトを作る上でベースとなるPSGIという仕様の実装であるPlackのまとまった(電子)書籍です。待ちに待ってましたという感じだったんですが、でやっと入手して読んだ感想とかをメモります。 といいつつPlackって何?詳しく教えて? 上述した通りなものがPlackなのですが、FTPでアップしてふんふんふん、という事をしている人にとって、いまいちピンとこないのがPlackだと思います。昔は、FTPを使って.cgiファイルみたいなのをアップしてちょっとした動的な動きをするページを作るには、PerlだとCGI.pmというCPANモジュールに準拠しながらいろいろと作っていたのです。ただ、ApacheのCGIという技術の上だと、何分毎回プログラムファイルの読み込みをとかを行うので遅かったりしたのです。そこで、FastCGIとかmo
YAPC::Asia三度目の参加で、お陰様でSpeakerとして参加させて頂きましたので、もろもろの感想を徒然なるままに綴ります。とにかく、JPAの皆様、ボランティアの方々、LTソンの運営の皆様、大変お疲れ様でしたっ!! YAPC::Asia2012とは YAPCとは、Yet Another Perl ConferenceというPerlのお祭り(大きな勉強会)です。YAPC::AsiaはそのAsiaにおけるカンファレンスで、2006年から始まり今年で第七回目となります。今年は、動員規模も800人以上あったようで、その他、スポンサー数など様々な意味で過去最大規模になったようです。催のJPAの皆様、ボランティアの皆様大変お疲れさまでした、また、大変ありがとうございました。 Readmine::Chanのトークがよかった ~それぞれのトークについて~ 今年は残念ながらそれぞれの会場が狭く立ち見に
YAPC::Asia 2012で、LTソンというLTをぶっ通しでやる企画をHachioji.pmの面々でやることになったので、その打ち合わせを兼ねて、珍しく平日、そして、吉祥寺という場所で開催されたHachioji.pmに参加して参りましたので、そのご報告です。 概要 YAPC::Asia 2012で行われるLTソンというLTをぶっ通しでやる企画をつめようと、珍しく八王子でなく吉祥寺にmakamakaさん予約のイタリアンのお店にて、8/6に行われましたっ! uzullaさんのほうで事前にモリモリと考えて頂いた概要のもとに、LTソンについていろいろ話し合いがおこなわれ、その後、xtetsujiさんやytnobodyさんやuzullaさんが、いつもの飲みながらLTが行われました。ytnobodyさんが使ったっていっていた、CIツールを触ってみたいなーと思いましたっ! また、YAPCでのトークが
『PerlでTDD(テスト駆動開発)するなら覚えておきたいCPANモジュール群 』って記事書いたら、ありがたいことにikasam_aさんに「Tes::Deep::Matcherを書いたよ」ってご紹介頂きましたので、続けざまに型一致ベースのPerlのテストについていろいろと思うところを整理しておきたいと思います。 【宣伝】Yapc::Asia2012のトークに応募しています この記事アップしようとして、先の記事みたら、私のブログからしたらたくさんはてぶが付いているじゃありませんか!!そして、そのわり・・・。だったので、最初に紹介します。 Perlの最大のイベントYapc::Asiaが今年も開催されますが、今年はトークに応募してみました。バッチ処理とかジョブキューシステムとのQudoとかについて普段やっていることをまとめて発表する予定です。ご興味ありましたら、是非『不安定な環境の中でのバッチ処
最近、久しぶりに新規コードを書いたんですが、そのテスト書く中でTest::Mock::Guardってモジュール使って便利だったんで、ここらで、動作確認テストを書く上でいいな(使ってみたいな)って思ったモジュール群やテスト関連ネタを個人的なメモとしてまとめておきたいと思います。 いいなって思うPerlの動作確認テスト系CPANモジュール群 私が実際に普段使っているものから、これいいなー使ってみたいなーと思うものまで、一覧にまとめて見ました。結構いろんなモジュール使わないと、いい具合にTDDってできないものだと思います。 入門編 モジュール名 概要 参考日本語記事
2012/6/29(金)に京橋(宝町)で行われた「Perl Beginners #3」に参加させて頂きまして、Perlの本格的なLTのBeginnerをしてきましたのでそのご報告です。 イベント情報 公式サイト ATND ATND 懇親会 ビギナーズセッション コードレビューときいて(@studio3104_com) fluentd にMySQLのスロークエリログをいれるコードをかいた https://github.com/studio3104/out-exec-mysql-slowquery スローログの解析上、そのクエリがどのデータベースに対してなのかわからない 同じデーモンに、別のデータベースで同じテーブル名、カラム名構造があると困る 後置のifでmy宣言は使っちゃいけない(my $hoge = $self->moge if $num == 3;) とりあえず、やりたいことも、コード
今月も開催されましたHachioji.pmに行ってきたので、そのご報告。私は、yanchaでやらかしたっ!gfxさんがjsxの紹介をしたっ! 今回は遅めの11時開始でした。初参加のyoshihirokunoさん含め、makamakaさんやhide_o_55さんも参加されて、最終的に総勢10名ほどが参加されました! もくもく自分の作業をされたり、Hachioji.pmで今開発している次世代チャットシステムのyanchaの開発をしたりしていました。 yanchaの開発 私の把握している限り、uzullaさんがyanchaの発言の削除機能つけたり、私がyanchaの投稿者アイコンからtwitterやfacebookのプロフィールページにリンクする機能を実装しようとしたり(適当なPull Requestしてすみません!!)、ytnobodyさんがエラーの修正したりと、コツコツyanchaも開発が進
次のページ
このページを最初にブックマークしてみませんか?
『hirobanex.net』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く