タグ

ブックマーク / blog.yappo.jp (21)

  • YappoLogs: xlsx ファイルを git diff しやすくする為の天才的な wrapper script を書いた

    皆さんはプロジェクトのリソースとしてエクセルの xlsx ファイルを使う事があると思います。 何てったって事務職の人ですら楽々使えるスーパー優れた UI なので、 web の管理画面とかを作り込むよりもエクセルでシート作ってもらってしまった方が早いケースも多いんです。現実の世界では。 で、普通の人は TSV にするだの CSV にしてもらうだのすると思うんですが、一方的にデータ貰うだけなら良いんだけど、相手とやり取りする時にはどうしても xlsx ファイル経由とかにしないと相手がこまる!やっぱりエンジニアのエは優しさのエだから相手に優しくしないとだめです。 で、 xslx ファイルでエンジニア以外の人とデータやり取りするとやっぱり、バージョン管理したくなるのが人情です。 でも xslx ファイルはバイナリファイルなので git diff とかが残念です。。。 って事で作っちゃいました。 h

    hide_o_55
    hide_o_55 2014/06/19
    便利
  • YappoLogs: Perl徹底攻略という本を作った話

    Perl徹底攻略というを作った話 来週火曜日に、ここ最近もっともイケてる Perlが出ることになりました。 ちなみに僕もなんか書いてるけど、役に立つことは書いてません。 基的には Web+DB PRESS で連載されている記事が集まっていますが、ちょさんの部分は Perl 5.18 までの話題を取り扱ったり、yusukebeのところなんかは TwitterAPI がもろもろ変わっちゃったので、ほぼ全部書き直しで YouTube API の話になってたりとか、既存の連載を読んでる人にも新しい情報ありますね。 載っている記事としても連載だけではなくて弾さんのアルファギークに逢いたいから Perl Hacker が出ている記事を中心に再収録してあるところもポイントです。 あとは今回のために naoya さんが新規に原稿書いてくれた事も目玉ですね。内容としては「Perlプログラミン

  • YappoLogs: lingr-ircd でお気楽 perl チャット

    lingr-ircd でお気楽 perl チャット 最近 Perlの話題を日語で – Lingr という革新性力が活発ですが、やっぱり lingr は情報密度が薄いから、情報密度が濃い irc client から使いたいっていう事で1週遅れで導入しました。 材料 Perl(筆者はCentOSに最初から入ってる5.8.8を使っています) Carton(適当に入れてください、筆者は sudo cpan Carton で入れました) git 入れ方 git clone git://github.com/tokuhirom/lingr-ircd.git cd lingr-ircd (5.8.8 標準の Scalar::Util が Mouse で動かんから cpanfile に requires 'Scalar::Util' => '1.27'; っての追加した) carton install

  • YappoLogs: perlbrew best practice

    perlbrew best practice perlbrew には $ perlbrew upgrade-perlというのが実装されてるのがあまりにも有名ですが、これは現在使ってる環境の perl を、そのマイナーバージョンの中で一番新しいバージョンにアップグレードしてくれるんです。 perl-5.16.1 を使っていたら perl-5.16.3 に perl-5.14.2 を使っていたら perl-5.14.4 に。という具合ですね。 同じマイナーバージョンの Perl では XS バイナリの互換性とか保証されているので、すでにインストールされているモジュールはそのまま利用できる状態になっています。 だがしかし $ perlbrew install perl-5.16.2して作った環境を upgrade-perl すると 5.16.3 が入ってるのに perl-5.16.2 って名前が

  • YappoLogs: perlbrew lib

    perlbrew lib perlbrew best practice まとめようと思ったら perlbrew lib なるコマンド見つけたので使ってみた。 なんか、一度ビルドした perl binary と元の site_perl を使いまわして、新たに lib path だけ変えて複数の環境を手軽に切り替える事が出来るってやつみたい。 例えば perl-5.17 の環境に @suneo って lib を作ると、 perl-5.17 の通常のライブラリパスに追加されて @suneo のライブラリパスが利用できる。そして cpanm で install するときは @suneo を汚さない。という branch っぽい作業するときに便利そう。 作る $ perlbrew lib create suneoってコマンドで suneo っていうのができます。 perlbrew list してみる

  • YappoLogs: plackp -R したプロセスを終了する時には SIGHUP ではなく SIGTERM を送るべき、もしくは daemontools で plackup -R するのは筋が悪い話

    « Perl Advent Calendar Japan 2012 は明後日からです、みんな参加して寿司をべよう! | Main | PLACK_ENV my way » plackp -R したプロセスを終了する時には SIGHUP ではなく SIGTERM を送るべき、もしくは daemontools で plackup -R するのは筋が悪い話 スレタイ速報だから内容は無いけど、 plackup -R や plackup -r した場合には Plack::Loader::Restarter で fork して親プロセスでファイルシステム監視をして、変更があったら子プロセスで立ち上げた plack を再起動するみたいな事やってるんだけど、この親プロセスに対して SIGTERM を送ると子プロセスの方にも TERM 送ってくれるから良いんだけど、うっかり SIGHUP を送っちゃうと親

  • YappoLogs: DSN に sql-mode=... 付けてもなんもなんないんだよ糞が!

    DSN に sql-mode=... 付けてもなんもなんないんだよ糞が! 最初の方に追記しておくと生DBI限定の話です。僕のしらない wrapper モジュールだと動くのかもしれません。 けど、こういうエントリを僕が書いてる時点で、そういうモジュールは筋悪いんだとおもいます。 人のプロジェクトのコードを見てたら my $dbh = DBI->connect('dbi:mysql:dbname=geekdb;sql-mode=STRICT_TRANS_TABLES', 'yappo', 'moneyfriend', %attr); みたいな感じの DSN があったんですよね。 他にも attribute てんこもりだったんで、それコミットした人に聞いて見たら「秘伝のタレです」的なのが帰ってきたので、僕も何も考えないで「これでSTRICT_TRANS_TABLES効いたら、まぁ捗るから付けとこ

  • YappoLogs: サービスをつぶさない為に Web アプリを書く時にやっとくと良い事2選

    サービスをつぶさない為に Web アプリを書く時にやっとくと良い事2選 テンプレートのエラーが出た時にアプリケーションのログだけに書くのでは無く、誰にでも「ここがえらってるよ!」って見えるようにしとくと間違いが少なくなる傾向があるのでテンプレートエンジンでフック出来るようになっておいてたら、それをうまく使うと良い。 また、テンプレートエンジンがレンダリングしてるフェーズで DB にクエリが飛ぶような構造で書いてあると、非エンジニアのカジュアルにテンプレートいじる人が甚大なクエリを実装してしまう可能性があるので、これも早期に発見しないとサービスが止まってしまい会社の売り上げが下がってしまい社員が路頭に迷うケースが発生してしまうので、これらも未然に防がなければならない。 Text::Xslate + Amon2 ならこうかける。 package MyProje::Web; ...; { my

    hide_o_55
    hide_o_55 2012/11/26
  • YappoLogs: InnoDB Deep Talk #1 に参加して来た話または 住所正規化 MySQL UDF を作った話

    « Kyoto.pm Tech Talks #01 に JPA の 地域PM向け 講師派遣支援プログラム で参加してきます! | Main | Kyoto.PM #1 で発表してきました » InnoDB Deep Talk #1 に参加して来た話または 住所正規化 MySQL UDF を作った話 昨日は起きたら参加申し込みしてたはずの InnoDB Deep Talk #1 が始まってるらしいのに気づいて急いで行ってきました。入館面倒い会場なのに遅刻者対応したりピザとか飲み物調達とか面倒い事をニコニコやってるいちい++だったし、ピザーラのピザじゃなくてサルヴァトーレのピザはやっぱり上手くて沢山くってしまった。 っていう話は置いといて、一通り終わって歓談タイムに突入した時に、もりよしさんが昨夜思いついた inokodb っていう素晴らしいストレージエンジンを、その場で実装してて LT して

  • YappoLogs: Perl Hackers Hub 2nd season side story

    Perl Hackers Hub 2nd season side story Kamakura.PM 会場からこんにちわ。 日発売の Web+DB PRESS Vol.67 にて Perl 連載の2クール目が無事感想したので2クール目の覚え書きでも書いておこうかと思う。 2クール目は、連載開始前〜開始当初に想定していたミッションを結構消化出来たと思っている。 1クール目はどちらかと言うと安定盤石路線っぽい感じでしたが、2クール目はだいぶチャレンジングな取り組みが多かったと思う。 それは、一つの言語をテーマとした時にみたチャレンジさという意味になりますね。 1クール目は、読者がPerlプログラミングをする為の基やスタンダード、基礎力向上出来る内容と題材そして執筆陣を持ってして素晴らしい記事が量産出来たのが良かった。 最後は Perl Hacker と毛色が違うカジュアル目線のエンジニア

  • YappoLogs: GrowthForecast ノススメ

    GrowthForecast ノススメ みなさん管理画面毎にグラフ作ってませんか?作るのめんどくさくて数値の表だけだして、直感的にサービスの動向掴みにくいとおもっていませんか? Google スプレッドシートの機能でグラフだせるからいいよ?とかいってませんか? Google スプレッドシートに吐かせる方法より簡単にグラフが作れたらいいとおもいませんか? 遂に GrowthForecastというグラフ表示ツールで捗る話 - blog.nomadscafe.jp リリースされたので、早速僕が GrowthForecast をどんな感じで紹介しようと思いますが、なんか忙しいので便利ツールだけ紹介します。 https://github.com/yappo/grouthforecast-worker こういうツールを使っているので、グラフ追加したい時にいちいちある程度のボリュームのあるコードとか書か

  • YappoLogs: Perl-users.jp創設者 大沢Yappo和宏 からの緊急のお願いをお読み下さい

    Perl-users.jp創設者 大沢Yappo和宏 からの緊急のお願いをお読み下さい http://perl-users.jp/articles/advent-calendar/2011/ http://atnd.org/events/22657 今年もやってきました。アドベントカレンダーの季節が! アドベントカレンダーは特別なものです。たとえるなら図書館、公園、あるいは知の神殿のようなものです。私たちが考えたり、学んだり、知識を交換しあったりできる場所です。 既に5トラックの応募が始まってます!まだまだ席に余裕がありますので Perl に関わってる方は是非参加しましょう。 アドベントカレンダーを開始したとき、そこに広告バナーを設置し営利企業にすることもできたでしょう。しかし、私は別の道を選びました。私たちは、書き込みシステムのスリム化に努め、小さな組織であり続けています。私たちは使命を

  • YappoLogs: YAPC::Asia Tokyo 2011 で発表してきましたわよ

    YAPC::Asia Tokyo 2011 で発表してきましたわよ 前回からPHPとかJavaScriptとかしかやってないから何も無いよなーと思いつつ、とりあえずWeb+DB PRESSの話でもしようと思って応募してたんだけど、急に Perl とかやるようになったので急遽LT二応募とかしましたとさ。 死霊一覧はこちら http://yappo.github.com/ perl hackers hubの話 どんなにblogが発達しようとも、雑誌が無くなってしまおうとも、プロの編集者を通した技術的な出版物というものは大事です。このセッションは、その間口を広げようとするのを目的としました。 前日まで当にスライドどうしようか良いアイデアが無かったんだけど、発表として伝えたい事は「誰でもこういう事できるんだよ。みんなもやりなよ。」っていうのだったので、年末に発売される回のサプライズな企画の紹介

  • YappoLogs: App::Ikachan - 様々なサーバのバッチ処理の結果等を IRC のチャンネルに通知するサーバ

    App::Ikachan - 様々なサーバのバッチ処理の結果等を IRC のチャンネルに通知するサーバ 皆さんは、日々のお仕事の中で様々なバッチ処理やデプロイツールまたはCIツールを動かすと思います。 一般的なネット系のエンジニア仕事のコミュニケーション手段として IRC を用いているというのが有名ですが、これらバッチ処理の処理状況等を普段の生活環境である IRC に流せたら便利です。 実際に前の会社では、 deploy tool, ci tool, etc batch script の処理結果を社内 IRC channel に通知するような物を hirose31 さんが作ってくれて、とても便利でございました。 とはいえ、各種スクリプトが独自に IRC server に繋ぎに行く事は大げさですし、バッチが走る都度 join/part されたらうざいです。 そこで前の会社では、 IRC s

  • YappoLogs: 【動画有り】MacBookとPlaggerServerで盗難対策ソリューションを構築

    【動画有り】MacBookとPlaggerServerで盗難対策ソリューションを構築 このネタもそろそろ終わり。 Push::Move - MacBookが動かされるのを検知してPlaggerのjobが走るPlugin 誰かがMacBookを勝手に持ち出したら携帯にメールとかできるですよ。 動かしたときにiSightで画像をとってenclosureに画像を突っ込んでメールするとか。を実装しただけなんですけどね。 go youtube やってる事は、誰かがMacBookを動かしたら「つうほうしますた!」と音声で警告しつつDVDをEjectをして威嚇してる隙にiSightで顔写真をとってMacBookの持ち主に警告メールを送ってます。 で、最後にshutdownしてデータの保護を行います。 まだまだ応用できそうですね。でもPlagger来のFeedとか関係ないですね。でも物理と繋がると楽しい

  • YappoLogs: モテる Perl 女子力を磨くための4つの心得

    « LWP::UserAgent の HTTPS 対応は LWP::Protocol::https というパッケージに分離されました | Main | BPStudy#39 で Ficia の UI とテストに関する事を発表してきました » モテる Perl 女子力を磨くための4つの心得 こんにちは、毎夜 Perl コードでラブレターをコンパイルしては core 吐かれている Yappo です。 。私は学歴も知識もありませんしリア貧ですが、 Perl 恋愛に関してはプロフェッショナル。 今回は、モテる Perl 女子力を磨くための 4 つの心得を皆さんにお教えしたいと思います。 1.あえて 2~3 世代前の Perl を使う あえて 2~3 世代前の Perl を使うようにしましょう。そうですね5.6あたりが良いです。そして好みの Perl Monger がいたら話しかけ、わざとらしく P

  • YappoLogs: OSDC.tw 2011 で Groonga 布教してきました/もしくは TOEIC スコア 100 未満の日本人が国外カンファレンスで英語プレゼンする方法

    OSDC.tw 2011 で Groonga 布教してきました/もしくは TOEIC スコア 100 未満の日人が国外カンファレンスで英語プレゼンする方法 エントリだけ書いててすっかりpostするのを忘れてたんですが、猿先々週にSPM48の中から数名のメンバーを集めたチーム台北2011選抜メンバーがosdc.tw 2011で発表してくるイベントがあったのですが、僕はそこで Groonga の布教をしつつ日での検索ソフトウエアについての発表をしてきました。 チーム台北2010選抜の時にいったosdc.tw 2010では、日語でプレゼンして来たんですが今度は英語でしてきました。 すったもんだがございまして、資料の英訳が全く間に合わなくて @__gfx__, @charsbar, @obra のお三方に英訳を助けて頂きました、当に助かりました! 実際のトークとかは、keynoteの機能を

  • YappoLogs: #!なんか糞だ

    #!なんか糞だ #!というものは、根的にURLの使い方を破壊しているからうんこである。 まず、質ではない。jsが壊れたら見れなくなる!っていう批判は的外れだが。 #!に妄信するのは愚かなことであるのは間違いない。 何が糞かってのは、もうさんざんDISられてるから中略。 というかlifehackerとかのそれはやる意味がまったくないし、もし軽くしたいんであればもっと別の手段を取ればよい。 そもそも http://www.lifehacker.jp/ にアクセスすると http://www.lifehacker.jp/ に飛ばされるし、頑張って http://us.lifehacker.com/ からアクセスして記事のリンクをクリックすると http://www.lifehacker.jp/ に飛ばされるので、ほんと死ねばいい。 動的に書き換えられたコンテンツのパーマリンクを作るためには、

    hide_o_55
    hide_o_55 2011/02/14
  • YappoLogs: Cocoa::Growl が面白い

    Cocoa::Growl が面白い なんかの時に、お勧めの growl を扱うモジュールの話をした時に、最近の俺の macbook pro では Mac::Growl が入らなくなって悲しいって話をしてたら typester さんが Cocoa::Growl を作ってくれました。 Objective-C をそのまま XS module 化しててイカすんですが、さらに AnyEvent のイベントループを cocoa のイベントループを使うようにする AnyEvent::Impl::NSRunLoop なんてのまで作っちゃって、 これを使うと growl の通知をクリックしたイベントとかを Perl 側でハンドリング出来ちゃったりして面白そうだけど使いどころ良くわからなかったので、 AnySan で繋いでる irc チャンネルに yappo って含む発言があったら growl で通知して、そ

  • YappoLogs: AnySanで日本語の文章をzenrize(全裸化)

    AnySanで日語の文章をzenrize(全裸化) 日語の文章をzenrize(全裸化)するAcme::Zenraっていうのを作ったを見たので、折角なのでAnyEvent::IRC::Clientを直で使ってる部分をAnySanで書き換えました。 生で使ってる時と比べると、AnySanを使うとよりbot体のコードを書くことに注力できる事がわかるとおもいます。(まだまだAnySanでのAPIの洗練は必要だけど) let's enjoy irc hacking! Posted by Yappo at 2010年11月17日 13:11 | TrackBack | Perl