Program

forkanartを支える技術

forkanart という絵をフォークするという絵を描く人向けのサービスをリリースしたのですが、今回はその裏側の技術的な話をします。ざっと構成を列挙します。フロントエンド: nginx (フロントエンド) - http://nginx.org/ Varnish (キャッシュ) - https://www…

1ヶ月後でも読めるソースコードの書き方

あなたはコードを書くときに何を重視して書きますか?実行時の速度だったり、拡張のしやすさといったところですか? 今回は読みやすいコード(=readable code)についてです。 私が考える読みやすいコードとは以下のようなコードです。 関数(メソッド)名が適切…

FizzBuzzを30byteで作る方法

某Y!社の新卒には入社までに、FizzBuzzを61byte,エンジニアは30byteでつくってこいという課題があるようだ。いくらなんでも難しすぎるよね。検索して見つけろということなのかなあ? http://twitter.com/#!/yamaji/status/28840058526105600 こんなポストがT…

ニコニコ動画で自分のマイリストを全検索するブックマークレット(原宿) ver.俺

http://d.hatena.ne.jp/Molokheiya/20101207/p1↑のが出る前に待ちかねて作ったオレオレバージョン。 ただ、こちらは検索したものでもマイリストコメントの編集ができる。 使い方は上記の記事を参照。 javascript:(function(){var%20d=(new%20Date)/1;var%20s…

Vimで開発するならこれだけはやっとけ

開発効率を上げるためのプラグインや機能のご紹介。 ■neocomplcache http://github.com/Shougo/neocomplcache 自動で補完候補をポップアップしてくれるプラグインで、Vimで効率的な開発をしようと思うのであれば必須のプラグインです。vimrcに以下の1行を加…

SQLiteのDBテーブル更新の落とし穴

SQLiteのDBテーブルを更新(INSERTやUPDATE)するときは、DBファイルに書き込み権限がある事、かつDBファイルのあるディレクトリに書き込み権限がある事。 まさかディレクトリにまで書き込み権限がいるとはorz なんでも、SQLiteはデータを書き込む時はDBファイ…

Linuxからのストリーミング配信(静止画像編)

動画編との違いだけを書きます。 ffmpeg -loop_input -i [image_file] -f yuv4mpegpipe \ -s "$SIZE" -pix_fmt yuv420p -loop_output 0 - | \ mjpegtools_yuv_to_v4l "$OUTDEV"[image_file]の部分を実際の画像ファイルに書き換えればおk

Linuxからのストリーミング配信 (動画編)

前にデスクトップを配信する方法は書きましたが、今回は動画を配信する方法です。前とほとんど変わらない方法ですが、今回はrecordmydesktopの代わりにmplayerを使います。違いはそれぐらいです。

サイト制作者視点でのニコニコ動画(9)の変更点

予想通りバージョン差し替えのメンテナンス時間が伸びた、今回のニコニコ動画のバージョンアップ。ββ時代が長かったのが頷けるぐらいの変更がありますが、その中でも自分が運営しているぼかにゅーに対して影響が出そうな変更について調べてみました。 getthu…

LibNicoLive のデモプログラム公開

地味に更新し続けている自作のニコニコ生放送用ライブラリの LibNicoLive ですが、現状ではドキュメントがソースの中の Javadoc しかありません。 そこで、コメント取得のデモプログラムを公開しました。今回公開したプログラムは私も放送中に使っているモノ…

ニコニコ生放送用のライブラリ作ってます

ニコ生のコメント取得などができるライブラリを Java で鋭意制作中です。私の HP の Mercurial リポジトリで公開しています。 目指すのは本家 NicoRequest の instead!

ふっふぅーお休みタイマー作りました

ただ単に一定時間毎にふっふぅーという音声が鳴るだけの代物。音声は一応初音ミク。 何故に。 に置いてあります。ライセンスは README に書いてありますが、AS IS です。

xmonadで透過ウィンドウ

まずはxcompmgrを立ち上げておく。~/.xinitrcや、~/.xsessionなどに書いておくと良いでしょう。 xcompmgr &xmonad側は設定ファイル(というか、Haskellのソース)をイジります。 % vi .xmonad/xmonad.hs以下の様にします。 import XMonad import XMonad.Hooks.…

GNU screenの自動アタッチ

自動デタッチが出来るようになったので、今度は自動アタッチです。 SCREEN="`which screen 2>/dev/null`" if [ -x "$SCREEN" ]; then SESSION="`$SCREEN -ls | sort | grep -m 1 Detached | sed -e ' s/^\s//' | cut -d '.' -f 1`" alias screen="$SCREEN -R…

GNU screenの自動デタッチ

screenの設定にあるautodetachではないです:-) screenを立ち上げて、その中のシェルでexitするとscreenも終了してしまう。だけど"C-a d"や"screen -d hoge"などとは打ちたくない。そんな人向けのエイリアス。 # bash系 alias exit="screen -d $STY" # csh系 …

LLVMについてのメモ

個人的なメモなので、箇条書き。 llvm-gcc -emit-llvmは-cか-sのオプションがいる。 複数のLLVMバイトコードをリンクするにはllvm-gccでは出来ないので、llvm-ldもしくはllvm-linkを使う。 % llvm-ld a.o b.o llvm-ldはデフォルトで最適化が掛かる。llvm-lin…

ccacheの落とし穴

FreeBSDのportsなどのソースベースのパッケージシステムだと、ソフトのバージョンが上がる度にソースからビルドするハメになる。そこで時間短縮するためにccacheを入れて使うのだが、ごく稀にccacheが原因でビルドに失敗する。 そういう時は以下の様にccache…