2014-01-01から1年間の記事一覧

MySQL 5.5以降のutf8mb4とPerlのDBD::mysqlのmysql_enable_utf8のワナ

結論から言うと、ひろせが望ましいと思う順にこうすればいいんじゃないの?ってのを列挙します。 my.cnfに[libmysqlclient]グループを追加しそこにdefault-character-set = utf8mb4と書き、DBD::mysqlでは mysql_read_default_file=/etc/my.cnf;mysql_read_d…

bashでsplitを書いてみた

空白絡むとどうにも配列で返せなかったんで、裏変数(_split)経由で結果渡すようにしてるのがイマイチ。。。 #!/bin/bash set -u set -e export LANG="C" split() { sep=$1 str=$2 _split=() if [[ $str =~ $sep ]]; then while IFS= read -r e; do _split+…

PerlのDBD::mysqlをlibmysqlclient.aとstatic linkしたい話

static linkするにあたっての動機、諸注意(ハメがあるので必読)は [twitter:@sonots] さんの mysql2 gem を mysql5.6 の libmysqlclient.a と static link したい話 - sonots:blog を参照してください。ここではDBD::mysqlをビルドする際のオプションのみ…

VirtualBoxのスナップショットを簡単に管理できるツールを書きました。GO言語で。

go

VagrantではSahara pluginを使うことで、VMの状態を以前の状態に巻き戻すことができます(sandobx mode)。VMの中でいろいろいじっている際に変更前の状態に戻せるのはとても便利なのですが、Saharaでは戻せるチェックポイントをひとつしか作れません。自分の…

シンボリックリンク絡みでtail -Fが追従しないケース

tail -Fしているfluent-agent-liteでハマったのでメモ。 存在しないファイルをtail -Fした後、その名前のシンボリックリンクを作った場合 $ rm -fr ~/oreno-tmp && cd ~/oreno-tmp $ tail -F tailme & tail: cannot open `tailme' for reading: No such file…

daemontoolsなserviceをハンドリングするための Chef::Provider::Service::Daemontools を書いてみました

Chefでdaemontools配下のサービスをハンドリングするときは、コミュニティクックブックの daemontools を使ってる人が多いと思います。 https://supermarket.getchef.com/cookbooks/daemontools https://github.com/opscode-cookbooks/daemontools こんな感…

github:eで管理しているChefのクックブックを、Berkshelf APIサーバーを立てていい感じに依存解決する方法

ちょっと前にリリースされた Berkshelf 3から、Berkshelf APIというインデックスサーバーからクックブックの情報を得るようになりました。 https://github.com/berkshelf/berkshelf/wiki/2.x-to-3.0-Upgrade-Guide https://github.com/berkshelf/berkshelf-a…

bashでもpercolをイイ感じに使う方法

[twitter:@stillpedant](mooz)さん作のpercolはシェルとは独立しているのですが、ググるとzshと共に使っている人が多いようです。これはzshの強力な行編集機能を提供するzleに因るところが大きいためだと思います。bashでもpercolを使っている人もいるのです…

Apacheのmod_statusの各状態はどういう意味か?

Apacheのmod_statusを使えば各プロセスの状態を知ることができます。CloudForecastやCacti等でそれを元に視覚化している人も多いと思います。mod_statusで確認できる状態には以下の11種類があるのですが、 状態名 値 mod_stautsでの記号 説明 SERVER_DEAD 0 …

InfluxDB をちょっとさわってみた

InfluxDBとは http://influxdb.org メトリクスやイベントといった時系列データを格納するのに適したデータストアです。ちなみに go で書かれています。ちなみに 2013のOpen Source Rookiesに選ばれました。 InfluxDBの特徴 RRDやMySQLに時系列データを格納す…

Imoutable Infrastructure

window.twttr = (function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0], t = window.twttr || {}; if (d.getElementById(id)) return t; js = d.createElement(s); js.id = id; js.src = "https://platform.twitter.com/widgets.js"; fjs.paren…

LimeChat for Macでjoinやpartメッセージを非表示にする方法 〜console編〜

自分はディスプレイの最下にLimeChatのconsole(全チャンネルのメッセージが流れるpane)が常に見えるようにしてチラ見してるんですが、join, partの嵐にメッセージがざーっと流されちゃうことがあってウムーと思ってたところ、 mac版はwebkitでレンダリング…

Redisのクエリーアナライザー "redis-traffic-stats" を書きました

redis-traffic-stats という Redis のクエリーアナライザーを作りました。 https://github.com/hirose31/redis-traffic-stats redis-traffic-statsはtcpdump -wで書き出したpcapデータを解析して、以下のような統計を表示します。 総ネットワークトラフィッ…

How to read pcap data (tcpdump -w) and handle TCP stream by Perl

Perlでインストールされているモジュールを全部リストアップする

[twitter:@fujiwara] さんのこれ、 新しいPerlに今まで使ってたモジュールをまとめてインストールする - 酒日記 はてな支店 ExtUtils::Installedで現在インストールされているモジュールからcpanfileを作る をベースにちょっと弄ってモジュールをリストアッ…

MacのステータスバーにCPU温度を表示したい、もしくはスクリプトのapp化の方法

てみじかに MacのステータスバーにCPU温度を表示するだけのアプリケーションを作りました スクリプトのapp化の方法を紹介します 1. MacのステータスバーにCPU温度を表示する 長らく Temperature Monitor を使ってMacのステータスバーにCPU温度を表示させてい…