@peccul is peccu

(love peccu '(emacs lisp cat outdoor bicycle mac linux coffee))

iOS11から標準カメラでQRCodeを読めるようになったのでみているページのURLをQRCodeで表示するブックマークレットを書いた

iOS11から標準カメラでQRCodeを読めるようになったのでwindow.location.hrefをQRCode表示するブックマークレットを書きました。

お気に入りのURLにコピペすればおそらく動きます。

Appleらしさあふれる作りですよね。QRCodeって選ばなくてもカメラに写ればQRCode読み取れたんだけどアクセスする?みたいな通知してくれるの。

Read more

標準入力の内容をチャットに投稿する2 (Node.js版)

peccu.hatenablog.com

こんな記事を書きましたが、結局渡す内容によってcurlが実行できないことがあったのでNode.jsで書き直しました。 依存パッケージなしで書いてみました。

ただ、プロキシ越えは未実装です。。。

Read more

標準入力の内容をチャットに投稿する1 (bash, curl版)

長時間かかるコマンドの実行結果をチャットに通知したくなったので、スクリプトを書きました。 (コマンド実行後の定型文通知や引数に指定した文字列の通知はすでに利用していたが、結果を通知したくなった)

Read more

bashスクリプトでシグナルを受け取った時にどのシグナルだったかを知る

bashシェルスクリプトがなぜか正常終了しない時に、シグナルが飛んできていないか確認したかった。

Read more

プロキシ環境下でdocker buildするときのコマンドオプション

プロキシ環境下でapt-get update等を含むDockerfileを docker build するときは --build-arg でプロキシの設定を渡す。

docker build --build-arg HTTP_PROXY=$HTTP_PROXY --build-arg http_proxy=$http_proxy --build-arg HTTPS_PROXY=$HTTPS_PROXY --build-arg https_proxy=$https_proxy .

docs.docker.com

snake_case->PascalCase->camelCase->snake_case->...に変換するコマンド

id:IMAKADOさんの実装を参考に、以下を追加した。

  • リージョンだけでなくカーソルの置いているシンボル(thing-at-point)も変換対象とした
  • snake_case<->PascalCaseだけでなくcamelCaseを加えて循環するようにした

d.hatena.ne.jp

Read more

Slackのフィード一覧をOPMLファイルに書き出す

Feedlyでは読みきれないのでSlackでフィードを購読(/feed subscribe URL)すれば目について読めるのではないか。と思った私は甘かった。

結局フィードが増えて追いつけなくなったので feedreader に移行することにした。

流れ

実行するJS

かなり雑に書いた

(function(){
  var opml = '';
  var name = document.querySelector('.team_switcher.menu_launcher').innerText.trim();
  opml += `<?xml version="1.0" encoding="UTF-8"?>

<opml version="1.0">
  <head>
    <title>${name}'s RSS feeds</title>
  </head>
  <body>
    <outline text="slack" title="slack">
`;

  var outline = function(_title, _url){
    var title = _title.replace(/&/g, '&amp;');
    var url = _url.replace(/&/g, '&amp;');
    return `      <outline type="rss" text="${title}" title="${title}" xmlUrl="${url}"/>\n`;
  };

  document.querySelectorAll('#feeds div[id^=feed] a[class=""]').forEach((e)=>{
    var href=e.href;
    var title=e.title;
    opml += outline(title, href);
  });

  opml += `    </outline>
  </body>
</opml>
`;
  console.log(opml);
})();