メモ置き場

いろんなメモを置いておく場所。自分用ですが、誰かの助けにもなるかも。

2017年 買って良かったなーと思ったもの - カメラ編 4/4 -

何か固有の商品、ではなく、トータルのソリューションではあるけど、カメラ関係で最も満足度が高かったのはアルカスイス互換マウントかな。

今まで、軽くてコンパクトな構成のときはVelbonのUltrekを、赤道儀つけた星撮り時はManfrottoのBefreeを、といった具合で三脚を運用していたんだけど、どちらもマウントに互換性がないせいで、構成変えるたびにクイックシュー付け直しが発生してて(さらに赤道儀使用時はもうひとつ自由雲台が必要で、それもそれで別のマウントだったので、3台を取っ替え引っ替えする必要があった)とても面倒くさかったんだけど、「アルカスイス互換はいいぞ。」という知らせを聞き飛びついた。

まず、ボディにクイックリリースプレーとなるL字のプレートを取り付けた。

中国製?らしいが、作りがしっかりしている。おそらくオール金属製でかなり頑丈。金属製ゆえ寒いと猛烈に冷えるが、今のところノートラブル。E-M1自体もかなり低温でも動くから大丈夫だとは思うけど、ゲレンデで使ったらどうなるんだろうなー、というちょっとした不安はあるが。ひとまず現時点では不満は無し。

Ultrekには、サイズ感がちょうどいい(もともと付いていた自由雲台からわずかにサイズアップしてるが、収納にはそれほど影響なし。脚を畳んだ際にツライチにはならないけど、袋には入るレベル。)のSIRUIの雲台を装着。

SIRUI ベーシック自由雲台 G-10X

SIRUI ベーシック自由雲台 G-10X

Befreeにベストマッチの雲台は見つけられなかったが、かわりにクランプ部だけ売ってるところがあったので、それを導入。

2.1 Inch Clamp for Manfrotto Befree

これはBefreeのために設計したっぽい専用品なので相性バッチリ。多少お値段はするし国内取扱が無いっぽいので購入はちょっと面倒だったが品質は十分。純正とツマミの位置が微妙に違う影響で多少のたたみにくさはあるけど、実害ない程度。

いずれもいい感じ。まずクイックシューが要らなくなったというのが一番大きい。三脚/雲台の切り替えがノーストレスで行けるだけでなく、ボディのプレートのお陰で、縦構図⇔横構図の切り替えも気軽かつ確実にできるのが嬉しい。非常に便利。

このアルカスイス互換マウントへの移行は別途尺を割いてレビューしたいレベルで大きな変化だったので、いつか別枠で。

2017年 買って良かったなーと思ったもの - カメラ編 3/4 -

カメラが複数台あって、でもそのカメラ1台ずつにストラップ用意するのは大変だなー。かと言って1個のストラップを使いまわすことにして、都度付け外しするのも面倒だなー。仕方ないから個々にストラップ用意するかなー。 と、思って今まで騙し騙し運用していたんだけど、素敵な商品に巡り会えた。PeakDesignのANCHOR LINKS (AL-3)

【国内正規品】PeakDesign ピークデザイン アンカーリンクス AL-3

【国内正規品】PeakDesign ピークデザイン アンカーリンクス AL-3

ボディとストラップの間に、付け外しできる専用マウントをかますことで、ストラップの共用ができたり、長時間露光時などにストラップを一時的に外したり、ってのが簡単に出来るようになるキット。しかもストラップ自体は好きなのを使えるってやつ。非常に便利。アンカー側だけ個別に売ってるっぽいので、ボディが増えても安心。欲を言えばアンカー側じゃない方(黒いパーツの方)もバラ売りしてくれたら、たとえばストラップじゃなくてザックにそれをくっつける等、色々と夢が広がるんだけど、それはまぁ仕方ないか。現状の構成で一旦満足しているので問題は無し。

2017年 買って良かったなーと思ったもの - カメラ編 2/4 -

MFTの単焦点広角レンズ、LAOWA 7.5mm F2 MFT

35mm換算で15mmと、不慣れなせいかなかなか扱いの難しい画角だけど、手持ちの中では魚眼を除き最も画角が広いので、「使うかどうかはわからんがとりあえず持っていっておくか。」と思えるレンズ。小さくて軽い。写りの面でも特に不満は無し。非常に優秀。

twitter.com

twitter.com

2017年 買って良かったなーと思ったもの - カメラ編 1/4 -

f:id:man0ri:20171231174737j:plain

昨年末あたりから興味を持ち始め、年明け早々に買ったフィルムカメラ OLYMPUS OM-1。モノクロのフィルムを入れて運用している。フィルムは撮ってすぐ確認できないし枚数制限がシビアな点が難しいけど、そこが逆に面白い。1枚1枚丁寧に撮るようになった。露出計以外は電池を使用しないっていうのもいい。アナログなメカをいじってるんだぜ、ってのを強く実感する。あと何よりデザインが好き。

なかなか思い通りの写真が撮れていないけど、今後もゆるゆると使っていきたい。フィルムカメラはいいぞ。

MacBook Airセットアップ

出先での作業用にと、MacBook Air (11-inch, Mid 2013)を中古で購入した。以下、そのセットアップのメモ。

状況確認

  • メモリは2GB x 2
  • OSはMavericks
  • ユーザ名はUser
  • ほぼ初期状態
  • インストール済アプリなし

OS更新

既存環境なんかどうでもいいので、Yosemiteクリーンインストールする。

とりあえず今の環境にインストールしたのち、工場出荷時に戻すだけでOK。

参考:【Mac】OS X Yosemite(ヨセミテ)をクリーンインストールする方法。

初期設定

環境設定

  • 一般
    • このMaciCloudデバイス間でのHandoffを許可 のチェックを外す
  • Dock
    • Dockを自動的に隠す/表示 のチェックを入れる
  • セキュリティとプライバシー
  • キーボード
    • キーボード
      • F1、F2などのすべてのキーを標準のファンクションキーとして使用 のチェックを入れる
  • トラックパッド
    • ポイントとクリック
      • タップでクリック のチェックを入れる
      • 3本指のドラッグ のチェックを入れる
    • スクロールとズーム
      • スクロールの方向:ナチュラル のチェックを外す
  • Bluetooth Bluetoothを切にする
  • 日付と時刻
    • 時計
      • 日付を表示 のチェックを入れる

アプリインストール

(個人的に)必須

アプリ固有の設定

Finder

  • 一般
    • 新規Finderウィンドウで次を表示 でホームディレクトリを指定
  • サイドバー
    • iCloud Drive のチェックを外す
    • AirDrop のチェックを外す
    • どこでもMyMac のチェックを外す
    • 最近使ったタグ のチェックを外す

iTerm2

  • Profiles
    • Colors
      • Load Presets で Light Backgroundを指定
    • Text
      • Regular Font のフォントサイズを16ptに変更
      • Non-ASCII Font のフォントサイズを16ptに変更
    • Window
      • Transparency を中央やや左へ
      • Columns を120に変更
      • Rows を30に変更
    • Keys
      • ^[Send Hex Codes: 0x2 0x64に割り当て
        • tmuxのC-b d(デタッチ)
      • ^]Send Hex Codes: 0x2 0x6fに割り当て
        • tmuxのC-b o(次パネル)

おわり。

Railsアプリ開発メモ -rails newからmvc作成まで- (03)

Rails new から mvcそれぞれの作成くらいまでのメモ。執筆時点のRailsは4.1.6。

目次

  1. Railsアプリ開発メモ -rails newからmvc作成まで- (01)

    • rails newGitHub初期設定
  2. Railsアプリ開発メモ -rails newからmvc作成まで- (02)

    • gemインストール〜初期設定関連
  3. Railsアプリ開発メモ -rails newからmvc作成まで- (03)

    • rails g modelrails g controller(とrails g integration_test)

Modelを作る

※scaffoldで作るのは慣れてないので、ModelとController(とView)は別々に作る

$ rails g model <モデル名> <フィールド名:<型>[:オプション] ...
  • モデル名は単数形で指定
  • (事前設定により)factoriesも一緒に生成される
  • (事前設定により)specも一緒に生成される

modelを作ったら

$ rake db:migrate

Controller(とView)を作る

$ rails g controller <コントローラ名> [<アクション> ...]
  • モデルに紐づくコントローラの場合、コントローラ名はモデル名の複数形で指定
  • (事前設定により)アクションを指定するとViewも一緒に生成される
  • (事前設定により)specも一緒に生成される
    • ただし多少の加工は必要

インテグレーションテストを作る

ModelとControllerを別々に作った場合、インテグレーションテストは自動的には作られないようなので必要に応じて個別に作る

$ rails g integration_test <テスト名>
  • テスト名は何でもいいが、生成時にget <テスト名>s_pathという処理が埋め込まれるので加工は必要

いったん以上。

参考

Railsアプリ開発メモ -rails newからmvc作成まで- (02)

Rails new から mvcそれぞれの作成くらいまでのメモ。執筆時点のRailsは4.1.6。

目次

  1. Railsアプリ開発メモ -rails newからmvc作成まで- (01)

    • rails newGitHub初期設定
  2. Railsアプリ開発メモ -rails newからmvc作成まで- (02)

    • gemインストール〜初期設定関連
  3. Railsアプリ開発メモ -rails newからmvc作成まで- (03)

    • rails g modelrails g controller(とrails g integration_test)

README.rdoc -> README.md

rails newで吐かれるREADMEは.rdoc形式だけど、.mdに慣れているのでそちらに変更。

$ git mv README.rdoc README.md
$ vim README.md
    ... いい感じに編集

.gitignore修正

gitignore.ioというサービスが便利。

gitignore.io - Create Useful .gitignore Files For Your Project

適当に入力してできた.gitignoreを差し替える。 ただし、デフォルトだと.rspecも対象に挙がっているので、必要であれば該当行を削除しておく。

config/application.rb修正

ja.ymlダウンロード

$ wget https://raw.githubusercontent.com/svenfuchs/rails-i18n/master/rails/locale/ja.yml -P config/locales

修正後のconfig/application.rb(抜粋)

module <prj>
  class Application < Rails::Application
    ...
    config.time_zone = 'Tokyo'
    ...
    config.i18n.load_path += Dir[Rails.root.join('my', 'locales', '*.{rb,yml}').to_s]
    config.i18n.default_locale = :ja

    config.generators do |g|
      g.javascripts false
      g.stylesheets false
      g.helper false
      g.test_framework :rspec,
        fixture: true,
        view_specs: false,
        helper_specs: false,
        routing_specs: false,
        controller_specs: true,
        request_specs: true
      g.fixture_replacement :factory_girl, dir: 'spec/factories'
    end
  end
end

Gemfile整形

使うGem

開発作業効率化

  • spring
  • guard
  • better_errors

N+1問題対処

  • bullet

テスト

修正後のGemfile

source 'https://rubygems.org'


group :default do
  gem 'rails', '4.1.6'
  gem 'sass-rails', '~> 4.0.3'
  gem 'uglifier', '>= 1.3.0'
  gem 'jbuilder', '~> 2.0'
end

group :test, :development do
  gem 'sqlite3'
end

group :doc do
  gem 'sdoc', '~> 0.4.0'
end

group :development do
  gem 'spring'
  gem 'spring-commands-rspec'

  gem 'guard-rspec'
  gem 'guard-spring'

  gem 'better_errors'

  gem 'bullet'
end

group :test do
  gem 'rspec-rails'
  gem 'factory_girl_rails'
  gem 'database_cleaner'
end

bundle install

  • --path オプションで指定の場所にインストール
  • --jobs=4オプションでbundlerが早くなるらしい
bundle install --path vendor/bundle --jobs=4

rspecインストールとrspec/factorygirl設定

$ rails g rspec:install

修正後のspec/rails_helper.rb(抜粋)

RSpec.configure do |config|
  ...
  config.before :all do
    FactoryGirl.reload
  end
end

修正後のspec/spec_helper.rb(抜粋) ※コメントアウトをいじるだけ

RSpec.configure do |config|
  ...
  config.order = :random
  ...
  Kernel.srand config.seed
end

bullet設定

好みにあわせて設定

修正後のconfig/environments/development.rb(抜粋)

Rails.application.configure do
  …
  config.after_initialize do
    Bullet.enable = true
    Bullet.alert = false
    Bullet.bullet_logger = true
    Bullet.console = true
    Bullet.rails_logger = true
  end
end

guard設定

$ spring binstub --all
* bin/rake: spring already present
* bin/rspec: generated with spring
* bin/rails: spring already present
$ bundle exec guard init spec spring
hh:mm:ss - INFO - Writing new Guardfile to /*****/<prj>/Guardfile
hh:mm:ss - INFO - rspec guard added to Guardfile, feel free to edit it
hh:mm:ss - ERROR - Could not load 'guard/spec' or '~/.guard/templates/spec' or find class Guard::Spec
hh:mm:ss - ERROR - Could not load 'guard/spring' or '~/.guard/templates/spring' or find class Guard::Spring

エラーメッセージでぐぐったけど情報出てこない。(多分テンプレートが無いと言っているだけだが、)とりあえず保留のまま進める。

bin/にパスを通す

binstubで生成したbin/rake bin/rspec bin/railsを実行するたびにbin/をつけるのが面倒臭いので、環境変数PATH<rails_root>/binを追加しておく

以降次回。

参考

Railsアプリ開発メモ -rails newからmvc作成まで- (01)

Rails new から mvcそれぞれの作成くらいまでのメモ。執筆時点のRailsは4.1.6。

目次

  1. Railsアプリ開発メモ -rails newからmvc作成まで- (01)

    • rails newGitHub初期設定
  2. Railsアプリ開発メモ -rails newからmvc作成まで- (02)

    • gemインストール〜初期設定関連
  3. Railsアプリ開発メモ -rails newからmvc作成まで- (03)

    • rails g modelrails g controller(とrails g integration_test)

rails new

  • テストはrspecで作るので標準テストは要らない
  • Javascriptは使わないので要らない

という場合、

$ rails new <prj> -JT

で作れる。

GitHub

ソースコード管理はGitHubで行うので、ブラウザ上でリポジトリ作成のうえ、

$ cd <prj>
$ git init
$ git add .
$ git commit -m 'rails new <prj> -JT'
$ git remote add origin https://github.com/<usernane>/<prj>.git
$ git push -u origin master

でOK。(git addは不要かも)

次回に続く。

Raspberry Pi 再セットアップ (04)

Ruby回。

Raspbianにapt-getでインストールできるRubyは、執筆時点で「1.9.3」。ちょっと古い。

$ ruby -v
ruby 1.9.3p194 (2012-04-20 revision 35410) [arm-linux-eabihf]

rbenvインストール

$ git clone https://github.com/sstephenson/rbenv.git ~/.rbenv

インストールできたら、~/.bash_profileを作る。(.bashrcに追記でもよかったかもしれん)

export PATH="$HOME/.rbenv/bin:$PATH"
eval "$(rbenv init -)"
if [ -f ~/.bashrc ]; then
  . ~/.bashrc
fi

OpenSSHライブラリインストール

Rubyインストールに必要らしいのでインストール。

$ sudo apt-get install libssl-dev

Node.jsインストール

Railsインストールに必要らしいのでソースからインストール…すると軽く数時間かかるので、バイナリで。「node-arm」で配布されている。執筆時点の最新バージョンは0.10.32。

$ wget http://node-arm.herokuapp.com/node_latest_armhf.deb
$ sudo dpkg -i node_latest_armhf.deb

libreadlineインストール

※2014/10/18追記
railsコンソールを使う際に必要らしい。

$ sudo apt-get install libreadline-dev

Rubyインストール

今回のバージョンは2.1.2。かなり時間がかかる。(900MHzにオーバークロックした状態で約2時間)

$ rbenv install 2.1.2

インストールが終わったら、それをデフォルトバージョンにしておく。

$ rbenv global 2.1.2

Railsインストール

今回のバージョンは4.1.6。これまた時間がかかる(が、測り忘れた。タイムスタンプ見た感じでは3時間くらいかかっているかもしれない)。bundlerだけインストールしておいて、Railsはプロジェクトごとにインストールする、という方法もあるらしいけど、今回は何も考えずrailsを入れる。

$ gem install rails

その他インストール

gem「pg」を使う場合、下記が必要。

$ sudo apt-get install postgresql
$ sudo apt-get install libpq-dev

gem「sqlite3」を使う場合、下記が必要。

$ sudo apt-get install libsqlite3-dev

いったん終わり。

過去回↓
Raspberry Pi 再セットアップ (01) - メモ置き場
Raspberry Pi 再セットアップ (02) - メモ置き場
Raspberry Pi 再セットアップ (03) - メモ置き場

参考
rbenvで複数バージョンのRubyを管理する | eXcale Developer's Blog

Raspberry Pi 再セットアップ (03)

vim回。

vim(テキストエディタ)とtmux(ターミナル支援)のインストール

$ sudo apt-get install vim
$ sudo apt-get install tmux

dotfiles

.vimrcと.tmux.conf(そして.bashrc)はGitHubに置いてあるので、それを使う。

$ cd
$ git clone https://github.com/********/dotfiles
$ cd dotfiles
$ chmod +x dotfilesLink.sh
$ ./dotfilesLink.sh
$ vim

vimコンソール上で下記を実行。

:NeoBundleInstall

ちなみに、dotfilesLink.shの中身はこんな感じ。

#!/bin/sh
ln -sf ~/dotfiles/.vimrc ~/.vimrc
ln -sf ~/dotfiles/.vim/ ~/.vim
ln -sf ~/dotfiles/.tmux.conf ~/.tmux.conf
ln -sf ~/dotfiles/.bashrc ~/.bashrc
git submodule add https://github.com/Shougo/neobundle.vim .vim/bundle/neobundle.vim
git submodule add https://github.com/Shougo/vimproc .vim/bundle/vimproc
cd .vim/bundle/vimproc
make
cd ~/
mkdir vimbackup


以降次回。