タグ

ブックマーク / mattn.kaoriya.net (35)

  • Big Sky :: git で pull-request を clone する設定が覚えられないので alias 書いた。

    github の pull-request を clone する設定をいつも思い出せなくて、毎回ググってるので alias を書いた。 Checkout github pull requests locally Here's fetch : 1 git fetch From github.com:gittip/www.gittip.com * [new ref] refs/pull/100/head -> o... https://gist.github.com/piscisaureus/3342247 $ git config --global alias.pr-setup "config --add remote.origin.fetch +refs/pull/*/head:refs/remotes/origin/pr/*" とすれば alias がインストールされるので、以後は pu

    Big Sky :: git で pull-request を clone する設定が覚えられないので alias 書いた。
  • Big Sky :: Vim で peco する「veco」書いた。

    vimでpecoりたい — Yoichi Fujimoto ? (@wozozo) July 8, 2014 って事で書いた。 mattn/ctrlp-veco ・ GitHub https://github.com/mattn/ctrlp-veco 実行には CtrlP が必要。 peco の代わりに vim を使う。ただそれだけ。 vimでpecoっても全然うれしくないことがわかった — Yoichi Fujimoto ◉ (@wozozo) July 8, 2014

    Big Sky :: Vim で peco する「veco」書いた。
  • Big Sky :: Windows で便利な clib パッケージを3つ程書いた

    先日、C言語向けのパッケージマネージャ clib を紹介したのですが、その後 Windows で使えそうなパッケージを3つ程書きました。 Big Sky :: clib の使い勝手にマジ感動した C言語でアプリケーションを書くのは他の言語と比べて少し気合が必要ですよね。例えば HTTPからデータを取得する 取得したデータを json パースする 結果の一部を色付きで表示する こんな場合、C言語... http://mattn.kaoriya.net/software/lang/c/20140627222830.htm locale-string.c 最近のライブラリは文字列が utf-8 前提で書かれている物が多く、Windows だと「それ、ツライわー(汗)」だったりするのですが、かと言ってこれだけの為に変換ライブラリを入れるのはアレですし、iconv 入れちゃったら GPL(LGPL)

    Big Sky :: Windows で便利な clib パッケージを3つ程書いた
  • Big Sky :: Re: 断続的にデータを受けながら並行で時間差リアクションを行う

    断続的にデータを受けながら並行で時間差リアクションを行う - すぎゃーんメモ 断続的にデータを受けながら並行で時間差リアクションを行う Go はじめて、の次のGo - すぎゃーんメモ にて作った go-genki-bot 、UserStreamから Tweet 取得して返信する... http://d.hatena.ne.jp/sugyan/20140705/1404493007 ちょっと動きは違うんだけど、こういうパターンもあるよねー。という事で。 package main import ( "bufio" "fmt" "os" "runtime" "time" ) func main() { runtime.GOMAXPROCS(runtime.NumCPU()) queue := make(chan rune, 5) t := time.AfterFunc(-1, func() {

    Big Sky :: Re: 断続的にデータを受けながら並行で時間差リアクションを行う
  • Big Sky :: 日本語grepが出来るjvgrepというのを作った。

    語を扱っていて困るのがgrep。正規表現パターンにマルチバイト文字を混ぜられなかったり、windowsで動かすと"表"の様に2バイト目にbackslashが混じる文字で動作しなくなったりします。 さらに複数のエンコーディングで書かれたファイルが散らばっていると一度のgrepで検索出来なかったりもします。 vimに限っては、内蔵のvimgrepを使う事で解決出来ますが、見つかったファイルをバッファに開いてしまうという挙動がある為、grepオリジナルの動作を求めている人にとっては都合の悪い物だったりもします。 vimgrepの様に複数のエンコーディングに対応していて、検索パターンにマルチバイト文字を含んだ正規表現が使えて、windowsでもちゃんと動いて、ついでといっちゃあなんだが、"**/*.txt"で再帰検索してくれる様なgrep無いかなぁと思ってたんですが、やっぱり無いので作りました

    Big Sky :: 日本語grepが出来るjvgrepというのを作った。
  • Big Sky :: MSVC の怖い話

    夏だし、怖い話しようぜ! #include <cstdio> #include <math.h> class C { public: C() {} C(double) { printf("hello world\n"); } }; int main(int argc, char** argv) { C(NAN); return 0; } 僕は今日... こんなコードをコンパイルしたんだ...。gcc でコンパイルして実行したんだ...。 hello world 期待通りだった。 僕は安心し、これを今度は MSVC でビルドしたんだ...。 実行すると... 何も出ない... 僕は怖くなった。 何なんだ!何なんだ!NaN なんだーーー! 僕の C++ 人生はなんだったのか...。僕は病に侵されているに違いない...。 怖いながらもデバッガで追ったんだ... そしてステップインした... えっ

    Big Sky :: MSVC の怖い話
  • Big Sky :: peco で migemo が使える様になった。

    peco に custom-matcher という仕組みを入れて頂きました。 User CustomMatcher by mattn - Pull Request #65 - lestrrat/peco - GitHub https://github.com/lestrrat/peco/pull/65 ~/.config/peco/config.json に以下の様に CustomMatcher を追加します。 { "CustomMatcher": { "C/Migemo": [ "c:/dev/peco-cmigemo/peco-cmigemo.exe", "$QUERY" ] } } 例は Windows ですが、unix でも動きます。配列部分は実行するコマンド引数になり、$QUERY がクエリになります。 CustomMatcher は自作する事が出来ます。標準入力から行を読み込み

    Big Sky :: peco で migemo が使える様になった。
  • Big Sky :: いつでもどこでも Vim から :help する

    いつでもどこでも Emacsから :help する - Life is very short [vim][emacs] いつでもどこでも Emacsから :help する [coffee-mode][emacs] coffee-mode 0.5.2 released [WIP][emacs][... http://d.hatena.ne.jp/syohex/20140527/1401188929 いつでもどこでも :help する - Vim :help ... http://vim-help-jp.herokuapp.com/ Emacs から Vim Help を :help で検索できるのに、Vim から出来ないなんて!出来るべきだろ! リポジトリ mattn/ctrlp-vimhelpjp - GitHub https://github.com/mattn/ctrlp-vimhel

    Big Sky :: いつでもどこでも Vim から :help する
  • Big Sky :: bundle exec がウザい

    ruby のアプリを動かす時にいちいち bundle exec って書くのがダルい。書きたくない。でもシステムに入ってたり違うバージョンの物が動いて変な動作をされても困る。 どうにかしてこのダルさを解消できないかと考えてみた。 まず rbenv を使ってるなら gem でインストールされるコマンドは必ずシェルのラッパとして生成され、そこから物が起動する様になっている。例えば rails であれば以下の様なシェルになっている。 #!/usr/bin/env bash set -e [ -n "$RBENV_DEBUG" ] && set -x program="${0##*/}" if [ "$program" = "ruby" ]; then for arg; do case "$arg" in -e* | -- ) break ;; */* ) if [ -f "$arg" ]; th

    Big Sky :: bundle exec がウザい
  • Big Sky :: ファイル名の一括置換なら massren がめちゃめちゃ便利

    大量にあるファイルのファイル名を一括で変更する場合、どうしても GUI での操作であったりマッチパターンを書くのが面倒だったりしましたが、massren を使えば誰でも簡単にファイル名の一括置換が出来る様になります。 laurent22/massren - GitHub massren - Easily rename multiple files using your text editor https://github.com/laurent22/massren お気に入りのテキストエディタを使って、好きな様にファイル名を変更出来ます。サポートしているOSは Windows, Linux, OSX です。中身は golang で書かれています。 それぞれバイナリが用意されているので自分でビルドする必要はありません。LinuxOSX の人はリンク先にある手順を、Windows の人は

    Big Sky :: ファイル名の一括置換なら massren がめちゃめちゃ便利
  • Big Sky :: C言語で文字列を自動伸張してくれるライブラリ「sds」

    C言語の文字列伸張は慣れないとコストの掛かるコーディングになりがちです。 またそういった文字列ライブラリというのは、直接 puts や printf に放り込めないという難点があります。 しかし sds というライブラリは異なります。 antirez/sds - GitHub Simple Dynamic Strings SDS is a string library for C designed to augment the limited libc ... https://github.com/antirez/sds 通常、C言語向け文字列ライブラリというのは独自の構造体ポインタを返します。そうする事で、文字列ポインタ以外の情報を詰め込んで処理する事が出来ます。しかしその反面、構造体ポインタをそのまま puts や printf に放り込めず、何かしらのアクセサを用意する必要がありまし

    Big Sky :: C言語で文字列を自動伸張してくれるライブラリ「sds」
  • Big Sky :: SQL で CSV のデータを抽出出来る textql

    CSV ファイルを扱っている時に、最大値最小値と得たり合計を得たりするのにいちいち Excel を起動するのはとても面倒ですし、スクリプトを書くのも面倒。 そんな場合は textql を使うと便利です。 dinedal/textql - GitHub Execute SQL against structured text like CSV or TSV https://github.com/dinedal/textql golang で書かれています。ビルドすると依存性の無い実行モジュールが生成されます。使い方はリンク先の動画gifを参照下さい。 簡単にどんな事が出来るかというと $ cat ~/sample_data.csv | textql -header -sql "select sum(cast(value as integer)) from tbl" 18 こんな事が出来るツール

    Big Sky :: SQL で CSV のデータを抽出出来る textql
  • Big Sky :: Vim script は人々の生活を豊かにしなければならないッ!

    この記事はVim Advent Calendar 2013 : ATND 7日目の記事になります。 2013年もあと少しです。今年も Vim に関する色んな話題が登場しました。 そして数多くの Vim plugin が今年も登場しました。 ステータスバーをスタイリッシュにするプラグイン Markdownをプレビューするプラグイン 正規表現をプレビューするプラグイン ブラウザと通信するプラグイン 補完プラグイン 貴様!?まさか! そのまさかだ!フハハハハハハ... どれも凄い物ばかりでした。そして Vim 界においては日人の活動が特に素晴らしかったと思っています。 k_takata さんの大活躍で多くのパッチが vim-jp より提出され取り込まれました。 何名かの方には Vim 7.4 のリリース後も動作検証に協力頂きましたし、Vim advent calendar 2012 は結局1年

    Big Sky :: Vim script は人々の生活を豊かにしなければならないッ!
  • Big Sky :: C言語から使えるJSONパーサ、parson が思った以上に良い仕事をしている。

    前回は JSMN というのを試したけど、今度も matsuu さんのブクマから。。。 parson Lightweight json parser and reader written in C. http://kgabis.github.com/parson/ 特徴は 軽い (2ファイルだけ) 単純なAPI ドット記法による json 値のアドレッシング (C言語の構造体やOO言語のオブジェクトに似た感じ。例: "objectA.objectB.value") C89 コンパティブル テストスーツ 前回の JSMN とは違い、メモリを動的に確保するタイプ。DOM の様にルートノードから探索を始め、最終的にルートノードを指定してメモリを開放する。 今回もtwitterのタイムラインをパースしよう。 #include <assert.h> #include <string.h> #inclu

    Big Sky :: C言語から使えるJSONパーサ、parson が思った以上に良い仕事をしている。
    orangeclover
    orangeclover 2012/11/02
    へぇー『C言語から使えるJSONパーサ、parson が思った以上に良い仕事をしている。』
  • Big Sky :: Windowsへの移植も視野にいれたプログラムを書くなら読んでおいて欲しい事

    絶対パスの先頭に/が来る事を期待してはいけない しかしながら絶対パスの先頭にドライブレターが来る事を期待してはいけない UNCパスのホスト名やシェア名はディレクトリではないのでファイルシステムAPIは使えない事を意識しておく unixに比べパス内に空白文字が入る可能性が高い事を意識しておく ホームディレクトリを意味するパスの先頭チルダは自前で展開する必要があり、またパスの途中にチルダが混じる事は日常的にある ソケットディスクリプタに対してもread/writeで送受信できる事を期待してはいけない パイプでない標準入力のselectはやっても意味がない ディレクトリ内にあるファイルを開き、ハンドルを保持したままディレクトリを消せるのは当たり前だと思わない パスのセパレータが/¥である事を期待してANSI APIを使ってはいけない Cランタイム(POSIX互換API)とWindows API

    Big Sky :: Windowsへの移植も視野にいれたプログラムを書くなら読んでおいて欲しい事
    orangeclover
    orangeclover 2012/05/07
    最後w『Windowsへの移植も視野にいれたプログラムを書くなら読んでおいて欲しい事』