Entries from 2014-01-01 to 1 year

WebGLでPortal Shieldとかを描く

唐突にWebGLを勉強してみようと思って、練習として作ってみた。 http://sugyan-static.herokuapp.com/webgl/portalkey.html http://sugyan-static.herokuapp.com/webgl/portalshield.html (※WebGL対応ブラウザでご覧ください) WebGLについて全然知識が無かっ…

#isucon 2014で優勝しました

第4回 ISUCONの本選に、参加しました。前回&予選から引き続き、@kazeburoさん、@tagomorisさんとの「LINE選抜チーム」。 #isucon 2014予選に参加した - すぎゃーんメモ ISUCON4 本選リアルタイムフォトレポート 【更新終了】 : ISUCON公式Blog 結果はなんと…

#perlcasual に参加してLTしてきた

PerlCasual #06に、参加してきました。なにげに5年前の第1回のときから参加しているし縁のあるイベント。@yusukebe氏に感謝! 8月のYAPC::Asiaでは何も話せなかったけど、自分の開発環境についてアウトプットすることが全然なかったなーと思って、せっかくLT…

projectileをcache有効にして高速化

Emacs 24.4がリリースされました。それとは(多分)関係ないのだけど、愛用しているhelm-projectileが、ファイル数の多いあるprojectでとても重くなってしまって困ったので、cacheを使うようにしてみた。 (require 'projectile) (custom-set-variables '(proje…

#isucon 2014予選に参加した

昨年 に引き続き、今年も ISUCON に参加しています。ありがたいことに今回もLINE選抜チームに入れていただいたのですが 共催枠なので本選には出られる、とかはともかく、予選に参加させていただきました。 詳しくはこちらをどうぞ LINE選抜で isucon4 予選に…

YAPC::Asia 2014 前夜祭で喋ってきた

YAPC::Asia Tokyo 2014 前夜祭 - YAPC::Asia Tokyo 2014「欲しいものは作ればいい! 〜Webアプリ10連発〜」ということで@koba04さんに声をかけていただき、最近つくっていたttyrecからアニメーションGIFを生成するツールやそのWeb版を作っているところの紹介…

ttyrecordからGIF作るのにスクリーンショットなんて必要なかったんや

Go

先日 ターミナル操作の記録(ttyrec)からGIFアニメを生成するツールを作った - すぎゃーんメモ を書いたところ、思っていた以上に反響があって。 自分的にも結構便利だなーと思っていたのだけど、 ttygifとその系列、端末マニアではない人の95%くらいのユース…

ターミナル操作の記録(ttyrec)からGIFアニメを生成するツールを作った

Go

ttyrec で録画したデータを使ってターミナル上で再生しつつ、そのスクリーンキャプチャを使ってアニメーションGIFを生成するツールをGoで作ってみた。 https://github.com/sugyan/ttygif Releases Mac, Linux Desktopで動作。再生速度はオプションで変更可能…

pipeline and cancellation並行性パターンの勉強

Go

Go Concurrency Patterns: Pipelines and cancellation - The Go Blog を読んでいて、なかなか理解するまで苦しんだので復習がてら自分でもコードを書いて確かめてみた。 お題 複数の入力データそれぞれに対して重い処理を行い、結果として返ってくる値をま…

Goで全裸 その後

Go

Goで全裸 - すぎゃーんメモ の続き。 Kagomeが重くてwerckerでビルド失敗する、と書いていたところ、作者の@ikawahaさんが改良して軽量化してくださって。 全裸改善:形態素解析器 kagome に go-bindata を使ったらビルド時間とバイナリのサイズが劇的に改善…

Goで全裸

Go

Pure Go で辞書同梱な形態素解析器 kagome を公開してみました - Qiita という記事を見て、「Goで形態素解析できれば @zenra_bot もGoで作れる!」と思い、とりあえず全裸にするやつ作ってみた。 https://github.com/sugyan/go-zenra やってることは 全裸で…

断続的にデータを受けながら並行で時間差リアクションを行う

Go

はじめて、の次のGo - すぎゃーんメモ にて作った go-genki-bot 、UserStreamからTweet取得して返信するところの処理が微妙なかんじで mattnさんやlestrratさんなどからアドバイスいただいたりした。Goっぽい書き方で上手く並行処理をさせたい。 お題 「断続…

はじめて、の次のGo

Go

はじめてのGo - すぎゃーんメモ の続き?的な。 入門で終わらずにもうちょっとマトモに何か作れるようになりたい、ということで、以前にRubyで書いた「げんきだしてbot」をGoで書いてみた。成果物のリポジトリはこちら。 https://github.com/sugyan/go-genki…

はじめてのGo

Go

今さらながら、Goをもう少し読み書きできるようになりたいな、と思い。A Tour of Go を一通り読んで、 GitHub - mattn/twty: command-line twitter client written in golang go-oauth/examples/twitter at master · garyburd/go-oauth · GitHub などを参考…

percolを使ってターミナル操作を早く、便利に。

先日、shell勉強会で「zawを使ってシェル操作を快適に」というお話を聴いて、自分ももう少しそのあたりの環境を整えよう、と思い立った。 nanapi勉強会 vol2 - Shellの活用でこれだけ毎日が便利になる - nanapi勉強会 | Doorkeeper zawで快適シェル生活 // S…

Google Doodleのルービックキューブを解くChrome拡張を作った

http://www.google.com/doodles/rubiks-cube のやつ。 とっくに旬を過ぎていて今さら感あるけど、、URL 開いてスタートした瞬間に自動で解いてくれるChrome Extension 誰か2014-05-19 16:02:43 via Twitter for Macって自分で言ったし。 Google Doodle's Rub…

はてなブログAtomPub APIをOAuth認証経由で叩く

はてなブログAtomPub - Hatena Developer Center を使ってはてなブログの情報を取得したり投稿したりしてみる。 OAuth認証 はてなブログAtomPub を利用するために、クライアントは OAuth 認証、WSSE認証、Basic認証のいずれかを行う必要があります。 http://…

tmux上のweechatのhotlist情報を通知する

自分のIRC環境はVPSサーバー上でZNCを使い つつ、そのサーバ内でtmuxのセッションをずっと上げておいてその中でweechatを起動 して繋ぎっぱなしにしている、というかんじで。 highlightされるようなものはもちろんim.kayac.comなどに通知させているけども、…

64通りのkamipoを出力する

発端 @Kamipo2014-04-22 21:06:52 via Twitter for Mac to @kamipo @sugyan2014-04-22 21:06:57 via YoruFukurou to @sugyan @KAMIPO2014-04-22 21:10:34 via Twitter for Mac to @kamipo @kamipO2014-04-22 21:10:59 via Twitter for Mac to @kamipo @kamIp…

helm-perldoc 0.04 での設定

helm-perldocを使ってインストール済みモジュールのドキュメントを参照する(carton対応も) - すぎゃーんメモ の続き。 id:syohexさんに諸々と取り入れていただき、carton環境への対応も簡単になりました。 (add-hook 'cperl-mode-hook 'helm-perldoc:carton-…

helm-perldocを使ってインストール済みモジュールのドキュメントを参照する(carton対応も)

インストール済みのモジュールたちから、perldocを引くためのリストを作る - すぎゃーんメモ を書いた後 id:syohexさんと相談させていただいた結果、きれいにモジュール一覧を取得する方法を確立していただき。 インストール済みのモジュール一覧を得る方法 …

インストール済みのモジュールたちから、perldocを引くためのリストを作る

helm-perldoc を使ってみたりしていて気付いたのだけど、Perlでインストールされているモジュールたちからperldocでドキュメント引くためのリストを作るのってけっこう難しい。。 シェルコマンドで @INC以下にある*.pmファイル、もしくは*.podファイルから生…

最近の自分のEmacs設定 (package整理、helmへの移行など)

最近ずっとEmacs設定いろいろ弄りたい期に入っていて、長らく放置していたdotfilesをちょいちょい変えていっている。 packageとinit-loader いまのinit.elはこんなかんじ。 (eval-when-compile (require 'cl)) ;; package.el setting (require 'package) (ad…

diff-highlightでマルチバイト文字の差分が化けてしまう

Git

Git の diff を美しく表示するために必要なたった 1 つの設定 #git - 詩と創作・思索のひろば のdiff-highlightがイイなーと思って、早速~/.gitconfigに [pager] log = /usr/local/opt/git/share/git-core/contrib/diff-highlight/diff-highlight | less -R …

SETのvaluesに空文字が含まれていると

mysql> CREATE TABLE hoge (id INTEGER PRIMARY KEY AUTO_INCREMENT, s SET('foo', 'bar', '') NOT NULL DEFAULT ''); Query OK, 0 rows affected (0.02 sec) mysql> DESCRIBE hoge; +-------+---------------------+------+-----+---------+---------------…

libeditのCLIで履歴をインクリメンタルサーチする

homebrewで最新版入れていたら、いつの間にかMySQLのCLIでCtrl-Rでのコマンド履歴のインクリメンタルサーチができなくなっていた。 最近のMySQLのCLIはreadlineではなくlibeditを使うようになっているようで、それが原因らしい。 ~/.editrcに mysql:bind '^R…

Time::Pieceでadd_monthsするときは月末の扱いに気をつける

現在のTime::Pieceの最新版は、1.27。 翌月は何月か、というのを得るのに #!/usr/bin/env perl use strict; use warnings; use Time::Piece; my $t = localtime; print $t->add_months(1)->mon, "\n"; というコードを書いていて、1月31日に実行したら3が返っ…