タグ

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

  • Chrome Developer ToolsのTimeline -> Bottom-Up -> Group by URLが便利だった - $shibayu36->blog;

    アニメーションが遅い問題を調査していて、どうやって原因を特定すれば良いかわからない状態だった。それをチャットで会話していたら同僚が「Chrome Developer ToolsのTimeline -> Bottom-Up -> Group by URL使うと良さそう」みたいなことを教えてくれた。使ってみたら非常に便利だったのでメモ。 Developer ToolsのTimelineである期間にどのような処理が動いていたか知ることができる(画像の上半分)ということは知っていた。しかし、下部分のSummaryのタブを切り替えてBottom-Upを押すと、いろんなグループでまとめて調査できるということは知らなかった。 その中でGroup by URLを選択すると、読み込みJSごとでかかっている時間がぱっと分かる。この中には自分が入れている拡張も含むので、自分固有の問題なのか、そうではないかも切り

    Chrome Developer ToolsのTimeline -> Bottom-Up -> Group by URLが便利だった - $shibayu36->blog;
  • WEB+DB PRESS vol.94で「Perl開発への動的な型制約の導入」について執筆しました - $shibayu36->blog;

    WEB+DB PRESSのPerl Hackers Hubで執筆しませんかとお声がけいただいたので、「Perl開発への動的な型制約の導入」について執筆しました。日発売です。 WEB+DB PRESS Vol.94 作者:藤原 俊一郎,朽木 拓,八木 俊広,吉田 太一郎,うらがみ,のざき ひろふみ,うさみ けんた,水嶋 淳貴,佐々木 健一,柴崎 優季,前島 真一,伊藤 直也,遠藤 雅伸,ひげぽん,海野 弘成,はまちや2,竹原技術評論社Amazon 今回は、動的な型制約とは何かや、なぜPerlに導入したいのか、Smart::Argsを使った型制約の導入方法、型制約の応用など、動的な型制約にまつわる内容について書きました。Perlでもっと安全に開発したいと思っている方には参考になると思うので、是非見ていただければと思います。見出しは次のとおりです。 なぜ動的な型制約を導入したいのか Smart

    WEB+DB PRESS vol.94で「Perl開発への動的な型制約の導入」について執筆しました - $shibayu36->blog;
    n2s
    n2s 2016/08/26
  • HTML5 スタンダード・デザインガイド読んだ - $shibayu36->blog;

    HTML5を利用するにあたって注意すべき点を学ぼうと思って、HTML5 スタンダード・デザインガイドを読んだ。 HTML5 スタンダード・デザインガイド~Webサイト制作者のためのビジュアル・リファレンス&セマンティクスによるコンテンツデザインガイド~ [リフロー版] 作者:エ・ビスコム・テック・ラボマイナビ出版Amazon このHTML5のタグ一つ一つについて、どのようなセマンティックな意味を持っているか説明してくれていた。ただ、タグ一つ一つについて書いてある分、読むのは結構大変かつ全て現在知っていないといけないみたいな感じではないので、少し冗長なイメージがあった。 使い方としては、よく使うタグについて一通り眺めてみてだいたいこんな感じのものがあるのかと把握しておくのが良さそう。読み終わったあとはリファレンス的に使い、新しく何らかのタグを使いたい時に、HTML5の実際の仕様を読む前の

    HTML5 スタンダード・デザインガイド読んだ - $shibayu36->blog;
    n2s
    n2s 2015/10/16
    asin:B00CZ711QS
  • curlとjqで簡単にAPIの調査をする - $shibayu36->blog;

    ちょっとAPIを調査したいと思った時に、スクリプトを書くのも面倒なのでcurlとjqとかを利用してみたら、便利だったのでメモ。今回はTrelloをちょっといじってみた。 Redirecter ひとまずcurlでjsonを出す これは普通にcurlするだけ。 curl 'https://api.trello.com/1/boards/4d5ea62fd76aa1136000000c/cards'これでは見づらい。 curlで出たjsonをpretty化する jqに通すだけでpretty化と更に色付けされる。 curl 'https://api.trello.com/1/boards/4d5ea62fd76aa1136000000c/cards' | jq '.' curlで出たjsonの一部だけ表示する jqはjsonをいろいろ絞り込み出来る。 例えばリストの5件目まで表示。 curl 'h

    curlとjqで簡単にAPIの調査をする - $shibayu36->blog;
    n2s
    n2s 2014/09/23
  • perlの変数のデータ量を測定する - $shibayu36->blog;

    perlの変数のデータ量を調べたいということがあって、何を使ったらいいか調べたんだけど、Devel::Sizeというのが便利そうだった。 こんなかんじで使える。 use Devel::Size qw(size total_size); my $size = size([1, 2, 3, 4, 5]); warn $size; my $total_size = total_size({ a => [1, 2, 3], b => { c => [1, 3, 5], }, }); warn $total_size; sizeというのは構造のために使われている容量を出してくれるやつ。 The size function returns the amount of memory the variable returns. If the variable is a hash or an array,

    perlの変数のデータ量を測定する - $shibayu36->blog;
    n2s
    n2s 2014/06/06
  • /etc/cron.d/以下にドットを含むファイルを配置しても無視される - $shibayu36->blog;

    先日、/etc/cron.d/にファイルを設定してるのに、何故かcronが起動してくれないという問題があった。その時は/etc/cron.d/crontab.develというファイルを配置していた。 何でかなーと思ってman cronしてたらこういう記述を見つけた As described above, the files under these directories have to be pass some sanity checks including the following: be executable, be owned by root, not be writable by group or other and, if symlinks, point to files owned by root. Additionally, the file names must conf

    /etc/cron.d/以下にドットを含むファイルを配置しても無視される - $shibayu36->blog;
    n2s
    n2s 2014/04/26
    「実行権限あり + root所有 + groupとotherは書き込み権限なし」「symlinkにした時は、先のファイルがroot所有」「ファイル名にはletters, digits, -, _しか使えない、つまり.が入ってるとだめ」なんと
  • 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;
  • 自分が入れたEmacs便利拡張・設定集 (2013年版) - $shibayu36->blog;

    年末emacs設定大掃除をして、これは捨てられないと思った設定書いてく - $shibayu36->blog; 昨年に引き続き、2013年の自分のemacs.dを振り返るのをやろうと思います。 今年はemacsでいろいろできるようにする、という方向よりも、emacsでの基操作をどれだけ使いやすく出来るかということを中心にやって来ました。例えば .emacs.dの管理をどうするか コードリーディングや編集を速くするにはどうするか gitとの連携をどうやって簡単にするか この辺りについて1つずつまとめて行きたいと思います。 .emacs.dを管理する .emacs.dの管理って難しいですよね。僕も関西Emacsに参加してから自分が最新のやり方についていけてないなと感じたので、今年はいろいろと見なおしてみました。 基的なやり方としてはこんなかんじです。 外部elispはpackage.elと

    自分が入れたEmacs便利拡張・設定集 (2013年版) - $shibayu36->blog;
    n2s
    n2s 2014/01/03
  • ターミナル版anything的なpercolをzawの代わりに試してみた - $shibayu36->blog;

    emacsを使っているとterminalでもanything的にいろいろやりたくなるんだけど、そういう時にこれまでzawというツールを使ってきた。 https://github.com/zsh-users/zaw zaw.zshで最近移動したディレクトリに移動する - $shibayu36->blog; zawを使って最近更新したブランチをチェックアウトする - $shibayu36->blog; zaw結構便利なんだけど問題点もある。 読み込む行数が増えてくると遅くなる 履歴検索で10万行とか行くと動かないので致命的 zshに完全に紐付いてしまって、気軽には使えない で、この前YAPCでid:moozさんと話してて、percolという便利ツール作ってると聞いたので、試してみた。 percolとは 紹介記事などがあるので、それを参考に。 https://github.com/mooz/pe

    ターミナル版anything的なpercolをzawの代わりに試してみた - $shibayu36->blog;
    n2s
    n2s 2013/10/07
  • いろいろなツールをplenvに移行した - $shibayu36->blog;

    最近はplenvを使うべきって感じだったんだけど、promptとかemacsとかを対応させるのがちょっと面倒でサボっていた。そろそろやばいと思ったので全部plenvに移行した。 インストール macだったらbrewで提供されているので入れる。https://github.com/tokuhirom/plenv を参考に。 $ brew update $ brew install plenv $ brew install perl-build $ plenv install 5.14.2 # お好みのperl入れる $ plenv shell 5.14.2 $ plenv install-cpanm promptに現在利用しているperlのversionを出力する 以下のように、promptにperlのversion出てるとうれしいのでそういう感じにする。 plenv version-nam

    いろいろなツールをplenvに移行した - $shibayu36->blog;
    n2s
    n2s 2013/08/02
  • Xslateのpre_process_handlerを使ってCSSのインライン化をする - $shibayu36->blog;

    この前 XslateのテンプレートをCSSインライン化する - $shibayu36->blog;という記事をかいたのだけど、その時にgfxさんにコメントで gfx BKっぽい気もしますが他にいい方法は思いつかないし、最近 pre_process_handler という機能も足したので、まあ許容範囲じゃないすかね。 と言われた。 pre_process_handlerというものがあったことを知らなかったので、試しに利用してみた。 pre_process_handlerを使ってtemplateに対してCSSインライン化する さてやりたかったことを振り返ると メールを一通一通CSSインライン化するのではなく、先にtemplateをインライン化しておいて、それを利用してrenderしたい ということでした。 例えば以下のようなtemplateを用意します。 <html> <head> <styl

    Xslateのpre_process_handlerを使ってCSSのインライン化をする - $shibayu36->blog;
  • zshの構文を読み解く - $shibayu36->blog;

    ちょっと前にzawで更新順にブランチを表示してチェックアウトするやつを作ったのだけれど、その時参考にしたzshのスクリプトが全く読めなかったので読みといてみた。 local branches_list="$(git show-ref | awk ' $2 != "refs/stash" { print $2 }' )" : ${(A)cand_descriptions::=${${(f)${branches_list}}#refs/(remotes|heads|tags)/}} まずlocalは変数定義。 次に$()はコマンド実行なので、中に含まれているコマンドを実行する。さらにそれが""で囲まれているので、出力結果を文字列として変数に格納する。 次の行。最初の:は何もしないコマンド。これがないと変数展開の結果をコマンド実行しようとしてしまう。 ${}は変数展開。この中でいろいろする。 最

    zshの構文を読み解く - $shibayu36->blog;
    n2s
    n2s 2013/06/10
  • zawを使って最近更新したブランチをチェックアウトする - $shibayu36->blog;

    仕事でgit使っていてレビューとかしていると、どうもgitのブランチ切り替えがだるくなってくる。それで、zawで更新日時順でブランチが並んでいて、選択するとgit checkout出来ればすぐにブランチ切り替えが出来て便利ではと思いやってみた。 bindしたキーを押すと、更新日時順でブランチが表示されて、Enterを押すとチェックアウトする。更新日時順なので数回キーを押すだけで、チェックアウトしたいブランチに辿り着けることが多い。zawを使っているので絞り込みも出来る。 インストール zawを使っていれば、導入は簡単。 まずzawのsourceのディレクトリに以下のファイルを置く。もしくは適当なところに置いて、zawのloadの後にsourceを使ってloadする。 https://github.com/shibayu36/config-file/blob/master/.zsh/zaw-

    zawを使って最近更新したブランチをチェックアウトする - $shibayu36->blog;
    n2s
    n2s 2013/06/05
  • CPANモジュールに含まれるファイルについて調べた - $shibayu36->blog;

    おそらくはそれさえも平凡な日々: CPANモジュールのパッケージングの歴史 の話を見ていて、興味が湧いたというのと、CPANモジュールを作ってもそういうところは無視してしまっていたので、これは良くないと思い少しだけ調べた。 lib, bin, t, xt README, Changes, LICENSE Build.PL, Makefile.PL MANIFEST, MANIFEST.SKIP META.yml, META,json MYMETA.yml, MYMETA.json blib パッケージの歴史 先程も書いたけど、おそらくはそれさえも平凡な日々: CPANモジュールのパッケージングの歴史に非常によく説明されているので、これを見るのが一番手っ取り早い。 かなり適当にまとめると makeでビルドしよう ExtUtils::MakeMakerでMakefileを作ろう でも簡単なこと

    CPANモジュールに含まれるファイルについて調べた - $shibayu36->blog;
  • emacsのruby環境を整えています - $shibayu36->blog;

    最近VagrantとかChefとかCapistranoとか、それなりにrubyのプロダクトを触るようになったし、別の言語の良いプロダクトも見ないといけないという気分になったから、とりあえずemacsの環境を整えようと思い出した。まずは基から。 ruby-mode modeはruby-modeを使えばいいっぽい。多分標準で入ってると思う。rubyは.rbつかないような奴も多いので、それは適当にruby-modeに紐づくようにする。中身を見てrubyと判別するやつもあるような気がするけど、まだそれは使ってない。 (autoload 'ruby-mode "ruby-mode" "Mode for editing ruby source files" t) (add-to-list 'auto-mode-alist '("\\.rb$" . ruby-mode)) (add-to-list '

    emacsのruby環境を整えています - $shibayu36->blog;
    n2s
    n2s 2013/03/19
  • GitHubでの仕事を快適にするコマンドを紹介します - $shibayu36->blog;

    趣味のプログラミングや仕事githubを使って行なっていると、「ちょっとこんなかんじの変更してみたんだけど、このcommit見てよ」とか、「このブランチのこのファイルちょっと見てくれない?」みたいなことがよく起こります。そういう時いちいちgithub上のページをポチポチ押して、URLを教えるみたいなことをやっているのが大変だったので、ターミナルからgithub上のページを開くコマンドを作ってみました。すでにこういうのあるかもしれません。 今回のコマンドで出来ること commitを指定してgithub上の該当commitページを開く HEAD^みたいな指定も出来る ファイル名を指定して現在のブランチのそのファイルのページを開く 行を指定してハイライトさせることも出来る それらのコマンドをエディタなどから使うことでさらに便利に使う openコマンドとperlに依存しているので、これらが使えな

    GitHubでの仕事を快適にするコマンドを紹介します - $shibayu36->blog;
    n2s
    n2s 2013/01/19
  • 今日覚えた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;
    n2s
    n2s 2012/12/29
  • Working with Unix ProcessesをPerlで - $shibayu36->blog;

    以前 Working with Unix Processesというを読んだのですが、このがUnixにおけるプロセスについて非常にわかりやすく解説されていました。それで自分で内容をメモしてみたり、さらにわからないところを調べたり、参考のプログラムをPerlで書いたり(このではRubyで書かれています)してみたのですが、ブログにまとめてなかったので、ちょっと書いてみます。 (注意)書いていたらすごく長くなりました。興味のある方は、適当に時間のあるときにでもどうぞ。 Chapter 2 : Introduction プロセスのことを知るとコードを読むだけでは分からないややこしい問題が分かるようになるよ Chapter 3 : Primer Unixはユーザ空間とカーネル空間がある kernelの機能はsystem call経由で利用する ユーザ空間ではプログラムが動く manual man

    n2s
    n2s 2012/12/01
  • Plackコードリーディングした時のメモ - $shibayu36->blog;

    Plackをコードリーディングしたのだけれど、適当にメモしたのを公開しておく。 Plack/PSGI PSGI仕様 : http://search.cpan.org/dist/PSGI/PSGI.pod antitpopさんの勉強資料 : http://d.hatena.ne.jp/antipop/20090924/1253761509 PSGI env HTTP_*はHTTPヘッダ REQUEST_METHOD psgi.* psgi.url_scheme, psgi.errors response [status, [headers], [content]] Plack::Request env受け取る それっぽいやつを返す cookieのparse _parse_request_body inputからbodyを読み込んで行く処理 Plack::Response responseを作

    Plackコードリーディングした時のメモ - $shibayu36->blog;
  • 1