@sta 2021/01 - 2021/02
from @sta
/staus/WORK-list-pages-with-specific-tag#603a26e479d3a90000492cd5
「今開いているタイトル名」はscrapbox.Page.titleで取得するのが簡単です
/sta/指定タグを含むページ名の一覧をつくるUserScript?
できそうだったので作りましたtakker.icon
選択範囲内にある一番最初のリンクの逆リンクを探して、clipboardにコピーします
雑コード
もし後日UserScriptを作る予定であったのなら、ネタをとってしまい申し訳ないです。
ありがとうございますsta.icon
(まだまだUserScriptに慣れてないので腰が重たい……
Promise.all使われてますね
ここでPromise..all使う利点は、実をいうとほとんどありませんtakker.icon
どのみちfetchが終わるのを一つずつ待っている
/icons/たしかに.iconsta.icon
ではなぜPromise.allを使ったかというと、単に元のコードを直すのがめんどくさかったからですごめんなさい
/takker/scrapbox-api-helperのコードからそのままコピペしました
X-Following-Id これ前も見た気がする(被リンクを得る方法
/sta/scrapbox project被リンク数ヒストグラムのpythonスクリ#601f80b779d3a900005a5951
({xxx}) これもメモした覚えある
名前付き引数代わりに便利なので多用している /programming-notes/引数分割束縛#60100b131280f00000df988f
/staus/list-pages-with-specific-tag#6037716d79d3a90000990490
そんなはずはないのですが……takker.icon
Firefoxで動作確認しています
私のFirefox、わりかしイレギュラーなのでたぶん環境固有の問題な気がしますsta.icon
/icons/そうなのか.icontakker.icon
code:js
scrapbox.PageMenu.addMenu({
title: 'Copy back links',
image: '/assets/img/favicon/chrome-icon-192.png',
onClick: async () => {
const text = document.getElementById('text-input').value;
if (!isLink(text)) return;
const {project, title: link} = getLink(text);
console.log(Searching for back links of [/${project}/${link}]...);
const backLinks = getBackLinks(link, await fetchAllLinks(project));
if (backLinks.length === 0) {
console.log('No back link found.');
return;
}
console.log('Copy back links: ', backLinks);
navigator.clipboard
.writeText(backLinks.map(link => project === scrapbox.Project.name ?
[${link}] : [/${project}/${link}]).join('\n'))
.then(() => console.log('Copied.'));
},
});
const isLink = text => /\^\+\]/.test(text);
const getLink = text => {
const linkText = text.match(/\[(^\]+)\]/)1;
const temp = linkText.match(/\/(-\w+)\/(.*)/);
if (temp) return {project: temp1, title: temp2};
return {project: scrapbox.Project.name, title: linkText};
};
function getBackLinks(targetLink, linksData) {
return linksData
.filter(({links}) => links.some(link => lc(targetLink) === lc(link)))
.map(({title}) => title);
}
async function fetchAllLinks(project) {
let followingId = null;
const linksData = [];
const promises = []; //処理待ち用
do {
const response = await (!followingId ?
fetch(/api/pages/${project}/search/titles) :
fetch(/api/pages/${project}/search/titles?followingId=${followingId})
)
followingId = response.headers.get('X-Following-Id');
promises.push(response.json().then(links => linksData.push(...links)));
} while(followingId);
// 全てのリンク情報を配列に格納し終わったら返す
await Promise.all(promises);
return linksData;
}
function lc(title) {
return title.toLowerCase().replace(' ', '_');
}
/sta/Scrapboxの編集は必ず手作業で行う#5fba0cf379d3a90000e04ac0
たぶん/shokai/WOM(Write Only Member)です
sta.iconおお、ありがとうございます
自分の脳を経由させる
/rashitamemo/rashita.iconさんのとこで一番近そうなのはこれですが、おそらく見かけたのはこれではないと思います
/rashitamemo/結城メルマガYMM405の感想#5e0b1bf99dc7d80000a25505
これかも
知識をリンクでたぐり寄せる〜Scrapboxにおけるメモのリファクタリング実践例2〜 – R-style
/daiiz/【daiizScript】プロジェクトを跨いだテキストプレビュー機能の搭載見送りについて
via /takker/外部プロジェクトの関連ページをpopup表示するUserScript
/sta-userscriptpractice/作業ログ
ES Modules (importとexport)についてはここが詳しいです
モジュール, 導入
/sta-userscriptpractice/作業ログ#5ff59d5a79d3a90000ca47ee
exportは無理ですがimportならdynamic importという方法があります
Javascript関連の情報をまとめるwikiとして/JavaScriptTipsがあります。ここに調べたことを書き込むのもいいかもしれません
sta.iconあざっす
scrapbox.io/webというのもあるんですねyosider.icon
すでに調べて分かってるかも知れませんが補足しておくと、実際にプログラムを実行しなくても解析するだけで何をimport/exportしているのかが分かるように意図的に文字列リテラルしか受け入れないような仕様になっています
スクリプトのfetchとか、tree shakingとかの最適化が行いやすくなる
/sta/画像エイリアス文法はこの画像を見る限りすでに検討されているようです
/rakusai/Scrapboxでサマーインターンを受け入れた話#5bd2e887efa18e0000c32a61
/icons/iine.iconsta.icon
/sta/Scrapboxで絵文字#5ff8f6f979d3a9000090aa40
/icon2/icons2
絵文字の入力について→icon*nでアイコンをたくさん表示できる#5fce53e0e5172d0000bdb755
すんばらしいですsta.iconsta.icon
/sta/ノートPCを机に置かない#5fdda4f779d3a90000ff10eb
Mini-ITX & mobile displayという手段
おお、こういう手段もあるんですね、あざっすsta.icon
ミニマリストなので小さくできる手段は欲しい
ノートPCではなくマザーボードだけで動くというイメージでしょうかsta.icon
むきだしにしたMini-ITX(というマザーボード)とmobile displayだけでPCになる
たぶんケースもある or ないならDIYすると思うが
PCケースもありますよtakker.icon
Era ITX — Fractal Design
Mini-ITXなのに18,000もするのか。さすがFractal Design。
価格.com - 最大対応ファクター:~Mini-ITXのPCケース 人気売れ筋ランキング
あざっすsta.icon
あざっすアイコンほしいな
作った
/icons/あざっす.icon
cf. Slack絵文字の作り方
/icons/あざっす.iconsta.icon
SVGという手段があるんですね
ox
o 普通のノートPCよりはるかに省スペース
o ハードの性能も高い?
o 拡張もできる
スロットは多くない(まあ小型なので仕方ない
x たぶん自作パソコンの世界で手先の器用さが要求される
ATXやMicroATXなどに比べて組立にはより注意と技術を要する。 ATXやMicroATXなどに比べて組立にはより注意と技術を要する。
x mobile displayは自立させるための装置が別途必要
としたら普通のモニタでいいか
でも引越し時は「モニタ」よりも「mobile display + 自立装置」の方が持ち運びやすいはず
/emoji/negative squared cross mark.icon常にケーブルを接続する必要がある
土手を自転車で走っている途中に思いついたことをその場で書くことができなくなる
そもそもそんなことするやついない
/sta/英語勉強したい#5ffccfed79d3a900000beaf4
結構おせっかいな指摘です
無視しておk
一部間違えてるかも
いやかなりありがたいですsta.iconsta.icon
A level where you can write in English as smoothly as you usually write in Scrapbox.
たぶんA level on which you can write in English as smoothly as you usually write in Scrapbox.
でもon whichはwhereで代替できないはずだったんだけど
もちろん意味は十分にわかる
文法が気になる
下の解説読んで「比較級、そういえばそんなのもあったなぁ(やべえ全然文法覚えてねえ)」となっていて、もっと手前でガチらないとダメそうな予感!sta.icon
as soon as I canのように「できるだけ」を意味する定型句として捉えることもできる。一方で比較級で考えることもできる
1. 比較の軸を把握する。ここではsmoothlyが比較の軸
you can write in English smoothly.
you usually write in Scrapbox smoothly.
2. asを挿入する
you can write in English as smoothly.
you usually write in Scrapbox smoothly.
3. 第二文から比較の軸smoothlyをasに置換し、先頭に移動させる
you can write in English as smoothly.
as you usually write in Scrapbox smoothly.
このasは関係詞の役目をしていると個人的に解釈してるtakker.icon
4. 合体させる
you can write in English as smoothly as you usually write in Scrapbox.
今回はこれ以上変形できないが、場合によってはSやVなどを省略できる
これもおせっかいですが、楽しめる程度の時間・頑張りの範囲で勉強すればいいと思いますよyosider.icon
楽しめないと勉強なんてそうそう続かないと思う
(別にyosider.iconが英語できるわけではないので参考程度にしてください)
/icons/iine.iconsta.icon
英語の後から後から修飾していく書き方
staというと、とりあえずすた丼を想起する
初耳sta.icon
吉野家とすき家と松屋しか知らなかった
味が濃くて廃人になるぜぇ
それとすたみな太郎
staはイタリア語でisです(豆知識)
w3hr5wtyueo9isohsxfpv85hyak53by5llnw7607re6fck2bn7user1.icon
ruc6gs118eta7xem9u7moj30qxtp5vbmfdz1bqsaasaofu0uudmeah28wxehzn63y0s6pf8fkllzj9g4z9pgwhej4z6uc231sld7sta.icon
3dbtnn9clpl7bb4mgp2p02k5uq2vgrz9uh8ouoql3hy5ish4np1ccsxpau1n5tmm523ja0ij79s19l61qykswnow7vq2f2eqvofbj34o614hokk8q9cumdaf97h3wzenm0dbu756efdtp3rmi96uc6user1.icon
k2kgrzd8rde5zdhn521j68ty7rcn2sta.icon
公開鍵暗号で秘密のメッセージやり取りした場合、どう見えるかのテスト
(これはただ乱数でつくっただけ)
暗号化されたメッセージの長さは元のメッセージの長さに応じて変わるんだろうか?
ハッシュ化ではなく暗号化なので変わるかなぁと
暗号化できるメッセージの長さに上限はあるんだろうか?
これは暗号化ライブラリの実装に依存する気がする
/sta/scrapbox-dailytasklist-specs#6003eaee79d3a90000e0e13c
/takker/1日の時間細分図で分けるのもありtakker.icon
気象庁が使ってるやつなんてあるんですねsta.icon
3h単位はわかりやすそう
/sta/UserScript#6004235e79d3a90000a15e23
あんなに長くなったまま放置してたのは自分です。すみませんtakker.icon
ということでばらしました
/scrapboxlab/APIの書式
/icons/あざっす.iconsta.icon*2
仕事が早い
/sta/Scrapboxで範囲選択中にIMEをオフにしたい
できました
/takker/IME onの時、キー入力をScrapboxに渡すUserScript
おお、ありがとうございます!sta.icon
https://developer.mozilla.org/ja/docs/Web/API/Element/compositionupdate_event
IME拾えるイベントなんてあるんですね
(ないやろと思って最初から調べてなかった(そういうとこやぞ
ちなみに日記でcompositionupdateの話がでてきてたりします
リンク張ってなかったので今張った
自分用UserScript使う習慣もないので、これを期に取り入れていきたい
IME cancelも実装できました!takker.icon
blurとfocus使うだけでいけた
元コードを更新してあります
おおおおおおおおsta.icon
強制的に確定かー、なるほど……
2022-01-04 00:45:18 Chrome for Androidだと機能しないみたいですtakker.icon
そのうち調査します
/sta/UserScriptでメッセージを表示したい
/takker/Shadow DOMの練習にあるcomponentとかどうでしょうかtakker.icon
/ci7lus/tweet-card-upload-3#5f781d65ae0f140000477fdeをWeb Component化しただけ
見た目や位置を修正する必要はありそうですが
/icons/あざっす.iconsta.icon 内部がまだちんぷんかんぷんですが、表示したいときは使ってみます
自力じゃ明らかに難度エグかった
ここの解説がわかりやすいです
練習ログ:/takker/Custom Elementsの練習
手動かすの大事ですね(なるべく早く理解したい気持ちが先行してしまう
なるほど、ブラウザの組み込み機能だったのか
2022-01-04 00:45:45 このアドバイスは非推奨ですtakker.icon
しち面倒くさい
/shokai/status barに文字カウントを表示する(event版)のほうが簡単かつわかりやすいのでおすすめです
/sta/UserScriptをポンポン使いこなす要領が必要かもしれん
/programming-notesに参加してみませんか?
初心者向けの資料があるというわけではないですが、複数人Projectなので、UserScriptで疑問があれば相談したりアドバイスを出したりできると思います
一人でUserScriptを書くよりも楽だと思いますtakker.icon
もちろん、一人だと個人Projectで独創できるという利点があるので、無理に複数人Projectを勧めるようなことはしません。
迷ってますsta.icon
けど個人Projectで独創タイプなので、すぐにはしないかなぁって感じです
プログラミングで井戸端できるのも楽しそうではある
文芸的プログラミングと共同編集の組み合わせが難しいのが課題ですtakker.icon
早速ドンピシャでほしかったものが見つかったりしている
/programming-notes/テキストを挿入するUserScript
/sta/scrapbox-dailytasklist-impls#600eb9be79d3a90000fdc3a7
s/logo-cut.svg/logo_cut.svg/です
https://scrapbox.io/assets/img/logo_cut.svg←ロゴ
色がないので、別途色付けする必要があります
それは知らなんだsta.icon
/sta/Scrapboxでページを1件ずつ計n件分取得する実験#600415ca6d08cf002220e95c
Promise.all()で複数のPromiseを同時に走らせられます
あざっすsta.icon
そのキーワード見たことありましたが、そんな意味があったんですね
e.g. /takker/scrapboxの全てのpageを取得する
@にたくさん書き込むのに抵抗がある
/sta/UserScriptでリマインダーを実現する#6006cea93f028c001cf136c8
自分だったらこういう方法を考えるかなーというのを挙げますtakker.icon
Scrapboxのみで済ます
/scrapboxlab/特定ページから情報を読み込んでアラートする
suto3.icon お、それと、 /masui/ScrapboxSaver を組み合わせて
ポモドーロタイマーを作ったよ /suto3/UserScript:ポモドーロテクニック
→Scrapboxでポモドーロテクニック
少し手直しすれば、リマインダーになると思うよ
おお、ありがとうございますsta.icon
Push APIかNotifications APIを使う
通知を実装するためのweb APIらしいです。
takker.iconは使ったことないので、これで実現できるかどうかはわかりませんが、試してみる価値はありそうです
時刻や残り時間をカウントするサーバー立てて、ScrapboxからはPush APIなどでそいつと通信する感じかしら
サーバーでかんたんなアプリ立てる練習になりそう
TamperMonkeyを併用する
Google CalenderやSlackのAPIにPOSTするなど、Scrapboxから外部APIを使えるようになります
なるほど、Tamperさんは知ってましたが、APIにPOSTするみたいなことできるんですねsta.icon
POST自体はTamperMonkeyなしでもscrapbox.io/upload.gyazo.ioへならできます
TamperMonkeyはCSPを無視してAPIを叩くために使います
/programming-notes/ScrapboxにおけるCORB・CORS制限
なるほどsta.icon
/takker/scrapboxで外部APIを使う
mobile端末だと動かないという欠点があります
sta.iconさんは使ってなさそうなので関係かもしれませんが一応捕捉
/icons/あざっす.icon
データの格納はlocal storage一択ですね
/sta/GaaS
GaaS (Government as a Service)と被るのが気になるtakker.icon
被るのありそうだと思ってましたが、やはりありましたかsta.icon
たぶんこんな感じでテキトーに分けると思いますw
意味
1 GitHub As A Storage
2 Government as as Service
もちろん個人projectなので、どの用語をどう定義しようが自由です
ただ、将来Government as a Serviceについてメモするようになったら、使い分けを考えたほうがいいかもしれません
/sta/LinksとPagesの比
リンク比ではありませんが、各projectの被リンク数histogramなら以前作りました
ありがとうございますsta.icon
userscriptでここまでできるんか、思ったらpythonでしたね
p5.jsを使えばuserscriptのみでもいけると思いますtakker.icon
d3-csv-barchart-buttonが一番近いかな
このへんはsuto3.iconさんが詳しいです
ライフゲームのところでも使われてましたね
Tritask のコンセプト - Tritask
これらを扱うのに、従来の画面ベースのツールでは役不足です。のところですが、役不足ではなく力不足などが正しいかと思います(細かい指摘ですみません)yosider.icon
ありがとうございますsta.icon
最初は「いや、合ってる」と思ってたんですが、誤用かなと思って検索
約9割の人が間違えている!!「役不足」の意味、正しく覚えている自信はある? | Oggi.jp
僕が間違ってましたね(よくある)
あとで修正しときます
とりあえず5日後に現れるよう突っ込んでみた
3 2021/02/18 Thu 9 tritask 役不足修正しとく
こういうふうに「今すぐやるのはちょっと」「でも忘れたくない」場合に、さくっと突っ込めるのもTritaskのメリットです(唐突なアピール)
タスクリストからやってきた
https://github.com/tritask/tritask-web/commit/e44b9e4a56f6a71f7ff594cbc2da0d6ecb185a35
GitHub Pagesだと楽でよき
/icons/iine.iconyosider.icon
「変態論」好きですfranky.icon
ありがとうございますw(ちょっと恥ずかしいと思いつつ)sta.icon