2016年 11月 の投稿一覧

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 に聞いてみたところオライリーで出版されている本の日本語版を進められたので読んでみている。

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

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

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

10月は8作品。

センセイの書斎---イラストルポ「本」のある仕事場 (河出文庫)はイラストレポとして秀逸だった。人によって個性が出る本棚をいろいろな角度から見ることができて面白かった。

勝利のチームメイク (日経ビジネス人文庫 グリーン お 4-1)を読んでいたときに平尾誠二さんの訃報を聞いて驚いた。様々なスポート(ラグビー、サッカー、野球)それぞれを経験した3者がそれぞれで考えるチーム論であったり勝利へ導くための方法論だったりが興味深かった。時々読み返したい内容。きっとその時時の自分自身の立場によって読み取る箇所が違うのではないかと思う。


hideackの本棚 - 2016年10月 (8作品)
暮しの手帖 4世紀84号
暮しの手帖 4世紀84号
-
読了日:10月01日


powered by Booklog