平衡点
2013/09/05
_ Bootstrap と pygments.rb を使ってみることに
この日記を運用しているサーバをさくらVPSへ移行するついでに
- tDiary 4.0.0 + Ruby 1.9.3
- Bootstrap なテーマと CSS
- SyntaxHighlighter を CodeRay から pygments.rb へ
なんて事をしてみた. いろいろ忘れそうなのでまとめておく.
tDiary 4.0.0 + Ruby1.9.3
このサーバは Debian 7.0 (Wheezy) で動かしている. Debian Wheezy のパッケージで提供されている tdiary: Debian Package Tracking System は 3.1 で, 多少(?)古い. pkg-ruby-extras のリポジトリ に新しい版を放り込んでおいたので, とりあえずそちらを使うと良いかも
$ sudo aptitude git-buildpackage $ gbp-clone git://anonscm.debian.org/pkg-ruby-extras/tdiary.git $ cd tdiary $ git-buildpackage --git-ignore-new --git-builder='debuild -rfakeroot'
あたりでパッケージができる(ハズ)
Bootstrap なテーマと CSS
テーマに, そのものズバリ「bootstrap」があるので, それを使うと良い. 個人的には「更新」(update.rb へのリンク)を表示させたくないのと fluid layout でメニューをボタンに変更するために, ちょっとだけ手を入れた:
# source: diff --- bootstrap-navi.rb 2013-08-12 06:35:52.000000000 +0900 +++ bootstrap-navi-custom.rb 2013-09-05 23:25:22.302250094 +0900 @@ -1,6 +1,7 @@ # Show navi for twitter-bootstrap theme # # Copyright (c) KAOD Masanori <kdmsnr at gmail.com> +# Youhei SASAKI <uwabami at gfd-dennou.org> # You can redistribute it and/or modify it under GPL. def bootstrap_navi(options = {}) @@ -11,23 +12,23 @@ } options = default_options.merge(options) - body = "" + brand = "" if options[:site_name?] - body += <<-EOS + brand += <<-EOS <a class="brand" href="#{@conf.index}">#{h @conf.html_title}</a> EOS end + body = "" body += <<-EOS <ul class="nav"> #{navi_user.gsub(/span/, "li")} - #{navi_admin.gsub(/span/, "li")} </ul> EOS if options[:search_form?] body += <<-EOS - <form class="navbar-search pull-left" + <form class="navbar-search pull-right" method="get" action="http://www.google.co.jp/search" onsubmit="$('#sitesearch').val($(location).attr('host')+$(location).attr('pathname'))"> <input type="hidden" name="ie" value="UTF8"> @@ -39,9 +40,16 @@ end <<-EOS -<div class="navbar #{options[:navbar_class]}"> +<div class="navbar"> <div class="navbar-inner"> <div class="container"> + <a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse"> + <span class="icon-bar"></span> + <span class="icon-bar"></span> + <span class="icon-bar"></span> + </a> + #{brand} + <div class="nav-collapse collapse"> #{body} </div> </div>
あとはヘッダ, フッタを適当に指定して, CSS を修正するだけ
SyntaxHighlighter を CodeRay から pygments.rb へ
CodeRay もけっこう良いのだけれど, 対応している言語が少ない(し, 対応させる時間が無い)ので, エイヤっと pygemtns.rb を使うようにしてみた.
過去の日記もそれなりに表示されているようで, とりあえず良しとすることに.
2013/09/06
_ pygments が返って来ない
この日記は RD スタイルで書かれています. 昨日書いた通り, syntax highlighter として pygments.rb を使うようにしてみた訳ですが, update.rb を叩くと, いくら待っても返って来ません.
...はて?
しまいには Timeout しました. さて, どうしたら良いかな...
(追記) 試しに albino 使ってみたら, ちゃんと返ってきた. はてさて.
_ Bluetooth Headset + PulseAudio
ちょっとハマったのでメモ.
普段から Bluetooth Headset として Sony Ericson の MW600 を使用しています.
ソニー(SONY), ¥11,800
最近になって, これを接続しようとすると pulseaudio が module のロードに失敗して, pavucontrol から見えずに大変難儀をしておりました. でもって, じたばたした結果として
# source: diff diff --git a/bluetooth/audio.conf b/bluetooth/audio.conf index 54db2df..73b0231 100644 --- a/bluetooth/audio.conf +++ b/bluetooth/audio.conf @@ -10,7 +10,7 @@ # If we want to disable support for specific services # Defaults to supporting all implemented services #Disable=Gateway,Source,Socket -Enable=Sink +Disable=Socket # SCO routing. Either PCM or HCI (in which case audio is routed to/from ALSA) # Defaults to HCI
としたら, HSP, A2DP とも綺麗に接続できるようになりました, とさ.
2013/09/07
_ tDiary を Ruby1.9.3 + Apache2 + FCGI で動かす
読んで題字の如く. 以前もじたばたした記憶があるのだけれど, 今回は非常に楽だった.
環境
使っているモノは以下の通り:
- OS :: Debian 7.1 Wheezy
- tDiary :: version 4.0.0, 野良パッケージ
- Ruby :: 1.9.3, Debian 公式
- libapache2-mod-fcgid :: Debian 公式
- libfcgi-ruby1.9.1 :: Debian 公式
以前[ 平衡点(2006-10-11) ] は最後に fcgiwrap を使っていたけれど, tDiary 側で index.fcgi, update.fcgi を用意してくれているので, これを使えば良い.
導入
apt-get 一発なので省略
設定
.htaccess の該当部分を以下の様に修正
# source: apache AddHandler fcgid-script .fcgi DirectoryIndex index.fcgi AddType application/xml .rdf RewriteEngine on RewriteBase /log RewriteRule ^([0-9\-]+)\.html$ index.fcgi?date=$1 RewriteRule ^([0-9\-]+)p?([0-9]*)\.html$ index.fcgi?date=$1&p=$2 [L]
index.fcgi, update.fcgi は以下の通り:
index.fcgi:
# source: ruby #! /usr/bin/env ruby load '/usr/share/tdiary/index.fcgi'
update.fcgi:
# source: ruby #! /usr/bin/env ruby load '/usr/share/tdiary/index.fcgi'
あと, この環境は suexec で動作させているので permission は 701 で.
結果
ab -n 30 -c 3 の結果比較:
素の index.rb(これまで)
Requests per second: 3.40 [#/sec] (mean) Time per request: 882.231 [ms] (mean) Time per request: 294.077 [ms] (mean, across all concurrent requests)
index.fcgi(fcgi 化)
Requests per second: 8.32 [#/sec] (mean) Time per request: 360.723 [ms] (mean) Time per request: 120.241 [ms] (mean, across all concurrent requests)
...2.4倍速ぐらい? こんなモンかな.
2013/09/08
_ adzapper を入れてみた.
Android 端末には AdAway を入れて広告避けをしているのですが, どうせならラップトップでも広告避けを入れてしまえ, というわけで, ちょっと探してみた.
ラップトップでは squid を cache 無しの透過 proxy として起動させて, 繋いだネットワークによって上流を切り代えるようなことをしているので,
- (なるべく)squid と相性が良い(面倒な事をしなくて良い)奴
- (欲を言えば) block した広告の代わりに邪魔にならない何かを
表示してくれる奴.
というモノを探した結果として adzapper を試してみることにした. 動かすには Squid の設定ファイルのどこかに
# source: squid ## Adzapper redirect_program /usr/bin/adzapper.wrapper
としておくだけで良い.
squid から呼ばれた子プロセスが幾つか立ち上がっているが, これは接続毎に呼び出されているのかな? しばらく試してみよう.
_ Xperia GX を Jelly Bean に upgrade
ちょっと旬を逸した感はありますが, ようやく. 先日(平衡点:2013-05-18), Laptop は SSD に交換して Windows 領域(環境?)を手放してしまったので, 大学の計算機部屋にある Windows に SEUS を入れて upgrade してみました.
早速 root とって, もとの環境を復元しました (一度文鎮化してしまいましたが, SEUS 様々です).
ICS より反応が良いですね(小並感). もうちょっと弄ってみる予定です.
(追記) microSD カードが壊れました. 最近発生してなかったのに...
2013/09/20
_ org-mode (>= 8.0) の HTML export における「リンク」
...まあ, 何も解決していないのだけれど.
org-mode から html へ変換した際に リンク文字列も URI escape されていて, 結果として CGI へのクエリを含むリンクが正常に機能しない, という塩梅になって, ちょっとじたばた.
最後にまとめて URI unescape する, というのも芸が無いし, 折角 escape してもらったのだから, それはそれでうまく使いたい.
結局 bit.ly を使う, というオチに. うーむ...。
2013/09/25
_ zsh の自動補完で嵌る.
最近の現実逃避は zsh の設定の整理ですこんばんは.
zsh の補完は大変素晴しいのですが,
- ssh の公開鍵/秘密鍵認証(ssh-agent有効)
- リモートディレクトリの補完
- hchbaw/auto-fu.zsh みたいなインクリメンタル補完
の合わせ技で, サーバの last log を汚してしまいました (munin のグラフで public key login が跳ね上がっていて, 驚愕).
ssh の Control Master とか有効にしておくと, 多分こういう事は無くなるのでしょうけれど, これはこれでなんか昔嵌った記憶があるのだが.
むー...