emacs25にバージョンアップ
有志の方がIMEパッチを適用して64bitでWindowsビルドしてくれているのでこちらを利用。ありがたや。
https://github.com/chuntaro/NTEmacs64
設定を何も変えずにexeだけ置き換えて動いたのに感動。
diredでドット始まりのファイルが先頭に来なくなった。
(setq dired-listing-switches "-aGlhv")
v を足したら元に戻った。
MoinMoinでWebP画像を表示する
moin-1.9.8を使っています。PNG画像を減色して貼り付けていたのですが試しにWebPにしたらめちゃめちゃ小さくなるじゃないですか!
しかしmoin-1.9.8はWebPをアップロードしても画像とは認識してくれませんでした。
むむぅ。
ということでMoinMoinのコードを読んでみる。imgタグを生成してるのはここ。
http://hg.moinmo.in/moin/1.9/file/dbe605c5867c/MoinMoin/action/AttachFile.py#l1161
1160 # destinguishs if browser need a plugin in place 1161 if mt.major == 'image' and mt.minor in config.browser_supported_images: 1162 url = getAttachUrl(pagename, filename, request) 1163 request.write('<img src="%s" alt="%s">' % ( 1164 wikiutil.escape(url, 1), 1165 wikiutil.escape(filename, 1))) 1166 return 1167 elif mt.major == 'text': 1168 ext = os.path.splitext(filename)[1]
ふむふむMIMEタイプがbrowser_supported_imagesにあればimgタグになるようになってるな。
browser_supported_imagesを確認してみる。
http://hg.moinmo.in/moin/1.9/file/dbe605c5867c/MoinMoin/config/__init__.py#15
14 # List of image types browser do support regulary 15 browser_supported_images = ('gif', 'jpg', 'jpeg', 'png', 'bmp', 'ico', )
あ、やっぱりwebpが入ってない。
ということでwikiconfig.pyでもろもろ追加。
import mimetypes mimetypes.add_type('image/webp', '.webp', True) ### .webp は image/webp import MoinMoin.config MoinMoin.config.browser_supported_images = tuple(list(MoinMoin.config.browser_supported_images) + ['webp']) ### webpも画像
これでサーバーを再起動したら見事に.webpが画像として表示されました~。
これで軽量画像ライフが送れます。
chrome以外では表示できないらしいけどねっ。
C++単体テストTIPS ~みんなともだち~
テストコード書いてると対象のクラスのprivateメンバの値が知りたいときがよくある。
class MyTest; #define private \ friend class ::MyTest; private #include <TargetClass.h> #include <cxxtest/TestSuite.h> class MyTest : public CxxTest::TestSuite { public: void testHoge() { auto p = new TargetClass(); TS_ASSERT_EQUAL(100, p->privateMember_); // friendになってるのでprivateにもアクセスし放題 } };
こんな感じ。
最初はprivateをpublicに置き換えようとしたが、そうするとprivateメソッドのマングルが変わってしまいリンクエラーになったのでfriendを使うことにした。
テストが捗る。
sqlite3でダメ文字を入れてしまったときの対処
うっかりダメ文字をINSERTしてしまって困った。
# hoge.py conn = sqlite3.connect('hoge.db') conn.text_factory = lambda raw: raw.decode('utf8', errors='replace')
これは便利。
はてなブログ移行
めちゃめちゃ便利やん。
言語バーのENがたまに復活する。
id:shive:20160720:1469017510
リストに英語(米国)は存在しないのだけど、もう一回追加して削除してやれば消える。なんなんだ…。