江ノ島

突発的に江ノ島へ。 海を眺めるのはとてもよかった。

トンビの落とし物が靴に直撃したこと以外は。

f:id:hideack:20171015204656j:plain

ファイルが大量にあるところでgrepしようとしてArgument list too long

findしたのをxargsで渡してgrepに流し込むと大丈夫とのことを知った。 あるあるなんだな。

find . -name "*.html" -print0 | xargs -0 -I{} grep -oEH "hoge foo" {}

髪を切った

「髪の毛の色が明るくなってますね。外に出られてました?」

と言われて流石だなぁ。と思った。恐らく8月の夏休みの間、特にどこに行くこともなく家の近所を自転車で走っていたので髪がやけてしまっていたのだろうなと気づく。

少し色を濃い目に染めてもらって、髪の毛を切ってもらって終了。

テキストファイルに列挙されているURLを利用して該当サイトのトップページHTMLをwgetで保存する

メモ用エントリ。

http://hideack.hatenablog.com/
http://www.remp.jp/
http://www.storyboards.jp/

の様なURLが列挙されたテキストファイルが手元にあったときに wget を利用してトップページのHTMLファイルを特定のディレクトリに保存することをしたいと思ったので数少ない知識を活用して試してみた。

xargswget でこんな感じで試してみたのだけれどもどうだろう。MacOSだとデフォルトで入っている xargs だとGNU拡張オプションの -a のオプションが使えなかったのでbrew

$ brew install findutils

で、 gxargs を入れて以下の様な形。

$ gxargs -a urls.txt -I {} wget -t 1 -T 3 -w 0.5 -O archives/{}.html {} --user-agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36"

こうすることでURL一覧のテキストファイルで与えたサイトのトップページのHTMLを一つのディレクトリに保存していくことができる。

映画「別れかた 暮らしかた」上映会&トークにいってきた

渋谷ヒカリエの8/COURTで開催されたこれからの暮らしかた展 関連イベント「映画「別れかた 暮らしかた」上映会&トーク」に参加してきた。 暮らしかた冒険家・伊藤菜衣子さんが監督された作品で、3つの「暮らしかた」を紹介するドキュメンタリー映画

個人的には映画中に出られていた震災後に地元を離れ自給自足の生活とカフェをはじめられたたべるとくらしの研究所 安齋夫婦のお話、地方出身で東京で成形を立てる自分にとっても胸にぐっとくる内容だった。これがきっと一つの別れかたと暮らし方なんだろうな。と。

一方、東京にいることで出会いもあるのも事実な訳で自分の中で、どこにバランスの中心を置くかをもっとしっかり考えていくときも出てきそうな気がした。

映画の上映の後、トークショーもあった後、映画にも登場されていた熊本ののはら農研塾の野原さんご一家にもお会いすることができてとても嬉しかった。映画の中の野原さんは男から見てもとてもかっこいいし、実際お会いするともっとかっこいい。

www.d-department.com

2017年9月に読んだ本を振り返る

先月は11作品。気がつけば年末に近づいていく。


hideackの本棚 - 2017年09月 (11作品)
生涯投資家
生涯投資家
村上世彰
読了日:09月09日

決定版 FinTech
決定版 FinTech
加藤洋輝
読了日:09月24日

powered by Booklog

readlineで標準入力を受け付ける(対話型シェル)

Node.jsで書いたコマンドラインツールに対話型のシェルを設けたかったので試してみた。 (参照にしたgistほぼそのままなのだけれども)

アロー関数で書き直そうとしたのだけれども詰まったので一旦メモとして残しておく。

var readline = require('readline');

function Cli(handler) {
  this.handler = handler;
}

Cli.prototype.run = function() {
  var self = this;
  var rli = readline.createInterface(process.stdin, process.stdout);
  rli.setPrompt('> ');

  rli.on('line', function(line) {
    var args = line.split(/\s+/), cmd = args.shift();

    if (self.handler[cmd]) {
      self.handler[cmd].call(rli, args, function(err, res) {
        console.log(res);
        rli.prompt();
      });
    } else if (cmd.length > 0) {
      console.log('cmd not found.');
      rli.prompt();
    } else {
      rli.prompt();
    }
    rli.prompt();
  }).on('close', function() {
    console.log('');
    process.stdin.destroy();
  });

  rli.prompt();
};

function Handler() {}

Handler.prototype.echo = function(args, fn) {
  fn(null, args);
};

(new Cli(new Handler())).run(); 

参照

https://gist.github.com/murayama/5954017