macOS の音声出力はデフォルトのサンプリングレートが低い
いわゆるハイレゾ音源は 96kHz/24bit といったフォーマットで配信されていることが多いです。
macOS の iTunes.app はこういったハイレゾ音源も再生可能になっています。
しかし、OS で設定されている音声出力フォーマットを確認すると、デフォルトでは 44.1kHz/24bit や 44.1kHz/32bit に設定されているため、そのままだとダウンコンバートされたような形で音声出力されることになります。
この音声出力フォーマットの設定は、 Audio MIDI設定.app
でデバイスごとに確認・変更できます。(コマンドだと open -a 'Audio MIDI Setup'
)
USB 接続の DAC などを利用していると、MacBook本体の出力デバイスよりも多彩なフォーマットから選択可能ですが、これもデフォルトでは 44.1kHz/16bit などが選択されているため、ハイレゾ音源を再生する際には再設定したほうがよさそうです。
音源にあわせて適切な音声出力フォーマットを選択してくれると嬉しいのですが、iTunes ではそのような機能は提供されていないようで、都度手動で変更する必要があるようです。
なお、 Audirvana では、自動で適切な音声出力設定に変更してくれるようでした。
(私は iTunes のインタフェースが好きなので利用していないのですが)
HFS 形式で USB メモリをフォーマットする
売られている USB メモリは FAT や exFAT でフォーマットされていることが多くて、パーミッションやらが保存されないので JHFSX (Case-sensitive Journaled HFS+) でフォーマットしたかった。
(*'-') < man diskutil ... eraseDisk format name [APM[Format] | MBR[Format] | GPT[Format]] device Erase an existing disk, removing all volumes and writing out a new partitioning scheme containing one new empty file system volume. If the partitioning scheme is not specified, then an appropriate one for the cur- rent machine is chosen. Format is discussed below in the section for the partitionDisk verb. Ownership of the affected disk is required. ... e.g.) diskutil eraseDisk JHFSX Sony_16GU /dev/disk2
引っ越しました
京都府に引っ越しました。12月2日から新居で生活を始めています。
東京では東新宿と呼ばれるエリアに住んでいたのですが、あのあたりはアクセスの良さと治安の良さを兼ね備えた良い場所だと思います。東新宿駅にある大戸屋にはめちゃくちゃお世話になっていて、多い時期では週に4回は行っていたんじゃないでしょうか。行くたびに宇治抹茶わらび餅を食べていたせいか、「今日は要らないんですか?」といってサービスしてくれた事もありました。いつも良くして頂いたあの社員さんにはお礼をしたい気持ちです。
徒歩で15分くらいで行ける 新宿〜新宿三丁目 あたりも特によく通っていました。大好きな映画が26時からでも見られるし、雰囲気の良い喫茶店も朝5時までやっているし、スイーツだって銀座に負けないくらいたくさんの選択肢があって、ボクの嗜好にとてもあう、大好きな地域のひとつです。
もともとは新宿御苑や西新宿のビル群が好きでいつでも行けるようにという、新海誠作品に影響されたような随分適当な理由で選んだ場所なのですが、それを抜きにしても、機会があったらまた住みたいなあと思うくらいには、今でもやっぱりとてもとても名残惜しい場所です。
一方で 新宿に限らず東京都はどこに行っても人の山で、電車や駅は特に酷く、「えっこれもう物理的に乗れないでしょ」みたいな電車に助走つけて突っ込んでくる人、駅に着いたのに乗車口付近を塞いでいる人、降りる人がまだいるのに我先にと乗ってくる人、歩きスマホで故意に周囲を無視するかのように進行してきて避ける気がなさそうな人、ダッシュで後ろからぶつかってきて何も言わずに駆け込み乗車していく人、
などなど枚挙に暇がないのですが、そういった、ボクの主観ではモラルが欠けたよう人が母数の多寡によらず東京にはたくさんいる気がして、みかけたり、関わったりする度に心のどこかが壊れていって、ある時期から適応障害と診断されて休職していたこともありました。
まあ疾患は考慮せずとも、つまるところ通勤と、モラルの無い人と出会うのが嫌だったのだと思います。
ボクは寂しがり屋なので、東京の友人たちに会う機会が減ってしまうのはつらいし、新宿や銀座や丸の内のスイーツを食べに行く機会が減ってしまうのもつらいです。映画も新宿ほど自由ではありません。(というか映画にかんしては新宿が異常なんだと思います。)
でも、新居は職場まで徒歩でいけるし、東京と比べると人もまばらだし、精神的にも安定して生活できている実感があります。これなら疾患も寛解してくれそうな気がしています。
後悔が全く無いわけではないですが、まともに働けそうだし、賃料も安いし、可処分所得は増えそうです。仕事で東京に行くこともあるでしょう。数年後にはまた新宿に住んでいる可能性だってある気がします。
東京に行くときにはどこかで言うと思うので、これからもどうぞよろしくおねがいいたします。
https://www.amazon.co.jp/registry/wishlist/1OQNP4Y5D0JSC/
12月はボクの誕生月です。よろしくおねがいいたします。
Mac で Docker から USB デバイスにアクセスする方法
tl; dr
Docker for Mac ではできないが、docker-machine を使えばできる
- virtualbox をインストール
- docker-machine で仮想マシン(以下 VM)を作る
- VM に USB デバイスをアタッチする
詳細
- virtualbox をインストール
brew cask install virtualbox
brew cask install virtualbox-extension-pack
- USB 2.0 以上を利用するために必要
- docker-machine で VM を作る
docker-machine create -d virtualbox vbox
- VM に USB デバイスをアタッチする
- VM を一旦止める
docker-machine stop vbox
- VM の USB xHCI を有効にする
VBoxManage modifyvm vbox --usbxhci on
- USB デバイスを一覧して VendorId, ProductId を得る
VBoxManage list usbhost
- VM に USB Device Filter を追加する
VBoxManage usbfilter add 1 --target vbox --name 'SanDisk Cruzer Colors+' --vendorid 0x0781 --productid 0x5170
--name
は何でもよい。上記例はManufacturer
,Product
の出力を参考にしている。
- VM を起動する
docker-machine start vbox
- VM を一旦止める
確認
確認のために fdisk を実行してみる
[10:36:04] ~ (*'-') < docker $(docker-machine config vbox) run -it --rm --privileged debian root@6bc97aaa2212:/# lsblk -o +VENDOR,MODEL NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT VENDOR MODEL sda 8:0 0 19.5G 0 disk ATA VBOX HARDDISK |-sda1 8:1 0 18.6G 0 part /etc/hosts `-sda2 8:2 0 964.8M 0 part [SWAP] sdb 8:16 1 3.8G 0 disk SanDisk Cruzer Colors+ sr0 11:0 1 48M 0 rom VBOX CD-ROM zram0 251:0 0 177.1M 0 disk [SWAP] root@6bc97aaa2212:/# root@6bc97aaa2212:/# fdisk /dev/sdb Welcome to fdisk (util-linux 2.29.2). Changes will remain in memory only, until you decide to write them. Be careful before using the write command. Device does not contain a recognized partition table. Created a new DOS disklabel with disk identifier 0x0b7a7d6f. Command (m for help): p Disk /dev/sdb: 3.8 GiB, 4022337024 bytes, 7856127 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: dos Disk identifier: 0x0b7a7d6f
経緯
USB メディアに対して syslinux コマンドを使いたかったのだけど OS X で動かすの大変そうだったので docker から操作できたら便利だなあと思って調べていた
nginx で map_hash_bucket_size を map より後に書くと怒られる
nginx で以下のように map $foo $bar { ...; }
より後に map_hash_bucket_size
を記述すると、"map_hash_bucket_size" directive is duplicate
と言われて configtest に失敗する。
## 設定 http { ... map $status $_status { default 42; } map_hash_bucket_size 64; ... }
## configtest root@e35c2d9282ba:/etc/nginx# service nginx configtest 2017/08/08 08:40:01 [emerg] 405#405: "map_hash_bucket_size" directive is duplicate in /etc/nginx/nginx.conf:36 nginx: [emerg] "map_hash_bucket_size" directive is duplicate in /etc/nginx/nginx.conf:36 nginx: configuration file /etc/nginx/nginx.conf test failed
解決策
これは恐らく最初に map
を呼び出した際に map_hash_bucket_size
が暗黙的に設定されるためなので、以下のように map
より先に設定すればよい。
map_hash_bucket_size 64; map $status $_status { default 42; }
## configtest root@e35c2d9282ba:/etc/nginx# service nginx configtest nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful
環境
root@e35c2d9282ba:/etc/nginx# nginx -V nginx version: nginx/1.13.3 built by gcc 6.3.0 20170516 (Debian 6.3.0-18) built with OpenSSL 1.1.0f 25 May 2017 TLS SNI support enabled configure arguments: --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --modules-path=/usr/lib/nginx/modules --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock --http-client-body-temp-path=/var/cache/nginx/client_temp --http-proxy-temp-path=/var/cache/nginx/proxy_temp --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp --http-scgi-temp-path=/var/cache/nginx/scgi_temp --user=nginx --group=nginx --with-compat --with-file-aio --with-threads --with-http_addition_module --with-http_auth_request_module --with-http_dav_module --with-http_flv_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_mp4_module --with-http_random_index_module --with-http_realip_module --with-http_secure_link_module --with-http_slice_module --with-http_ssl_module --with-http_stub_status_module --with-http_sub_module --with-http_v2_module --with-mail --with-mail_ssl_module --with-stream --with-stream_realip_module --with-stream_ssl_module --with-stream_ssl_preread_module --with-cc-opt='-g -O2 -fdebug-prefix-map=/data/builder/debuild/nginx-1.13.3/debian/debuild-base/nginx-1.13.3=. -specs=/usr/share/dpkg/no-pie-compile.specs -fstack-protector-strong -Wformat -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fPIC' --with-ld-opt='-specs=/usr/share/dpkg/no-pie-link.specs -Wl,-z,relro -Wl,-z,now -Wl,--as-needed -pie'
Tweetbot で既読位置を同期する
Tweetbot では、デバイス間で既読位置の同期が可能です。
設定方法
※執筆時点の各Tweetbotのバージョン
Mac
Tweetbot for Mac では Preferences (⌘
+,
) から Account -> Services -> Sync で設定します。
同期方法には iCloud と Tweet Marker があり、それぞれ同期される内容に若干の差異があるようです。(かなり古い情報なので今は違うかもしれない)
Tweet MarkerとiCloud同期との違い:前者では同期できるのはTLの既読のみ、ただし対応アプリが幅広いのに対し、後者はTLだけでなくDMの既読やミュート設定なども同期可能、ただしTweetbotどうしのみ #tweetbotjp
— TweetbotJP(公認非公式) (@TweetbotJP) 2012, 4月 6
なお、Visual Sync Marker を有効にすると、同期されている位置にこんな感じのマークがつきます
iOS
Tweetbot for iOS では アカウント管理画面 -> 設定 -> アカウント設定 から設定します。 (選択する同期方法は各デバイス間で一致させる必要があります。)
また、複数のアカウントを同期したい場合は、各アカウントごとに同期設定が必要です。
どうなるの?
例えばMac版で Timeline の 2015/11/19 12:00:00 まで既読になっている状態でiOS版を起動すると、起動直後に同じ位置まで自動的にジャンプします。超便利!!
(Tweetbot を使い出してもう3年ほどですが、今まで知らなかった…)
補足: iCloud 同期
iCloud 同期にする場合、あらかじめ同期対象の各デバイスで以下の設定が必要です。
- iCloud Drive を有効化
- iCloud Drive 上への Tweetbot による保存を許可
Amazon S3 は BitTorrent プロトコルに対応している
CloudFormation のテンプレートを書いている時に S3 に設定可能な属性ってどんなのあったっけなと思って awscli で aws s3api help
を眺めていたんですが
ふむふむ
むっ
ん?
!?!?!?
えっ S3 って torrent 対応してるの!!!??
ドキュメント読んだ
要点をまとめてみる:
- 追加料金なし(通常の利用方法と同じ課金)
- BitTorrent 配信への課金方法
BitTorrent プロトコルによるデータ転送は、クライアント/サーバー方式による配信の場合と同一のレートで課金されます。正確には、ダウンロードを行う BitTorrent クライアントがAmazon S3 「シーダー」にオブジェクトの「一部」をリクエストした場合、REST または SOAP プロトコルを使って匿名リクエストがその「一部」に対して行われたのと同じように課金されます。
- BitTorrent 配信への課金方法
- オンデマンド生成なので初回は時間がかかる
- Amazon S3 と BitTorrent を使用したコンテンツの発行
オブジェクトの .torrent の生成には、オブジェクトの容量に比例して時間がかかります。大規模オブジェクトの場合には、かなりの時間を要します。
- Amazon S3 と BitTorrent を使用したコンテンツの発行
- 容量が5 GB 未満のオブジェクトについてのみ取得可能
- Amazon S3 での BitTorrent の使用
Note
torrent は、容量が5 GB 未満のオブジェクトについてのみ取得できます。
- Amazon S3 での BitTorrent の使用
こういうのすごいわくわくするので機会があったら使ってみたいですね