タグ

ブックマーク / blog.sushi.money (8)

  • Perlのモジュールを静的解析してPlantUMLでクラス図をレンダリングするやつ - hitode909の日記

    仕事のコードで,子クラスがたくさんいる難しいクラスがいて,継承関係を整理したいけど,どこがどうなってるのか一見すると分からなかったので,静的解析してクラス図をレンダリングするやつを作った. github.com package2plantumlclassdiagramっていうコマンド(長い)に,このファイルたちをレンダリングしてくれ,って渡して,PlantUML形式のファイルを作る PlantUMLでPNGとかに変換 という手順で使う. % package2plantumlclassdiagram ~/Plack/lib/**/**.pm > plack.plantuml % GRAPHVIZ_DOT=$(which dot) plantuml -charset UTF-8 -tpng plack.plantuml Plackのソースコード全体をレンダリングするとこんなかんじで,継承してる

    Perlのモジュールを静的解析してPlantUMLでクラス図をレンダリングするやつ - hitode909の日記
    dann
    dann 2015/10/13
  • YAPC::Asia Tokyo 2014でPerlの静的解析やリファクタリングについて喋りました - hitode909の日記

    Perlでソースコードを解析して数値を発見したらとりあえず倍にすることで滅茶苦茶なFizzBuzzを生成するといった活動を紹介しました. スライドは以下です.160枚くらいあるので見るの疲れそう. Perlの静的解析入門とPerlリファクタリングツールApp::PRTのご紹介 // Speaker Deck お知らせ 静的解析友達募集中です #yapcasia— 趣味はマリンスポーツです (@hitode909) 2014年8月30日

    YAPC::Asia Tokyo 2014でPerlの静的解析やリファクタリングについて喋りました - hitode909の日記
    dann
    dann 2014/08/30
  • CasperJSで気軽にJSのテストできる - hitode909の日記

    ウェブアプリケーションのJSのテストするのにCasperJS使ったら便利だった. CasperJSはPhantomJSにテスト用ユーティリティがついて便利になったやつ. JS,MVCできれいに書いてると,Modelの単体テストとかできるけど,昔ながらの感じだと,ここをクリックしたらこれが表示されること,みたいなテストを書くことになる.けどライブラリとかいろいろあってどれを使えばよいか分からなくて敷居が高い.CasperJSを使ったらこれだけで完結してテスト書ける. PhantomJSは単なるブラウザだけど,CasperJSはテストのフレームワークとか,DOMのテスト関数とかがついてる. 非同期なタスクの実行の仕組みも入ってて,casper.thenっていうのを順番に書いていくと,順番に呼んでくれて,click()して,casper.thenしたら,ページ遷移したら次のページに移動してる.ス

    CasperJSで気軽にJSのテストできる - hitode909の日記
  • Perlのソースコードから文単位でトークンをgit grepするやつ - hitode909の日記

    Perlのソースコードから,文単位でトークンをgit grepするのを作った. 普通のgrepは行単位の検索なので,これまでgit grepするとき, メソッドの呼び出しが複数行に渡ることが予想されるとき,勘で-A 5 とかやって,後ろ5行も表示,とかやってたけど,勘に頼っていて,不便だった.ソースコードはトークン単位とか文単位なので,行単位で扱ってもあまり意味がない. GitHubに,git-grep-perl-statementというのを置いてある. hitode909/git-grep-perl-statement · GitHub 例 git-grep-perl-statementのソースコードから,coloredというトークンを探してみる. % git grep-perl-statement colored git-grep-perl-statement:61 colored($

    Perlのソースコードから文単位でトークンをgit grepするやつ - hitode909の日記
    dann
    dann 2013/09/18
  • zaw - hitode909の日記

    zaw.zshのzaw-historyみたいなやつ,履歴に変な文字が入ってるとだめみたいで,bad patternとか言って,動いてなかったけど,おかしい感じの行を消したら動くようになった.grep -P -v "[\x80-\xFF]" zsh_history_old > .zsh_history みたいな感じ.うまくいくかわからないからバックアップを取っておいたり,先に grep -P "[\x80-\xFF]" zsh_history_old してなにが消えそうか調べておくとよいと思う.それで,動くようにはなったけど,ぼくはzshの履歴ずっと消さずに使っているから,12万行くらいあって,それをzsh-history起動するたびに毎回読み込んで何かしてるみたいで,使いものにならないくらい遅かった.12万行でも3MBくらいだから,grepするだけなら一瞬だろうけど,なにかもっとリッチなこ

    zaw - hitode909の日記
    dann
    dann 2012/06/02
  • git clone --recursive 便利 - hitode909の日記

    git cloneするときに--recursiveをつけると,サブモジュールもcloneしてくれる. リポジトリがサブモジュールを持ってるときだけgit submodule update --initするのは難しいので,勝手にやってくれるのは良いと思う. こんな感じ. % git clone https://github.com/unconed/TermKit.git --recursive Cloning into TermKit... remote: Counting objects: 2574, done. remote: Compressing objects: 100% (1099/1099), done. remote: Total 2574 (delta 1431), reused 2502 (delta 1385) Receiving objects: 100% (2574

    git clone --recursive 便利 - hitode909の日記
    dann
    dann 2011/05/26
  • screenを起動するスクリプト用のzshの補完関数 - hitode909の日記

    以前,sというコマンドを作った.これは,名前付きでscreenを起動して,既にその名前のscreenが起動していれば自動的にdetachしてくれる,というもの. 日記を見ると,けっこういろいろやってる. screenを起動するシェルスクリプト - hitode909のダイアリー 指定された名前のscreenを立ち上げる関数を改良 - hitode909のダイアリー screenのaliasを修正しました. - hitode909のダイアリー screenを起動するスクリプトでタイトルバーとhardstatusに名前を出すようにした - hitode909のダイアリー これは便利だったのだけど,自分で定義したコマンドなので,適切な補完が効かない. % s Desktop/ Documents/ Downloads/ Library/ Movies/ Music/ Pictures/ Publ

    screenを起動するスクリプト用のzshの補完関数 - hitode909の日記
    dann
    dann 2010/02/22
  • Gitのリポジトリのトップレベルにcdするコマンド - hitode909の日記

    Gitのリポジトリ内で作業していて,深い階層からリポジトリのトップレベルに行きたいとき,../を何度も打って一番上に行くのはめんどう. % pwd /Users/fkd/co/hatena-bookmark-xul/chrome/content/browser % cd ../../../ % pwd /Users/fkd/co/hatena-bookmark-xul目視で../../とか打っていると間違いが起きそうなので,こういうのはよくない. トップレベルにcdするためのコマンドを作った. http://gist.github.com/300270 function u() { cd ./$(git rev-parse --show-cdup) } これで,uと打つだけでトップレベルまで行ける.Gitのリポジトリでないとき,何も起きない. 追記 id:tyruさんが改良してくださいまし

    Gitのリポジトリのトップレベルにcdするコマンド - hitode909の日記
    dann
    dann 2010/02/14
  • 1