RxSwift の準備

最近公開した BBSM 打撃編、実はRxSwiftの勉強用でもあったのでした。
今回は準備までの記事。

cocoapods

RxSwiftのインストールには、 carthage を使うこともできる。 実際、RxSwiftだけならCarthageで十分だし、ライブラリ管理もしやすい。

が… 他にも使いたいFrameworkがある場合は、まだcocoapods に分があるように感じる。

ということで、cocoapods で RxSwift を使います。

xcodeでプロジェクト作って、プロジェクトのルートに Podfile を作成。

“<ProjectName>” は、適宜修正する。

その後、

して、.xcworkspace からxcodeを起動する。


Emacs 25 on High Sierra (macos 10.13) で通信系Lispの不具合

日頃からEmacsを単なるエディターだけでなく、Mailer、ssh terminal等々で使っているのですが、 High Sierra にしてから、Mew (メーラー)とtramp が動かなくなりました。

症状

emacs -nw モードで mew や tramp が動かない。
ポイントは、’-nw’ で、GUI(window)モードで起動すると、なんと通信できてしまう。。。

解決策

以前の記事ではtexinfoをいれたら治ったと書いてましたが、(その時は本当に通信できてた) OSのUpdateで再起動したら、また動かなくなってしまったので、結局 Version 26 を入れて解決!?


クリーンインストール後の作業

macOSの更新はクリーンインストール派です。 そのおかげで(?)OS更新時に、これまで使ってたアプリも更新することになるので、その列挙。

apple store からインストールするもの (有料のもの含む)

  • Skitch
    スクリーンキャプチャを簡単に取れて、メモ書きを加えることができる

  • Magnet
    アプリのウィンドウを規定のサイズにして、画面を整理する

  • Slack
    これがないと、仕事できない…

  • Xcode
    意外な落とし穴。gitコマンドに必須。 (xcode command line toolsにする手もある…)

  • 1Password
    後述

brew で入れるもの

参考: [Mac]HomebrewでEmacs導入&エイリアス設定で起動速度UP

  • zsh
    シェルと言えば。。。。

  • zplug
    zshの拡張

  • pyenv
    複数のPython環境用に

  • ricty
    色々使ってきたけど、最近はRictyフォントに落ち着いた

それ以外 (有料のもの含む)

  • 1Password
    パスワード、ライセンス管理用。
    (App Store からインストールするとサブスクリプションモデルのライセンス体系しか適用できないようだ。以前に買い切りのライセンス購入済みなので、直接ダウンロード)

  • Dropbox

  • Chrome
  • Sketch
  • Alfred
    ランチャーアプリ。(だけど、ほぼGmailと辞書のショートカット用)

  • Authy Desktop
    2要素認証のコード管理。

  • nodebrew


High Sierra のクリーンインストール

先日9/26にリリースされたmacOSのHigh Sierraをクリーンインストールしました。 OSがUpdateされるたびに、調べ直すので一旦まとめておきます。

起動ディスク(USBメモリ)の作り方

USBメモリの準備

  • 8GB以上のUSBメモリを準備する。実際は5GB弱なので、8GBで十分。
  • [Applications] – [Utilities] – [Disk Utility] を起動。
  • 該当のUSBメモリを選択して、[Erase] をクリック。(名前はなんでもOK。ex) “os”)

Hight Sierra

  • Apple Storeからダウンロード
  • 勝手にインストーラーが起動するが、[Command + q] で終了しておく

起動ディスク作成。(移行、Terminalで作業。)

で、USBメモリが刺さっていることを確認。(上記の場合、”os” という名前があればOK)

以下のコマンドで、インストーラの作成開始。

しばらく待つ………”Done”が表示されたら終了。

起動ディスク(USBメモリ)からのインストール

一旦シャットダウンして、電源オン後、すぐに “option”ボタンを押し続ける。(リンゴマークが出たら離してOK。)
インストーラーが起動する。
クリーンインストールするので、[Utilities] – [Disk Utility] で、インストール先のHDD(or SSD) を選択して、[Erase]。
あとは、インストーラにしたがって、High Sierra をインストール。


rails でECサイト(spree)

rails用のECサイト構築モジュールを探していたら、spreeというものに行き着いたので、そのインストールメモ。

railsのupdate

spreeのver. 3.0 stableがrails 4.2.2 以上を要求するので railsのupdate

ImageMagickのインストール

spreeのguideページの記載通り、imagemagickをインストール

プロジェクトの作成

いつも通りRailsのプロジェクト作成

Gemfileとインストール

Gemfileに以下を記載

その後、bundle install

spreeのインストール

該当のプロジェクトで以下を実行

認証モジュールにdeviseを使う

config/initializers/spree.rb のUser class を変更

Adminユーザの作成

default値は、spree@example.com/spree123 いくつも作れるようなので、まずはdefault値で作ってログイン確認する。

ローカライズ対応

gemでローカライズ対応のプロジェクト(spree_i18n)があるので利用させていただく。 Gemfileに以下を記載

同様に、bundle install & rails g spree_i18n:install

Adminユーザで再度ログインして、 [General Settings] – [LOCALIZATION SETTINGS] – [AVAILABLE LOCALES]を”日本語(ja-JP)(ja)“にして”UPDATE”。 その後、[General Settings] – [LOCALIZATION SETTINGS] – [SUPPORTED LOCALE]を”日本語(ja-JP)(ja)“にして”UPDATE”。

そして、もう一つ… config/application.rbに以下を追加して、railsを再起動する。(ハマった…)

再起動後は、日本語になっているはず。

参考にさせていただいたサイト: YUKASHIKADO Inc. 開発ブログさん


Mac OSでDocker2

Dockerの起動は前回で終わっていることを前提に、Docker Containerの作成を目指す。

OSイメージの取得

pullしたimageの一覧を表示

pullしたimageを消す場合は、

Containerの起動

起動中のContainerを見るには、

Containerを名前付きで、起動しておくと、管理が楽かも。
“hoge”という名前をつける場合

コンテナへの接続は、

Exitでコンテナを停止した場合は、startで再開

コンテナを消す場合は、

Docker Imageのカスタマイズ

ベタベタすぎるけど、apacheを入れるカスタマイズをしてみる

インストールが終わったら、exitで抜けて、imageを保存 hogeという名前のimageを、test/hoge リポジトリに保存

カスタマイズしたイメージの起動(port mapping)

カスタマイズしたイメージを起動して、80番ポートで外部からアクセスする。

MacのBrowserを立ち上げて、上記で調べたhttp://にアクセスして起動を確認!


Mac OSでDocker

devopsは、chefだったこのサイト。
「これからはContainerの時代だ」とどこかの偉い人が言ったとか言わないとかいう噂をきいたのでDockerも試してみる。

boot2dockerのインストール

Docker用の仮想マシンの設定

${HOME}/.boot2docker/boot2docker.iso にISOイメージがダウンロードされ、${HOME}/.ssh/ にsshのkey(id_boot2docker, id_boot2docker.pub)が自動生成される。

Docker用の仮想マシンを立ち上げる

止めるときは

ちなみに、

で、ベースのisoイメージをUpdateするようだ。

Docker用の環境変数設定

で表示されるexport XXX を実施する。

hello-world containerの起動

設定が正しく行えたかを、hello-world containerで確認する。

Docker用の仮想マシンにログインする。

で、dockerの仮想マシンのIPが分かるので、initで作成された秘密鍵を指定してログインする。

こちらでもログイン可能

Proxy環境下でのDocker

仮想環境のOS上でProxyの設定を行う。

Host側のboot2dockerをrestart

最後がわからなくてハマった…


Berkshelf の対応

以前の記事で書いたBerksのGemfileでのインストールを行うと、berks -v でエラーになるようになってしまった。(2015.06時点)

$ berks -v /Library/Ruby/Gems/2.0.0/gems/ffi-1.9.6/lib/ffi/library.rb:133:in `block in ffi_lib’: Could not open library ‘/Library/Ruby/Gems/2.0.0/gems/dep_selector-1.0.3/lib/dep_gecode.bundle’: dlopen(/Library/Ruby/Gems/2.0.0/gems/dep_selector-1.0.3/lib/dep_gecode.bundle, 5): Library not loaded: xxxx

対策1

回避策を調べると、「dep_selectorとdep_selector_libgecodeを入れなおす」(berkshelfを実行するとエラーが出る時の対策) というのがあったので、やってみたところ、2つ目の dep-selectorが見つからないというエラー

dep_selectorのインストール

(だんだん趣旨が変わってきてるのは気にせずに…)
gem sourceにどこを追加しても、同じエラーになるので、ローカルインストールを試す。

dev-selectorのDownload

展開&compile

(rake compileはいらないかも…)

local のgemをインストール

berks -vでversionが出ることを確認して終了。


ssh configのmatch

これまでは、接続先名を変えてProxyCommandの有無を判断していたがssh configのmatchが激しく便利だったので、メモ。
(会社のAP(アクセスポイント)からはProxyCommand、家のAPからはProxy無しでアクセスする設定。)

まず大前提のとして、ssh configの設定はファイルの先頭から評価され最初に見つかったものが適用される。
そして、matchでは設定の上書きはできないことに注意。

  • OpenSSHのVersion
Mac(Yosemite 10.10.3 2015/04時点)だと、標準のOpenSSHのversionが6.2なのでMatchに対応していない。(Match対応は6.5から)
brew でopensshをインストールして、shellのaliasで対応する。

install

: zsh (or bash)

  • アクセスポイントの調査

Matchのexecは、実行コマンドのstatus codeが0の時に適用される。 Macで接続中のアクセスポイントのSSIDを取得するのは以下のコマンド

これとgrepを組み合わせて
特定AP()の環境にアクセスしているときは

  • ssh configの設定

上記を踏まえて、config の設定は以下。
(Host, Proxy等の設定は各自の環境次第。)

何かいろいろ解放された感じ…


mac(Yosemite)のscreenで縦分割の対応

標準でインストールされているscreenは、versionが古く(4.00.03) 縦分割がサポートされていない。
サポートされているVersion(4.01以降)にbrewで入れ直す。

homebrew でインストール

どうやら、dupsにあるようだ。詳細を調べる

言われた通りにする(brew tap を実行する)

またまた、言われた通りにする(xarをインストールする)

インストールが成功したら、もう一度詳細を聞く。

こんどは、automakeがないと言っている(ようだ)

やっと、インストール

versionの確認

これで、縦分割ができるはず…


スポンサーリンク