DropboxからGoogle Driveに乗り換えた

DropboxからGoogle Driveに乗り換えた 以前から Mac 複数台、Linux 複数台、iPhoneでDropboxを使ってきたのだけど、最近マシンを交換したら3台制限に引っかかって同期できなくなってしまったので、Google One を契約してるのもあり無難なところでGoogle Driv…

Ubuntu 18.04 LTSからAMIを作る前にやらなければならないこと

AWS Marketplace の Ubuntu 18.04 LTS 20190514 からインスタンスを立てて、そのインスタンスからAMIを作る前には次のことをやらなければなりません。 ifupdownを削除する sudo apt purge ifupdown ifupdownパッケージがインストールされている状態で作ったA…

CentOS 6でPython 3でTensorFlowを使う方法、もしくはdynamic linkerとshared objectの差し替え

Python 3 CentOS 6のopensslのバージョン(1.0.1e)の関係で、Python 3.7以上はビルドが失敗します。 https://docs.python.org/ja/3/whatsnew/3.7.html The improved host name check requires a libssl implementation compatible with OpenSSL 1.0.2 or 1.…

メインマシンをUbuntu 14.04から18.04にしてみた

Ubuntu 14.04 (trusty) が 2019-04-30 で EOL になる Ubuntu 14.04 LTS Trusty Tahr Extended Security Maintenance | Ubuntu blog のと、day jobの方でも18.04 (bionic)を使う予定なので、メインマシンのtrustyをbionicにしてみた。 Ubuntu https://wiki.ub…

PythonのClickのサブコマンドをsymlinkで表現する作例

PythonのClickで command [--debug] foo [--force] [--yes]なのを実装したとして、これと同じのを command-foo というsymbolic linkを作って command-foo [--debug] [--force] [--yes]でも実行できるようにしたい作例。 https://gist.github.com/hirose31/f4…

REST API フレームワーク Connexion のススメとその作例

Python の Connexion というフレームワークとそのサンプルアプリケーションを書いたのでその紹介です。 https://github.com/zalando/connexion https://github.com/hirose31/connexion-tiny-petstore Connexion は「API (spec) First」を謳うフレームワーク…

githubのmarkdownでの長いログとかは開閉できるようにすると便利

こんな感じ https://gist.github.com/hirose31/55092c9a82f19d168981b9137a96fa2b

たくさんのホストにpingするのに便利なツールpingerを書きました

たくさんのホストにpingするのに便利なツールpingerをgoで書きました。 https://github.com/hirose31/pinger こちらから Linux, macOS, Windows 用のバイナリがダウンロードできるので是非お試しください。(手元に環境がないのでWindowsでは動作確認してい…

hardware clockがずれる件と 11 minute mode

localtimeにしていたhardware clockをなんとなくUTCにしてみたら10分ぐらいで元に戻っちゃうというお話です。環境は Ubuntu 16.04 です。結局、reboot しないとダメだったんですが、いい方法あったら教えてください>< hardware clockがlocaltimeになってい…

MySQL 5.7のmysqld --initializeと鶏卵問題

MySQLのデータディレクトリの初期化にはこれまで mysql_install_db が使われてきましたが、MySQL 5.7からは mysqld --initialize を使うことが推奨されています。mysqld --initialize は datadir 配下にファイルやサブディレクトリがあるとエラー終了します…

LXD 2.0でlive migrationしてみる

LXD

Ubuntu 16.04 LXD 2.0.0 基本的には LXD 2.0: Live migration [9/12] | Stéphane Graber's website に書いてある通りなんで、これの補足という形になります。 まず、live migrationを行う(ホストh1にあるコンテナc1をホストh2にlive migrationする場合)の…

www.twitch.tvの名前が引けない、もしくはチェックサムが0x0000のUDPパケットの件のまとめ

先に原因を書いておくと、 チェックサムが 0x0000 のUDPパケットが戻ってくると、自分の環境では「どこか」で再計算された誤ったチェックサムが付与され、チェックサムが合わないのでユーザーランドに届く前に破棄されていました。 以下、詳しく。ことの始ま…

DHCPでIPアドレスとかは設定するけどresolv.confはいぢられたくない場合

DHCPでIPアドレスとかは設定するけど /ec/resolv.conf は生成・変更されたくない場合のメモ。 Ubuntu 以下、14.04と15.04で確認。手短に言うと、 /etc/resolv.conf をsymlinkではなく実ファイルにした上で、 以下の内容で /etc/dhcp/dhclient-enter-hooks.d/…

CentOSでもh2oでOCSP Staplingしたい

h2o/1.5.2です。(たいていそうだと思いますが)中間CAから発行されたサーバー証明書の場合は、h2oではcertificate-fileで指定するファイルの内容を サーバー証明書 中間CAの証明書 という順序でcatで結合したものにします。順序があるので注意してください…

h2oでmrubyを有効にしてビルドするにはruby >= 1.9が必要

h2o/1.5.2です。h2oでmrubyを有効にするには、 cmake -DWITH_MRUBY=ON .とすればよいのですが、ビルドを完遂するにはruby >= 1.9が必要です。なぜなら、deps/mruby-onig-regexp/mrbgem.rake にこういう処理 def run_command(env, command) STDOUT.sync = tru…

マルチスレッドでgetaddrinfo(3)するとたまに Temporary failure in name resolution (EAI_AGAIN) で失敗する件

マルチスレッドでgetaddrinfo(3)するとたまにTemporary failure in name resolution (EAI_AGAIN) で失敗します。自分は↓な環境で確認しました。 CentOS 6.5 glibc-2.12-1.149.el6_6.5 こういうコードで再現します。(ruby 2.1.4で確認)なお、便宜的にrubyで…

h2o試してみました、もしくはとりあえずサクッと既存のサイトをHTTP/2化する方法

先日、HTTP/2が正式な仕様として承認されると同時に、その実装であるH2Oのv1.0.0もリリースされました。 Kazuho's Weblog: H2O, the new HTTP server goes version 1.0.0 as HTTP/2 gets finalized HTTP/2の情報はちょいちょいウォッチはしていたのですが、…

『Serverspec』を読みました

『Serverspec』を読んだ(ご恵贈ありがとうございました!)ので感想とかを書いてみたいと思います。ちなみに、本書は1/17発売なので既に書店に並んでいると思いますし、Serverspec作者: 宮下剛輔出版社/メーカー: オライリージャパン発売日: 2015/01/17メデ…

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でレンダリング…