タグ

ブックマーク / blog.shibayu36.org (61)

  • expand-region.elでperlのコードの範囲選択 - $shibayu36->blog;

    expand-region.elの紹介 - syohex’s diaryで紹介されていたexpand-region.elを使っていたのですが、expand-region.elはmodeごとにいろいろカスタマイズ出来るようでした。しかし、これまでperl用の設定がなく困ってました。 で、色々探してたらhttps://github.com/magnars/expand-region.el/pull/83 というpull requestがあったので、mergeされないかなーと思っていたら最近mergeされていたので使ってみました。 カーソルを置いて実行 実行、実行、実行。すこしずつ広がってく。 perlのシジルなどにある程度うまく対応してくれるので便利でした。

    expand-region.elでperlのコードの範囲選択 - $shibayu36->blog;
  • Kansai.pmに行ってCinnamonというデプロイツールについて発表しました - $shibayu36->blog;

    http://www.zusaar.com/event/476003 に参加して来て、前作ったデプロイツールであるCinnamonについて発表して来ました。 発表したこと 以前capistranoの奥深さに毎回ハマっているのを怒りを覚えて、もっとシンプルなデプロイツールであるCinnamonをantipopさんと一緒に作ったのでその発表をしてきました。それなりに好印象っぽかったので、発表してよかったです。 スライド Cinnamon - simple deploy tool from Yuki Shibazaki デモで使ったサンプルコード https://github.com/shibayu36/cinnamon-deploy-sample 簡単に紹介すると CinnamonはMinimumというのと、Role x Taskというのを思想として持っている Minimum : デプロイの方

    Kansai.pmに行ってCinnamonというデプロイツールについて発表しました - $shibayu36->blog;
  • ペアプロの成功体験と失敗体験 - $shibayu36->blog;

    ペアプロって難しい。今のところ、基的にうまくいかないことが多い。 その中でもたまに成功体験みたいなのがあったので、それを書いてみる。今回の話はあくまでも主観で感じたことである。断定的な書き方をしているのは単に書きやすいからであって、他意はない。あと失敗体験も書いておく。 今回の話に初心者と上級者という言葉が出てくる。これはペアプロ対象に対する初心者・上級者というものとする。なので初心者は「ペアプロ対象に対してあまり知識を持っていない」人であり、上級者は「ペアプロ対象に対して知識をある程度持っている」人とする。 ペアプロ対象の定義は難しくて、Perlで書かれたものであれば、Perlの知識は必要だけど、Perlで作られたある機能の知識や、もしかしたらMySQLの知識みたいなものも対象になりうるかもしれない。そのようなものを漠然とまとめて、ペアプロ対象と言っておく。 成功体験 ペアプロ対象に対

    ペアプロの成功体験と失敗体験 - $shibayu36->blog;
  • perlbrew.elの添削を取り込んだ話 - $shibayu36->blog;

    id:syohexさんが、perlbrew.elの添削をしてくれていたので、perlbrew.elに取り込んでみました。 勝手に添削 perlbrew.el - syohex’s diary perlbrew.elの使い方再び perlbrew.elはhttps://github.com/kentaro/perlbrew.el/blob/master/perlbrew.el からダウンロードできます。 これまでの変更で、PATHやexec-pathをきちんと設定される様になったので、perlbrew.elを使っていれば、以下のように単純にperlコマンドを呼び出すだけで、自動的に指定したperlを使ってくれます。以下はflymakeの設定の例です。 (defun flymake-perl-init () (let* ((temp-file (flymake-init-create-temp

    perlbrew.elの添削を取り込んだ話 - $shibayu36->blog;
  • direx.elでgitプロジェクトのディレクトリツリーを表示する、またはdirex-project.elの紹介 - $shibayu36->blog;

    emacsにはdirex.elという非常に便利なdirectory explorerがあります。これによって、ディレクトリのツリー構造が表示され、diredよりも便利にdirectoryを辿ることが出来るようになりました。 しかし、デフォルトでは自分にとってはいろいろと不便なときもありました。 ~/myprojects/Sample-Project/script/app.psgiを触ってる時に、direxを起動すると、~/myprojects/Sample-Project/scriptのディレクトリからのツリー構造が表示される。実際は~/myprojects/Sample-Projectからのツリー構造が表示されてほしい ~/のツリー構造が開かれている状態で、~/myprojects/Sample-Project/script/app.psgiからdirexを起動すると、~/のツリー構造の

    direx.elでgitプロジェクトのディレクトリツリーを表示する、またはdirex-project.elの紹介 - $shibayu36->blog;
  • emacsの正規表現をもっと便利に使う - $shibayu36->blog;

    emacsで正規表現を使って置換したいみたいな要求はそれなりにあると思いますが、それをやろうとするとemacsの正規表現のバックスラッシュ地獄みたいなものに遭遇することがよくあります。そんな時に使いたいtipsを少しだけ紹介します。 re-builderを使う emacsにはre-builderというものがあって、書いている正規表現のマッチ状況をリアルタイムにプレビューすることが出来るツールが存在します。M-x re-builderして、いろいろ書いてみると現在のマッチ状況がプレビューされます。 実行中にC-c C-wすればその正規表現をコピーでき、C-c C-qで終了出来ます。emacsにはいろいろな正規表現syntaxがあるので、C-c C-iで切り替えもできます。 詳しくは以下の記事を見るとよいでしょう。 Emacsの正規表現編集モード re-builder とややこしいバックスラッ

    emacsの正規表現をもっと便利に使う - $shibayu36->blog;
  • DBIx::QueryLogを使ってちゃんとSQLが流れているかテストする - $shibayu36->blog;

    DBIのconnectのCallbacksなどでSQLを実行している時とかに、実際にSQLが流れているのかチェックしたい時がある。そういう時どうするのがベスト・プラクティスなのかわからないのだけど、DBIx::QueryLogを使ったら一応できたのでメモ。 テストしたい状況 package My::DBI; use strict; use warnings; use DBI; sub connect { my ($dsn, $username, $password) = @_; my $dbh = DBI->connect($dsn, $username, $password, { Callbacks => { connected => sub { my $dbh = shift; $dbh->do("SET NAMES utf8") or warn $dbh->errstr; retur

    DBIx::QueryLogを使ってちゃんとSQLが流れているかテストする - $shibayu36->blog;
  • 今日覚えたgitのコマンド - $shibayu36->blog;

    git branch --merged masterとかやるとmasterにmergeされたbranchが一覧できる。-rをつければremoteの奴が一覧できる。 git branch --contains (SHA1)とかやるとあるsha1を含むbranchを一覧できる。 これを応用すると git branch --merged origin/master | perl -lnpe '$_ =~ s/[ *]+//;' | grep -v '^master$' | xargs git br -dみたいな感じでmasterにmergeされたlocalブランチをすべて消すことができる。 便利ですね。 ちなみにmaster ブランチにマージ済みのリモートブランチをまとめて削除する git-prune-remote-branch というスクリプトを作った - @kyanny's blogみたいな

    今日覚えたgitのコマンド - $shibayu36->blog;
    sugyan
    sugyan 2012/12/29
  • emacsで利用するperlを切り替える(perlbrew.elの紹介) - $shibayu36->blog;

    emacsで利用するperlを切り替えるperlbrew.elというのをantipopさんが作っていたのですが、少し動かなかった部分を修正したので、紹介したいと思います。 emacsとperlbrew perlbrewを使っているとPATHなどの関係から使いたいperlのversionを指定できない時があります。そんな時はperlbrew.elが使えます。 インストール まず、https://raw.github.com/kentaro/perlbrew.el/master/perlbrew.el からダウンロードしてきて、以下の設定をします。 (require 'perlbrew) (perlbrew-use "perl-5.14.2") これによりデフォルトでperl-5.14.2を利用できます。 perlコマンドへのpathを取得する 現在のperlコマンドへのpathを知りたい時は

    emacsで利用するperlを切り替える(perlbrew.elの紹介) - $shibayu36->blog;
  • perlでremoteのサーバでコマンド実行し、STDOUTとSTDERRをキャプチャする - $shibayu36->blog;

    perlでremoteのサーバにコマンドを実行したい時があります。こういう時はNet::OpenSSHが便利です。 Net::OpenSSHでコマンド実行するためには、以下を実行します。結果は手元のSTDOUTやSTDERRに出力されます。 use Net::OpenSSH; my $ssh = Net::OpenSSH->new('hogehoge.hostname', user => 'hoge'); $ssh->system('ls -x ~/'); さらにこの時のSTDOUTとSTDERRを変数に入れたい時があります。その場合は以下のようにします。 use Net::OpenSSH; my $ssh = Net::OpenSSH->new('hogehoge.hostname', user => 'hoge'); my ($stdout, $stderr) = $ssh->capt

    perlでremoteのサーバでコマンド実行し、STDOUTとSTDERRをキャプチャする - $shibayu36->blog;
  • Server::Starterから学ぶhot deployの仕組み - $shibayu36->blog;

    以前http://tech.naver.jp/blog/?p=1369の記事を読んだのだけれど、それまでにprocessの知識が無かったりして、まったく理解できませんでした。そこでWorking with UNIX ProcessesやServer::Starterの中身を呼んでようやくhot deployの仕組みを理解できた(気になっている)ので、Server::Starterの実装を追いながら、それをまとめてみます。 hot deployとは hot deployとは「再起動の時にリクエストの処理を続けながら、変更の内容を反映するための手段」です。 通常serverをrestartさせるときは、stop -> startの流れになると思いますが、この場合stopしてから、start出来るまでの期間にリクエストを処理できない期間が発生します。その期間なしにdeployする仕組みがhot

    Server::Starterから学ぶhot deployの仕組み - $shibayu36->blog;
    sugyan
    sugyan 2012/05/08
    図で説明した上でコード追っていく、という書き方がとても親切。勉強になります
  • 大学に5年間いて、卒業した - $shibayu36->blog;

    先日3/27に卒業式があり、卒業した。大学には5年間いた。その中で当にいろいろなことがあったし、いろんなことを学んだ。高校時代と比べて色々と成長も出来た。今振り返らないと、もう振り返る機会なんてないと思うので、振り返ってみる。 何をやってきたか 1年ごとに振り返ってみる。 1回生 1回生は楽しかったけど、印象に残ったことはそこまで多く無いので、さらりと。 大学に入学した 熊野寮(廃墟)に入った サークル楽しそうと思って3つくらい入ったけど、結局やめて1つだけ残った 残ったのは美術研究会っていう、名前には似合わず京都の観光をするサークル 熊野寮がとにかく楽しかった 賢い人が多かった いろんな議論をした この人達についていくには知識をつけるしか無いって思ってを読みまくった 2回生 2回生は熊野寮に関することをいろいろとやった時期だった。 熊野寮で部長をやった 寮には部会という運営グループが

    大学に5年間いて、卒業した - $shibayu36->blog;
    sugyan
    sugyan 2012/03/31
    卒業おめでとうございました!
  • Kyoto.pmを初開催 & 発表しました - $shibayu36->blog;

    Kyoto.pm初開催 & 発表をしました。 初開催 ようやくKyoto.pmを初開催まで持っていくことが出来ました!今回は初開催にも関わらず、JPA様に講師派遣支援をしてもらい、id:yappoさんを呼ぶことが出来ました。ありがとうございます。 今回は全部で45人ほどの参加があり、発表も通常トークが7つ、LTが10くらいあって非常に盛り上がったように感じます。また関東の方からid:yappoさんや、id:nekokakさんなど7人ほどの方が来ていただきました。ほんとうにありがとうございます。 さらにustreamを見ていたid:xaicronさんが20:00くらいに新幹線に乗ってやってきて驚きました。この行動力...すごい! まぁ何はともあれ、無事に第一回を開催することが出来てほっとしました。一般の人も呼ぶようなイベントとかは開催したことがなかったので、とりあえずは成功と呼べる程度の規模

    Kyoto.pmを初開催 & 発表しました - $shibayu36->blog;
  • Kansai.pm #14で発表してきました - $shibayu36->blog;

    Kansai.pmが開催されたので発表してきました。 発表 今回は「テストデータどうしてますか?」というタイトルで発表してきました。テストデータを生成するときどうすればいいかということをまとめて、自分で作ったDBIx::DataFactoryを紹介させてもらいました。 View more presentations from Yuki Shibazaki 感想 今回は発表が全体的に結構楽しく、勉強になりました。特にkazeburoさんのWeb Operations and Perlや、antipopさんのPerlでAPNS(Apple Push Notification Service)まわりを実装した話を非常に興味深く聞いてました。 LTもお菓子とかを出して、立った状態でわいわいやりながら聞けたというところが非常に良かったなと思いました。 前回perlのことを発表したのは、Kansai.

    Kansai.pm #14で発表してきました - $shibayu36->blog;
  • Test::Factory::DBIというモジュールを作りました - $shibayu36->blog;

    久々に思いついたモジュールを作ってみました。テスト用のデータを入れるために役に立つ(と思う)モジュールです。 Repository https://github.com/shibayu36/p5-DBIx-DataFactoryに置いてあります。 またPrepanにも上げました。レビューお願いします。http://prepan.org/module/3Yz7PYrBzi Synopsis 大体下のような感じに使います。 # schema CREATE TABLE test_factory ( `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, `int` int, `string` varchar(255), `text` text DEFAULT NULL, PRIMARY KEY (id) ) DEFAULT CHARSET=binary

    Test::Factory::DBIというモジュールを作りました - $shibayu36->blog;
  • [yapcasia]YAPC::Asia 2011に行ってきた - $shibayu36->blog;

    10/14, 15と東京の東京工業大学でYAPC::Asia 2011が開催されたので、行って来ました。僕自身はこれまでYAPC::Asiaには行ったことがなかったので、今回が初参加でした。 さて今回は僕自身は発表をせずに、Talkを聞いているだけでした。それだけでも様々なことを感じさせられたのでそれを書いていこうと思います。 結局手を動かし続けるしか無いということ 僕自身は、自分が感じる「すごい」人をたくさん目の当たりにすると、一旦落ち込んでしまう傾向があるんですね*1。劣等感を感じすぎてしまうというか。そんなことしても意味が無いとわかっていつつ、なってしまう。 今回のYAPC::Asiaも二日目あたりから、やはりその悪い癖が出てしまいました。こんな感じのツイートに象徴されるように。 ただ、そのあとid:naoyaさんから助言をいただきました。 これは当に正しいなと。なんというか結局は

    [yapcasia]YAPC::Asia 2011に行ってきた - $shibayu36->blog;
    sugyan
    sugyan 2011/10/17
    これからの活躍に期待しています!
  • 福島原発以上に危険性のある高速増殖炉もんじゅで今起きていること - $shibayu36->blog;

    いつもはこのブログでは、技術系の話しかしていないのですが、今回はちょっと変わって、今話題になっている原子力発電所の話を書きたいと思ってます。自分で調べてみると「高速増殖炉もんじゅって危ないな」ってことに気づきました。福島原発も難しいことになっていますが、もんじゅも現在も危険な状態になっています。それについてまとめてみました。 非常に長文になりましたので、時間があるときに読んでいただけるとありがたいです。特に福井県の方には自分たちの県のことなので読んでもらえたらと思います。 前置き まずこの内容について書きたくなった理由です。僕は福井県勝山市の出身で、福井県には多数の原子力発電所があります。これまでは原子力発電所については全く知識がなかったのですが、今回の福島原発での事故をきっかけに、やはり原発はある程度の危険性があるということに改めて気づき、原子力発電所について調べてみることにしました。そ

    福島原発以上に危険性のある高速増殖炉もんじゅで今起きていること - $shibayu36->blog;
  • 補足 - Web Applicationをきれいに設計するためのMVACという考え方 - $shibayu36->blog;

    Web Applicationを綺麗に設計するためのMVACという考え方 - Dive into the Tech World! では、様々な意見をいただきありがとうございました。コメントを見る限り、うまく伝えきれていないなという部分がいくつかあったため、補足としてまとめたいと思います。 前提 前回の記事は一応前提として、以下のようなものがあります。 Web Application設計の新しい手法を提案したわけではない 昔からある手法の理解が自分の中で深まったので、まとめてみたわけです もらった意見とその補足 MVCにおけるMの定義がおかしいのでは Mの定義がおかしいから、Aがある データモデルがMと思うと失敗する これに関しては、「MにSkinnyを」などというように、記事の書き方が少し良くなかったのではないかなと思いました。Mに関しては、DBへのインターフェイス、オブジェクトの層、ロジ

    補足 - Web Applicationをきれいに設計するためのMVACという考え方 - $shibayu36->blog;
  • Web Applicationを綺麗に設計するためのMVACという考え方 - $shibayu36->blog;

    【2016/03/04追記】以前まとめたこのMVACという名前の設計は既に古くなっており、今はこのようなアーキテクチャで設計していません。 こんにちは。最近ははてなでMVACというアーキテクチャに則って開発をしているのですが、ようやく意味を理解できてきました。そこで今回は「Web Applicationを綺麗に設計するためのMVACという考え方」について、サンプルを交えながら説明していこうと思います。かなり長くなってしまったので、時間があるときにでもどうぞ。 MVACって? データソースやロジックを扱う「Model」、表示・出力を管理する「View」、複数のModelとControllerをつなぐApplication、ユーザのリクエストなどを受け取りViewやApplicationを制御する「Controller」の4つの要素を組み合わせてシステムを実装する方式。MVCをさらに抽象化した

    sugyan
    sugyan 2011/03/03
    あとでじっくり読む
  • perlのforの挙動がわからない - $shibayu36->blog;

    perl5.8.9で下のように書いたスクリプトがなぜか死なずに実行される。仕様なのかわからないし、他のバージョンだと動作がおかしくなっちゃうのかどうかもわからないので、だれか分かる人がいたら教えて欲しいです。。。 追記 twitter上で教えていただきました。id:gfxさんありがとうございます!

    perlのforの挙動がわからない - $shibayu36->blog;
    sugyan
    sugyan 2011/02/16
    perl -Mstrict -e 'my $a; 1 if @$a' は死ぬけど perl -Mstrict -e 'my $a; 1 for @$a' は死なない。へぇ〜