2021-05-04 ScrapboxのプロジェクトAでの最近1日の更新からキーワードを拾い、プロジェクトBからそのキーワードを含むページを提示する実験
- 今回のケースではAがこの公開プロジェクト、Bが400ページ程度の非公開プロジェクト
良い効果が得られるようなら1日1回定期実行する
文脈
やったこと
- ✅publicの最近更新されたページを取得
- ✅その内容からキーワードを抽出
- とりあえず明示的にブラケティングされてるやつでいい
- APIで取れる
- ✅別のソースから、そのキーワードを含むものを見つけて提示する
- JSONにエクスポートしてから自前で検索する方法と検索APIを叩く方法がある
- 今回は検索API
- 提示の仕方
- privateにページを作る
- privateプロジェクトの検索結果をpublicにはできないため
- SlackでDMを送るという選択肢もある
- ✅今回はprintして手でScrapboxに貼り付けた
- privateにページを作る
結果
- 良さげ
- 大した情報の入ってない非公開メモ置き場だと思ってたが意外と面白いページがあった
- 実験でビデオ会議の録音を文字起こししたやつとかがヒットした
- 24時間の活動から抽出されたキーワードは105件
- 検索してヒットした件数は11件
- 検索APIによってヒットした行が得られる
- イマイチなキーワードがある
- 「研究」「組織」「Scrapbox」「未踏ジュニア」
- ヒット件数が多すぎる
- ヒット件数が一定以上のものは「たくさんヒットした」という情報だけ表示する方が良い
- 元プロジェクトでは双方のページでブラケティングしてある場合のみ繋がることで大量にならない
- 4件中3件はブラケティングしてあった
- なので、検索結果が多い場合はその結果を表示するのではなく件数のみにし、代わりにその検索キーワードをブラケティングすれば良い
- 検索キーワードのブラケティングは常にやる
- むしろ「既にリンクがあるか?」を見て、あれば検索しないのがよいか?
感想
- 割と良い
- 他にも色々面白い内容が死蔵されてそうなプロジェクトがある
- 対象プロジェクトは複数にしたい
追加実験
- 自分のpublic/private連携を主に考えいたので片方がprivateで結果を公開できなかった
- 両方publicならできると気づいた
- しかもエクスポートではなく検索を使ってる今のバージョンなら他人のプロジェクトであっても特に許諾なく対象にできる
面白さ:
- /rashitamemo/面白さ(query): 24 hits 発見:
- /rashitamemo/発見(query): 88 hits 気づき:
- /rashitamemo/気づき(query): 10 hits 自発的:
- /rashitamemo/自発的(query): 11 hits 知的生産:
- /rashitamemo/知的生産(query): 100 hits Puppeteer:
- /rashitamemo/Puppeteer(query): 1 hits
- puppeteer:
- puppeteer
- GoogleChrome/puppeteer: Headless Chrome Node API
-
Puppeteer is a Node library which provides a high-level API to control headless Chrome or Chromium over
- [https://codeburst.io/a-guide-to-automating-scraping-the-web-with-javascript-chrome-puppeteer-node-js-b18efb9e9921
- A Guide to Automating & Scraping the Web with JavaScript (Chrome + Puppeteer + Node JS)] Heroku:
- /rashitamemo/Heroku(query): 1 hits
- TODO.txt:
- [/rashitamemo/Headless Chrome](https://scrapbox.io/rashitamemo/Headless Chrome)([query https://scrapbox.io/rashitamemo/search/page?q=Headless Chrome]): 1 hits
- puppeteer:
- GoogleChrome/puppeteer: Headless Chrome Node API
-
Puppeteer is a Node library which provides a high-level API to control headless Chrome or Chromium over
- It can also be configured to use full (non-headless) Chrome or Chromium.
- ヘッドレスなChromeをコマンドラインから操作可能的なものだと思われる。
- [https://codeburst.io/a-guide-to-automating-scraping-the-web-with-javascript-chrome-puppeteer-node-js-b18efb9e9921
- A Guide to Automating & Scraping the Web with JavaScript (Chrome + Puppeteer + Node JS)] 研究:
- /rashitamemo/研究(query): 100 hits MVP:
- /rashitamemo/MVP(query): 1 hits
- ブログ2.0:
- fbclid=IwAR3LXwnspP4W9R79YvAjlC760Q62f_kgBMVpUmRP9WmYok8_xWEMVLkjyZM] 豆論文化:
- /rashitamemo/豆論文化(query): 1 hits
- 2021年4月の倉下アウトプット:
- /rashitamemo/キャンプファイヤー(query): 1 hits
- 2019年6月のアイデアライン: - [人生を救ってくれた最強の時間管理術「タスクシュート時間術」をもっと世に広めたい - CAMPFIRE (キャンプファイヤー) https://camp-fire.jp/projects/view/162572 ゲーテッドコミュニティ:
- /rashitamemo/ゲーテッドコミュニティ(query): 3 hits
- ゲーテッドコミュニティ:
- ゲーテッドコミュニティ
-
ゲーテッドコミュニティ(英語: Gated community)とは、ゲート(門)を設け周囲を塀で囲むなどして、住民以外の敷地内への出入りを制限することで通過交通の流入を防ぎ、また防犯性を向上させた住宅地
ゲーテッドコミュニティという概念自体は目新しいものではなく、以前から租界や米軍ハウス等があり、再定義したに過ぎない。日本においては、ゲーテッドタウン[1]やゲート・コミュニティ[2]とも表記される。
- ウォールドガーデンモデル:
- ゲーテッドコンテンツ:
- /rashitamemo/組織(query): 84 hits 衰退:
- /rashitamemo/衰退(query): 8 hits 排除:
- /rashitamemo/排除(query): 14 hits Scrapbox:
- /rashitamemo/Scrapbox(query): 100 hits
出力するプロジェクトと検索対象プロジェクトが異なるケースを想定漏れしてたので更新した
- rashitamemoからの引用に含まれる
[1]
が検索キーワードになってしまっている 〜
にするべきか。今はとりあえず手で直した- 機械の出力を手で直して長期間メンテすべきではない
- 今は実験なのでやってるだけ
- このプロジェクトのリンクを混乱させるのでいずれgistとかに追い出す
- 何もしなければ1日後に上書きされて消えると良い
- 有用なリンクがあれば、別のページにメモすべき
- 今は実験なのでやってるだけ
面白さ:
- /shokai/面白さ(query: 1 hits)
- /shokai/リモートワーク:
- (やり方に面白さを求める必要があるのか?) 発見:
- /shokai/発見(query: 25 hits) 気づき:
- /shokai/気づき(query: 3 hits)
- /shokai/死んだテキストを置いておく倉庫にしない:
- めんどうくさい手順を踏むと、なぜか仕事やってる感や、謎の満足感を得られてしまうので気づきにくいけど、完全に無駄です
- /shokai/天ぷらたかお:
- 横浜のジョイナスにも店がある事に気づき、以後2週間に1回ぐらい行っている
- /shokai/Milkcocoa:
- そして自分が使ってないデバイス用のライブラリを作るやる気が一切沸かない自分の性質に気づき、以後、自分が使う物しか作らないことを決意した Heroku:
- /shokai/Heroku(query: 39 hits) Headless Chrome:
- [/shokai/Headless Chrome](https://scrapbox.io/shokai/Headless Chrome)([query https://scrapbox.io/shokai/search/page?q=Headless Chrome]: 1 hits)
- /shokai/roppongi.js#1:
- Headless Chromeのライブラリを作ったら2000starついた by yujiosaka
- https://speakerdeck.com/yujiosaka/hetudoresuchromedekurorawozuo-tutahou-falsehua-1
- https://github.com/yujiosaka/headless-chrome-crawler 研究:
- /shokai/研究(query: 26 hits) 1:
- /shokai/1(query: 100 hits) 2:
- /shokai/2(query: 100 hits) 組織:
- /shokai/組織(query: 14 hits) 衰退:
- /shokai/衰退(query: 1 hits)
- [/shokai/Mob Programming](https://scrapbox.io/shokai/Mob Programming):
- /shokai/排除(query: 7 hits)
- /shokai/インターネット上の言葉遣いが荒くなるのは推薦サービスが短期的なせい:
- /shokai/承認欲求の刺激につながる機能を全て排除する:
- 承認欲求の刺激につながる機能を全て排除する
- /shokai/wikiでページのURLをIDにすると絶対にうまくいかない:
- WiKi内にえらい人・管理人が産まれて、編集する前にお伺いを立てなければならなくなる要素を全て排除したい
- /shokai/プレスリリース:
- これと、承認欲求の刺激につながる機能を全て排除するという思想がバッティングしているので
- /shokai/人間の顔を見ると理性を失ってしまう:
- そういう、人間のリアルな顔が見える事で曖昧になる要素を排除する為にScrapboxを使っている
- /shokai/思考をブロックする要素を減らしたい:
- よくあるエディタのように編集モード・表示モードの切り替えは思考のブレーキにしかならないから排除してあるし、他にも文字装飾のツールバーがあったりするとテキストを書いている時間よりも文字サイズをいじっている
- 時間の方が多くなって加速感が無くなるので徹底的に排除している。
- /shokai/毎回記憶がリセットされるメディア:
- /shokai/Scrapbox(query: 100 hits) はてなダイアリー:
- /shokai/はてなダイアリー(query: 1 hits)
- /shokai/インターネット上の言葉遣いが荒くなるのは推薦サービスが短期的なせい:
- 意見のやりとりははてなダイアリーやはてなブログでやるべきだと思う dotenv:
- /shokai/dotenv(query: 2 hits)
- /shokai/dotenv:
- dotenv
- http://npmjs.org/packages/dotenv
require('dotenv').load()
で読み込める
- /shokai/dotenvify:
- dotenvify
- https://www.npmjs.com/package/dotenvify
- envifyの実行直前にdotenvを実行するBrowserifyのtransform
$ browserify -t dotenvify src/index.js -o build/index.js
.env
が無い時にdotenvはwarningsを出す- silentオプションで抑制できるが、dotenvifyにはdotenvにオプションを渡す機能がない
- 機能追加した https://github.com/shokai/dotenvify/tree/dotenv-options
$ npm i shokai/dotenvify#dotenv-options -save
$ browserify -t [ dotenvify --silent --path local.env ] src/index.js -o build/index.js
Secure:
- /shokai/Secure(query: 1 hits)
- [/shokai/Githubのpull requestをScrapboxに貼る時のbookmarklet](https://scrapbox.io/shokai/Githubのpull requestをScrapboxに貼る時のbookmarklet):
- Use secure protocol instead of http #79
- [https://github.com/shokai/tw/pull/79 Use secure protocol instead of http by sachin21 · Pull Request HttpOnly:
- Use secure protocol instead of http #79
- /shokai/HttpOnly(query: 2 hits)
- /shokai/HerokuでSocket.IOをやっていく:
- Version=1; Expires=Tue, 15-Nov-2016 11:51:24 GMT; Max-Age=86400; Domain=staging.scrapbox.io; Path=/; HttpOnly
- /shokai/sticky-session:
- Version=1; Expires=Tue, 15-Nov-2016 11:51:24 GMT; Max-Age=86400; Domain=staging.scrapbox.io; Path=/; HttpOnly requests:
- /shokai/requests(query: 1 hits)
- /shokai/オレオレSSL証明書で運用されているGHEにPassportでログインする:
- [Adding ability to specify an agent for OAuth2 requests by PhilipSkinner · Pull Request #324 · ciaranj
感想
- 自分が興味あってメモした技術的キーワードに関する他の人の発表資料が出てくるのはいいな
- 我々同じ日本語を使ってるつもりでいるが、自分の考えをアウトプットする時の単語のチョイスには個々人の違いがある
- 僕のプロジェクトの方では「人のグループから人が取り除かれること」を「排除」と表現している(これ自体も僕の言葉ではなく、人のを見てなるほどそういう表現があるかとメモしたもの)
- 一方でshokaiは「ソフトウェアから有害な機能や特徴を取り除くこと」を指して使っている
- 比較することで違いに気づく
- 表示されたキーワードを見て、色々ページをいじると、当然明日も「更新されたページ」になり、同じものが表示される
- これはきっと退屈
- 一度出したものは覚えといて1週間〜1ヶ月出さない、とか。
source https://github.com/nishio/scbot/blob/0.2/scbio.py#L113