2015-01-01から1年間の記事一覧

2015年を振り返る

2015年の自分向けまとめです. まとめ 目標は達成できたかどうか分からないといけないと思っているので,2015年の趣味での目標は 「とりあえず10万行書くか」 だったんですが,測るのが面倒なので途中から「3000 contributions する」 になりました.(自分…

Web Components と Electron でつくる Neovim フロントエンドの未来

この記事は Vim Advent Calendar 2015 の20日目の記事です. まずはこちらのスクリーンショットをご覧ください. エディタの UI やカーソル移動は Vim っぽいですが,markdown ライブプレビューやカーソル位置での画像ポップアップ,組み込みブラウザなど謎…

Crystal でのプログラミングを支援するツール達

この記事は Crystal Advent Calendar 2015 の13日目の記事です. Ruby の構文が好きなので Crystal もぼちぼち触っていて,標準ライブラリに Random::MT19937 とか Array#transpose を実装したり,Lisp 実装してみたり,コマンドラインからドキュメント開く…

いらすとやヘビーユーザのために Irasutoyer というアプリをつくった

この記事は いらすとや Advent Calendar 2015 の6日目の記事です. いらすとやとは? いらすとや とは,フリーのかわいいイラスト素材を提供しているサイトです.実用的で種類が豊富,たまにシュールなのもあり,利用条件のゆるさから至る所で使われています…

「とりあえず入門書は読んだけど…」の次に進むプルリク駆動学習

汎用性の高い技術ポエム Advent Calendar 2015 の3日目の投稿です. 普段はつくったものの紹介とか技術的に調べたことのメモとか勉強会参加記事を書いていて雑感とかは大体ツイッターに書いているんですが,最近どことなく頭にこびりついていることがあるの…

vimconf でブラウザ上で Vim を使う方法を発表してきた

今年も vimconf にスタッフ兼発表者として参加してきました.名札の名前が「ドッグ」でじわじわきました… 開場 当日は準備スタッフの作業のために 8:30 に会場へ.山手線の遅延に巻き込まれて 8:45 ぐらいに到着. 電源ケーブルの配線などをやりました. Vim…

devdocs.io が便利すぎたので Vim プラグインつくった

devdocs.io 最近,GitHub Trending Repositories のページで devdocs.io という便利なサービスを知りました. devdocs.io は複数のドキュメントを素早く横断的に検索できるサービスです.多分使ってみると一瞬で分かるので詳細は省きますが,各言語や DOM,R…

東京Node学園祭 2015 で Electron について話した

画像は公式サイトから 発表について 11/7 にあった 東京 Node 学園祭 2015 で Electron の発表した. 周りすごい人達ばかりで,明らかに今年の6月ぐらいに初めた自分よりも,JavaScript も Node.js もフロントエンドも書ける人達に囲まれての発表だったので…

Crystal 言語で CLI ツールを書いてみる

Crystal はつくりかけの言語です.この記事は 0.8.0 を元に書きましたが,今後かなり変更されることが予想されます Crystal は Ruby に強くインスパイアされたコンパイル言語です.結構前から気になっていて,Crystal のコンパイラが Ruby で書かれていた頃…

GitHub のトレンドリポジトリを見逃さない,Trendy をつくりました

僕が1日に1回ぐらいの頻度で見ているページの中の1つに GitHub の Trending repositories のページがあります.このページには言語ごとに日毎・週毎・月毎の単位で GitHub 上で人気のリポジトリがランキング形式で表示されます. 話題になっているライブラリ…

GitHub のアレコレを補完する github-complete.vim をつくりました

GitHub のユーザ名やリポジトリ名,絵文字,リンクURLを GitHub API を使って補完する github-complete.vim をつくりました. https://github.com/rhysd/github-complete.vim Vim では Markdown 編集中のオムニ補完は HTML のものになっていて使わないので,…

YAPC::Asia 2015 良かった…

YAPC::Asia 2015 に行ってきた.今まで参加した中で IT 関係で過去一番参加者が多いイベントな気がする.Perl はほとんど書いてないものの,ラリー・ウォールや Matz の講演もあって楽しそうだったのでチケットを迷わず購入して有給取った. トーク良かった …

Shiba v0.4.0 をリリースしました

先月ぐらいから Markdown プレビューアプリ Shiba をつくっています. Electron と Polymer と TypeScript でリッチなマークダウンプレビュアー Shiba つくった - sorry, uninuplemented:rhysd.hatenablog.com 指定した markdown ドキュメント(または特定の…

スプラトゥーンの Vim カラースキームつくった

スプラトゥーンとても流行ってますね.タイムラインをいつ見ても最低1人はプレイしている気がします. スプラトゥーンは(主に)ステージを自チームのポップな色で塗っていく陣取り型のTPSです. 僕はスプラトゥーンを購入してませんが,とても楽しそうなの…

How To Test Electron App On Travis CI

This is an English translation of my Japanese post on Qiita. I recently created Shiba, which is a rich markdown previewer. I wrote some tests for it. I could not find Electron app which was tested well so much and how to test Electron app …

Electron と Polymer と TypeScript でリッチなマークダウンプレビュアー Shiba つくった

結構前ですが,mattn さんが小さい markdown ライブプレビューアプリ mkup をつくっていて,そういえば僕も合う markdown ライブプレビューアプリが無いなぁと思っていたのを思い出したので,オレオレ markdown プレビューアプリ Shiba をつくってみました.…

インストールせずにカラースキームを試せる try-colorscheme.vim をつくりました

Vim

問題 Vim でカラースキームを試すときは主に以下の様な作業が必要になります. プラグインマネージャなどでカラースキームをインストールする カラースキームの名前を確認する :colorscheme コマンドでカラースキームを指定する コレジャナカッタ場合はカラ…

Make a Lisp で Lisp 処理系を学んでつくる (with Crystal)

インタプリタ式の言語処理系を書いたことが無かったので一度実装してみようと思って,この手のは Lisp が定番だということで,前々から気になっていた Make a Lisp (mal) に挑戦してみました. Make a Lisp (mal) とは Make a Lisp は色々な言語で mal とい…

Vim ではじめる Rust 1.0

Rust は 1.0.0beta が4月の頭にリリースされ,現在 1.0.0beta5 で 5/15 に 1.0.0 正式版がリリース予定です. リリース間近であるのと,C++ をやっていた人はとっつきやすいとかデザインが良いというウワサを聞いて少し試してみていて,Vim の環境も少し整え…

無名構造体を名前付き tuple として使う

C++

例えばユーザ名,Eメール,IDの3つの値を一気に返したいとき,C++ では std::tuple が使えます. #include <string> #include <tuple> using std::operator""s; auto get_user() { // std::tuple<std::string, std::string, int> return std::make_tuple("Linda"s, "foo@bar.com"s, 17); // name, email, id</std::string,></tuple></string>…

可変長のパラメータパックのまま扱うのがだるい時は tuple で扱うのどうだろう

C++

C++11 から入った可変長テンプレート引数,便利ですがパラメータパックの扱いがとっつきにくいです. 下記のように一旦 tuple で受ければその後は std::tuple のインターフェースで受けて自由にできるので 良いんじゃないかという気がする. template<class... Args> void d</class...>…