curlでJSONデータをPOSTする例

curl http://localhost:8001/ -X POST -H "Content-type: application/jsonx" -i -d '{"a":5}'
-iレスポンスヘッダを表示するオプション。

MacBook (2015年モデル)で漢字変換が遅い時の対応

MacBook(レビューはこちらを参照)を使っていると、漢字変換が遅くなるときがある。再起動すると、問題なくなるので、ソフトウェアのバグのようにも思われるが、次の設定をした後は発生していない。

  • メニューバーの林檎マークからシステム環境設定を選択
  • キーボードのアイコンをクリック
  • キーボードのダイアログで「英字入力中にスペルを自動変換」のチェックを外す
  • 「スペルチェック:」の値を「U.S. English」にする




sshで強制的に端末を割り当てる

スクリプトでsshを使って、標準入力からコマンドを与えようとすると以下のエラーがでる場合がある。
Pseudo-terminal will not be allocated because stdin is not a terminal.
このような場合、ssh -t -t ...と-tを2つ指定すると解決する。

なお、入力側が端末をもっている場合(端末で手動で入力するような状況)は、-tを1つ指定するだけでよい。

MacBook (12inch 2015)レビュー

2015年4月に発売されたMacBook。6月に購入し、おおよそ4ヶ月使用してのレビューです。これだけで全ての作業を行うことは難しいと思いますが、出先などで使用するサブマシンとしては非常に良いです。
 
私はプログラマで、このマシンでも開発を行います。ただし、開発環境は他のデスクトップマシンやクラウドにあって、sshでログインして、テキストベースで作業を行います。ログイン先のマシンではGNU screenを起動しているので、いつでもアタッチして作業を再開できます。こういうクラウド端末的な位置付けでは、高い携行性とOS Xを搭載しており、標準でコマンドラインが使用できることの優位性が最大限に発揮されます。

なお、私は以前からMacBook Proを所有しており、現在もMacBookと併用しています。なので無意識にそれと比較をしていると思われるので、両方のスペックを参考に掲載します。
MackBook参考:MacBook Pro (2013 late)
Display12インチ 2,304x1,440 (226 ppi) 15.4インチ 2,880x1,800 (220 ppi)
CPUCore M 1.1GHz (TB: 2.4GHz) Core i7 2.6GHz (TB: 3.8GHz)
Memory8 GB (1600MHz, LPDDR3)16 GB (1600MHz, DDR3L)
Storage256 GB (PCIe)1 TB (PCIe)
重量0.92 kg2.02 kg

良いところ

  • とにかく小さく、軽く、薄い
    • 持ち歩くときの負担が少ない
    • カフェなどで机が小さくてもほぼ困らない
  • かっこいい
    • 会社でこのモデルを使っているのは私だけです。他の人はLet's noteやThink Pad。一人で勝手に優越感に浸ってます。

タブレットと比較して

軽量という点では、タブレット端末+小型キーボードでも代替になるかもしれませんが、次の点で、やはり汎用OS (OS X)を搭載しているMacBookはいいです。
  • 従来型のノートPCであり、キーボードが標準で装備されていて、キーボード込みの携行性が高い
  • マルチタスク
    • iOSやAndroidのように、他のアプリに切り替えても、バックグラウンドアプリが勝手に終了することがない
  • ターミナル上で、bash, vim, ssh, python, gitなどメジャーなOSSが使用可能
    • MacBookや他の小型軽量マシンにLinuxインストールすればいいと思うかもしれません。確かにそうですが、私はデスクトップがLinuxなので、違う文化に触れたいという思いもあり、ノートPCにはMacを使っています。

気になるところ

  • MacBook Proと比べると、ブラウザのレンダリングや新規タブのオープンなどの動作が遅く感じる
    • 実用上、問題ないレベルで動作しますが、MacBook Proを使った直後などは、もたついているように感じることがあります
  • El Capitanでの漢字変換が遅い(こちらの方法で改善できるかも)
    • ライブ変換をオフにしても、思考と入力に追いつかないことがあります。ただ、ある程度、長い日本語を入力する場合、大抵Google Documentを使うので、それとの相性もあるかもしれません。
  • 2〜3時間使うときでもACアダプタを使ってしまう。
    • バッテリが減ると不安になる私の性格、かつ、主な使用場所にAC電源があるというのが主要因なのですが。。。
    • ブラウザで調べ物をしつつ、sshで他のマシンにログインしてプログラミングをする使い方(MacBookではビルドしない)では、1時間あたり10〜20%ぐらいのバッテリ消費。6時間ぐらいは使えると思う。
    • 一晩充電しとけば、次の日ずっと使えるということはないです。そもそも、そんなノートPCは未だに存在しませんが、将来的に、MacBookシリーズの目指すべき使われ方は、それだと思うので言及しておきます。
  • ディスプレイが本当に薄いので、少しの応力や衝撃で壊れないか不安
    • 実際、壊したことはないので、どの程度の力で壊れるかは不明ですが
  • 膝の上にのせての作業がしにくい
    • 軽すぎて、少しの体の動きでMacBook本体も揺れて不安定
    • 各部が薄く、落としたり、ぶつけると壊れるという不安から、膝上での使用を躊躇する


yumレポジトリ用のapache confのシンプルな例

これをCentOSなら、/etc/httpd/conf.d以下に配置する。
&ltVirtualHost *:80>
  Options Indexes FollowSymLinks
  Alias /my-repos /work/repos
  &ltDirectory /work/repos>
    Require all granted
  &lt/Directory>
&lt/VirtualHost>

これを参照するrepoファイルの例は、こんな感じ。青字の部分を必要に応じて修正。
[repo-name]
name=Example repository
baseurl=http://192.168.5.10/my-repos
enabled=1
gpgcheck=0

DHCPでDNSの自動設定を抑止する

/etc/dhcp/dhclient.confの中のrequire domain-name-serversを削除する
interface "eth0" {
    #prepend domain-name-servers 127.0.0.1;
    request subnet-mask, broadcast-address, time-offset, routers,
            host-name;
    #        domain-name, domain-name-servers, host-name;
    #require subnet-mask, domain-name-servers;
    require subnet-mask;
}

El capitanでgitがエラーになる場合の対処

$ git
xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun
gitを使うと上記のようなエラーが出る場合、次のコマンドを実行する。
xcode-select --install

MacOSで写真アプリが自動で起動するのを抑止する

El capitanにアップデートした後、カメラをMacに接続すると自動的に「写真」が起動した。この振る舞いをを止めるには、「イメージキャプチャ」を起動し、左下の選択ボックスで「割り当てなし」に設定する。




Experia Z3の防水性

Experia Z3は、仕様上、防水である。購入後すぐに水洗いしたこともあった。もちろん、正常に動作した。しかし、購入から約半年経過したある日、水洗して使っていると、画面が消える・明るさが変化するなどの症状が現れた。そして、本体裏側を見ると、写真のように、カメラレンズ部が内部から結露していた。水が内部に侵入したのだろう。

一旦電源を切り、一晩たった後、電源を入れると今のところ、正常に動作している。今後は、防水性を過信するのはやめようと思った。