Emacsでドキュメントを読む
2017年、何としてもemacsを捨てたい気持ちと、emacsの使い方を学んでしまいより快適な環境が手に入ることによる喜びで葛藤が生まれています。
そんなことはさて置き、emacsで諸々のドキュメントを読む方法を軽く纏めます。
man
標準パッケージの woman
を使えば良い
M-x woman
の後に適当に知りたいコマンドを叩く
python
helmを使う前提になってしまうが、以下を参考に、helm-pydoc.elを使う
golang
go-modeから引ける
M-x godoc
の後に、適当にパッケージ名を入れる
ansible
以下を使う
yaml-modeと連携するので、yaml-modeを先にインストールしておくのがベター
以下は軽く調べて無かったもの
- Dockerfileのためのドキュメントを見る.el
- docker-compose.ymlのためのドキュメントを見る.el
2015年以降に増えたgTLDにご注意を
仕事でネームサーバーを扱うことになるかもしれなくて、DNSとはどのような働きをするかを調べてるうちに、
ふと思い立って、 .cloud
ドメインがあるかないかを調べてみた。
結果としてはあったのだが、それはさて置き、それ以外も調べた結果、現在所属している会社的に取られたらまずそうなドメインを2こほど抑える結果となった。
調べた過程で分かったこととして、 fujitsu.cloud
や ntt.cloud
あたりは全然関係のない外国の方が抑えている
なにやら2015年あたりに増えたgTLDあたりが割とノーマークになっている様子
現在のTLDのリストは以下で観れる
厄介なのは、 .コム (xn--tckwe)
などの文字列に対してaliasが貼ってあるドメイン。政府などがあるが、読みを見るに中国のドメインっぽい。「グーグル」なんてドメインもあるらしい。
真面目に調べたら、これ抑えられていなくて良いのか?というやつが山ほどある気がするので、転売目的の方などに取られて不要なお金を支払う羽目になる前に各自ご注意を.
メンテナンス用データを生成するツールについて僕の思う事
結論
bin/rake db:migrate
が 機械的に 実行されるような環境が最強だって事に気がついた.
不要な中間形式もなく、誤ったデータを使う可能性もかなり減らせる.
良いと思う所
手動で bin/rake db:migrte
すると考慮すべきパターンが増えるため, 機械的に が超重要. 考慮すべき間違いが減る. おそらくは, 間違ったデータを挿入しないか否かだけを考慮すべき状態になる.
また上記のコマンドは暗黙的に、gitできちんとワークフローを回していれば、productionやstagingに取り入れられて問題ないとされるデータしか入ってこないはずなのも良い点である.
但し書き
bin/rake db:migrate
でokなのは、ActiveRecordを使ったプログラミングがみんな出来る前提なので、そこら辺だけ要考慮
BSD系のコマンドを読む下準備
TypeScriptのブログを書くと言っていたけど, そんな暇もなさそう.
業務で色々なプロトコルに触れて(OSIで言うところのデータリンク層~アプリケーション層まで), わからないことだらけで困っているのが現状です.ただ分からないと嘆くだけでは前進できないので, せめてwebシステム開発の出身なんだから, HTTPサーバーを切り口に色々と勉強しよう!と思ったわけです.web上の人達もサラッとhttpサーバー書きました!みたいなノリなので.
まぁ結果としては、C言語を殆ど触ってこなかった自分としてはムズい.
もう少しレベルを下げて, まずC言語を取得しよう!というところに焦点を当てて勉強をしようと思った際に見つけた記事が以下
lsコマンドをハックしてみよう - Yahoo! JAPAN Tech Blog
なるほど. 過去の(現在でも?)yahooでは新人にBSD系のコマンドを読んで学習することを推奨しているのか.ならば自分も取り組めるのではないか?というところで, 本日はその下準備.
必要なもの
- FreeBSD
- VMを立てられる環境
- The FreeBSD Project から入手できるiso
前提
普段は CentOS + zsh + tmux + emacs で作業をしているので, それっぽい環境に近づけたい
準備
- VMに対してisoでFreeBSDをインストール
- tuiに乗せられて適当にエンターを押していけば問題なし
- その過程で適当にユーザーを作る
- 作ったユーザーを
wheel
グループに属させる pkg install sudo
visudo
でwheel
ユーザーにsudo
する権限を与える
- 適当に作ったユーザーでsshし、
zsh
tmux
emacs
git
あたりをインストール - GitHub - freebsd/freebsd: FreeBSD src tree (read-only mirror) から
git clone
してくる
詰まったこと
Angular2のチュートリアルに取り組んだ感想
上記のページの配下の
Tutorial: Tour of Heroes - ts - TUTORIAL
に取り組んだ後の感想を書く.
背景
12月の配属発表で, 今後はJSを書くことはほぼ無い事が確定したと思っている.
であるならば, 正月くらいは今後触らないであろう技術に積極的に触っていくのが吉では無いかと考えた.
去年はES6とReactでSPAもどきを作るくらいは頑張ってみたが, その組み合わせ自体は良いと思いつつ, ビルドの環境を作るのが面倒だし, ボイラープレートを適当に拾うのも面倒だし, ReactとES6以外のライブラリどうするか問題があるし.
本職としてJSを書き続けるならまだしも, 片手間でJSを書くのに色々と選ぶのは面倒くさい.
そんななかで, Angular2はTypeScriptを採用して, フルスタックにライブラリ(RouterやHTTPクライアント)を持っていることをふと思い出した.
JSに関する事前知識
- Angular
- Backbone
- CoffeeScript
上記はいずれもプロダクションのコードを書いた経験あり
ES6は体験済み
- Reactも体験済み
ただし両者ともプロダクションでの経験ではない
TypeScript未経験
- RxJSも未経験
取り組んだこと
2016/12/31 ~ 2017/1/2 にかけて開いてる時間をちょこちょこ使い,
Tutorial: Tour of Heroes - ts - TUTORIAL
上記の英語のうち, Angularに関する解説はほとんどすっ飛ばし, 何がやりたいのか?だけを拾って, ひたすらサンプルコードを書き写す作業に取り組んで, TypeScriptとAngular2の雰囲気をつかんだ.
感想
ほとんどの解説を飛ばしたので, よくわかってないところ, 認識が間違っている事はたくさんある前提で
環境
上記のリポジトリを引っ張ってきて, npm install && npm start
で即始められる体験は最高に良かった.
が, 上記のボイラープレートは, ファイルの変更とブラウザとを同期するタイプなので, 最初のうちは, TSのコンパイルが失敗してたのを見落とすと??? という感じの状況が長く続いた.
またこのボイラープレートは, コンパイル対象の ts
ファイルと同じディレクトリに js.map
と js
ファイルを吐く. 要は 'js' と 'js.map' と 'ts' が混在することになる
色々考えると ts
と js
は別ディレクトリに吐かれて欲しいので, プロダクション環境で使うときに要検討の箇所になると思う.
すこし調べた感じだと、TypeScriptのコンパイラの設定でどうにかなりそう.
Angular2に関して
チュートリアル程度ならば、
ビルドの環境を作るのが面倒だし, ボイラープレートを適当に拾うのも面倒だし, ReactとES6以外のライブラリどうするか問題があるし
上記の問題はほぼ解消
サーバーサイドのプログラミングを書いているときと、似ているような考え方で写経できたという感想.
- module
- service
- component
- html
- css
- 通常のClass
Angularのコードは上記したように分類が出来るっぽい. MVCモデルとマッピングするとしたら, componentがContoller, serviceがModel, htmlがviewになるのかな? componentの中で, templateのhtmlとそれに対するcssをパスで設定出来るのは結構良いのではないか? と思った. ただし, templateはAngular1の頃と同様に、 ngIf
みたいな文法が入ってくるのは個人的に好みではない.
jQueryのコードと比較して, Angular2やReactの様に, コードに対してテンプレートが紐付いている状態は色々と考えることが少なくて済むのは非常にデカイ.
DIは良いよね!って感じなんだけど, DIするにはInjectable書けばそれっぽくなるでしょ?くらいの理解しか現状ない. たぶんAngular2のDIを知るとかよめばすんなり理解できそう.
この次に取り組むべきだと感じたこと
以上のような流れになると思うので, TypeScriptの文法とtscを抑えると思う. ので, たぶん次の記事はTypeScriptの話になる.
OSXからESXi 6.5.0 にvCenter6.5.0をインストールする際のエラーに対処する
やりたいこと
タイトルどおり、vCenter6.5.0をESXi6.5.0に対してインストールしたい
問題点
途中で色々とエラーが出る.
エラーログを見る感じ、インストールの過程で必要なファイルが見れないとのこと
自分の試行錯誤中のエラーログは以下のような感じ
2017-01-07T14:21:58.757Z - error: Could not find ovaFile /^VMware-vCenter-Server-Appliance-.*_OVF10.ova$/ in /private/var/folders/lk/jk8fbl3s4qgc7fzz7r3wxn300000gn/T/AppTranslocation/vcsa 2017-01-07T14:21:58.757Z - info: ovaFile: null 2017-01-07T14:21:58.758Z - error: OVF probe error: Error: OVA file is not available
参考URL
上記のページを読みながら取り組みましょう.
ざっくりとした流れ
VMware-VCSA-all-6.5.0-4602587.iso (これは自分が 2017/1/7にmy vmware からダウンロードしたiso) をマウントする.
すると以下のようなディレクトリ構成になるはず.
. ├── dbschema ├── migration-assistant ├── readme-de.txt ├── readme-es.txt ├── readme-fr.txt ├── readme-ja.txt ├── readme-ko.txt ├── readme-zh-CN.txt ├── readme-zh-TW.txt ├── readme.txt ├── umds ├── vcsa ├── vcsa-cli-installer └── vcsa-ui-installer
そのなかから vcsa-ui-installer/mac/Installer
を起動する.
インストーラーの案内に沿ってポチポチ押すと、途中でエラーが発生するので,そこで出て来るアラートに, log
というリンクがあるから, そこを押すとログファイルがダウンロード出来る.
ログファイルの一番下に、
/private/var/folders/lk/jk8fbl3s4qgc7fzz7r3wxn300000gn/T/AppTranslocation/
上記のようなパス(おそらく環境によって異なるはずなの)が記載されているはずなので、そこに対して、マウントしたisoのvcsaをまるっとコピーする.
cp -a /Volumes/CDROM/vcsa /private/var/folders/lk/jk8fbl3s4qgc7fzz7r3wxn300000gn/T/AppTranslocation/
すると自分の環境ではインストーラーが上手く進み始めた