Exit status は無視しないようにしよう

「手順に従ってコマンドを順番に実行したけどなんか動かなかった」

*nix 系のシステムを使った開発などで、何らかの目的を実現するために複数のシェルコマンドを実行する場面はよくあると思います。その操作が上手くいかなかったとき、こんな感じの質問をしてはいないでしょうか。また、このような場面で躓いているメンバーからこんな質問を受けたりすることはないでしょうか。

僕はこういった質問をたまに受けたりするのですが、これ、とても困るのです。まず実行したコマンドのうち何が失敗したのかの特定から始めることになるため、例えば互いの貴重な時間をそれなりに消費することになったりで双方にいいことがありません1

コマンドの出力をちゃんと読んでエラーを特定してから質問しろとは言いません2。でもせめて、Exit status ってやつくらいは確認してください。たった数桁の数字がゼロでないかを確認するだけです。これで、「xxx のコマンドの実行に失敗したんだけど…」と言えるようになりましょう。

Read More »

Boost.Asio の posix::stream_descriptor を使う

C++熱は冷めてしまったのですが、いつか書こうと思っていたことを書かないのもアレだなぁということで、久しぶりの C++ ネタです。

Boost.Asio は、個人的に好きな C++ ライブラリの1つです。以前にもこのブログで、HTTP クライアント (Twitter API というか OAuth を叩くライブラリ) やシリアル通信をする例を紹介しました。

今回紹介するのは posix::stream_descriptor です。名前からなんとなく想像できるように、ファイルディスクリプタを渡してストリーム形式のデータをやり取りするためのものです。これを使って、open(2) したデバイスを Boost.Asio の API で操作してみたいと思います。

Read More »

Arch LinuxでL2TP/IPsec

いろいろあってVPNを張りたくなったので, Arch LinuxでL2TP/IPsecなVPNサーバを構築したときのメモです.

環境

図にするとこんな感じ.
記事中では, この図のIPアドレス及びネットワークインターフェース名を使っていきます.
diagram

Read More »

Btrfsが死んだ

> 突然の死 <

それは昨日の朝のことだった.

ちーん

Read More »

必読! Ubuntuをインストールしたら入れたいソフト5選

はじめに

ここ最近, WindowsのUI/UXの大幅変更があってからくらいでしょうか.
有名な雑誌にまでもUbuntuの紹介があったりで, WindowsユーザだったけどUbuntu使ってみようかなと思った方が少なからずとも増えていると思います.

とはいえ, インストールしたけど何すりゃいいんじゃ!! って方も多いと思います.
そこで, 今回はよりUbuntuを使いこなすためのソフトウェアを5つ紹介したいと思います.

重要: この記事には重要なまとめが最後にあります. 絶対に最後まで読んでください.

Read More »