技術やら生活やらのメモ2017-05-03Windowsでシェルスクリプト書きたいときはShellJSが使える久々のブログ更新となります。シェルスクリプトをWindows用に移植したい・・・という場面でShellJSが便利だったというお話です。ShellJSとは?github.comNode.jsでシェルスクリプトが書ける!(※実際書くのはJavaScript。APIが限りなくシェルスクリプト風)Windows/Mac/Linuxでポータブルに動く!ヤツです。採用実績YeomanとかZeptoとかJS界隈の有名どころで使われています。GitHubスター数も5,835(2017/05/03現在)なので結構人気あるライブラリと言ってよいのではないでしょうか。ESLintで使われていて知りました。何で必要になった?当初JSファイルをcatして結合するだけの単純なスクリプトをシェルスクリプトで書いてました(LinuxとWindows(MSYS2)だけで動けばよい)ところが、Windowsでコマンドプロンプト使っている人が・・・コマンドプロンプト用にバッチファイル書いて二重管理とかアレだなぁと思っていたところ、ふと存在を思い出しました。例そのままですが、↓のようなノリで書けます。-vして書き出すスクリプトがこう変わりました。インストールしておく。この辺のNode.jsの説明は省略。'^\s*//.+').to('target/bundle.js');パイプもいい感じに書けます。shellをオススメする記事です。設定ファイルを書いて使っていました。これらを、なるべく設定せずにfishで使えるようにしてみます。実は、以下3つのコマンドを打てば設定なしでも上記の機能が一通り動きます。rafaelrinaldi/pureなんということでしょう。これなら、休日の疲れた状態(今の私)でも問題なく環境構築できますね!上記でインストールしたモノの補足プラグインマネージャfishermanというfish用のプラグインマネージャを入れました。前まではoh-my-fishがオススメという記事もありますが、最近はコチラを推奨している記事が多い気がします。探せばいっぱいあります。自分はzshのときと合わせてpureにしました。ディレクトリ移動zがfisherman公式リポジトリにあったので、そのまま入れました。後述しますが、zsh時代の設定に合わせるために、自分の場合は設定ファイルに2つほど記述を足しました。補完系はfishのデフォルトで十分便利なので、auto-fuはやめました。履歴検索pecoにこだわりはなかったので、全く設定なしで動くという理由でpeco同等のfzfにしました。fzfだけで使えるようになります。decors/fish-ghqだけで、使えるようになります。fishの文法がbash/zshと全然違う!そうなんです。GitHubにbashの文法との対比表があるので、見比べながら書いたらよいかも。↓設定に必要なものだけ書いておきます。$PATHで大丈夫そう。-i'みたいな感じでいけます。~/.config/fish/config.fishあってるか自信ないですが、いちおう動いたので、一旦これで。vimという感じで開発してきて、zshとかターミナル開発環境の知見をコツコツ蓄えてきました。今はWindowsでジャヴァジャヴァしている関係でzshとかターミナル開発環境を整備する意欲がなくなってしまいました。そんな折、Windows/MSYS2環境でbashが非力で辛いし、zshちゃんと動かんし、じゃあfishどうだろう?と導入してみたところ、えらく気に入ってしまったので、家のMacにも入れました。この記事を読んでピンと来た人、ぜひ一度fishをお試しください。shellはじめましたTweet広告を非表示にするもっと読むコメントを書く2016-10-04静的ファイルを配信する場合にはパスにバージョンを含めるのがいいんじゃなかろうか最近、思っていることを。バージョンとは言ってますが、Gitのコミットハッシュ値でもUnixタイムスタンプでも何でもいいです静的ファイル配信パターンWEBアプリで静的ファイルを配信するパターンは以下3つあるんじゃないかとなんとなく思っています。src="/static/v1/js/hoge.js"></script>この中でどれがいい?1はいろいろ辛そうなのでなしとして、2よりも自分は3がいいと考えています。任意のタイミングで確実にリリースできるこれは2のパターンでも当てはまるので、3だけではないですが。リリースしたタイミングで新しいファイルとしてロードされます。クライアントのキャッシュを気にしないでも大丈夫。新旧のバージョンが混在できるLBから切り離して、アプリサーバを1台ずつローリングアップデートするパターンなんかでも問題なく。古いアプリサーバにアクセスしたクライアントは古いバージョンのファイルを見て、新しいアプリサーバにアクセスしたクライアントは新しいバージョンのファイルを見て、動作します。2だと(初めてアクセスした|キャッシュの期限が切れた)クライアントがサーバ側が古い状態で、最新の静的ファイルにアクセスしてしまう可能性があるかと(ブルーグリーンデプロイメントしているなら問題ないかもしれませんが)事前にリリースできる現在動作しているアプリには影響を与えず、安心安全に本番環境に事前にリリースできます。これは2だと無理ではないでしょうか。src="/static/js/bundle-abcdefg1234xxxxxxxx.js"></script>的な。CSS/JSはいいですが、画像のことを考えるとディレクトリにバージョンを含めたほうがいいんじゃないかと思います。まとめ久しぶりにブログを書きました。違うよとかもっといい方法があるよということであれば、コメントしていただければ幸いです。22:54静的ファイルを配信する場合にはパスにバージョンを含めるのがいいんじゃなかろうかTweet広告を非表示にするもっと読むコメントを書く2016-08-26Windowsを少しでもMacの環境に近づける最近転職しました。VirtualBoxとかVM使う系禁止という縛りがあるわけです。いうわけで最近のWindowsをMacに近づけられないかという記録をば。Homebrew(Cask)が恋しいChocolateyというブツがありました。chocolatey.orgWindows用のパッケージマネージャだそう。いろんなアプリをインストールできます。PowerShellから!Alfredが恋しいランチャーがないのが辛い。いくつか候補があった中で、Woxにしてみました。gigazine.netが、クリップボード履歴とかスニペット機能がない。しゃーなくこちらを導入。クリップボード履歴と定型文機能があります。forest.watch.impress.co.jp窓の杜とか久しぶりなんだが。ターミナル環境が恋しいで、最大の問題がUnix系のコマンドが使えないこと。CUI大好き人間だったので、ないのが辛い。Cygwin?いやいや・・・coLinux昔使ってたなぁと思ってみてみたら、http://www.colinux.org/どうも開発は止まっているよう。Windowsにも付いてくる)qiita.comなものがあると。この辺も参考になるかもしれません。d.hatena.ne.jpこれだ!と思ったが、自分の環境では動かないので断念。Babunこんなものがあるそう。love!一言でいうと使いやすくしたCygwin。いちおう動いたけど、キーをタイプしてレスポンスが遅いのが辛い。単なる端末エミュレータだけど、コマンドプロンプトよりは幾分まし。conemu.github.ioいろいろやったけど、、、やっぱり無理ある。Macサイコーという気持ちが強くなりました。CTRL+N、CTRL+P、CTRL+E、CTRL+A・・・とかのEmacs的キーバインド使えないのも辛い。23:05Windowsを少しでもMacの環境に近づけるTweet広告を非表示にするもっと読むコメントを書く2016-07-28ターミナル派の人はHyperTermに近いうちに乗り換えると良いかもしれないHyperTermというターミナルソフトウェアが大変興味深かったので、そのご紹介を。Redux製のターミナルです。他のElectronアプリのご多分にもれず、JavaScriptで機能を拡張できる作りになっています!公開されてから、まだ1ヶ月そこらですが、現時点で既に6000以上GitHubスターを集めています。github.comインストール今のところMacでしか動かんとのこと。hypertermで。通常のMacアプリ同様設定変更できます。デフォルトのフォントとテーマが気に入らなかったので、↓みたいな感じに変更しました。],}使ってみた感想iTermとかと比較しても全く遜色ない感じ。この使い心地でこの拡張性なら乗り換えよう!と思いました。↓の問題点があったので踏みとどまりました。日本語は表示できますが、打てません!github.comこれが解決されないとメインでは使えないかな。その他参考リンクawesome-hypertermhttps://github.com/bnb/awesome-hyperterm仕事早いですね〜テーマやその他プラグインはこちらから探すのが吉です。HyperTermまとめ日本語さえ入力できるようになれば、iTermから乗り換えると思う。Componentsyukidarake.hateblo.jp結構日にちが経ちましたが、まだボチボチ読まれているようなので、この記事の補足など。Componentsmedium.comRedux作者の記事ですが、途中で呼び方を変えた模様。Componentsの方が好みだとのこと。Componentsという呼び方になってますね。Componentsしか含まれちゃだめなの?そんなことないと。Presentationalみたいなパターンもあり得ると。自分も現場で実際にありました。Componentsという言う方を好んでいるようです。わかりやすいスライド。speakerdeck.comブログはこちら。ComponentsTweet広告を非表示にするもっと読むコメントを書く2016-07-03主人が英語の勉強を始めて185日が過ぎましたyukidarake.hateblo.jpyukidarake.hateblo.jpの続きです。'+%j'185だいぶ空いてしまいましたが、185日過ぎてもぼちぼち続けているのでその報告も兼ねて。英語を勉強するモチベーションが下がってきました。運良く同僚から、社内の外国人エンジニアを交えての英語ランチというモノに誘ってもらいモチベーション回復。ランチ時にあまりにも言葉が出ないので英会話に対する危機意識が高まりました。結果、良かった!発音や文法等は相変わらずダメだし、講師から質問されても返せなかったりするものの、英語で話す/書くことへの恐怖心が薄まりました。講師を予約するというシステムに強制力があるのが良かったみたいで、毎朝8時に英会話をしてから出社という習慣ができました。5月:引き続きDMM英会話1ヶ月過ぎても良かったので、続けました。この頃から発音記号毎の発音を3Dで見れるという神アプリを使い始めました。¥960これは発音の教材でよくある英語教師の正面の口元をアップした映像だけではわからない口の中の事情(?)を3Dで解説してくれるというモノです。リエゾンとか英語の音の変化が何故起きるのか?というのが視覚的に理解できたのでこれは良かった。発音を勉強したいと思っている人は買いだと思います。6月:またまたモチベーション低下からのチャットに切り替えしばらく、DMM英会話を続けていたものの、成長が止まった感が出てきました。モチベーション的にもなんだか下がってきたのでこれじゃイカンと一度英会話を離れてみることにしました(DMM英会話は退会してもまたいつでも再開可能とのことなので)次はライティングの練習がしたいと思ったので、Eigoooというアプリを試してみました。無料これはいつでも(8時30分〜25時)英語の講師の方とチャットができるというサービス。会社への行き帰りの電車内でもできるので、なかなかいい感じ。実は去年少し試したのですが、当時は教師から話かけられても会話ができず退散しました。いずれかに沿ってチャットをする感じでメニューが少なめなので、長期間は継続しづらいかもしれません。Trekを試したいと思ってます。thebridge.jp月額9800円と、他のサービスと比較するとちょい高いけど、それに見合ったサービスを受けられそうな感じ。これの無料機能はすでに使っています。無料英語と多言語のQ&A。ネイティブスピーカーが答えてくれる。無料ちょっとした空き時間で自分の作った文章のネイティブの人からフィードバックをもらえたりしてこれもなかなか良いのではないかと。まとめモチベーション的には上がったり下がったりはあるものの、何とか学習を半年続けられています。英語力上がった!とははっきりとは言いづらいですが、GitHub上でプルリク送ったりとか英語で何かを発信することへの耐性はついてきたかなと。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。