Windows で git push したら何も表示されずハングしたとき

git プロトコルを使用した場合にタイトルの問題が発生する

https の場合は問題なし

対策

git config --global sendpack.sideband false

を設定する

参考

https://github.com/git-for-windows/git/issues/907

http://d.hatena.ne.jp/torutk/20120915/p1

Docker のコンテナで動くOSがよく分からなかった

よく分からなくなったこと

  • Dockerfile で Alpine Linux が登場して、コンテナの OS だよって言われてよく分からなくなった
  • コンテナで OS が動いているの?ってなった

分かったこと

自分が理解できていなかったことで大事なこと。

  1. Docker は Linux でしか使えない(Windowsコンテナ―とかは無視)
  2. だから、 WindowsMac(Unix) では直接は使えない
  3. Linux ディストリビューションが違っても実行ファイルは動作する

一つずつ説明していきます。

1. Docker は Linux でしか使えない(Windowsコンテナ―とかは無視)

まず

大前提として、Docker は Linux で成り立っている。

大前提として、Docker は Linux で成り立っている。

大前提として、Docker は Linux で成り立っている。

ここ重要。

2. だから、 WindowsMac(Unix) では直接は使えない

Linux なので当然 Widows や Mac(Unix) では使えないため、Docker for Windows や Docker for Mac が用意されている。

今回は Windows で説明するが、Docker for Windows をインストールして Docker を起動すると、仮想環境で Linux が動作している。

Settings に Disk image location があるが、このイメージが Hyper-V 上で動作している。

f:id:k6i:20181105191624p:plain

Hyper-V を確認すると MobyLinuxVM というイメージが動作していることがわかる。

f:id:k6i:20181105191634p:plain

3. Linux ディストリビューションが違っても実行ファイルは動作する

参考サイトより引用

DockerはLinuxの同じCPUならば、違うディストリビューションでもマシン語で書かれている実行ファイルのフォーマットが同じ形式であり、適切な依存ライブラリを渡してやれば動くでしょという思想です。
OSの名前はついているが、ベースイメージはOS的役割をするのではなく、そのOSっぽい環境を整える(ディレクトリ構成をそのOSっぽくするなど)のが役割

もうここら辺の引用がほぼ答え。

こんなイメージかなー f:id:k6i:20181105194515p:plain

参考

Docker for Windowsのインストール後の設定項目 - Qiita

Docker - Dockerのコンテナ内で使われるOSについて|teratail

Docker - DockerのベースイメージがホストOSと違ってもいいのはなぜ?|teratail

Ubuntu - このようなことはDockerで可能でしょうか?|teratail

Hapa英会話第3回「家族について」

hapaeikaiwa.com

感想

最初の方は付いていけても、途中で何言ってるかわからなくなって、最後まで分からなくなる。

兄弟の言い方 siblings なんてあったのか。

この単語分からなくて、最初聞いたとき何言ってるのか全く分からなかったなぁ。

車通勤中に Podcast でHapa英会話を聞き始めた

毎朝の車通勤の約20分を利用してPodcast の Hapa英会話を聞き始めた。

hapaeikaiwa.com

今日は第一回「仕事について」を聞いた。

hapaeikaiwa.com

感想

速すぎて何言ってるのか全然わからん。

「仕事について」ってタイトル見てるからそういう話してるんだろーなって思って聞いてるけど、 このヒントなかったら本当何言ってるか分からんな多分。

とりあえず一ヶ月朝の車通勤時に続けてみようと思う。

Puppeteer を使って Yahoo のニュースをスクレイピングしてみる

kanazawa.rb meetup #72 で Puppeteer を触る機会があったので残しておく。

Puppeteer

github.com

インストールは

npm i puppeteer

ver 1.7.0 から puppeteer-core ってのが公開されたらしくこっちだと Chromium を同時にダウンロードされることはないみたい。

すること

f:id:k6i:20180825141555p:plain

Yahoo のページから上記のニュースの一覧を取得してコンソールに表示してみる

プログラム

Puppeteer を使って Yahoo のニュースをスクレイピング

こんな感じで、 「ブラウザを起動して、ヤフーのページを開いて、ニュース取得する Javascript を実行するっていう」を Node.js を使ってコマンドラインから実行できる。

実行結果

node scraping_yahoonews.js
[ 'オスプレイ 佐賀県民の不安写真',
  '関東など猛暑日 東京22日ぶり写真NEW',
  'ロヒンギャ難民 長期化に焦り写真NEW',
  '愛知岐阜の遺体 仕事で面識か写真NEW',
  '旧盆の海にお化け?気象台解説写真',
  '吉田輝星 内定先監督の不安写真',
  'みやぞん まずは1.55キロ完泳写真NEW',
  '南米熱狂 FLOWのアニソン写真' ]

感想

Puppeteer の理解より先に、Javascript の書き方の理解が必要そう。 async/await とかどうなってるのか全然わかってないし、 jQuery 使って〜とかの知識しかなくてちょっと辛い。