タグ

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

  • Big Sky :: VimConf 2019 を終えて

    はじめに 今年も Vim の国際会議 VimConf 2019 に参加してきました。格的に国際会議という位置づけに移ってからほぼ4年目、その内3年をスタッフとして参加させて頂きました。 昨年、Vim の作者 Bram Moolenaar 氏を呼べたのはもちろん素晴らしい事ですが、今年も vim-lsp の作者である Prabir Shrestha 氏、neovim のメインメンテナである Justin M. Keyes 氏に登壇頂けたのは、企業スポンサー様の皆さま、個人スポンサーの皆さま、そして当日会場を盛り上げて頂いた皆さまのおかげです。ありがとうございました。 参加したいと思いながらもなんとなく尻込みして来れなかった方、非常に残念です。良い話が沢山聞けました。スライドが後から公開されると思いますが、これだけは言っておきます。熱量やそれを見ている会場の皆さんの期待、懇親会で Vim

    Big Sky :: VimConf 2019 を終えて
    rin51
    rin51 2019/11/04
  • Big Sky :: 書評「Go言語による並行処理」

    O'Reilly Japan, Inc. 様に献頂きました。ありがとうございます。 そして献頂く際にお声を掛けて頂いた、書の翻訳を担当された ymotongpoo さんにもお礼を申し上げます。ありがとうございます。 書の訳は非常に素晴らしく、とても原文が英文であったとは思えないほど綺麗で、読んでいく中で「原文でどの様に表現されているんだろう」といった引っかかりも無く、とてもスムーズに読み進められました。 Go 言語に関わって随分と長くなってきました。初めて Go を知ってからユーザがどんどん増える様を見る事が出来るのは正直に言って非常に嬉しいです。 ふと Go の魅力は何かと聞かれたら幾つか挙げる事が出来ますが、間違いなく選ぶのが「非同期処理の簡単さ」です。これまで多くの開発者が OS スレッドで実現してきた非同期処理を、Go 言語は少ないイディオムとインテリジェントなランタイムを

    Big Sky :: 書評「Go言語による並行処理」
    rin51
    rin51 2018/10/22
  • Big Sky :: Go言語で ping を打って「にゃーん」を表示させる

    pingを打つと「にゃーん」を返すサービス、ネットワークエンジニアが開発 - ITmedia NEWS 関連記事 メイドさんと一緒に学ぶ「週末プログラミングスクール」開校 そこに隠された2つの社会的意義 一見、華やかな場の創造に見えるこの取り組みだが……。 太田智美がなんかやる:WWDC冒頭で、クックC... http://www.itmedia.co.jp/news/articles/1709/07/news106.html ping を打ったら「にゃーん」と文字が表示されるサービス。ICMP でメッセージを送信したら応答を返す、普通のプロトコルなのだけど、文字のドットが存在する部分だけタイムアウトエラーが発生するという物。どうしてもこれを Windows でしかも golang で実行したかったので作ってみた。golang にも ICMP プロトコルを扱うパッケージが用意されている。

    Big Sky :: Go言語で ping を打って「にゃーん」を表示させる
    rin51
    rin51 2018/03/16
    にゃーん
  • Big Sky :: 「Mackerel サーバ監視[実践]入門」を読んだ。

    株式会社はてな さんから献頂きました。ありがとうございます。 書籍「Mackerel サーバ監視[実践]入門」を執筆しました | おそらくはそれさえも平凡な日々 書籍「Mackerel サーバ監視[実践]入門」を執筆しました Mackerel サーバ監視[実践]入門 やっと出せました。このは、僕がはてなに入社してからずっと携わっている、 Mackerel と... http://www.songmu.jp/riji/entry/2017-08-28-mackerel-book.html 僕が Mackerel を知ったのは2014年5月の事でした。 mackerel-agentをオープンソース化しました - Mackerel ブログ #mackerelio 日、mackerel-agentを オープンソース 化しました。 リポジトリ は GitHub 上の mackerelio/ma

    Big Sky :: 「Mackerel サーバ監視[実践]入門」を読んだ。
    rin51
    rin51 2017/08/29
  • Big Sky :: Bash on Ubuntu on Windows の最高の端末環境を教えてやるからちょっと来い。

    Bash on Ubuntu on Windows (以下 BoW) は Windows コマンドプロンプトを使って実行される。今までであれば Windows のコマンドプロンプトはエスケープシーケンスを認識しなかったので cmd.exe そのものでは vt100 等の端末環境を用意できませんでした。しかし Windows10 の cmd.exe では新しいコンソールモードが用意されています。 Console Virtual Terminal Sequences (Windows) Virtual terminal sequences are control character sequences that can control cursor movement, color/font mode, and other operations. https://msdn.microsoft.c

    Big Sky :: Bash on Ubuntu on Windows の最高の端末環境を教えてやるからちょっと来い。
    rin51
    rin51 2016/08/25
  • Big Sky :: 「みんなのGo言語」の執筆に参加させて頂きました。

    僕がプログラミング言語「Go言語」を知り、使い始めてからそろそろ7年目に入ろうとしています。 当初 Google が作っているという鳴り物があった為、色々なメディアに取り上げられ色々な方がブログ等でGo言語を紹介し、色々な意見でGo言語が語られました。大抵の場合、プログラミング言語とは始めはチヤホヤと取り出され、落ち着いてからが当の人気を表すという傾向にあります。皆さんもそう思っていたかもしれませんし、僕もそう思っていたと思います。 僕がGo言語を触りだした頃、まだ色々と足りない部分がありました。Linux で動いている多くの機能が Windows では未実装になっていました。しかしそんなGo言語であっても高速なビルドと実行速度で僕の好奇心を揺さぶるには十分な物でした。 その後、僕はGo言語にパッチを送る様になりました。その内幾らかはマージされました。現時点ではコアのリポジトリで79個の

    Big Sky :: 「みんなのGo言語」の執筆に参加させて頂きました。
    rin51
    rin51 2016/08/08
  • Big Sky :: Windows ユーザは cmd.exe で生きるべき。

    [D] Windowsはターミナルがダメだから使えないってのは過去の話? 基的にはいい感じに見えますが、いくつか問題は発覚してます。 http://blog.drikin.com/2015/01/windows-2.html 僕は Cygwin よりも msys2 が好きです 理由は最後の方に書きます。 cygwin は windows 上に完全な POSIX を提供するのが目的であって、msys2 は native な windows アプリケーションをビルドするのが目的なのでゴールが違うのよね。そして僕は全て cygwin で染められるのが好きじゃ無い。それだけの話です。 — mattn (@mattn_jp) April 10, 2016 もちろん msys2 を POSIX 環境としても使いますが、一番の目的は cmd.exe から Windows ネイティブなアプリケーションを

    Big Sky :: Windows ユーザは cmd.exe で生きるべき。
    rin51
    rin51 2016/04/11
  • Big Sky :: Protocol Buffers を利用した RPC、gRPC を golang から試してみた。

    grpc/grpc · GitHub gRPC - An RPC library and framework https://github.com/grpc/grpc gRPCGoogle が開発しているRPC(リモートプロシージャコール)のライブラリとフレームワークで、通信層は HTTP/2 を介して行われます。 データ層については、固定されている訳ではなくあくまでデフォルトで Protocol Buffers が使われる様になっています。使用出来るプログラミング言語は現在、C++, Node.js, Python, Ruby, Objective-C, PHP, C# となっています。 実はこれら以外にも grpc-go という、なぜかこのリストに加えられていないオフィシャルリポジトリがあります。 grpc/grpc-go - GitHub gRPC-Go The Go impl

    Big Sky :: Protocol Buffers を利用した RPC、gRPC を golang から試してみた。
    rin51
    rin51 2015/03/03
  • Big Sky :: 送り主の分からない小包

    今日、嫁から電話があり... 嫁「送り主の分からない小包が届いてる」 僕「どんなん?誰から?俺に?」 嫁「それが分からんねん。英語ばっかりや」 僕「なんて書いてる?」 嫁「フェーフェー、フェデークス...」 僕「それ、運送会社や」 嫁「英語ばっかりで分からんわ。開けていい?」 僕「いや、間違いかも知れんし」 嫁「宛名は合ってるねんで」 僕「なんやろ覚えが無い」 嫁「カードでなんか買い物したんちゃうん...」 僕「してないわー」 家で見ても、確かに送り主が分からない。おそるおそる開けて見ると どどーん。なんか真っ黒いの出てきたと思ったら、ブランケット出てきた。しかも「Google」って書いてある。 かっ... かっちょ... かっちょええやん... おーぷんそーす ぷろぐらむ おふぃす... Google is sending out blankets to open-source deve

    Big Sky :: 送り主の分からない小包
    rin51
    rin51 2014/11/18
    すげえ
  • Big Sky :: C言語から使えるJSONパーサ、jansson がとても直感的で良い

    おなじみC/C++から使えるJSONライブラリを紹介するコーナー。まずは過去のまとめ。 最速と言われる JSON パーサ「rapidjson」が当に爆速なのか試してみた。 C言語から使えるJSONパーサ、parson が思った以上に良い仕事をしている。 僕がboost::asioとboost::property_treeを使いHTTPプロキシ環境下で非同期にGoogle Search APIから検索するまでにやった、たった一つの事。 C言語から使えるJSONパーサ、JSMNを試してみた。 何も見ずにC++でjsonパーサが書けるか試してみた。 ヘッダファイルだけでC++から使えるJSONパーサ「picojson」が凄い! 最近は結構 matsuu さんのブクマから見つけて記事を書いてたけど今日はそうじゃない所からご紹介。 Jansson — C library for working w

    Big Sky :: C言語から使えるJSONパーサ、jansson がとても直感的で良い
    rin51
    rin51 2013/07/11
  • Big Sky :: grep で文字列を縦書きに変換

    grep の -o オプションを使うとマッチした部分だけ列挙してくれる。 例えば <div>foo</div><div>bar</div> <div>baz</div> というテキストファイル foo.txt に対して grep -o "<div[^>]*>[^<]*<\/div>" foo.txt と実行すると <div>foo</div> <div>bar</div> <div>baz</div> が得られる。これを応用して echo 餃子の王将 | grep -o . とやると 餃 子 の 王 将 が得られる。 便利!!

    Big Sky :: grep で文字列を縦書きに変換
    rin51
    rin51 2012/11/30
  • Big Sky :: ぼくが知ってる twitter じゃない

    もう僕が知ってる twitter じゃなくなってきてる。 Twitter、開発者向けガイドラインとAPI変更について説明 ユーザー数制限など厳しい内容 - ITmedia ニュース 米Twitterは8月16日(現地時間)、数週間後に予定しているTwitter APIのバージョン1.1へのアップデートと開発者向けガイドライン「Developer Rules of the Road」の改定について説明した。クライアントアプリのユーザー数に上限を設けるなど、サードパーティーにとって厳しい内容になっている。 http://www.itmedia.co.jp/news/articles/1208/17/news037.html Twitter のことと P3:PeraPeraPrv について - とかいろいろ 彼らはこのユーザーの「好みのクライアントアプリを選ぶ自由と権利」を奪うという決定をしまし

    Big Sky :: ぼくが知ってる twitter じゃない
    rin51
    rin51 2012/09/02
  • Big Sky :: C言語から使えるJSONパーサ、JSMNを試してみた。

    上記の様に、トークンは各識別毎に作られます。オブジェクトのキーおよび値もそれぞれのトークンとして格納されます。 jsmn_parse はトークンの量が不足している場合、エラー JSMN_ERROR_NOMEM を返します。例えば、どれだけの量のトークンが JSON 文字列として与えられるか分からない場合、トークンのサイズを広げる必要があります。この場合、jsmn ではパーサを再初期化する事なしに、トークンを広げて再度 jsmn_parse を実行する事でパースを続行出来る様になっています。 ただしどれだけの量が不足していたかは分からないので、適度な増減を考慮する必要があります。 今日は試しに twitter のパブリックタイムラインをパースしてみました。 #include <assert.h> #include <string.h> #include <memory.h> #include

    Big Sky :: C言語から使えるJSONパーサ、JSMNを試してみた。
    rin51
    rin51 2012/08/22
  • Big Sky :: 業務プログラマが書くJava

    gist に置いておくのも勿体ないかなと思ったので、こちらにも。 職業PGにわかるFizzBuzz - 日々常々 なんかFizzBuzzが書けないPGがどーとか定期的に話題になってるけど、私に言わせれば説明の仕方が悪い。 http://d.hatena.ne.jp/irof/20120808/p1 この設計書を参考に業務プログラマっぽくコードを書いてみた。 業務プログラマがFizzBuzz書いたらどうなるか ( ref: http://d.hatena.ne.jp/irof/20120808/p1 ) — Gist https://gist.github.com/3292173 結構、設計書通りに作ったつもり。ループじゃなく、標準入力から読み込み、標準出力する部分も仕様通りです。 ただこの標準入出力を使っている事が裏目に出て、試験では標準入出力を一時的に差し替える必要があった。 試験コード

    Big Sky :: 業務プログラマが書くJava
    rin51
    rin51 2012/08/10
    > ネタなのでツッコミなしでお願いします。ましてやバグチケット切るなど問題外です
  • Big Sky :: mruby でWebサーバ動いた

    ここ数日、mrubyの拡張を書いてた訳ですが。 mattn/mruby-uv - GitHub interface to libuv for mruby(experimental) https://github.com/mattn/mruby-uv mattn/mruby-http - GitHub interface to http for mruby(experimental) https://github.com/mattn/mruby-http これを使って #include <mruby/proc.h> #include <mruby/data.h> #include <compile.h> #include <mrb_uv.h> #include <mrb_http.h> #define _(...) #__VA_ARGS__ "\n" int main() { int n;

    Big Sky :: mruby でWebサーバ動いた
    rin51
    rin51 2012/04/27
  • Big Sky :: mruby と libuv 使ってタイマー動かしてみた。

    C言語の構造体をラップする方法が分からなかった(rubyでいうData_Wrap_Structが見当たらなかった)のでissueに書いたら僕と名前の良く似た方matzさんが音速で入れてくれた。 ただrubyの時の様にalloc_funcが無いのでinitializeでメンバに放り込んでる。 まぁしょうがないか。 #include <mruby.h> #include <mruby/proc.h> #include <mruby/data.h> #include <compile.h> #include <variable.h> #include <uv.h> typedef struct { mrb_state* mrb; mrb_value proc; void* data; } mrb_uv_data; static void uv_handle_free(mrb_state *mrb

    Big Sky :: mruby と libuv 使ってタイマー動かしてみた。
    rin51
    rin51 2012/04/20
  • Big Sky :: Jekyllで始める簡単ブログ

    GithubのユーザページでJekyllが使われる様になりました。 GitHub Pages Upgraded to Jekyll 0.5.0 - GitHub I just released Jekyll 0.5.0 which contains a huge overhaul that allows you to specify options in a _config.yml file. GitHub Pages will honor most of these settings, so if you want to have your Page rendered with RDiscount instead of Maruku, just put this in your config file: ... http://github.com/blog/402-github-page

    Big Sky :: Jekyllで始める簡単ブログ
  • Big Sky :: Gistyで始めるGist/Githubのススメ

    最近Githubをよく使っているのですが、どうしてもGithubといえばプロジェクト管理なイメージがあり、プロジェクトを持ってない人から見ると少し遠い存在にみえがちです。ですが、ちょっとしたスクリプトを書きたい人、しかもリモートにもリポジトリを置きたい人いますよね。 そんな時に便利なのがGistです。 「Gistというと、単なるコードスニペットサービスでしょ?」と思われるかもしれませんが、Gistの凄いところはちょっとしたスクリプトをソース管理出来る所です。 以下、簡単なperlスクリプトをソース管理しながら完成まで仕上げる過程を例を持って示してみます。 ただし、ここで言っておきたい事が一つ。Gistを便利に使う為のツール、Gistyを入れるべきです。 GistyはGistにポストすると同時に所定の場所にgit cloneしてくれ、初期ポストからコーディング開始までをスムーズに促してくれま

    Big Sky :: Gistyで始めるGist/Githubのススメ
    rin51
    rin51 2012/02/15
  • Big Sky :: vimのステータスラインでハァハァするプラグイン書いた。

    今まで僕はvimのstatuslineに値を設定した事は無かったんだけど、githubに置いてある色んな人のvimrcを見てると結構多くの人がstatuslineを設定してて、これってもしかして便利なんじゃ...と思って設定してみた。ただ、なんか味気ないなーという気がしたので、ステータスラインで「ハァハァ」出来るプラグインを書いた。 mattn/hahhah-vim - GitHub ハァハァ statusline for vim https://github.com/mattn/hahhah-vim タイピングしたりカーソルを移動すると、ハァハァしてる顔がクルクル回ります。 これはすごい! さらに何かvim内でエラーが発生すると、しばらくの間「工エェ」なステータスラインになります。 斬新! ぜひお役立て下さい。

    Big Sky :: vimのステータスラインでハァハァするプラグイン書いた。
    rin51
    rin51 2011/11/24
    クスっときた
  • Big Sky :: Vimで動くゲーム作った

    最近Vim界隈で色々出来事がありまして、その色々を起こした数名の内の1人です。 vim-jp » Vimのユーザと開発者を結ぶコミュニティサイト vim-jpはVimと日・日語に関わるあらゆるリソースを集中させることを目的としたコミュニティサイトです。vi は、おそらく全てのUNIX系 OS 上で使えるテキストエディタです。世界には、さまざ... http://vim-jp.org/ 開発者やユーザによっては良い出来事だと信じています。 そのサイトでご紹介した記事 vim-jp » Vimで動くゲーム 最近、Vim scriptで書かれたゲームが登場し始めています。今日はその中でも有名な物をご紹介します。TeTrIs.vim : A tetris game in pure vim ご存知テトリス。「ピ... http://vim-jp.org/blog/2011/09/20/games

    Big Sky :: Vimで動くゲーム作った
    rin51
    rin51 2011/09/21