徒然日記

病院梯子で通院など。

移動中だったり待合室で待っている間にもう一度本を読み直したりしていた。

本、一度読んで終わりにせず定期的に読み返したい。

 

ロマンとソロバン―マツダの技術と経営、その快走の秘密
 

 

 

稀に一人でお酒を呑むという話

稀に会社からの帰り道に一人でお酒を呑みに行くことがあります。といっても呑みに行くのはチェーン店の焼き鳥屋だったり回転寿司屋だったりするのですが、ふらっと入ってビールとおつまみをつまんだりしながら、ぼーっとするのが定番になっています。

こういうのを話すと寂しくないのですかと心配(?) されることがあるのですが、ときどきこうやって自宅じゃない空間で一人になるといろいろと客観視できる様になったり普段考えないことをじっくり考えてみたりすることができて個人的にはとても有意義な時間な気がします。

時々こうやって一人で好きなことを考えながらゆっくりお酒呑むのが楽しめる歳になったのはいいことなのか、はたまた違うのか。

2016年11月に読んだ本を振り返る

今月は11作品。 SWITCH Vol.34 No.12 古舘伊知郎 TALKAHOLIC しゃべくる魂 テレビ屋の反乱 はとても読み応えがあるインタビューが詰まっているのでお薦め。 ふりかけの本-日本の文化 ごはんがおいしい!- (COSMO BOOKS) (私的好奇心文庫)はご飯のお供であるふりかけが熊本発であることを初めて知ったり、のりたまや三島食品の「ゆかり」の話が出ていて面白かった。身近なものほどおもしろい。 孫物語 椎名誠作品は中学生の頃から読んでいたのだけれども、そうか時間はこれだけ過ぎたのかと感じてしまって変な切なさを覚えてしまった。岳物語から次の世代へのエッセイ。

hideackの本棚 - 2016年11月 (11作品)
やさしい仏像 (観る作法)
やさしい仏像 (観る作法)
-
読了日:11月13日

あの日
あの日
小保方晴子
読了日:11月13日

無印良品のデザイン2
無印良品のデザイン2
-
読了日:11月20日

孫物語
孫物語
椎名誠
読了日:11月28日

powered by Booklog

Google docsのスプレッドシートに特定フィードの更新内容を追記する

業務でふと必要になって時々似た様なGoogle App Script書いているのですが、毎回書き始めるときに「えーっと、どうだったかな」となることが2回続いたのでエントリとして追加。

以下の様な形で書いてみた。そんなに大したことはやっていないのだけれども少し調整したところは、

  • フィード内のアイテムのプロパティで示されるリンク先URLの重複をシートに記録した中に一致したものが無いかの確認をする様にした
    • やり方としてはスプレッドシートの情報をまるっと取得して素朴にループさせてという愚直な方法にした(プレッドシート呼び出しのAPIを繰り返して叩かない)
  • リンク先のURLのバリデーションを入れる
    • RSSフィードが発行されていないページを外部のサービスを使ってRSS化したときに、更新対象以外の要素がフィードに含まれていたとき*1にそれを除外するため

ぐらい。 あとはSlackに通知させる必要があれば、sheet.appendRow([title, url, description]); と書いている辺りで併せて通知させれば良いかと思う。

下のスクリプトを追加して、定期的に呼び出す設定すればRSSが更新される度にシートの最終行に追記されていく様になる。

function parseNewsFeed() {
  var sheet = SpreadsheetApp.getActiveSheet();
  var sheetData = sheet.getDataRange().getValues();
  
  var feedURL = "(走査対象のフィードのURL)";
  var response = UrlFetchApp.fetch(feedURL);

  var xml = XmlService.parse(response.getContentText());
  var items = xml.getRootElement().getChildren('channel')[0].getChildren('item');
  
  for(var i = 0; i < items.length; i++) {
    var title = items[i].getChild("title").getText();
    var url = items[i].getChild("link").getText();
    var description = items[i].getChild("description").getText().replace(/<("[^"]*"|'[^']*'|[^'">])*>/g,'').replace(/(\s+)/g, '');
    
    var urlValidate = /(フィード内のURLのバリデーション用正規表現を書く)/;
    
    if (urlValidate.test(url)) {
      if (!isExist(sheetData, 1, url)) {
        sheet.appendRow([title, url, description]);
      }
    }
  }
}

function isExist(sheetData, targetCol, value) {
  for(var i=0; i<sheetData.length; i++) {
    if (sheetData[i][targetCol] == value) {
      return true;
    }
  }
  return false;
}

*1:ページサイドにあるカテゴリなどの要素がフィードのアイテムとして更新されてしまうことがあるため

大学時代の同級生と呑み会

大学時代の研究室を共にした同級生が上京しており折角なので呑もうということで3名で呑み会を開催。 ほぼ卒業して以来ということで12〜14年ぶりくらい(?)ということで、お互い合流したときに気づけるのだろうかといったレベルで心配していたのだけど、全く変わらない感じで話に花が咲いた。

それぞれ卒業後の進路はバラバラだったりして状況は違えど、久しぶりにあってこんなに楽しくお酒飲みながら喋れるのは嬉しいことだなとしみじみ思った。

よく呑んだ。焼酎のボトルが空になっていた。あと、自分を除く2名はきちんと〆のラーメンも完食していたのに自分は追いついていけなかったのでもっと鍛えないといけない。胃を。

このペースでまた次回会うことになるとお互い50代になっていることになってしまうので....。もうちょっと手前で会わないと。

ビットコインとブロックチェーン:暗号通貨を支える技術を読んでいる

最近この本を読んでいる。

ビットコインとブロックチェーン:暗号通貨を支える技術

ビットコインとブロックチェーン:暗号通貨を支える技術

ブロックチェーンだったりその利用例の1つであるビットコインについては何冊か本を読んだりだとかWeb上の情報等でキャッチアップを繰り返してはいるのだけど、実際に発生するトランザクションでどの様な情報に対してハッシュを取ったり署名をかけているかということを知りたいとおもったときによさそうな本がないかを @yuma300 に聞いてみたところオライリーで出版されている本の日本語版を進められたので読んでみている。

一読してみた範囲だと正直まだ自分の中でしっくりこない。オーバービューは理解したつもりなのだけど、要所要所のロジックと全体像が結びつかないというか。おそらくこうやって書いている時点で自分自身が理解できていない。多分もう数往復しないと頭のなかで整理できない感じがあるので少しずつでも理解していきたい。

検索エンジンについて理解したいと思ったときに検索エンジン自作入門 ~手を動かしながら見渡す検索の舞台裏を読みつつ一通り試してみた様に何かしら小さいサンプルを書くところまでいくといいのだけど。