複数のプロジェクト間のリンクを見つける
2021-05-04
ScrapboxのプロジェクトAでの最近1日の更新からキーワードを拾い、プロジェクトBからそのキーワードを含むページを提示する実験
今回のケースではAがこの公開プロジェクト、Bが400ページ程度の非公開プロジェクト
良い効果が得られるようなら1日1回定期実行する
文脈
2021-05-04の日記
Scrapboxのprivate→public転送について
やったこと
✅publicの最近更新されたページを取得
✅その内容からキーワードを抽出
とりあえず明示的にブラケティングされてるやつでいい
APIで取れる
✅別のソースから、そのキーワードを含むものを見つけて提示する
JSONにエクスポートしてから自前で検索する方法と検索APIを叩く方法がある
今回は検索API
提示の仕方
privateにページを作る
privateプロジェクトの検索結果をpublicにはできないため
SlackでDMを送るという選択肢もある
✅今回はprintして手でScrapboxに貼り付けた
結果
良さげ
大した情報の入ってない非公開メモ置き場だと思ってたが意外と面白いページがあった
実験でビデオ会議の録音を文字起こししたやつとかがヒットした
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:
タスク管理メソッド「Todo.txt」について勉強してみた | 豆腐メンタルは崩れない
Headless Chrome:
/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([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:
技術なきマネジメントの衰退とその対策 - メソッド屋のブログ
排除:
/shokai/排除(query: 7 hits)
/shokai/インターネット上の言葉遣いが荒くなるのは推薦サービスが短期的なせい:
承認欲求の刺激につながる機能を全て排除する
/shokai/承認欲求の刺激につながる機能を全て排除する:
承認欲求の刺激につながる機能を全て排除する
/shokai/wikiでページのURLをIDにすると絶対にうまくいかない:
WiKi内にえらい人・管理人が産まれて、編集する前にお伺いを立てなければならなくなる要素を全て排除したい
/shokai/プレスリリース:
これと、承認欲求の刺激につながる機能を全て排除するという思想がバッティングしているので
/shokai/人間の顔を見ると理性を失ってしまう:
そういう、人間のリアルな顔が見える事で曖昧になる要素を排除する為にScrapboxを使っている
/shokai/思考をブロックする要素を減らしたい:
よくあるエディタのように編集モード・表示モードの切り替えは思考のブレーキにしかならないから排除してあるし、他にも文字装飾のツールバーがあったりするとテキストを書いている時間よりも文字サイズをいじっている
時間の方が多くなって加速感が無くなるので徹底的に排除している。
/shokai/毎回記憶がリセットされるメディア:
特にwikiの中でもscrapboxは自分が考える速度で書ける、そして思考の邪魔になる要素を排除しているのでオススメ
Scrapbox:
/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:
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:
/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