タグ

ブックマーク / yuheikagaya.hatenablog.jp (17)

  • Golangで画像プロキシサーバをつくった - yuhei.kagaya

    Graidという画像プロキシサーバをつくりました。 外のサーバから画像を取得してリサイズしたりして返す、ということをするサーバです。 Golangでなんかミドルウェア的なものが作ってみたかったのでやってみました。 Graidについてのスライド エンジニアが集まってお昼ご飯をべながら技術的なネタを話すテックランチという会が社内で定期的に開催されているので、Graidについて話してきました。 Graid // Speaker Deck 機能 http://localhost:8080/path/to/image.jpg:w400:h300:q80 例えば8080ポートで起動させてURLにアクセスすると、 オリジンの画像サーバ(設定ファイルに設定する)の/path/to/image.jpgを取ってきて 横400px、縦300pxにリサイズして画質80%に加工して レスポンスを返す という処理を

    Golangで画像プロキシサーバをつくった - yuhei.kagaya
  • instacodeがかっこいい - yuhei.kagaya

    http://instacod.es/ instacodeはソースコードをinstagramぽく画像加工して投稿できるサービス。 記念に、初めて書いたVimスクリプトのコードで作ってみた。 http://instacod.es/93656 セピア調。書いたときの思い出がよみがえる。 Instacodeへ投稿するVimプラギンもある。 https://github.com/mattr555/vim-instacode ヤンクして :Instacode コマンドを実行すると、instacodeの画面へポストしてくれる。便利。

    instacodeがかっこいい - yuhei.kagaya
    celt69cobra
    celt69cobra 2014/09/09
    “セピア調。書いたときの思い出がよみがえる。”
  • w.vimをつくっています - yuhei.kagaya

    https://github.com/violetyk/w.vim メモの管理 w.vimはメモを管理するためVimプラグインです。 僕はメモを書くときは単純に記録の他、考えるときや作業するときの頭の整理のためにも書くことが多いのですが、そのメモを管理するツールは今までいろいろなものを使ってきました。 今回w.vimは、自分が欲しいものを自分で作ってみようと思ったことがきっかけで始めてみました。 どんなメモ管理ツールが欲しかったか 次のようなことを考えていました。 紙copiぽいのが良い メモ体は単純なテキストファイルで残したい。 タイトル一覧のサイドバーが見えている安心感が欲しい タグで管理したい 開き直すメモのほとんどが最近使ったメモなので、最近のメモを簡単にすぐに開きたい プログラムを書くときにVimが多いので、Vimでメモを取りたい メモ管理ツールで書いたメモをそのまま簡単にアウ

    w.vimをつくっています - yuhei.kagaya
    celt69cobra
    celt69cobra 2014/08/03
    スマホ連携、期待してる。
  • Vim scriptのselfについて - yuhei.kagaya

    Vim scriptでは関数を辞書(PHPでいう連想配列)変数に代入することができます。 その関数のなかでselfを使うと、呼び出し元の辞書を参照できます。 let s:test = {'name' : 'hogefuga'} function! s:test.func() echo self.name endfunction call s:test.func() " 実行結果 hogefuga 普通の関数にもdict属性をつけると、selfで呼び出し元の辞書を参照できます。 function! Sum() dict return eval(join(self.data, '+')) endfunction let list = {'data': range(1, 10), 'sum': function("Sum")} echo list.sum() " 実行結果 55 ヘルプ :h s

    Vim scriptのselfについて - yuhei.kagaya
  • 複数のCakePHPに入れるライブラリを1つのComposerで管理 - yuhei.kagaya

    PluginとVendorの中を1つのComposerで管理したい 以下のツリーのように、ひとつのCakePHP体と複数のCakePHPアプリケーションがあるときに DebugKitPHPUnitなどはそれぞれのアプリケーションごとにある必要は無く、共通で参照できる場所にあればオッケーです。 . ├── app1/(CakePHPアプリケーション) │   ├── Plugin/ │   └── Vendor/ ├── app2/(CakePHPアプリケーション) │   ├── Plugin/ │   └── Vendor/ ├── app3/(CakePHPアプリケーション) │   ├── Plugin/ │   └── Vendor/ ├── composer/ └── lib/(CakePHP体) └── Cake/ 各CakePHP アプリケーションディレクトリ内のPlu

    複数のCakePHPに入れるライブラリを1つのComposerで管理 - yuhei.kagaya
  • neocomplete-php.vimを作っています - yuhei.kagaya

    PHPの関数を補完するneocomplete用source neocomplete-php.vimはneocomplete.vimPHP用sourceです。 補完時に、関数と一緒に短い説明が欲しかったので作り始めました。 今のところはPHPの組み込み関数の補完しかできないのですが、 これから次のような機能を実装しようかなぁと思っています。 インサートモード時に、statsulineにリファレンスを表示する機能 組み込みクラスの補完 メンバ変数やメソッド名や定数の補完 CakePHPへの対応 セットアップ プラグインをneobundleでインストールします。 NeoBundle 'Shougo/neocomplete.vim' NeoBundle 'violetyk/neocomplete-php.vim' 日語の説明にする場合には、.vimrcなどにロケールを設定します。 デフォルトは

    neocomplete-php.vimを作っています - yuhei.kagaya
  • cake.vimにローテーションジャンプ機能をつけてみた - yuhei.kagaya

    githubにあるcake.vimに、ローテーションジャンプ機能をつけてみました。 violetyk/cake.vim · GitHub 関連するファイルを巡る この機能を使うと、頭の中で「コントローラのファイルを開こう」とか考えなくても 適当にぐるぐる巡ってジャンプすることができます。 たとえば、現在開いているファイルがモデルの時(下の★) 関連するコントローラ(1つ前)やテストモデル(1つ先)にジャンプできます。 開く対象がない場合はスキップします。 (フィクスチャへ) ↑↓ テストコントローラ ↑↓ コントローラ ↑↓ ★モデル ↑↓ テストモデル ↑↓ フィクスチャ ↑↓ (テストコントローラへ) ローテーションするファイルの種類や順番は変更できます。 .vimrc等にg:cakephp_related_group をリストで設定します。 " モデル、フィクスチャ、テストモデルの順

    cake.vimにローテーションジャンプ機能をつけてみた - yuhei.kagaya
  • lightline.vimを使ってVimのステータスラインを有効活用する - yuhei.kagaya

    ステータスラインが一瞬でリッチに lightline.vimVimのステータスラインをかっこよくしてくれるVimプラグインです。 作者さんによるこのプラグインについての詳細な解説はこちらです。 lightline.vim作りました - プラグインの直交性について - プログラムモグモグ 結果、下の画面になりました。 (カラースキーマはmrkn256、フォントはRicty Regular for Powerline.ttfをつかっています) 僕は今まで、ステータスライン系のプラグインを vim-powerline → powerline → vim-airline と流行にもれず使ってきたのですがlightline.vimに落ち着きました。簡単にかっこよくなるし、動作が軽快でカスタマイズもしやすくて素晴らしいです。感謝! ステータスラインに表示している情報 ステータスラインを構成する要素は

  • Mercurialを使って最新のVimをインストールする - yuhei.kagaya

    今までは都度パッチをダウンロードしてあててビルドしてたので、いい加減Mercurialにしないとなぁと思ってやってみました。 最初からやってみました。OSはCentOS6.4です。 前準備 最初からyumで入っているVimはアンインストールします。 vim-minimalまで消しちゃうとsudoとかも消えちゃうので要注意。 yum remove vim-enhanced vim-common 必要な物も入れときます。 yum -y install gcc python python-devel ncurses-devel python-setuptools Mercurialをインストール Mercurialはpythonのeasy_installを使いインストールします。 easy_install mercurial http://mercurial.selenic.com/につながらな

    Mercurialを使って最新のVimをインストールする - yuhei.kagaya
  • cake.vim最近の改善5つ - yuhei.kagaya

    最近、cake.vimのバージョンを2.10としてGitHubにpushしました。vimonlineにもアップしました。 violetyk/cake.vim · GitHub cake.vim - Utility for CakePHP developers. : vim online そのなかの、2012年後半からやっていた改善5つを紹介します。 gfコマンドの縦分割版コマンドを追加した ノーマルモードの時にgfと押すと、通常vimはカーソル配下に書かれたファイルパスを開こうとしますが、cake.vimではカーソル配下の記述からよしなに対象のクラスやファイルを開きます。そのあたりはcake.vim使い方まとめ - yuhei.kagayaに詳しく書いています。 gfの代わりに<C-w>fで上下分割、<C-w>gfでタブページ分割で開きますが、 gsと押して縦分割で開けるようにしました。

    cake.vim最近の改善5つ - yuhei.kagaya
  • vimのgfコマンドで、縦分割版をやってみた - yuhei.kagaya

    「gf」と押すとカーソル下のファイル名を瞬時に開く vimのノーマルモードの「gf」はとても便利です。 例えば、次のようなときに*の場所にカーソルがありノーマルモードの時に「gf」と押すと、対象のファイルを開くことができます。 <!-- *の位置にカーソルがあるとき、gfでindex.htmlを開きます。--> <a href="in*dex.html">トップページへ</a> # *の位置にカーソルがあるとき、gfでhttpd-vhosts.confを開きます。 Include *onf/extra/httpd-vhosts.conf コマンドの覚え方は、"goto file" です。 横分割やタブで開くこともできます。 <C-w>f で横分割して開く <C-w>gf で新しいタブに開く 縦分割もしたい パソコンのモニターは横に長いことが多いので、僕は縦に分割することが多いです。 特に最

    vimのgfコマンドで、縦分割版をやってみた - yuhei.kagaya
  • cake.vim使い方まとめ - yuhei.kagaya

    cake.vimは、CakePHPのController、Model、Viewなどの移動を少し楽にするVimのプラグインです。 CakePHP1.3系、 2.0系の両方で動作します。 いろんな移動の方法があるのでcake.vimの操作を一通りまとめてみました。 インストール プラグインはvim onlineか、githubからダウンロードして解凍し、 cake/以下のファイルを.vim/配下にいれます。 cake.vim - Utility for CakePHP developers. : vim online violetyk/cake.vim · GitHub Vundleを使っている方は、 :BundleInstall violetyk/cake.vim でインストールできます。 設定 必須の設定はありません。 .vimrcにappディレクトリのパスを書いておくと、vimを起動して

    cake.vim使い方まとめ - yuhei.kagaya
    celt69cobra
    celt69cobra 2012/01/19
    これは良いまとめ。今まさに忘れてたので。。。
  • CakePHP用のvimプラグイン、『cake.vim』1.2をリリースしました。 - yuhei.kagaya

    ※追記:こちらのエントリーでインストールから使い方までをまとめてみました。 CakePHP用のvimプラグイン、『cake.vim』を作ってみた。 - yuhei.kagayaで作ってみたものに いくつかの機能を加えてバージョンアップしました。 最新版は、vim onlineよりcake.tar.gzをダウンロードして.vim/以下で解凍して下さい。 cake.vim : cake.vim - Utility for CakePHP developpers. : vim online 今回で増えた機能の紹介 コントローラを開かなくても直接ビューファイルを開けるようになりました。{theme-name}はオプションの引数です。 :Ccontrollerview {controller-name} {view-name} {theme-name} コンフィグファイル(core.php、data

    CakePHP用のvimプラグイン、『cake.vim』1.2をリリースしました。 - yuhei.kagaya
    celt69cobra
    celt69cobra 2011/06/07
    cakephp用vimプラグイン
  • CakePHP用のvimプラグイン、『cake.vim』を作ってみた。 - yuhei.kagaya

    ※追記:こちらのエントリーでインストールから使い方までをまとめてみました。 CakePHPのController、Model、View間の移動を少し楽にするプラグインです。 自分でCakePHPで開発しているときに、ジャンプできたら便利だな−。と前々から思っていたのですが 探してもなかなか見つからなかったので、Vimスクリプトの勉強を兼ねてつくってみました。 インストール violetyk/cake.vim · GitHub cake.vim - Utility for CakePHP developers. : vim online vim onlineまたはgithubからダウンロードして、.vim/以下で解凍後してください。 簡単な使い方 " 最初にCakePHPのルートの設定 :Cakephp /path/to/cakephp_root/ " コントローラ hogehoges_co

    CakePHP用のvimプラグイン、『cake.vim』を作ってみた。 - yuhei.kagaya
  • CakePHPで使うneocomplcache.vim用スニペットを書いてみた。 - yuhei.kagaya

    最近、CakePHP1.3系を使ってるのですが、素晴らしい! さくさく楽しい開発ライフです。 でも、自分は覚えが悪いので、 「アレどうやるんだっけ?」 → CakePHPのマニュアルを引く、を見る となって時間を費やしてしまっています。 コードを書くときにはVimを使っています。 neocomplcache.vim、zencoding.vimなど素晴らしいプラグインやテキストオブジェクトのおかげで、 タイプミスも少なく素早くコードが書けるようになりました。 でも、もっともっと速く書きたい。。。 よく使うCakePHPの記述はneocomplcacheのスニペットにしたら楽かも・・・! んで覚えられるかも!よし、スニペットを書いてみよう! ということで、やってみました。 ユーザ定義用スニペットファイル スニペットの場所は、.vimrcで指定しています。 " ユーザー定義スニペット保存ディレ

    CakePHPで使うneocomplcache.vim用スニペットを書いてみた。 - yuhei.kagaya
  • 行末にセミコロン;をつけて改行するキーバインド - yuhei.kagaya

    長かった。。。これがやりたかったんだー!!! やっと書けた。たったの一行だけど、うれしいなぁ。。。 inoremap ;; <C-O>$;<CR> 最初はカレント行をとってきて、うしろにセミコロンつくるようなfunctionつくって=で呼び出そうとしてた。 それをとかとかにマッピングしようとしたんだけど、挿入モードの時はコントロールキーとの組み合わせのキーバインドが 上手く動かなかった。 ここまでの副産物として、vimスクリプトの文法も勉強できました。 vimrc基礎文法最速マスター - 永遠に未完成 Vimスクリプト基礎文法最速マスター - 永遠に未完成 vimのヘルプも引くようになったし。たくさん引くので、 " ヘルプを引きやすくする nnoremap <C-h> :<C-u>help<Space> nnoremap <C-h><C-h> :<C-u>help<Space><C-r><

    行末にセミコロン;をつけて改行するキーバインド - yuhei.kagaya
    celt69cobra
    celt69cobra 2011/02/16
    ぶーぶー反響があったのでwww
  • 覚えておくと便利なApacheの調査方法 - yuhei.kagaya

    初めてログインしてみるサーバはどんな設定になってるの? 最近、サーバ移行の仕事があったので、そのとき便利だったコマンド。 まずは、httpdの実体の場所を調べる。 ps alxw | grep httpd 0 500 6777 5952 18 0 4992 752 - R+ pts/0 0:00 grep httpd 5 0 15447 1 18 0 156168 11248 - Ss ? 0:15 /usr/local/apache2/bin/httpd 5 501 17106 15447 16 0 156168 8320 - S ? 0:00 /usr/local/apache2/bin/httpd 5 501 17107 15447 16 0 156168 8320 - S ? 0:00 /usr/local/apache2/bin/httpd 5 501 17108 15447 1

    覚えておくと便利なApacheの調査方法 - yuhei.kagaya
  • 1