読者です 読者をやめる 読者になる 読者になる

Go言語でWebアプリを作りかけて辞めた話

3行で要約 golangでwebアプリを作り始めた golangは好きだけど、今回求める要件に合わないことに気付いた 途中まで書いたコードを捨ててRailsで書き直した 私のGoスキル A Tour of Goを途中まで みんなのGo言語を読んだ スターティングGo言語を読んだ スクレ…

Vim - previmにヘッダーを隠す設定を追加しました

vim

プレビュー時に画面上部に出ていたヘッダー部を非表示に出来ます。 g:previm_show_header *g:previm_show_header* 型:数値 値が1ならば、プレビュー時にヘッダーを表示します。 ヘッダーには編集しているファイル名と更新日時が表示されます。 値が0ならば、…

Vim - previmでmermaidに対応しました

vim

Shibaで図を書いてTracで共有するを見てmermaidを知りました。 参考: mermaid.jsが素晴らしいけどなかなか使ってる人見かけないので実例晒す(追記あり) 面白そうだし、上記の公式サイトにmarked対応のサンプルもあったのでprevimでも対応しました。 下記のよ…

Vim - 文字列連結で再代入する場合はjoinを使う方が早そう

概要 自作プラグインのコードに以下のようなTODOが残っていました。 " TODO リストじゃなくて普通に文字列連結にする(テスト書く) for line in s:do_external_parse(a:lines) let escaped = 適当な処理 call add(converted_lines, escaped) endfor return jo…

capistrano3のコードを読んで仕組みを理解する

メモです。 はじめに capistrano3の概要を知るには以下の記事がとても参考になる。 入門 Capistrano 3 ~ 全ての手作業を生まれる前に消し去りたい Capistrano3のデプロイフレームワークの使い方 業務での使用も経て何となく分かったつもりだったが、デフォル…

「第二回 システムテスト自動化 標準ガイド 読書会」に参加してきた

前回に引き続き参加してきました。 第二回 システムテスト自動化 標準ガイド 読書会 今回は3、4章がテーマ。 3章 http://www.slideshare.net/dnoguchi/3-20150523-48477354 保守性の高いテストスクリプトを書くために、というお話。 テストスクリプトとプロ…

「第一回 システムテスト自動化 標準ガイド 読書会」に参加してきた

第一回 システムテスト自動化 標準ガイド 読書会に参加してきました。 今回は1、2章がテーマ。 1章 http://www.slideshare.net/fujisawa_y/20150418-46648838 テスト管理 TestLinkとか テスト設計 モデルベースドテスト 開発に使ったモデルからテストを作る…

Gitで'fatal: object {hash} is corrupted'になった際の復旧手順

git

Macがフリーズする現象がたまにあって、そうなるとgitの状態が壊れることがある。 その時の修復手順を記録として残しておく。 現象 git操作を行おうとするとfatal: object <hash> is corrupted が出る。 /home/kanno/repository% git status fatal: object 43a1c7c</hash>…

MySQLでSQLの実行時間のみを調べる

SQL設計やチューニングで実行時間を計測する際に以下のような状況がよく出てくる。 SQLの実行時間が知りたい 実行結果はいらない 方法1 mysql -vvvを使う /home/kanno% cat sample.sql | mysql -vvv hoge_db | tail -n 3 1 row in set (3.62 sec) Bye 対象の…

プログラミングにおける設計の難しさについて考える

前提 この記事における設計は主に以下の4点をイメージして書いています。 (具体的にどうこう、という話は出てきません) REST設計 レイヤー設計 MVCとかDDDにおけるレイヤーみたいなやつ クラス/インターフェース設計 どういう処理/データを持たせるのが適切…

「入門Puppet」を読んだ

自社ではPuppetを使っています。 私が直接いじることはほとんどないけど、 基礎の基礎ぐらいは知っておきたいなということで「入門Puppet」を読みました。 入門Puppet - Automate Your Infrastructure作者: 栗林健太郎発売日: 2013/04/29メディア: Kindle版…

Re: previmでプレビューのタイミングがよりリアルタイムになったりcssを定義できるようにした

vim

前回の更新 で問題がいくつか報告されました。 それを受けて考え直し、以下のように仕様を変えました。 デフォルトではリアルタイムにプレビューしない 保存時のみプレビューを更新します。 これまでと同じです。 挿入モードを抜けてもプレビューは更新され…

previmでプレビューのタイミングがよりリアルタイムになったりcssを定義できるようにした

vim

previmの更新情報です。 保存しなくてもプレビュー出来るようになった CSSの拡張が可能になった 保存しなくてもプレビュー出来るようになった 今までは保存時にのみブラウザのプレビュー内容を更新していました。 最新版ではもう少しリアルタイムに近いタイ…

lsをksとタイポした時に怒らせるようにした

ターミナルで作業しているときに、lsをksとタイポすることが増えた。 単純にcommand not foundって言われるのもつまらないので、適当なksコマンドを定義した。 利便性を考えるならksをlsのaliasにすればいいけど、zshの勉強もしようと思ってコマンド定義にし…

gitでpecoを使ってチェックアウトする

git

背景 チケット番号-hoge-featureみたいなブランチ名がたくさん出来上がる。 普段のコマンドとかではzshのTAB補完を使うのだけど、チケット番号だとすぐに思い出せない。 補完一覧を出したあとで「これだ」って感じで打つ必要があった。 これがめんどい。あと…

zsh - localで配列を宣言するときは代入を同時にしてはいけないっぽい

zsh

zshで少しハマったことのメモです。 環境 /Users/kanno% zsh --version zsh 5.0.5 (x86_64-apple-darwin13.0.0) zshの配列について こちらの記事が参考になります。 zsh の配列操作の基本から応用まで ハマったこと まずはグローバルな変数宣言で試す /Users…

Vim - previmとrst2htmlでreStructuredTextをリアルタイムプレビューしながら編集する

vim

previmでreStructuredTextをサポートしました。 ただし外部コマンド必須です。 previmとは Vim - 依存ツールなしにMarkdownプレビューできるprevimプラグインを作った reStructuredTextの環境要件 rst2html.pyというコマンドが必要です。 pip等でdocutilsを…

Vim - Yokohama.vim #5 に行ってきた

vim

個人の日記。 先週の土曜日、Yokohama.vim#5に参加してきました。 http://d.hatena.ne.jp/guyon/20140406/1396806492 Vim 捗る Ruby 開発 @ srockstyle 資料:https://www.slideshare.net/srockstyle/ruby-on-vimyokohamavim @srockstyleさんの発表でした。 …

Vim - previmを更新してtextileプレビューに対応しました

vim

previmを更新しました。 今回の変更でtextileも同様にプレビュー出来るようになっています。 サンプル 以下のサンプルコードがあるとして。 (ちなみにコードの中身はhttp://borgar.github.io/textile-js/から引用しています) h1. Using this tool This page …

Vim:カーソル位置を移動せずにファイル全体を整形する

vim

正確に言うと「ファイル全体を整形した後にもとの位置に戻る」、です。 Vimでファイル全体を整形する場合、例えば次のような操作をします。 gg=G この場合の不満は最初のggによりカーソルがファイル先頭に移動してしまうことです。 これを解消するには次のよ…

Vim - agやackの検索結果を表示するctrlsfプラグイン

vim

この記事はVim Advent Calendar 2013の89日目です。 前日はmanga_osyoさんの誤った goto 文で到達しないコード箇所を直ちに検知する方法でした。 今日はctrlsf.vimというプラグインの紹介です。 Intro dyng/ctrlsf.vim 動きは上記リンクのGIFを見て頂ければ…

Mac - homebrewでnginxを入れるときはnginx-fullを入れよう

mac

nginxではなくてnginx-fullを使う homebrewではbrew install nginxとすることでnginxを入れることが出来ますが、 この標準Formulaはオプションが最低限のものしかありません。 /Users/kanno% brew options nginx --with-debug Compile with support for debu…

Vim - 分割しないで新規バッファを開く(:enew)

vim

雰囲気的には「現在のウィンドウに対して新規バッファを開く」といった方が分かりやすいかも? 知らなかった(もしくは忘れていた)のでメモ。 新規バッファを開く際に縦分割ならば:new、横分割ならば:vnewで開けますが、分割しないで開くにはどうするか。 :en…

Vim - Vim scriptなら関数呼び出しや関数名に変数展開を使える!

vim

この記事はVim Advent Calendar 2013の39日目です。 前日はcocoponさんの【Vimカッコイイ計画最終章】もしCSSでVimのカラースキームがつくれたら…?でした。 Vimカッコイイ。 Vim scriptにおける関数のおさらい Vim scriptでの関数定義は以下のようになって…

Vim - 挿入モードを抜けた際に自動で保存する

vim

私は編集中のファイルをこまめに保存するのですが、 そのタイミングは挿入モードを抜けた時が多いと気付きました。 それなら自動で保存するようにしてみよう、ということでこちらの設定をvimrcに追加。 augroup Vimrc autocmd! autocmd InsertLeave * call <SID>a</sid>…

Vim - プラグインまたはVim scriptを書く楽しさについて語りたい

vim

この記事はVim Advent Calendar 2013の31日目です。 前日はmanga_osyoさんの来年も使いたい Vim プラグインランキング2013でした。 はじめに この記事ではVimプラグイン、またはVim scriptを書く楽しさについて語ります。 Vim script楽しいので書いてみませ…

Clojure - someはfalseじゃなくてnilを返す

JavaScriptのArray.some感覚で使っていたら間違えたのでメモ。 Returns the first logical true value of (pred x) ClojureDocs Returns the first logical true value of (pred x) for any x in coll, else nil. One common idiom is to use a set as pred,…

半年間休職してプログラミングの勉強をした

目次 概要 この記事の目的 なぜ勉強するのか なぜ休職したのか(働きながらではダメなのか) どのようにして休職したか 金銭面の問題 勉強を継続するために気をつけたこと どのくらい勉強したか 何を勉強したか 反省 まとめ 概要 5月に休職しました。 休職開始…

JavaScript - Jasmineでパラメタライズドテストするためのプラグインを作った

jasmine-parameterizeというのを作りました。 背景 「パラメータだけ違って他が同じ」ようなテストを簡潔に書きたい場合があります。 これを実現するために「パラメータ」と「テスト本文」を切り分けるように書く仕組みが パラメタライズドテストってやつだ…

Go言語(golang) - Vim + SyntasticでコンパイルチェックとLintをする

syntasticとは? scrooloose/syntastic 保存時に勝手にコンパイルチェックとかLintとかしてくれるVimプラグインです。 インストールとか使い方は省略します。ググれば色々情報出てきます。 コンパイルチェック syntasticには標準でGoのチェッカーが入ってい…

JavaScript - QUnitでBDD風に書いたりCIするために調べたこと

調べたこと QUnit テスト関数を入れ子にしたい pavlov / specit(BDD風にテストを階層化) sinonjs(モックライブラリ) phantomjs(コマンドライン実行) travis連携の仕方 kannokanno/qunit-example QUnit 基本的な使い方 インストール 非UIテスト(純粋なロジッ…

rails + sprockets + uglifierでCopyrightを残したままcompressする

環境 Rails 4.0.0 ruby 2.0.0p0 uglifier 2.1.2 sprockets 2.10.0 sprockets-rails 2.0.0 デフォルトではcompress時にCopyrightは削除される このようなenvironments/production.rbがあるとします。 (developmentでもtestでも同じだと思う) MyApp::Applicati…

Vim - ctrlp.vimでキャッシュが更新されないときに確認すること

vim

kien/ctrlp.vimを使っていて、 以下のキャッシュクリアを行なってもキャッシュが更新されないことがありました。 :CtrlPClearCache :CtrlPClearAllCaches ctrlp実行中にF5 なんでだろうと思って調べたところ、自分の設定ミスでした。 " vimrc let g:ctrlp_us…

Vim - vimtestにモック機能を追加した(vmock連携)

vim

先日作成したこちらのモックライブラリ。 Vim - Vim script用のモックライブラリvmockを作った これをvimtest側でも使えるようにしました。 コード例 上記記事の例をvimtestで書きなおしてみます。 webapi-vimをモックに置き換えるという例です。 プロダクト…

Vim - Vim script用のモックライブラリvmockを作った

vim

JMockのようなモックライブラリのVim script版が見当たらなかったので作りました。 kannokanno/vmock どういうときに使うか 依存プラグインから分離してテストを書きたい場合です。 例えばwebapi-vimを使っている場合など。 どうやって使うか 基本的にはテス…

Vim - だけどやっぱりVimが好き

vim

副題:私がVimを使う理由 この記事は Vim Advent Calendar 2012 211日目の記事です。 前日は@manga_osyoさんのVim のウィンドウを Gyazo るでした。 はじめに この記事にはTipsや便利プラグインなどの情報は一切出てきません。 最初から最後まで自分語りで構…

JavaScript - Markdownパーサーのshowdown.js、markdown-js、markedを簡単比較

主に比較したいこと 使い方 変換結果の見た目の印象 table記法を解釈できるか コードブロックの解釈 動作確認の前提 MarkdownはQuick Markdown Exampleから一部引用しています 使用したテキストはGistに置いておきます CSSはTwitter Bootstrapを使っています…

Vim - Pythonのflake8やsyntasticで特定のエラーを無視する

flake8やsyntasticの参考 Syntastic というシンタックスチェックプラグインが凄そう vimでpythonの文法チェックを行うflake8を使う vim で python 開発するとき pyflakes + PEP8 = flake8 が便利 VimでPython環境をいい感じに整える 特定のエラーを除外 PEP8…

Vim - previmがGoogle ChromeとOperaに対応

vim

previmがChromeでも普通に問題なく使えるようになりました。 あとOperaでも動いていなかったようですが、これも対応されました。 masterに取り込まれているので更新すればOKです。 id:ArcCosine++ previm pluginにpull requestした 今回の修正だと、IE6-8に…

よく分からんけど特定サイトでだけ「お使いのPCがクラッシュ寸前です」などの広告が出る

概要 最近 TuneIn で良くJ-POP 97.1 101.1というラジオ局を聞いています。 このラジオ局はPCから聞こうとする場合、ポップアッププレイヤーで再生する形式になっています。 それで、今朝も何気なく立ち上げたら次のような広告が表示されました。 ストリーム…

Vim - 依存ツールなしにMarkdownプレビューできるprevimプラグインを作った

vim

previmというのを作りました。 作った経緯と、本プラグインの特徴を書きます。 既存のVim + Markdown環境は外部ツールが必要なものが多い Vim + Markdown環境は好みが別れるのか、色々とあります。 quickrun + 何かしらの変換ツール Hack #230: Markdown形式…

Python - テストデータの定義はどうするのがいいか考えてみる

またはPythonでDataProviderを使う方法。 きっかけ テストデータはsetUpで宣言するべき幾つかの理由を読み、これはDataProviderの方が適切ではないかという気がしました。 DataProvider(データプロバイダー)とは 簡単に言えば、「テストデータの集合を返す関…

アルゴリズム - PythonでDFSとBFSを書いてみた

アルゴリズムの勉強で、DFS(深さ優先探索)とBFS(幅優先探索)を書いてみました。 サンプルケースでは動いているけど、これで間違いないかはそこまで自信ない。 DFS(非再帰版) コード def __logging(visited, rest=[]): if rest: print "visited:%s\n rest:%s\…

Vim - ファイルを二重で開かない設定を使ってvimrcを開く

vim

===追記=== 普通に標準機能で出来ました @kanno_kanno :drop ...。2013-05-31 21:09:36 via Janetter to @kanno_kanno コメント欄より 捕捉ですが。 :tab drop $MYVIMRC で、同様の機能を使用する事が出来ますね。 (id:osyo-manga) helpに書いてますが、drop…

Vim - dwm.vim用にuntie-dwmプラグインを作った

vim

こちらの記事を読んでdwm.vimというプラグインを知りました。 【VIM】タイル型ウィンドウマネージャでタブいらず 最近、まさにこれと同じようなイメージのものを作ろうかと思っていたので助かりました。 dwm.vim自体の操作方法は参考リンクを見ていただくと…

PHP - mb_internal_encoding()とini_get()の結果が異なるのでPHPのソースを読んで理解してみた

php

ini_get('mbstring.internal_encoding') と mb_internal_encoding() の値が異なるらしいので調べてみました。 後半ではmbstring.language や mb_regex_encoding との影響についても記述します。 ソースを読んで自分なりに解釈しましたが、間違い等あればご指…

Vim - 現在のファイルパスを表示する

vim

ステータスラインに表示していたけど、コマンドラインへ表示する方法に変えたというお話。 ステータスラインに表示する 私のステータスラインの設定は次のようになっています。 set statusline=%F%m%r%h%w%=\ %{fugitive#statusline()}\ [%{&ff}:%{&fileenco…

Vim - VimShellでプロンプト名に現在のパスを表示する

vim

標準ではプロンプト名をパス表示にはできない(と思う) VimShell では以下のプロンプト情報を変更できます。 g:vimshell_prompt プロンプト文字列。デフォルトは「vimshell%」 たぶん固定文字列のみ g:vimshell_secondary_prompt セカンダリプロンプト文字列…

Vim - 新しくhelpウィンドウを開くプラグインを作った

vim

vim-helpnewというプラグインを作りました。 ウィンドウ2分割でhelpを見る(プラグインなし) 通常、:help バッファは同一タブ内では使いまわされます。 :help でヘルプを開きます。 この状態で別のhelpを見たくなりました。 上のウィンドウに移動して、 :help…

Vim - 補完時に表示されるプレビューウィンドウを消す

vim

普段neocomplcacheを使っています。 最近Pythonを書いていて知ったのですが、補完時にプレビューウィンドウが開きます。 こんな状態から . を入力して補完が始まるとこうなります。 このプレビューウィンドウ。 これが非常に邪魔臭くて消したかったので調べ…