Norikra meetupで話してきた

Norikra meetupで話してきました. 資料 Norikraでアプリログを集計してリアルタイムエラー通知 # Norikra meetup from kawamuray 感想 皆さんNorikraを使いこなしてた. 特に@ixixiさんの発表が凄かった.NorikaのLOOPBACK+UDA?Fで,データをパイプライン的…

lxc.mount.entryで指定したマウントは,ホストからは見えないんだよ

LXCは設定ファイルにlxc.mount.entryを書いておくと,起動時にマウントしてくれるわけですが,そのマウントはホストからは見えません.namespaceが別だから. ... lxc.mount.entry = /usr/lib usr/lib none bind,ro 0 0 ... 例えば,上記のような設定ファイ…

MBAのSDカードスロットを使ってRaspberryPI用のSDカードにGentooがインストールされたディスクイメージを書き込む方法

私のGentooマシンにはSDカードスロットがついてなくて,RaspberryPIのためだけに買ってくるのもなんなので,MBAについているSDカードスロットを使って書き込みを行おうと思った.しかしOSXの/sbin/fdiskはutil-linuxのそれとは全く使い方が違って使いたくな…

今年もGoogle Summer of Codeに採択された

Google Summer of Code2014(GSoC)に応募してたのが採択されました. OrganizationはGanetiで,Projectは"Improve LXC Support"です. https://www.google-melange.com/gsoc/project/details/google/gsoc2014/kawamuray/5673522948997120 今年はタイムテーブ…

FEATURES='distcc'っていうのがとても捗る

RaspberryPIにGentooを入れて遊び始めたが,emergeが遅すぎてつらい.まあcross compile前提だよねーと思って環境を作ってみたものの,/以下まるっとrsyncとかなんか怖いしqpkgとか使い方しらんし覚えたくねーなって思っていたところ,Portageがdistccをサポ…

Module absolute import in python

Python defaults to import module relatively. Here is description of python's module search order. Give example: $ mkdir -p /tmp/abs-import-test/{foo,bar} $ cd /tmp/abs-import-test $ touch {foo,bar}/__init__.py # make foo and bar as a pytho…

4byteのUTF-8文字を置換する

mysqlはCHARSET=utf8なVARCHAR型等のカラムでは3byteまでのUTF-8文字しか格納できず,4byte文字をINSERTしようとするとIncorrect string valueと言われてしまう.これはutf8mb4を指定することで回避できるが,最大長が255文字でかつインデックスを貼る必要が…

equery changes its output by isatty()

I've got confused when trying to see output of equery depgraph. It turns off verbose flag if its output piped to another process. When executing it without piping output, the output is formatted as tree-view and contains informations regar…

Skip emerging package which was provided manually

Use package.provided. For example, if you want install virt-install from portage without depending to app-emulation/libvirt: # /etc/portage/profile/package.provided app-emulation/libvirt

Gyazo2.0及びGifzoのLinux用クライアントを書いた

探したけどなさそうだったので. https://github.com/kawamuray/Gyazo2-Gifzo-Linux GyazoのLinux用クライアントは公式っぽいのがあるんですが,Gyazo2.0で対応したGIFとかのサポートがないし,そもそもメンテされてる感がない.ので,パッチ書いてp-rしても…

Norikraでログ集計してアプリのエラーを素早く検知しようという話

背景 webアプリを書いていると,以下のようなロギングコードを至る所にちりばめる事になると思います. $c->log(error => "Chou Yabai ERROR!"); ただいくらログを吐いても,アプリのログからは片時も目を話さないよ!!みたいな真面目なエンジニアじゃない…

If mounted cgroup blkio directory have files less than you were expected

You may need to set more kernel configuration parameters. The blkio subsystem can be appear if you set CONFIG_BLK_CGROUP to be yes even if you didn't set all required parameters in kernel configuration. You can find all needed configuratio…

Get focused window title(name) using X11::Protocol

Use GetInputFocus() to get current focused window and use GetProperty() to get name of window. use X11::Protocol; my $x11 = X11::Protocol->new; my ($focuswin) = $x11->GetInputFocus; my ($title) = $x11->GetProperty( $focuswin, $x11->atom('W…

defcustomで定義された変数はsetqではなくcustom-set-variablesで設定すべき理由

Emacsにおけるこの辺の事情ってほんとうにややこしくて,ドキュメントでもパッケージによってsetq使ってたり,setq-default使ってたり,custom-set-variables使ってたりで統一されていないので混乱のもとになっている気がする. "defcustom setq custom-set-…

Google Summer of CodeのPayment cardと格闘したメモ

GSoCの賞金はCitibank発行のVISAプリペイドで支払われるが,US在住でない学生にとっては結構めんどくさくて苦労した. メーリングリストで,US以外の生徒から結構Tipsが投稿されてるので,そっちも読むと良い. 以下日本人向けの,PIN設定とATM引き出し上限…

libtoolでshared libraryを作る際の拡張子を指定する

Wiresharkのプラグイン等は,OSX環境等でも'.so'にしてくれないと読み込んでくれないので,どうすれば拡張子を指定できるのか調べた. -shrext libtoolには-shrextというオプションが用意されているのでこれを使う方法.Makefile.am等で,LDFLAGSに書けば良…

Perlで10行テンプレートエンジン

コードジェネレータ書いてるときに生成するコード量が多いと,スクリプト中にコピペできる程度にミニミニなテンプレートエンジンが欲しいと思うことがあるので書いた.エスケープとかは必要ないので,ベリーシンプルな置換とevalで書ける. my $Token = join…

Cで配列に格納した命令を実行できる話

C

Cでは配列に命令を格納していくと,そのまま実行できるという話をチラ聞きしたので試してみた. Cではメモリに記録された内容が何物であるかというのは,当該領域を参照する変数の型によって決定されるので,次のようなことが可能です. int num = 10; float…

error: /usr/kerberos/include: No such file or directory

Gentooでlibvirtをコンパイルしようとしたら error: /usr/kerberos/include: No such file or directory と言われたので,なにかなーと思って見てみると,libsslとlibcryptoのpkg-configファイルが古いkerberosのパスを指していたので, sudo perl -i'' -npe…

Wiresharkをソースから入れるとヘッダファイルをインストールしてくれなくて困る

Wiresharkのtarball落としてきてmake installしてもヘッダファイルがインストールされない. Makefile.amを読んだ感じ,ヘッダファイルはインストールしないようにしてるっぽく,手動でやるしかないのかーと思っていると,emergeしたほうのWiresharkについて…

Hook after emerge

emergeした後にhookの設定ができたら便利だなーと思っていたら実はできました. Ref: https://forums-lb.gentoo.org/viewtopic-t-772340-start-0.html /etc/portage/bashrcにpost_pkg_postinstというfunctionを定義することで,各パッケージのインストール後…

ZNCでよく使うコマンド

ZNC

ZNCのコマンド ZNCは,IRCクライアントからコマンドで操作できます. /msg *status <command> のように,*statusに対してprivmsgを送ることで,ZNCにコマンドとして解釈してもらえます.コマンドの実行結果やZNCからのメッセージは*statusというウィンドウに表示され</command>…

PerlでCamelize/DeCamelize

sub camelize { (my $s = shift) =~ s/(?:^|_)(.)/\U$1/g; $s; } sub decamelize { my $s = shift; $s =~ s/(_)?((?:[A-Z](?![^A-Z]))+|[A-Z])/(pos($s)==0&&!$1?'':'_').lc($2)/ge; $s; } 普通にString::CamelCaseとか使えばいい話なんですが,スクリプト中…

Shellにおける二重括弧

Arithmetic expansionというらしい.'$(())'で囲った中身を数式として評価してくれる. $ echo $(( 1 + 1 )) 2 べき乗やビット演算も可.今まで数式をshell script中に書きたいときはexpr(1)を使ってたんですが,こちらの方が見やすくて便利ですね. $ echo …

Build ebuild package manually

Which fails to emerge. Applying own patch. With reference: https://www.gentoo.org/doc/en/handbook/2004.2/handbook-x86.xml?part=3&chap=6 ebuild(1) always requires .ebuild file as first argument, and action as second argument. Here's an exam…

Emacs Lispで部分適用

apply-partiallyを使う. (apply-partially FUN &rest ARGS) Return a function that is a partial application of FUN to ARGS. ARGS is a list of the first N arguments to pass to FUN. The result is a new function which does the same as FUN, excep…

firefoxのAdobeReaderがC:\nppdf32Log\debuglog.txtというファイル名を作る問題

Portageから入れたfirefoxのAdobeReaderプラグインが,firefoxを起動した時のカレントディレクトリに"C:\\nppdf32Log\\debuglog.txt"というファイルを作る問題について. この現象だいぶ前からある気がするんですが,前に対処したのがFirefoxのアップデート…

wgetでBasic認証するときに--http-password=とか生で書かされるのは嫌だなー

wgetでBasic認証のかかったサイトからダウンロードする際には,--http-user と --http-password(新しめのwgetでは--user と --passwordも使用可)というオプションが指定できます.これ,ローカルで実行する分にはそこまで気にする必要ないんですが,複数人が…

zshで正規表現によるマッチ

http://zsh.sourceforge.net/Doc/Release/Zsh-Modules.html#The-zsh_002fregex-Modulezsh/regexというモジュールをロードすると,-regex-matchという演算子が使用できるようになる. $ cat ogya.zsh zmodload zsh/regex if [[ "ogyaaaaaaa" -regex-match "^o…

LinuxでGrowl

LinuxでもGrowl通知あったら便利だなーと思ってたら作ってる人がいた.https://github.com/mattn/growl-for-linuxということで導入ログ. $ git clone git://github.com/mattn/growl-for-linux.git $ cd growl-for-linux $ ./autogen.sh $ ./configure --pre…

emerge --syncで!!! Exhausted address for rsync3.jp.gentoo.orgとか言われるときの対処

僕の場合では有用なエラー出力は一切なかったけど,一部ファイルがrsyncで取得できないことが問題っぽいのでhttp://forums.gentoo.org/viewtopic-t-898720-start-0.htmlこのあたりを参考に/etc/portage/make.confの変数SYNCを書き換えて別のミラーから取得す…

Perlでヒートマップが書けるImager::Heatmapをリリースした

http://search.cpan.org/~kawamuray/Imager-Heatmap-0.02/lib/Imager/Heatmap.pm https://github.com/kawamuray/p5-Imager-HeatmapPerlでヒートマップを書く手段としては,既にCPANにあるImage::Heatmapが使えそうだけど,いくつかの理由から新たに書きまし…

jQueryのhtml()メソッドはjQueryオブジェクトを返すわけじゃない

ので, var div = $('<div>'); var p = $('<p>').appendTo(div); div.html(div.html() + "aaa"); div.find('p').eq(0) === p; // falsehtml()メソッドはinnerHTML(テキスト)を返すので,それをセットしたらその時点でDOMツリーは再生成されるので,変数で持ってるpと</p></div>…

Gentooでtex環境

Gentooで(la)?tex環境を整備した時のメモ. USEフラグにlatex(pdfも?)を追加 app-text/texliveをemerge emerge texlive これでtexlive2011が入る.簡単過ぎた...

ALSA Audioがソフトウェアミキシングしてくれなくて1プロセスしか音を出せなかった

ALSA - Gentoo Wikiに従ってALSAを設定したら一度に1プロセスしか音が出せなかったので試行錯誤した話.状況としては Youtubeとか開く -> 音流れる VLCで音楽流す -> 流れない みたいな.Terminalにはこんなエラーメッセージ. ALSA lib pcm_dmix.c:862:(snd…

growisofsでアホなハマり方した

LinuxでDVD焼くときに用いられるgrowisofsコマンドを久しぶりに使ったら中途半端に覚えてた使い方のせいでハマった話.オチから言ってしまえば growisofs -Z /dev/sr0 some-image.iso と growisofs -Z /dev/sr0=some-image.iso は違うということ.前者は/dev…