nmtysh.log

Tech系のネタや日々の独り言などを書いています。

ファイルの変更日時をExifの撮影日時に設定する

※この記事はQiitaにも投稿しています。

スマホの写真をPCに取り込んだ場合などにファイルの変更日時が取り込んだ日時になることがあります。
WindowsだとF6 Exifなどで復元することができますがMacでも同様のことができないか調べてみるとExifToolで同様のことができました。

0. 環境

  • macOS Sierra 10.12
  • Homebrew
  • ExifTool 10.20

1. ExifToolのインストール

HomebrewでExifToolをインストールします。

$ brew update
$ brew install exiftool

2. 変更日時を復元

あとは個々のファイルの撮影日時を変更日時に流し込みます。

$ find pic/ -type f -iname "*.jpg" -print0 | \
  xargs -0 exiftool "-filemodifydate<datetimeoriginal"

あるいは

$ exiftool "-filemodifydate<datetimeoriginal" pic/

x. 関連

MacでRuby on Railsの開発環境を構築する

※この記事はQiitaにも投稿しています。

Ruby on Rails チュートリアル を行うにあたって仮想マシン内では無くMac上に環境を構築することにしました。

0. 前提

手元の環境には昔この辺の手順でインストールされた名残があったのでそのクリーンアップをしておきます。

$ rm -rf ~/.rbenv

1. rbenv, ruby-buildのインストール

$ brew update
$ brew install rbenv ruby-build
==> Installing dependencies for rbenv: autoconf, ruby-build
==> Installing rbenv dependency: autoconf
==> Downloading https://homebrew.bintray.com/bottles/autoconf-2.69.el_capitan.bo
Already downloaded: /Users/*****/Library/Caches/Homebrew/autoconf-2.69.el_capitan.bottle.4.tar.gz
==> Pouring autoconf-2.69.el_capitan.bottle.4.tar.gz
==> Caveats
Emacs Lisp files have been installed to:
  /usr/local/share/emacs/site-lisp/autoconf
==> Summary
🍺  /usr/local/Cellar/autoconf/2.69: 70 files, 3.0M
==> Installing rbenv dependency: ruby-build
==> Downloading https://github.com/rbenv/ruby-build/archive/v20160602.tar.gz
==> Downloading from https://codeload.github.com/rbenv/ruby-build/tar.gz/v201606
######################################################################## 100.0%
==> ./install.sh
🍺  /usr/local/Cellar/ruby-build/20160602: 282 files, 155.5K, built in 6 seconds
==> Installing rbenv
==> Downloading https://homebrew.bintray.com/bottles/rbenv-1.0.0.el_capitan.bott
######################################################################## 100.0%
==> Pouring rbenv-1.0.0.el_capitan.bottle.tar.gz
==> Caveats
Rbenv stores data under ~/.rbenv by default. If you absolutely need to
store everything under Homebrew's prefix, include this in your profile:
  export RBENV_ROOT=/usr/local/var/rbenv

To enable shims and autocompletion, run this and follow the instructions:
  rbenv init
==> Summary
🍺  /usr/local/Cellar/rbenv/1.0.0: 36 files, 62.0K

$ rbenv init

.bashrcに rbenv init を追記します。

$ echo 'eval "$(rbenv init -)"' >> ~/.bashrc
$ source ~/.bashrc

2. rubyのインストール

現時点で一番最新の 2.3.1 をインストールします。
rbenv install --list で利用できるバージョンの一覧が出力されます。

$ rbenv install 2.3.1
 rbenv versions
* system (set by /Users/*****/.rbenv/version)
  2.3.1

$ rbenv local 2.3.1
$ ruby --version
ruby 2.3.1p112 (2016-04-26 revision 54768) [x86_64-darwin15]

3. bundlerを使ってrailsのインストール

チュートリアルだと ~/.rbenv の下にgemをインストールすることになるのでbundlerを使ってカレントディレクトリにrailsをインストールします。

$ gem install bundler
Fetching: bundler-1.13.2.gem (100%)
Successfully installed bundler-1.13.2
1 gem installed

$ cat << _EOT_ > Gemfile
source 'https://rubygems.org'
gem 'rails', '4.2.2'
_EOT_

$ bundle install --path vendor/bundle
Fetching gem metadata from https://rubygems.org/..........
Fetching version metadata from https://rubygems.org/..
Fetching dependency metadata from https://rubygems.org/.
Resolving dependencies...
Installing rake 11.3.0
Installing i18n 0.7.0
Using json 1.8.3
Installing minitest 5.9.1
Installing thread_safe 0.3.5
Installing builder 3.2.2
Installing erubis 2.7.0
Installing mini_portile2 2.1.0
Installing rack 1.6.4
Installing mime-types-data 3.2016.0521
Installing arel 6.0.3
Using bundler 1.13.2
Installing concurrent-ruby 1.0.2
Installing thor 0.19.1
Installing tzinfo 1.2.2
Installing nokogiri 1.6.8.1 with native extensions
Installing rack-test 0.6.3
Installing mime-types 3.1
Installing sprockets 3.7.0
Installing activesupport 4.2.2
Installing loofah 2.0.3
Installing mail 2.6.4
Installing rails-deprecated_sanitizer 1.0.3
Installing globalid 0.3.7
Installing activemodel 4.2.2
Installing rails-html-sanitizer 1.0.3
Installing rails-dom-testing 1.0.7
Installing activejob 4.2.2
Installing activerecord 4.2.2
Installing actionview 4.2.2
Installing actionpack 4.2.2
Installing actionmailer 4.2.2
Installing railties 4.2.2
Installing sprockets-rails 3.2.0
Installing rails 4.2.2
Bundle complete! 1 Gemfile dependency, 35 gems now installed.
Bundled gems are installed into ./vendor/bundle.

$ bundle exec rails -v
Rails 4.2.2

後は rails コマンドを適宜 bundle exec rails に読み替えていけば良さそうです。

x. 参考

IAMで請求情報は表示できるが請求先は表示できないようにする

※この記事はQiitaにも投稿しています。

IAMユーザーにも請求情報の表示を許可する

請求の情報およびツールへのアクセス許可 - AWS 請求情報とコスト管理 を参考にルートアカウント認証情報でログインしてアカウントの"IAM User Access to Billing Information"を有効にします。

支払先情報を隠す

IAMユーザーで請求情報を見られるようにした場合、AdministratorAccessポリシーが適用されていると支払先情報までアクセスできてしまいます。
請求金額などは見せたいが支払先情報の表示や変更を許可したくない場合はインラインポリシーで個別にブロックします。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "Stmt1474516683000",
            "Effect": "Deny",
            "Action": [
                "aws-portal:ModifyAccount",
                "aws-portal:ModifyBilling",
                "aws-portal:ModifyPaymentMethods",
                "aws-portal:ViewAccount",
                "aws-portal:ViewBudget",
                "aws-portal:ViewPaymentMethods"
            ],
            "Resource": [
                "*"
            ]
        }
    ]
}

AdministratorAccessポリシーだったらポリシールールをIAMユーザーが自分で変更できちゃうよね。というツッコミは無しでお願いします。
それは別途ポリシーでブロックしてください。

参考

親知らずを抜歯した話

遂に親知らずの1本目が生えてきました。
素人目には普通に生えてきたのでホッとしていたのですが定期的に通っている歯医者で

  • 他の歯に干渉しているので他の歯がダメになる可能性がある
  • (上下の意味で)対になる歯が無い(生えてない)のでかみ合わせに問題がある

と言われて先日抜歯をしてきました。

麻酔を打って(こぼれた麻酔はかなり苦かったです)、あっさり抜歯。

抜歯の時間よりその後の縫合処置が長かった……
おまけに麻酔を打った辺りから喉にタンがかかり呼吸しづらい状態になってそちらも辛かったです。

口の中で作業しているので、何も言うことができません。
顔に近い所で作業されるのでほとんど目を閉じるのですが音と口の中の感覚はあるので、それも怖さを引き立てる要因だったり。

麻酔が徐々に切れだすとかなりの痛みが出てきました。物事を考えるのが億劫になるぐらいの痛みです。
痛み止めは必須ですね。飲むとかなり楽になりました。

数日痛むのを覚悟していましたが、2日目からは思っていたよりも痛みはなく(時折軽く痛みを感じる程度)助かりました。

縫合した糸の抜糸*1も済んだので後は傷口が治るのを待つだけです。
まだ暫くの間は傷口をかばいながらなので食事に時間がかかる上、歯磨き時に注意が必要ですね。

*1:抜歯と抜糸が紛らわしい……

Time Machineでローカルスナップショットのみを有効化する

※この記事はQiitaにも投稿しています。

(2016/09/30追記)※2016/09/26に公開された TimeMachineEditor 4.5.2 だと下記の操作を行ってもバックアップ実行時にTime Machineの設定が自動的にオフになり、ローカルスナップショットも同時に無効化されてしまいます!

TimeMachineEditorでTime Machineの実行間隔を調整しています。
そのためTime Machine自体のスケジューラは無効にするためTimeMachineをオフにしていました。

ただ、システム環境設定のTime Machine設定からTime Machineをオフにするとローカルスナップショットも無効になってしまいます。

外付けHDDあるいはネットワークドライブ上のTime Machineだけではなくローカルスナップショットも利用したいため有効にする方法を調べました。

OS X 10.11.6 で確認しました。

コマンドでTime Machineを無効化する

システム環境設定のTime Machine設定がオンの状態でコマンドでTime Machineをオフにします。

$ sudo tmutil disable

そうするとローカルスナップショットは有効のままTime Machineがオフになりました。

コマンドでローカルスナップショットを有効化する

あるいはコマンドでローカルスナップショットを有効化します。
(あらかじめTime Machineはオフにしておきます)

$ sudo tmutil enablelocal

こちらも同じようにローカルスナップショットが有効になりました。

注意

システム環境設定のTime Machine設定でTime Machineのオン/オフを切り替えるとオフにした時に再びローカルスナップショットが無効になってしまいます。

これ表示上はローカルスナップショットが有効のように見えるだけで実は動いてないってことはないよね?
→無事にローカルスナップショットが作成されてました