Author: rawbytes

  • MacBook Proと合わせて選ぶべきマルチポートアダプタ6選

    先日発表されたMacBook Pro (2016)モデルの購入を検討しているのだけど、とりあえず目玉のTouch Barは実物を見てみて見送りが良い気がしてきたので、タッチバーなしモデルの方向で検討している。そうすると気になるのがUSB-Cポートが2つしか無い点で、できるかぎり効率的にUSB-Cポートを使いたい。ということでマルチポートのアダプタを物色している。

    選定のコンセプトとしてはMacBook Pro (2016)のタッチバーなしモデルはThunderbolt 3ポートが2つあるとして、マウスなどの軽いっぽいインターフェースは一つのポートにまとめて、外部ストレージなどの帯域が必要なデバイス用に一つポートが開けられる状態にしたい。ということで:

    ・HDMI:必須
    ・USBタイプA複数:必須
    ・(できれば)有線LANポート:頻度は高くないと思うので、最悪USBポートからの孫アダプタでも良いと思う
    ・(できれば)SD/microSDカードリーダー:これも頻度は高くないので、最悪USBポートからの孫アダプタでも良いと思う。マイクロSDはSDカードのアダプタがあるので割とどうでもいい
    ・(できれば)充電用の入力ポート:上述の理由で一つは使わない状態で成立させたい
    ・1万円以下ぐらい
    ・持ち運びを考えて軽いのが良い。
    たぶんホスト側の接続はUSB3.1が良い。(2016/11/29追記)ディスプレイ接続に限ればThunderbolt3(Displayport)接続のほうが良い。

    USB 3.0が5Gbpsなのに対してUSB 3.1が10Gbps、Thunderbolt3に至っては40Gbpsの転送速度なので、マルチポートである性格上、根元が早いのは困ることはないはずである。逆にホスト側がUSB 3.0の場合、子機側がUSB 3.0接続であっても最大限パフォーマンスが生かせない可能性がある(はず)。でも元々がそこまで速度を必要としない機器はまとめてしまいたいという話なので、必須ではないかもしれない。

    あと価格帯からいくとUSB 3.0か3.1接続のアダプタが妥当なんだと思う。Thunderbolt 3対応のはあるっぽいけど価格が高いし、MacBook Pro (2016)のThunderbolt 3は互換性が不安という情報も見たりするので、まだ様子見のほうが良いのかもしれない(Appleがdockみたいのを出してくれればいいと思うんだけど)。

    USB Type-Cポートは規格がややこしくて正確に理解できているか怪しいけれど(ちなみにこの辺を参考にした 。http://www.itmedia.co.jp/pcuser/articles/1508/25/news068.html)、上記のような基準で候補の機器をリストアップして調べてみました。

    (more…)

  • 現在のディレクトリ配下で使われているファイルの拡張子の一覧を取得

    $ find . -type f|grep -o ‘.[^./]+$’|sort|uniq

    -o オプションはgrepでマッチした部分のみ出力する。

  • ASUSのルーターがmacから見えないときのルーター設定

    前回のポストでTimeMachineのASUSのRT-AC85Uでの設定方法について書いたときにFinderに正しくルーター名が表示されない件を書いたが、たぶんルーター側の設定方法で解決できた(っぽい)のでその方法を書く。ルーターのファームウェアのバージョンは3.0.0.4.380_5971で、MacはEl Capitanです。

    1. ASUSルーターの管理画面にログイン
    2. 左ペインの「ワイヤレス」をクリック
    3. 「プロ」のタブをクリック
    4. 各バンド(2.4GHzとか5GHzとか)で「IGMPスヌーピング」を「有効」に設定
    5. 「適用」をクリック
    6. いったんネットワークが切断され、設定が適用される
    以上で、Finderにルーター名が表示されるようになるはず。無理な場合は相変わらず移動>サーバに接続…でIPアドレスを打てば良いはず。

  • ASUSのルーターでTimeMachineを利用する方法

    ASUSのルーターRT-AC85UとWestern DigitalのWD Elements 2TBを購入して、TimeMachineバックアップを設定しようとしているメモ。

    MacはEl Capitanな状態です。

    1. HDD(WD Elements)をmacに接続し、「HFS+(ジャーナリング)」でフォーマット
    2. HDDをルーター(RT-AC85U)に接続
    3. ルーターの管理画面からUSBアプリケーション>TimeMachineをONに設定する
    4. 本来Macのファインダーの「共有」にルーターの名称がでる、、はず
    5. 出なかったのでFinderの「移動>サーバに接続」から「afp://<ルーターのIPアドレス>を入力
    6. 「共有」の所にルーターが接続済みになって表示
    7. TimeMachine環境設定にルーター上のBackups.backupdbが表示される
    本来、4のところで共有に表示されるはずなんだけど出なかったので、これは別の問題だと思う。
    古いAirmac Expressを2.5GHz帯に繋いでAirPlayも設定しているが、スピーカーのリストには出るけれど音が流れない(再生側を2.5GHz帯に接続すると音が鳴る)とかもあるので、なにかの設定がおかしいんだと思うけれど、これは別途調査することにする。

    <追記>
    たぶん解決した。設定方法は以下。
    http://blog.imho.jp/2016/11/asusmac.html

  • 外部ディスクの修復をかける方法(Mac)

    Mac(El Capitan)のTime Machine用の外部ディスクが不調になってしまったので、ディスク修復を試みました。

    アプリケーション>ディスクユーティリティ>First Aid
    をまずは試みたのですが途中で中断されてしまうので。fsckコマンドを試す。

    外部ディスクにfsckをかけるには、以下のようにします。

    $ sudo fsck_hfs -fy /dev/disk1s2

    fsck_hfsはHFSファイルシステムに対する修復で、-fでジャーナル機能が有効になっているボリュームにも修復を強制するようです。ディスクによりdisk1s2の部分は変わりますが、これはディスクユーティリティの情報で確認できるのでそれに応じて変更すれば良いと思います。

    参考:http://superuser.com/questions/503759/how-to-run-fsck-on-an-external-drive-with-os-x

    p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px ‘Source Code Pro’; color: #c1c1c1; background-color: #000000}
    span.s1 {font-variant-ligatures: no-common-ligatures}
    span.s2 {text-decoration: underline ; font-variant-ligatures: no-common-ligatures; color: #34bd26}
    span.s3 {font-variant-ligatures: no-common-ligatures; background-color: #0220b3}
    span.s4 {text-decoration: underline ; font-variant-ligatures: no-common-ligatures}

  • 肥大化したiTunesライブラリを劇的に容量削減する方法

    macとiPhoneを使っていると、App Storeからダウンロードしたアプリがどんどん母艦のiTunesのライブラリに保存されていって、macのストレージを圧迫していることがあります。同期するときのアプリ選択も、数が増えすぎるとやりづらいです。

    過去に一度だけダウンロードしたアプリや、ダウンロードしたけれどいまいちですぐに消してしまったアプリがずっとiTunesライブラリに残り続けているのは無駄なので、削除してしまうことをおすすめします。以下やりかた。
    iTunesのバージョンは12.5.1.21でやってます。

    1. まず、iTunesを起動します。
    2. 左上の再生ボタンの下あたりにあるプルダウンから、「App」を選択。
    3. 「ライブラリ」のリストから「App」を選ぶと、右側にライブラリに保存されているアプリの一覧があります。何年も前にダウンロードしたアプリなんかが、ずらっとでているはず。
    4. 不要なアプリを選択して、右クリック。「削除」を選択
    5. 「選択したAppをライブラリから削除しても良いですか?」という旨のダイアログが出るので、「Appを削除」を選択。
    6. 「選択したAppをゴミ箱に移動しますか?」というダイアログが出るので、容赦なく「ゴミ箱に入れる」を選択。
    7. あとはFinderで通常どおり「ゴミ箱を空に」すればOKです。
    最近ではアプリは一本数百MB以上あることもよくありますし、必要なものはApp Storeから随時ダウンロードすれば良いので、ローカルのipaは特に理由がない限り、マメに整理するのが良さそうですね。
  • MacBook Pro (Late 2016)のTouch Barの設計についての考察

    先日発表されて間もなく発売されるMacBook Pro Late 2016のTouch Bar搭載モデルですが、Touch Barの部分はmacOSでなく別のwatchOSのバリエーションで稼働しているらしい、という情報がありました。

    MacBook ProのTouch BarはwatchOS(の変種)で稼働?
    http://www.itmedia.co.jp/news/articles/1610/31/news063.html

    なぜそのような設計になっているんだろうと考えてながら、そういえばMacBookにBoot Campを使ってWindowsをインストールした場合ってどういう挙動になるんだろうと思っていたら、単に通常のファンクションキーとして表示されるという情報も見つけました。

    新型「MacBook Pro」のTouch Bar、Boot Camp上のWindows利用時は通常のファンクションキーが表示される
    http://taisy0.com/2016/10/29/75833.html

    考えるに、仮にTouch BarがmacOSと統合された機能として稼働するように設計した場合、ハードウェア単独では機能できず、つまりWindows用のTouch BarドライバのようなものもAppleが設計していく必要がある。Touch Barを独立したOSを持つ独立のハードウェアとして設計し、macOSの状態とは関係なく、デフォルトの状態ではファンクションキーとして疎結合な状態で動作するようにしておけば、macOSがTouch Barの機能をオーバーライドした場合だけ任意の表示や挙動をさせることができるという設計になっていることに気づきました。

    MacBook ProではWindowsだけでなくLinuxなどもインストールすることが可能なので、Appleや他のOSデベロッパが必ずTouch Barの機能メンテナンスをすることなく、それでいて(必要があれば)Touch Barの機能を最大限に利用することができる設計が、Touch Barを独立したOSとすることで実現でき、そのOSは小さいフットプリントを持つ必要があるので、watchOSの変種として開発することでそれ自体のメンテナンスコストも最小限に抑えることができる。というとても理にかなった設計であるということになるんだと思います。

  • Homebrewを使ったpyenvのセットアップ(El Captan+zsh)

    Homebrewを使ったzsh+prezto環境でのpyenvの構築手順メモ。

    1. pyenvのインストール
    $ brew update
    $ brew install pyenv

    2. 環境変数の設定
    .zshrcに以下の行を追加する。Preztoの場合はどこに独自設定を書けばいいんだろうと思ったんだけど、普通に.zshrcに書けばいいらしいからPreztoはあんまり関係なかった。

    if which pyenv > /dev/null; then eval “$(pyenv init -)”; fi

    3. python環境のインストール
    デフォルトで使えるバージョンはsystemのみ。
    追加できるバージョンは以下で確認できる。

    $ pyenv install -l

    で確認したあと、

    $ pyenv install 2.7.12

    みたいにして任意のバージョンをインストールする。 pyenv環境にインストールすみのバージョンは

    $ pyenv versions

    で確認できる。 任意のディレクトリで

    $ pyenv local 2.7.12

    のようにすると、そのディレクトリに.python-versionというファイルが作られ、これが反映されてそのディレクトリ内でpythonコマンドを実行した時だけそのバージョンのPythonで実行されるようになり、ディレクトリを抜けるとglobalなpythonのバージョンに自動で切り替わる。globalなバージョンを変更するときは

    $ pyenv global 2.7.12

    とすると、ローカルに.python-versionがないディレクトリで実行される(globalな)pythonのバージョンを設定できる。

  • pyenv installでエラーになるときの対応

    macOS(正確にはEl Capitan)のpyenvで特定のバージョンのpythonをインストールしようとしたときにエラーになることがありました。曰く:

    $ pyenv install 2.7.12                                                                                                               +[master]Downloading Python-2.7.12.tar.xz…-> https://www.python.org/ftp/python/2.7.12/Python-2.7.12.tar.xzInstalling Python-2.7.12…ERROR: The Python zlib extension was not compiled. Missing the zlib?
    Please consult to the Wiki page to fix the problem.https://github.com/yyuu/pyenv/wiki/Common-build-problems

    調べると、 zlibのヘッダが見つかってないのでCFLAGS環境変数を設定するか、xcode-select –install を実行してXCodeコマンドラインツールを再度設定するとのこと(OSをアップグレードした後とかは必要だそう)。

    今回はxcode-selectのほうを試して正常にインストールできるようになりました。

    $ xcode-select –install   

    として出てくるダイアログ経由でXcodeのコマンドラインツールをインストールしたあと、

    $ pyenv install 2.7.12                                                                                                               +[master]Downloading Python-2.7.12.tar.xz…-> https://www.python.org/ftp/python/2.7.12/Python-2.7.12.tar.xzInstalling Python-2.7.12…Installed Python-2.7.12 to /Users/Kurosawa_Hiroyuki/.pyenv/versions/2.7.12 

    としてインストールが成功するようになりました。

  • macOSのdocker toolboxをproxy環境下で使うために必要だった設定

    proxy環境下でdocker toolboxを使った場合に必要だった設定のメモ
    具体的には2つ別の設定をする必要があったのでメモ。
    良く考えればそうなんだけど、そもそもの構成を理解してなかったというのもある。

    1.boot2docker内からproxy接続するための設定

    以下のファイルを編集
    $ sudo vi /var/lib/boot2docker/profile

    export http_proxy=http://xxx.xxx.xxx.xxx:xxxx

    みたいに書く。

    その上で、
    $ sudo /etc/init.d/docker restart

    これでboot2docker内ではdockerコマンドが通るようになる
    $ docker search hello-world
    みたいな感じ

    2.osx上のdockerコマンドがboot2dockerに接続するための設定
    osx上のdockerコマンドは裏でデフォルト2376ポートでboot2dockerと通信することで
    透過的なコマンドを実現しているようで(※)、これはproxyを介さないようにする必要がある。

    proxy設定によっては不要なんだろうけれど、特定のポートしか許可してなかったりする場合にはこの設定が必要

    具体的にはexport no_proxy=xxx.xxx.xxx.xxxのような感じで環境変数に設定する。
    設定するIPアドレスは
    $ docker-machine ls
    のURLとか、
    $ docker-machine env 環境名
    のDOCKER_HOSTで出てくるIPアドレスが対象である。

    <追記>
    macOS上のipアドレスとVirtualbox上のipアドレスのマッピングは
    VBoxManageコマンドで可能そう(まだ試してない)

    https://skatsuta.github.io/2015/08/13/docker-machine-port-forwarding/

    <さらに追記>
    というかVirtualboxのGUIから普通にできたので通常はそれ使えばいいと思った。