ゆーすけべー日記

はてなBlogってどーなの!?

Perl

ありがとう! #yapcasia

8月20日〜22日までの3日間、東京ビックサイトにて開催された「YAPC::Asia Tokyo 2015」に「参加&トーク」してきました。 昨今のYAPC運営母体である「Japan Perl Association」が主催する「YAPC::Asia」は今回が最後となります。 YAPC::Asiaは今回でちょうど…

素PlackアプリとMojoliciousアプリを同居させる

Plack::App::URLMap 使えば出来るんですが... リクエストをPlack::Requestとしてゴニョってレスポンスが配列リファレンスなコードリファレンスを返す「 素Plack 」なアプリと Mojolicious アプリをパスによって振り分けて同居させるもうひとつの方法の例。 W…

PerlベースのWebアプリ作成を「委譲」する際のスキルチェックリスト20!

え〜とあるアプリのバックエンドを僕一人が書いてるのですが、 さすがにキツくなってきたので大工事をして「楽に」分業出来るようにしています。 その構成はちょいと置いといて〜 ウマく行けば「とある部分」を誰かに任せることになりますよね。 すると「弊…

My Summer is Over, YAPC::Asia 2013

好きな季節は? と聞かれると花粉症の春、雨が降る梅雨を除いて... と消去的に考えがちですが、 とはいえ気分が高揚する熱い夏が好きだなーって結論になって大抵「 夏 」と答えます。 そんな夏がこのBlogエントリーを期に終わろうとしています。 毎年、プロ…

YAPCを最大限に楽しもう!/ GETTING THE MOST OUT OF YAPC

今日はいよいよ YAPC::Asia 2013 の前夜祭!そして、明日あさってと本編ですね!ところで、6月に YAPC::NA 2013 に参加させてもらったのですが、その際に「YAPC BINGO」と書かれたカードが配られてました。 で、なんかその裏に書かれている「GETTING THE MOS…

大人のYAPCでキーノートします 〜 XXXXXXXXXX-Detectもあるよ!

つい先ほど「参加者が1,000人に達した!」という快挙を達成したらしいエンジニアのお祭りYAPC::Asia 2013。僕も本編でトークをしたりトークを聴いたりするわけですが、今回は非公式のイベント「大人のYAPC」というモノが開催されます。 大人のYAPC - YAPC fo…

YAPC::Asia 2013 でMojoliciousについてのトークをします #yapcasia

Perlだけじゃない?エンジニアの祭典「 YAPC::Asia 2013 」が9月に行われます。 9月19日(木) 前夜祭 9月20日(金) 本編1日目 9月21日(土) 本編2日目 YAPCというイベントは2008年から参加していて... ってことを今思い出すと僕にとっては今年が5年目のYAPC体験…

Object::Containerを応用したModel呼び出し

各種Model群についてObject::Containerを応用しつつ管理するとカジュアルにシングルトンになって効率いいかも!って思って、手元の小さなWebアプリで実装してみた。実験的にやってるんで、これおかしいって点あるかもなんでその場合はお手柔らかにツッコんで…

ORMにValidation機構を持たせる

ユーザーからのPOST等された入力値の妥当性をチェックする Validation をどこでやるか問題が個人的にありまして〜、DBを使わないケースならばいわゆるFomrValidator::*を使ってControllerでやればいいのですが、Modelを経由するようなアプリだとControllerだ…

Perl徹底攻略とWeb開発の基礎徹底攻略が出ます

WEB+DB PRESS plusのムック本として Perl徹底攻略 Web開発の基礎徹底攻略 の2冊がいつもお世話になっている技術評論社さんから来週火曜日23日あたりに出ます。どちらとも以前WEB+DB PRESSに寄稿した僕の記事が一部もしくはだいぶ修正して掲載されています。…

Mojoliciousでエラー時に特別な処理をさせる

たまたま、こんな感じのツイートを見かけたので... Mojoliciousで404、500等のWAFで用意されている標準画面を出さないようにする方法を知りたいのですがどなたか教えて頂く事はできますでしょうか 僕の返答 templates/not_found.html.ep とかにテンプレート…

Getした値が空であることをキャッシュする

Perlはご存知の通りTrue/Falseと言った真偽値を扱うBooleanな型は標準で備わっていない。例えば以下のテストは偽の値と解釈され全てFailする。 use Test::More; ok(0); # Fail ok(undef); # Fail ok(''); # Fail done_testing; つまり 0 undef / 未定義値 空…

最近の開発周辺事情と職質テックトーク

ここ最近の僕の開発で指標になっているのは「システムとしてのクオリティを上げるか」であり、それって当然のごとく行われているかもしれなくて、いわゆる Quality Assurance = QA なんて言葉があったり、某社では Test Engineer の方がいたりするわけです。…

ナウなPerlを勉強するためのリソースはいずこ

__papix__ 君が主催をして開催している Perl入学式 というイベントがあります。Unix/Linux/OSXの環境構築から始まり最終的にはWebアプリケーションをつくるハンズオン形式の勉強会を今年は年6回に分けて開催しているようです。かなり丁寧にPerlを教えている…

Mojolicious 8-Tips

依然としてPerlのWeb Application Framework=WAFは Mojolicious推し です。ボケてほどの大きなトラフィックを集めるようになったサービスでも使っている実績がありますし、自分で使っていてたまにバージョンアップの互換性で問題が出るくらいで、すっごく困…

YAPC::NA 2013に行って来た

Perlの祭典とも言うべきイベントYet Another Perl Conference = YAPC 。去年はYAPC::Asiaでベストスピーカー賞をいただきまして、その副賞が「YAPC::NA または YAPC::Europe へ派遣」というモノでした。YAPC::Europeは今年キエフでの開催でちょいと行くのが…

ELB配下のEC2インスタンスにデプロイをする

Amazon Web Services=AWSの話。実運用で使うかどうかは検討中なんだけど、とあるELBにぶら下がっているEC2インスタンスを自動的に取得して、それに対してデプロイ等を行うってのをPerlでやってみた。デプロイツールとしてCinnamonを使い、ELBやEC2情報を取…

DMMのWeb APIに今更気づいたので...

ムフフなビデオも網羅的に扱うDVDや動画の提供サービス「DMM」のWeb APIがいつの間にか公開していたらしく、なにぶんノーマークだったもので昨日の夜知ってビックリした。というかDMMは一生API出さないだろうなんて決め込んでいたのが良くなかったですね。 …

ささみさん@がんばらないを見るために

放送終了してたアニメをバッファリング無しで快適に見たくなったので、スクリプトを書いた。あんま真似しないでください。 use LWP::UserAgent; use URI::Escape qw/uri_unescape/; my $list_url = $ARGV[0] or die; my $url_list; my $ua = LWP::UserAgent-…

Devel::KYTProfのログをファイルに書き出して、I/Oのボトルネックを知る

Webアプリケーションが遅いとか感じる時って、僕の場合、I/Oがボトルネックなケースが多いのです。つまり、MySQLへクエリーを投げて返却を待つとか、memcachedにget/set等のメソッドを発行した時の待ち時間が長くかかってたり... とかです。そうすると計測し…

miyagawaさんPodcast ep7に出演しました

miyagawaさんに声をかけていただき、彼のPodcast番組にゲストとして出演させていただきました。 ep7 ゲスト: ゆーすけべー (yusukebe) - Tatsuhiko Miyagawa's Podcast 「ゲスト呼ばれたいな〜」と思っていたのですごく嬉しい反面、Podcast番組が始まった当…

PerlCasual #05 を開催しました #perlcasual

昨日29日(金)の夜、渋谷ヒカリエにあるNHN Japanさんのカフェスペースにて「PerlCasual #05」を開催しました。 PerlCasualのイベントは、前回2011年4月29日にtomi-ruさんの「Perl CPANモジュールガイド」出版を記念して行ったイベントから数えて2年ぶりの…

Kindle本「Perlについて語ろう」を出版しました

プログラミング言語「Perl」の入門書「Perlについて語ろう」をKindle向け電子書籍として出版し販売を開始しました。 Perlについて語ろうposted with amazlet at 13.03.15和田裕介 (2013-03-13)Amazon.co.jpで詳細を見る 本書は週刊で発行しているメルマガ「 …

Facebookイベント参加者の名刺画像を自動生成!

@shinotraさんが先日行われたHokkadio.pm #9で面白いことを発表してました。その一つがATNDのイベント参加者の名刺画像を自動生成するというモノ。神奈川にいながら北海道の熱気を感じつつ、昔同じようなことを「Facebookのイベントを対象に」やったなーと思…

地域コミュニティが熱い!?Kansai.pmに行ってきました #kansaipm

先日の土曜日2月23日、大阪駅のすぐ近くYahoo!さんの会議室にてKansai.pm第15回ミーティングが開催されました。僕はJPA=Japan Perl Associationさんの支援を受けてゲストスピーカーとして参加させていただいた次第です。大阪に行くのは高校の修学旅行で立ち…

Mojoliciousでテンプレート置くディレクトリを追加したい時

一つの「lib」ディレクトリ内で複数のMojoliciousアプリを動かしてるんだけど、 するとMojoliciousが使うデフォルトのテンプレート置き場「templates」ディレクトリだけじゃ管理しきれなくなってきます。そこでアプリごとにテンプレートを置く場所を変えちゃ…

PerlでGoogle AnalyticsへアクセスするならNet::Google::Analyticsが便利

fluentdとかTreasure Dataとかログを拾い集めて集計する新しい技術やプラットフォームが出て来てますが、Webの表層レベルだとGoogle Analyticsがやっぱり便利で使えます。ただ、サイト全体のトラフィックを観察するのには向いていますが、例えば、いくつかUR…

Kansai.pm 2/23 (土) でトークしてきます!

諸々な事情の結果、JPAさんのご支援でKansai.pmへ参加させてもらうことになりました。来週2月23日土曜日の「Kansai.pm 第15回ミーティング」です。ゲストスピーカーという扱いで40分間のトークをしてきます。色々話したい題目はあったのですが、@__papix__君…

Webアプリのディレクトリ事情

現在進行中で開発・運用しているWebアプリのファイルとディレクトリが若干ゴチャゴチャしてたんで、整理したらだいーぶスッキリした。こんな感じ! MacBook@yusuke % tree -L 1 -F . ├── Makefile.PL ├── cli/ ├── config/ ├── deploy/ ├── etc/ ├── lib/ ├─…

Webアプリにおけるキャッシュ。オレオレ事例

Webアプリにおいて、アクセスやデータ量が多く/大きくなってくると、 バックエンドのパフォーマンスが低下しがちです。 MySQLなどのRDBMSにデータを置いている場合は適切に クエリーを改善する、インデックスを張る、といった策で解決する場合もありますが、…

Dailymotionの動画を手に入れてムラムラするスクリプト

iPad miniを手に入れると寝転びながらそれで映像を見たくなる。 YouTubeで検索して好きなアーティストのライブ映像見たりするのもいいんだけど、 エンタメなコンテンツが見たい。 そういえばゴッドタンっていうテレ東の深夜番組の「キス我慢選手権」がすごい…

ローカルで開発しているHTMLをLAN内のiPhone/iPadで確認する

タイトルの通り、CSSやJSを含むHTMLを編集していたとします。開発中のローカルのPCでのブラウザを使った確認は、「file://」から始まるURIをアドレスとすればできますね。これは当然です。まどろっこしく例を挙げると、ターミナル上で編集中のHTMLを指定して…

Facebookのポスト内容をWebアプリケーションとして実行する

元★ネタ Run a tweet like Perl - bulknews.typepad.com 前書き またまた、なんだかよく分からないと思われる記事のタイトルだと思うけど、間違ってはいないと思う。 miyagawaさんがTwitterのツイート内容をPerlスクリプトとして実行するっていう変態的クー…

たった一つのツイートでひたすらアイドル水着画像を集める

元★ネタ たった10行のコードでひたすらアイドル水着画像をあつめる - UT Startup Gym たった3行のコードでひたすらアイドル水着画像をあつめる(Rubyだよ) - maeharinの日記 たった数行のコードでひたすらアイドル水着画像をあつめるのをGoutteで書いてみた…

daemontoolsで起動しているstarmanのログをfluentdで

fluentdが面白そうなんで、散らばっているAppサーバのログを集計してみたい。 アプリケーションは 基本、Perlで書かれてる Starmanで動かす .psgiで「enable "Plack::Middleware::AccessLog", format => "combined";」してる daemontoolsでデーモン化 という…

宮城大で一日だけ講師(270分)やります! #myu2012

突然ですが、宮城大学で一日だけ講師をつとめることになりました。 90分の授業3つ分なので、合計270分というロング授業をします。 日時は来月11月24日(土)12時50分から17時40分までです。 「プログラマーの仕事」というお題が振られてるのでそれに答える形…

Yokohama.pm #9 でラーメンの話をして来た!

先ほど終了した Yokohama.pm #9 。行って来た&5分間の発表をしてきました。 今までの Yokohama.pm はあまりにも Yokohama 要素が少ないので、 みんなPerl の話をしている中、僕一人だけ横浜周辺のラーメンのトークをしました。 Perl の話を期待していた方ご…

YAPC::Asiaで発表&ベストトーク賞1位をいただきましたー

世界最大級のPerlの祭典「YAPC::Asia 2012」に参加&トークして来ました。 そして参加者の投票で決まるベストトーク賞をいただきました! 60個ほどのトークの中での1位です!ありがとうございます>< どうやらベストトークの賞品が「YAPC::NA または YAPC::…

YAPC::Asia 2012 で小規模開発とか「ボケて」について話します!

世界最大級のPerlの祭典「YAPC::Asia 2012」。 YAPC::Asia Tokyo 2012 (Japan Perl Association) / CC BY-NC 2.1 トークも出来てチケット代が無料になる!というモチベーションで発表のサブミットをしていましたが、 昨日、僕のネタが採択されたようです。 …

miyagawanize2

はじめに miyagawa(宮川達彦)さんはスーパーギークの一人です。昨日のLL Decadeでも基調講演なさってました。 誰しもmiyagawaさんのようにコードを書きたいと思っているはずです。 しかし、僕たちは彼のようにはなれません。なぜなら「紫色の何か」が欠け…

MojoliciousとCPANモジュールで作る「Nopaste」チュートリアル

僕はWebアプリの開発言語にPerlを使っていますが、Perlで書くためのWeb Application Frameworkとして、 Mojoliciousを最近では利用しています。 Web Application Framework(WAF)とは、 Webアプリケーションの開発を効率的に行うためのライブラリ群(つまり…

MojoliciousでRails風のRESTディスパッチ

GET、POST、PUT、DELETEの4つのメソッドを使い切ってリソースをコントロールしようというRESTfulな概念には賛同だけれども、 ブラウザがGET、POSTのみのサポートだよねぇ〜っていう状況はよくあります。 Ruby on Railsではそこまで深く調べてないけど、POST…

PocketIOのイカ娘語echoサンプル

SocketIOのサーバ側Perl実装のPocketIO。 Hachioji.pmが中心となって開発しているYairc(仮)でも使われているんで、 気になって触ってます。 実用的に使うにはPlackのMiddlewareとかAppを活用して他のWeb Application Frameworkのアプリと同居させるといい…

イカ娘でTwitter OAuth認証

Webサービスのログイン方法の一つに「Twitterログイン」が最近多く見られるようになってきました。 サイト上でのユーザー登録無しでTwitterアカウントを引き回すことも工夫によってはできますので、 ユーザーや開発者にとって手間が省けるという利点があるの…

全裸で学ぶMVC事始め

一般的なWeb Application Framework(WAF)ではMVCという設計及び実装における概念が取り入れられています。 MVCに従ってつくるのが全てではありませんが、 WAFを使うと共に、一度はMVCを用いたWebアプリの開発経験はしておいた方がよいと思います。 MVCはモ…

いかにしておっぱい画像をダウンロードするか〜2012

4年以上前のBlog記事で非常に評判がよく「高校生がプログラミングをはじめるキッカケになった」というエントリーがあります。 題名は「いかにして効率よく大量のおっぱい画像をダウンロードするか」。 僕たちにとって重要な命題に対しての答えとして、 当時…

言語習得にまつわるエピソード

完全に見逃していた「Kamakura Perl Mongers テクニカルトーク #2」というイベントでtypesterさんが「typester式Perl勉強法」なる題名でPerlの勉強方法についてトークしたとのこと。 今自分なりにも「Webサービスに必要なプログラミングの言語習得」にまつわ…

PerlのWAFはMojolicious推しな件とそのノウハウ

Perlerな皆さん!WAFは何を使っていますかー!? 昨日行われたという「Perl Beginners #1」のレポートを漁っていると @hsksyuskさんのエントリにこう書かれていましたので僕もつい乗っかってみたくなりました。 PerlのWAFは何がいいの? @ytnobodyさんはKoss…

データ表現についてわかった瞬間

データの表現と操作 Webサービス等に必要な言語取得についてです。 プログラミング言語を勉強しようという時にデータの表現方法を把握した瞬間に、 「パッ」とその言語に対する理解が明るくなった気がします。 プログラミングは、抽象的に言えば、目的を果た…

無ければつくる

車輪の再発明 車輪の再発明という言葉があります。ある目的を果たすためのライブラリや先行事例があるにも関わらず、 同じことを叶えるためについつい自分で作ってしまう行為を指します。 例えば、SinatraというRubyの特徴的なWebアプリケーションフレームワ…