2021/02/06
2021/02/05←2021/02/06→2021/02/07
takker.icon
また起きてしまった
昨日04:00に寝たのだから、眠れなくて当然か
寝たいのに寝れないのつらい
そんなときもありますdnin.icon
久々に外部projectの入力補完を使った
今まではずっとprivate projectの補完のみで使ってた
/programming-notes/WebWorker用asearchのテストコードを使って、適当な語句で曖昧project横断検索をやってた
よく見ているprojectから知らないページと関連ページが出てきて面白い
未知の島を見つけた気分
頻繁に使うと思考の毒だが、たまにやってみると刺激になっていいかも
とくにinput不足のときはやるとよさそう
外部リンク記法を踏むとリンクを<tab>でジャンプできることを発見した
tabindexが設定されているみたい?
https://gyazo.com/368d87ea9bd1530ae1b1ed5a445f45b5.mp4
ほんとだ…yosider.icon
ちゃんとaccessibility考慮されててえらいkuuote.icon
外部リンクを踏まないと使えないって、これは意図された機能なんだろうか…?yosider.icon
十中八九意図しない機能だと思いますtakker.icon
dnin.icon
手を動かさずにドキュメントを黙って読む時間作りたい
モニターの輝度を下げたら気分が落ち着いた
今までが明るすぎたようだ
#Metoo yosider.icon
消費電力を半分以上削減できそうだ
最近TaskNaviをscrcpyでPCに常駐させるスタイルが気に入ってる
自分しか使わないツールはどんな手段でもいいと思う
モバイルアプリしか無いなら、PCから操作できればいい
ストアから消える可能性があるので、今からクローンを作る
Djangoで
自分しか使わないので認証は無し、クソナガURLで対応する
プッシュ通知のライブラリもあるらしいので、見積もり超過や予定も通知できそう
昭和20年の5銭を発見!!
/icons/すごーい.icontakker.icon
布団敷いて本格的な昼寝をした
脳内時計が1970年1月1日 00:00になった
午前中にやりかけてたことを思いっきり忘れることができた
ドキュメントを見て作業続行したので雑念がない
昼寝は良い
kuuote.icon
Zettlr試してるけどUIめっちゃきれい
Markdownなのがちょっと残念だけどwikiっぽいリンクが使える等全体的にScrapboxに似ている
Scrapboxに出会ってなければ常用してたと思う(がこれを聞いたのはScrapbox上)
リンク記法は設定で変えられるのでScrapboxみたいにできると書こうとして試したら秘孔を突いてしまった
よくよく考えるとMarkdownのリンク記法と被っている
JavaScript、正規表現のmatch結果の範囲をindexで取るということさえ一手でできないのか、fuck
文字列として切り出せるなら範囲知ってるでしょうに
取れる処理系もあるらしいけどV8は無理
世界一使われているであろう処理系が無理だということは無いのと同じ
matchしたものでfindIndexしたらいいっちゃいいけど無駄が多い
正規表現のmatch結果の範囲は何を示していますか?
String.prototype.match()でできたはずですがtakker.icon
code:js
'https://scrapbox.io/villagepump/日記'.match(/^(https?):\/\/([\.\w]+)\/(.+)\/(.+)$/)
// → Array(5) [ "https://scrapbox.io/villagepump/日記", "https", "scrapbox.io", "villagepump", "日記" ]
matchした文字列の、元の文字列内での位置ならString.prototype.matchAll()で取得できます
code:js
...'https://scrapbox.io/villagepump/日記\nhttps://scrapbox.io/takker/javascript+)\/(.+?)\/(\S+)/g)]
↓見やすくしたver.
code:js
(() => {
const regexp = /(https?):\/\/(\.\w+)\/(.+?)\/(\S+)/g;
const str = 'https://scrapbox.io/villagepump/日記\nhttps://scrapbox.io/takker/javascript http://example.com/foo/bar';
const matches = str.matchAll(regexp);
for(const match of matches) {
console.log(Found ${match[0]}: start=${match.index} end=${match.index + match[0].length - 1});
}
})();
/* →
Found https://scrapbox.io/villagepump/日記: start=0 end=33
Found https://scrapbox.io/takker/javascript: start=35 end=71
Found http://example.com/foo/bar: start=75 end=100
*/
matchした文字列のキャプチャグループの位置は、さすがに一発では取得できませんね
本当に欲しかったのはそれですkuuote.icon
match.indexの部分がOptionalで、V8には存在しないんですよね
Chromeの開発コンソールで実行してみましたが、match.indexは存在するみたいですtakker.icon
あ、ほんとだ…(Denoは返ってこないので同じ結果になると思ってた)
Node.jsにもちゃんと存在する
同じエンジン使ってるはずなのに結果違うのか、難しい
Denoもっと使いたいけど、Web APIで実装が不十分な箇所があるのがつらいtakker.icon
TextDecoderとか
進捗を出したぞ
https://gyazo.com/140f8b13a49ae5c655b2ecf89f17c994
結構実装大変だった
Scrapboxと違ってCSSで隠している
そちらのほうが選択範囲の実装が楽そうですtakker.icon
微妙かも
選択範囲自体にはそこまで影響しないと思ってるkuuote.icon
確かにtakker.icon
/takker/scrapbox-selection-2を実装してた頃を思い出したtakker.icon
文字が隠れたり現れたりすることで、文字の位置から選択範囲の特定ができず大変苦労した
わかるkuuote.icon*5
動的に切り替わるのと隠れてるのとでめちゃ大変
個人用Wikiとしては普通に使えるレベルになってきたのでこいつ自身のIssue tracker代わりにしてるけど作業の効率がだいぶ上がってる
GitHub Issueやplain textより整理が大幅に楽で、思考をまとめられるので作業にとりかかりやすい
これはScrapboxのprivate projectでも可能なのでやってみてほしい
/icons/いいぞ!.icon
方法論は/shokai/GitHub Issueを捨てるが詳しい
皆さんご存知だとは思いますが
ここの方々みんなScrapboxの哲学は全部読んでそうなイメージある
これほぼ普通のscrapboxの使い方と同じで、特別なことは全然してなかったりするtakker.icon
普通に使ってもissue trackerに使えるのすごい
それなkuuote.icon
部分的にしか従ってないけどw
2021/02/05←2021/02/06→2021/02/07