ターミナル派の人はHyperTermに近いうちに乗り換えると良いかもしれない
HyperTermというターミナルソフトウェアが大変興味深かったので、そのご紹介を。
HyperTermとは?
公式サイトで JS/HTML/CSS Terminal と謳っている通り
Electron + React + Redux製のターミナルです。
他のElectronアプリのご多分にもれず、JavaScriptで機能を拡張できる作りになっています!
公開されてから、まだ1ヶ月そこらですが、現時点で既に6000以上GitHubスターを集めています。
インストール
今のところMacでしか動かんとのこと。
とりあえず試したい方は https://hyperterm.org/#installation から落とすか
Homebrew Caskを使っている人はいつもの
brew cask update brew cask install hyperterm
で。
初期設定
通常のMacアプリ同様設定変更できます。
⌘,
を押すと、HyperTerm上で設定用のJSONファイル(~/.hyperterm.js
)が開きます。
デフォルトのフォントとテーマが気に入らなかったので、↓みたいな感じに変更しました。
{ config: { fontSize: 13, // font family with optional fallbacks fontFamily: '"Droid Sans Mono for Powerline", Menlo, "DejaVu Sans Mono", "Lucida Console", monospace', // 中略 }, plugins: [ 'hyperterm-seti', ], }
使ってみた感想
iTermとかと比較しても全く遜色ない感じ。
この使い心地でこの拡張性なら乗り換えよう!と思いました。
が、↓の問題点があったので踏みとどまりました。
現状の問題点
日本語は表示できますが、打てません!
これが解決されないとメインでは使えないかな。。
その他参考リンク
awesome-hyperterm
https://github.com/bnb/awesome-hyperterm
仕事早いですね〜
テーマやその他プラグインはこちらから探すのが吉です。
日本語の記事
ターミナル作業が爽快になるターミナルエミュレーター: HyperTerm
まとめ
日本語さえ入力できるようになれば、iTermから乗り換えると思う。
Presentational and Container Components
結構日にちが経ちましたが、まだボチボチ読まれているようなので、この記事の補足など。
Smart and Dumb Components -> Presentational and Container Components
Redux作者の記事ですが、途中で呼び方を変えた模様。
Presentational and Container Componentsの方が好みだとのこと。
Reduxの公式ドキュメントもPresentational and Container Componentsという呼び方になってますね。
http://redux.js.org/docs/basics/UsageWithReact.html#presentational-and-container-components
Presentational Components には Presentational Componentsしか含まれちゃだめなの?
そんなことないと。
Container > Presentational > Container > Presentational
みたいなパターンもあり得ると。
自分も現場で実際にありました。
新たに見つけた他参考になるリンク
AbemaTVでの事例
参考になります!
www.slideshare.net
自分と同じようなことを考えている人
この人はSmart/Dumb Componentsという言う方を好んでいるようです。
なかなかわかりやすいスライド。
ブログはこちら。
主人が英語の勉強を始めて185日が過ぎました
の続きです。
$ date '+%j' 185
だいぶ空いてしまいましたが、185日過ぎてもぼちぼち続けているのでその報告も兼ねて。
気づいたら今年の折り返し地点過ぎてましたね!
3月:モチベーションの低下
中だるみでしょうか。英語を勉強するモチベーションが下がってきました。。
これじゃいかん・・・と思っていたところ、
運良く同僚から、社内の外国人エンジニアを交えての英語ランチというモノに誘ってもらいモチベーション回復。
さらに、ランチ時にあまりにも言葉が出ないので英会話に対する危機意識が高まりました。
4月:DMM英会話を始める
周りでの評判が良かったのと、体験レッスン2回無料という言葉に釣られて、勢いで始めてみました!
↓ コレ。
結果、良かった!
発音や文法等は相変わらずダメだし、講師から質問されても返せなかったりするものの、英語で話す/書くことへの恐怖心が薄まりました。
また、講師を予約するというシステムに強制力があるのが良かったみたいで、毎朝8時に英会話をしてから出社という習慣ができました。
5月:引き続きDMM英会話
1ヶ月過ぎても良かったので、続けました。
そして、この頃から発音記号毎の発音を3Dで見れるという神アプリを使い始めました。
↓ コレ。
これは発音の教材でよくある英語教師の正面の口元をアップした映像だけではわからない口の中の事情(?)を3Dで解説してくれるというモノです。
リエゾンとか英語の音の変化が何故起きるのか?というのが視覚的に理解できたのでこれは良かった。
発音を勉強したいと思っている人は買いだと思います。
6月:またまたモチベーション低下からのチャットに切り替え
しばらく、DMM英会話を続けていたものの、成長が止まった感が出てきました。
モチベーション的にもなんだか下がってきたのでこれじゃイカンと一度英会話を離れてみることにしました(DMM英会話は退会してもまたいつでも再開可能とのことなので)
次はライティングの練習がしたいと思ったので、Eigoooというアプリを試してみました。
↓ コレ。
これはいつでも(8時30分〜25時)英語の講師の方とチャットができるというサービス。
会社への行き帰りの電車内でもできるので、なかなかいい感じ。
実は去年少し試したのですが、当時は教師から話かけられても会話ができず退散しました。
しかし、DMM英会話のおかげもあり、とりあえず会話が成り立つようになってましたw
注意点としては、フリートーク/本日のTOIECの英単語/本日のテーマ のいずれかに沿ってチャットをする感じでメニューが少なめなので、長期間は継続しづらいかもしれません。
7月以降
Eigoooにもうちょっとなれたら、次は一時期話題になっていたHiNative Trekを試したいと思ってます。
http://thebridge.jp/2016/02/hinative-trekthebridge.jp
月額9800円と、他のサービスと比較するとちょい高いけど、それに見合ったサービスを受けられそうな感じ。
ちなみに、外国語学習者同士で添削し合う HiNative というアプリ上でHiNative Trekのサービスを受けられるようですが、 これの無料機能はすでに使っています。
↓ コレ。
ちょっとした空き時間で自分の作った文章のネイティブの人からフィードバックをもらえたりしてこれもなかなか良いのではないかと。
まとめ
モチベーション的には上がったり下がったりはあるものの、何とか学習を半年続けられています。
英語力上がった!とははっきりとは言いづらいですが、GitHub上でプルリク送ったりとか英語で何かを発信することへの耐性はついてきたかなと。
個人的にはDMM英会話は英語学習に悩む人には一番オススメしたいと思ってます(実際周囲の人にオススメしまくってますがw)
また、数カ月後にどうなったか報告します!
グローバルでgitフックスクリプトを仕掛けると`go get`がちゃんと動作しなくなる可能性がある
Visual Studio CodeのKeyBindingをCTRL+Nを↓、CTRL+Pを↑に変更する
しばらくサボってましたが、今日からは再び頑張りたい。。
諸事情により、Visual Studio Codeを触り始めました。
が、違和感を感じたのが各種ウィンドウでCTRL+N、CTRL+Pのキーバインドが効かないこと。
ググッてみたところ
↑のEmacs向けのキーバインドを公開してくれている方がいました。
ありがたや。
しかし、自分は生粋のEmacsユーザという訳ではなく、とりあえずCTRL+N、CTRL+Pが効けばよかったので
curl -s https://raw.githubusercontent.com/nana4gonta/emacs-visual-studio-code/master/release/keybindings-osx.json | jq 'map(select(.key=="ctrl+n" or .key=="ctrl+p"))'
で該当する設定だけをいただきました。
あとは、Code -> Preferences -> Keyboard Shortcuts でkeybindings.jsonに貼り付けるだけです。
Mochaで--delayフラグを使って初期化完了までテストを実行しないようにする
--delayフラグ?
http://mochajs.org/#delayed-root-suite
で知りました。
setTimeout(function() { // do some setup describe('my suite', function() { // ... }); run(); }, 5000);
のように書いて、mocha --delay test
と実行すると、run()
が呼ばれるまでテストの部分までは行かないと。
ちなみにrun()
はmochaが勝手にグローバルスコープに追加してくれる関数だそう。
使用例
DBに接続するまでテストを実行しないようにすることができたりとか?
例えば、
↓のようなbootstrap.js というファイルを作り
DB.connect((err, db) => { run(); });
mocha --delay -require bootstrap.js test
と実行するとか。
これで、connect()の処理が終わるまでテストが動かないようにできるはず。
本当のところ
きちんとコードを書いていれば恐らくこの書き方は必要ないんじゃと思いますw
でも、某古めなプロジェクトで困ったコードがあり、これは使えるんじゃ?と思ったので記事にしました。
本日はこんなところで。
Perlのワンライナーでよく使うテクニック
あまり時間がないので5分で!
ファイルの中身を置換する
↓はカレントディレクトリ配下のJSファイルのfoo
という文字列をbar
に
perl -i -pe 's/foo/bar/' **/*.js
例
findと組み合わせたりもできます。
カレントディレクトリ配下のJSファイルのパスを置換をするために
/
が入るときはs{}{}
の書き方にすると便利です。
find . -name '*.js' | xargs perl -i -pe 's{/tmp}{/var/log}'
マッチした行から必要なテキストだけを表示
echo 'var hoge = "foo";' | perl -lnE '/var (.+?) =/ && say $1' # => hoge
みたいに書けます。
-l
は改行の問題で悩まなくて済むようになるので、つけておきましょう。-E
でsay
が使えるのでちょっと楽ちん。
例
ESLintでWarningで引っかかっているルール名を抜き出す。
eslint . -f unix | perl -lnE 'm#Warning/(.+)\]# && say $1' | sort | uniq
awk的な使い方
-a
をつけます。- これまた
-l
は改行の問題で悩まなくて済むようになるので、つけておきましょう。
echo 'a b c' | perl -lanE 'say $F[0]' # => a
awkと違い、インデックスは0からで$F[0]
, $F[1]
みたいに参照できます。
例
特定の文字列を含むプロセスを殺す! pkillが入ってない場合とかに使ってみてはいかがでしょうか。
ps aux | grep hoge | perl -lanE 'say $F[1]' | xargs kill
本日は
こんなところで。