ことさら−古都プログラマーの更級日記

京都でお寺を回りながら御朱印集めをしていたエンジニアのブログ。おもに技術的なはなしとか日常的なはなし

Warning (el-get): Your Emacs doesn't support HTTPS (TLS). と言われた時の対処 for Mac - HTTPS (TLS) 対応版のEmacsをインストールしたい

いきさつ

el-getを使っていると以下のようなWarningが出ることがある。

Warning (el-get): Your Emacs doesn't support HTTPS (TLS).

まあWarningなので無視しても問題ないっちゃ問題ないのだが、いちいち出てくるのがうざい。EmacsTLSに対応させることで対処したい。

対処

まずはMac版でかつHomebrewに入れた時の対処である。

簡単で、一度Emacsをアンインストールして、HTTPS対応版をインストールするだけでよい。 brew install emacs する時に --with-xxx のようにオプションを渡すことができるので、ここで --with-gnutls を渡してやるだけでよい。

$ brew uninstall emacs
$ brew install emacs --with-gnutls

gnutls関連の依存パッケージも勝手にインストールしてくれるので、Macの場合はHomebrewで入れるのが凄く楽だ。

また、昨日の記事でも書いたように、 --with-xxx 系のオプションには、 --with-cocoaGUI版をインストール)などとさまざまなオプションがあるので、自分がどのようなオプションでEmacsをインストールしたか覚えておいたほうが良い。Ansibleにしてもいいし、gistとかにメモっておいた方がよい。覚えて置かないとPCが変わった時に困ったり、思わぬ落とし穴にはまったりする。

Mac じゃない時は?

Macじゃない場合や、MacでもHomebrewを使っていないなどで、ソースからビルドしたい場合もあるだろう。その場合は ./configure --with-gnutls としたら行けるはずだ、ただし、こちらはHomebrewのように依存パッケージの処理は勝手にしてくれない。gnutls関連のライブラリなどがひつようとなる筈なので、これをインストールした上でEmacsをビルドする必要がある。

How do I install GnuTLS for Emacs 25.1 on Windows? - Emacs Stack Exchange あたりが参考になるかもしれない。

まとめ

  • brew install emacs --with-gnutls で行ける
  • 自分がbrewemacsを入れた時はどのようなオプションで入れたか覚えて置いたほうが良い。

brew upgrade したら Emacs がターミナル上じゃなくてGUIで起動するようになったのでターミナルで起動するように戻したい

いきさつ

brew upgrade したら Emacs のバージョンが25になり、ターミナル上ではなくGUIで起動するようになった。GUIで起動しても大きな不便はないだろうと思っていたのだが、以下の問題があった。

  • Google日本語入力IMEが働かない(日本語が入力できない)
  • git commit でエディタにemacsを指定した場合、コミットメッセージを入力して C-x C-c 下あとにウィンドウのフォーカスがターミナルに戻ってこない

これらの問題を解決しようと、 .zshrc などに alias emacs="emacs -nw" などと指定していた。 -nwGUIではなくCUIemacsを起動するオプションである。

ただし、これを指定してもgitのeditor設定には効果がなく、GUIで起動してしまう。いろいろ調べてみると、CUIだけで起動するemacsを入れ直すのはそこまで難しくないため、こちらの方法で対処する。

CUIだけで起動するemacsをインストールする方法

GUIで起動するemacsは、 brew install --with-cocoa のようなコマンドでインストールされているということがわかったため、一旦emacsをアンインストールして、 --with-cocoa なしでインストールし直せばCUIだけで起動するようになる。

$ brew uninstall emacs
$ which emacs
emacs not found

$ brew install emacs

これだけである。 which emacs した時にまだemacsコマンドが残っている場合はそれも消しておいたほうが無難だ。

MacでHomebrewを使っていて、コマンドラインから叩くphpのバージョンがなんかおかしくなった場合の対処

概要

ある日 composer install するとこんな警告が出た

phpunit/phpunit 5.7.21 requires php ^5.6 || ^7.0 -> your PHP version (5.5.20) does not satisfy that requirement.

phpunit 5.7.21 を利用するには php5.6 以上または php7.0 以上が必要だが、あなたのPHPのバージョンは 5.5.20 です、というエラーだ。あれ、PHPは5.6をインストールしていたはずだと思って確認してみると…

$ php -v
PHP 5.5.20 (cli) (built: Feb 25 2015 23:30:53)
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.5.0, Copyright (c) 1998-2014 Zend Technologies

確かに5.5.20になっていた。

MacとHomebrewのバージョン

  • Mac OS 10.10.3 Yosemite
  • Homebrew 1.3.1-49-gdaa0ea4

brewで入れたphpはどこに入っているのか

僕以前に brew install php56 してPHPを入れていた。brewでいれたライブラリなどは /usr/local/Cellar に入っている。php56/usr/local/Cellar/php56 以下に入っている。

$ ls /usr/local/Cellar/php56
5.6.11_2/ 5.6.22/   5.6.31_7/

このPCには 5.6.11_2, 5.6.22, 5.6.31_7 の3つのバージョン*1が入っているようだ。

PHPのpathを確認して差し替える

今のPHPがどこから入れられたものなのか確認してみる。

$ which php
/usr/bin/php

$ ls -la /usr/bin/php
-rwxr-xr-x  1 root  wheel  9942272  2 26  2015 /usr/bin/php*

phpなどのコマンドは、大抵 /usr/bin/usr/local/bin に入っている。通常Homebrewで何かをインストールすると、 /usr/local/Cellar 以下に実体があり、 /usr/local/bin 以下から Cellar 以下にシンボリックリンクが貼られる形となるハズなのだが、この /usr/bin/phpシンボリックリンクではなく実体のようだ。そして /usr/local/bin/php が存在するかどうかを確認してみたが、こちらは存在しないようだった。とりあえずこの /usr/bin/php をなんとかしたい。 rm コマンドで消してしまっても良いのだが、安全のため名前を変更することにした。

$ sudo mv /usr/bin/php /usr/bin/php55

これでphpコマンドが一旦使えなくなる(かわるにphp55コマンドが使えるようになる)。あとは /usr/local/Cellar/php56 以下からシンボリックリンクを貼れば良い。今までは 5.6.22 を使っていたので、phpコマンドを叩くとこのバージョンのphpが呼ばれるようにする。

$ sudo ln -s /usr/local/Cellar/php56/5.6.22/bin/php /usr/local/bin/php
$ php -v
PHP 5.6.22 (cli) (built: Sep 30 2016 20:04:55)
Copyright (c) 1997-2016 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies

php5.6になった。これにより、composerもこのphpを使うようになるので、問題なく composer install が成功した。 *2

まとめ

Homebrewで入れたライブラリがどこに入っているのか、pathはどうなっているかを知っておくとこういった問題にすぐ対応できるので、ぜひ知っておきたい。

*1:正確にはphp5.6系のバージョン

*2:ちなみにphp5.6をbrewで再インストールしても、同様にシンボリックリンクが貼られると思うので、こちらの対処法でもよい。

『脱力系ミニマリスト生活』を読んで気になったポイントまとめ

先日、『脱力系ミニマリスト生活』という本をさらっと読み、ちょっと気になったポイントがいくつかあったのでまとめる。

脱力系ミニマリスト生活

脱力系ミニマリスト生活

ちなみに、こういった「片付け」や「ミニマリスト」といったワードに興味がある人はまずこんまり(近藤麻理恵)さんの本を読むべきだと思うので、読んでない人はまずはこちらを読むことをオススメする。

人生がときめく片づけの魔法

人生がときめく片づけの魔法

こんまりさんの本は割りと万人向けなのに対して『脱力系ミニマリスト生活』は主婦向けなので、その点は注意していただきたい。かくいう僕も主婦ではないのだが、一人暮らしをしている以上は家事とかもしなくちゃいけないので、役に立つことも書かれていないわけではない。そのいくつかをまとめる。

洋服ブラシ

洋服に毛玉できたりホコリがついたり、花粉がついたりしてうわあああとなるときがあるが、そういう時に洋服ブラシがあるともしかしたら捗るのかもしれないと思った。筆者は馬毛のものを使用していると書いてあったため、Amazonで馬毛の洋服ブラシを調べてみた所、意外と数千円程度で手に入るようだったので試してみtも良いと思った。

洋服ブラシとは別だが、黒い服はホコリが目立つので気をつけるということも参考になった。また、洋服は単品単品で使いまわし着回ししたりするよりも、セットを作って(要するに、この下着の上にこれを来てズボンはこれで、というセットを決めておいて)それを着回す方が分かりやすいとあってこれもナルホドとなった。

リサイクルショップ

家具とか欲しくなることは多いが、どうしても新品を買うと高い。安い家具も探せばあるが、見た目がどうしても安っぽくなってしまう。リサイクルショップというのは今まで一度も行ったことが無かったが、利用しても良いかもなぁと思った。ミニマリストとして重要なのは、欲しいものを決めていくこと、そして欲しいもの以外は買わないことだ。

アクリルたわし

食器を洗うときには洗剤を使って洗うほどでないものも多い。最近は洗剤を使って洗うことが普通なので何も違和感なく洗剤を使っている人がおおいが、実際洗剤を使わない方が食器にもシンクにも手にも環境にも優しい。ただ、スポンジは食器洗い洗剤を使う前提の作りになっている。いかに洗剤を泡立てるか、いかに洗剤をスポンジに留めるか、という構造になっていて、水洗いには向いていない。そこで水洗い用にアクリルたわしを使う。これで食器洗いの手間も減らし手荒れも軽減で良いことばかりだ。試してみたいと思う。

アクリルたわし、一応Amazonにも売っているが、これくらいのものだったら近所の雑貨屋さんで探して良さそうではある。なんなら自分で編める人もいそうだ。スポンジと違ってデザインもいろいろあるのでその点でも楽しむことができる。

まとめ

森明子さんの『脱力系ミニマリスト生活』から自分でもやってみたいことをまとめた。 こういった本の内容は、無理せず自分に合っていそうなことだけを実践するのが吉だ。 この本の中身で自分にとって重要なことはここにまとめたので、ミニマリストらしくこの本はリサイクルに出そうと思う。

iCracked で iPhone 6 の修理(バッテリー交換)をしてきた

先日 iCracked という iPhone の修理を専門にやっているお店で iPhone 6 の修理をしてきたので感想などを書きます。

www.icracked.jp

iCracked とは

iCracked とは、iPhone の修理を専門にしているお店です。以下のような特徴があります。

  • 自分のiPhoneを目の前で分解して修理してくれる対面修理システム
  • 総務省が定める登録修理業者というものらしい
  • 料金はApple公式よりもちょっと安いが、その辺のよくわからない業者よりは高いくらい

対面修理システム

目の前でiPhoneを分解して修理してくれます。個人的にはコレがちょっとおもしろそうだなぁと思い、この店で修理しすることを決めました。また、正直、総務省の登録業者だ云々という一般人にはよくわからない制度よりは、こっちの対面修理システムであるということの方が安心感は大きいかなぁと思います。修理に自身があるということですからね。

ちなみに修理中は写真を撮ることはできるのですが動画はNGです。写真も、修理している人とかは撮ることができません。あくまでも分解した基盤とかのみです。僕が取った写真を軽く紹介します。

充電ケーブルを差すところにあるネジを回して分解します。まずは基盤部分。

f:id:yoshiki_utakata:20170824233339j:plain

そしてディスプレイ裏部分。

f:id:yoshiki_utakata:20170824233358j:plain

ただまあおもったより感動もなく、動画も撮れなかったので、意外と「まあ、こんなもんか」という感じでした。

料金について

詳しくはiCrackedのページにすべて書いてありますが、iPhone 6 のバッテリー交換は6800円(税別)でした。Apple Storeでのバッテリー交換は 8800円(税別)なのでこれより2000円ほど安いです。そのへんのよくわからない修理屋でバッテリー交換しようと思うと4000円~5000円くらいでできるので、そのあたりよりは2000円より高いということになります。

安心感ですが、当然本家であるApple Storeで修理するのが一番です。ただ、iCrackedに関しても対面修理であるので、修理の質自体には問題がないと思いますが、それでも修理中の不手際で壊してしまったりということもあると思います。また、修理の結果、本体を交換しないといけないレベルの故障だった場合は、Apple Storeで本体交換してもらわないと直せません(iCrackedでは本体交換はできない)。絶対ちゃんと直して貰いたい、という場合はAppleStoreに持っていくのが無難だと思います。料金も数千円しか変わらないでしょうし。 *1 ただ、対面修理で30分〜1時間ほどで修理が完了するのは良いなぁと思った。

一方で、その辺のiPhone修理工房的なやつだとバッテリー交換で5000円ほど、もっとよくわからない場所だと更に安くなります。ただ、安くなればなるほど、バッテリーが純正品じゃなかったりといった問題もあるようです。せめてiPhone修理工房や、ビックカメラの修理みたいな、ある程度ちゃんとした所での修理をオススメします。というか正直Apple Storeがいいと思います。

予約と注意点

修理に行く場合はまず予約したほうがいいです。予約することで時間通りにすぐ修理を始められます。Webから簡単に予約できるのでここも良いポイントです。予約すると電話で事前確認がありますが、これは店舗の営業時間内にかかってきます。電話出られなくとも修理はできる可能性はありますが、事前確認電話に応答出来なかった場合、当日修理に行っても結果部品が足りないということがあります。必ず事前確認電話には出て、故障の症状などを伝えるようにしてください。事前確認電話の都合上、予約は修理当日の2日以上前、できれば余裕を持って行ったほうがよいです。前日の予約だと事前確認が出来ない場合があります。

また、あくまでもiCrackedはApple社とは全く関係のない会社ですので注意してください。

その他

現在、修理と同時にモバイル保険に加入すると修理料金が3000円安くなるというキャンペーンをしているようです。僕は今までiPhoneを壊したことがないので加入しませんでしたが、よく画面を割ったりなどする人は加入してもいいかもしれないです。

まとめ

  • 対面修理が面白そうなのでiCrackedで修理に行ってきた。思ったほどの感動はなかったけどまあ面白かった。
  • Webで予約が簡単にできる。予約しておけばすぐ対面修理できてすぐ端末を持ち帰れる。この点が一番大きいかなと思った。
  • 対面修理なのでそれなりの安心感はあるが、本当に安心して修理に出したいなら Apple Store の方がよい。予約の手軽さと対面修理を見たいのであればiCracked、単純な安さだったらiPhone修理工房その他の方が安い。

*1:Apple Store に持っていく場合も iCracked に持っていく場合も、データは消える可能性があるのでちゃんとバックアップは取りましょう