おもしろいブログやツイッターなどのリンクを集めて巡回するためのページ
ブログなど
https://slacknotebook.com/
https://lowreal.net/
https://de0.hatenablog.com/
次に外出したとき or 通販で買うもの or いずれほしいもの
書籍については ほしい本 に別途
カッターマット
本棚を補強する木
靴
買ったらstrikeする
ピダハン - 「言語本能」を超える文化と世界観
ゾミア: 脱国家の世界史
ぼっち・ざ・ろっく全巻
ゲームエンジン・アーキテクチャ
ルーヴル美術館に行く
民衆を導く自由の女神の本物を見る
オルセー美術館に行く
大英博物館に行く
スミソニアン航空宇宙博物館に行く
↓アイデアリンク集
Gemini CLI が出た https://github.com/google-gemini/gemini-cli が、Google アカウントでログインしようとするとブラウザを開こうとするだけで、認可ページの URL を画面に出してくれないので、SSH のようなターミナルオンリーな環境から使うことができない。
すでにいくつか issue が出ているのでまあそのうち治るだろうけど、はやく使いたかったので以下の手順を実施した
体積あたりの価格を調べよう
IKEA Alex
https://www.ikea.com/jp/ja/p/alex-drawer-unit-on-castors-dark-grey-00588892
14,990円 / (60 * 42 * 7 * 6) = 0.14 円/cm3
マルゲリータ Drawer A3 19段
自分だけが使う Web アプリを小さく作る で、デカい JSON をブラウザで色々検索したいみたいなことがあり、ナイーヴにやるよりもステキな方法として DuckDB-WASM を使ってみたいという思いが、あります
使ってみた、かなり良い感じです
Denoで、といいつつ Deno らしさはあまりないけど
それが Deno のいいところでもある…
このくらいのことが標準APIだけでできると、うれしい
Compression Streams API を使っています
await ReadableStream.from(JSON.stringify(value))
ComfyUI は Stable Diffusion などの画像生成モデルをノードベースの UI で色々カスタマイズしながら動かせるソフトウェア。
環境構築について、なんかあまりプログラミングに明るくなさそうな人が奇怪な note を沢山したためているので、Python/PyTorch がある程度わかる人向けの手順をまとめておく
前提
何かしら Python が動く
システムのやつでも pyenv とかでもいい
これだけで GPU で動いて便利
pacman -S ollama-cuda
systemd 用のユニットファイルもついてくるけど、とりあえず遊ぶだけなら適当に ollama serve で起動しといたほうが楽かな。
#Arch_Linux #llm
Mac の pbcopy / pbpaste が欲しいというだけ
pbcopy
echo hello | xsel -bi
pbpaste
xsel -b
YouTube を見ていたらそういう動画がたくさん出てきており、やったみたくなったのでやる
試しに Dカットされたシャフトに3Dプリントをはめる を作ってみる
#3dプリンタ
OnShape のスクリプティング機能。既存の Extrude とか Revolute みたいな Feature もこのスクリプトによって書かれており、そのコードを読むこともできる
OpenSCAD 的にけっこう色々と書いていくことができるのでドシドシ使っていきたい
#postgresql #bigquery #google_cloud
gzip / zcat でもうほぼテキストファイルと同等みたいに扱えるなという感覚になってきた
なんかのプログラムの標準出力を保存するとき
$ some_command > result.txt
ってやるけど、これを
$ some_command | gzip > result.txt.gz
entr
ファイルの変更を監視してコマンドを実行してくれるコマンドラインツール
http://eradman.com/entrproject/
監視するファイル名を標準入力から流す
これが便利で、 ls とかでパターン指定してまとめて監視できる
息子のDSを折ったのが高嶋ちさ子
ライオンに首を折られたのが松島トモ子
なんでそんなことを…という感じは否めないけど、GitHub Actions 内から自宅のサーバで稼働しているウェブアプリにアクセスしたいみたいなことがあったため、Tailscale の Tailnet を経由してこれを行うことにした
さいわい公式で用意されているのでこれを使う
https://github.com/tailscale/github-action
#geoguessr 攻略情報
まあ有名どころの都市名は覚えればいい話なんだが、めちゃくちゃローカルな村落の名前が一定の共通点を有しているケースがある。
以前注目したもの:
デンマークには Astrup という地名が2つある
オランダの地名における -dam という接尾辞
skeb
Patreon←意外だ
という気がしている
(すごくざっくりした話として)スクレイピングによって取得するデータは、アプリケーション側で正規化されたテーブルがあって、それらを JOIN したレコードまたはレコード達が返ってきていることが主
で、ある程度規模が大きくなると取得してきたデータは RDBMS に入れたくなるのが普通だと思う
たとえば、掲示板サイトからこういう JSON をスクレイピングで取得したとする
{
ざっくりと、数万〜ページくらいを取得したいケースを想定している
最重要:サイトに負荷をかけすぎない
○○秒空ける、ではなく、どの程度のリクエスト頻度であれば自然か?を考えるのが重要
同じサイトであっても、HTML ファイルを Apache が返しているだけなのか、裏で PHP がごちゃごちゃやってるのか、とか
検索結果のページとかは裏で比較的重い処理が走っているだろうと推測できる
リモート会社員を1年やった結果思いついたアイデア
「この曜日のこの時間は Slack のこのチャンネルに集合してテキストでリアルタイム会議する」ということをやりたい
いいところ
ログが残る!(そして検索できる)
議事録を作りやすい
ツイキャス API をいじっていて、外部からの WebHook を受け取りたいみたいなことを思ったが、さすがに自宅の HTTP サーバを全世界に公開したくはないのでなんとかしましょう
おおまかな流れは以下のとおり
VPS を借りる
TCP トンネリングを使って VPS 上のポートと LAN 内のマシンポートをつなぐ
ngrok 的な
いわゆる BI ツールというやつ
気付き
Chart の設定時、JavaScript の数値の限界( Number.MAX_SAFE_INTEGER )を超える Filter が "SIMPLE" モードでは設定できないので、その場合は CUSTOM SQL を使う必要がある
もう BigInt とか無条件で使っていい時代であるはずだしPR 出したい気持ちがあるが、しかし、、
#アイデア
オリジナルの動画は 6500 フレームくらいあるらしい
1フレーム1週間あるので、6500 / 52 = 125 年くらい
余裕じゃん
API あるのか?
YouTube の動画のタイトル、【どうでもいいこと】本題【どうでもいいこと】みたいな構成になっていることが多いので、どうでもいい部分を消すスクリプトを書いた
0.25秒インターバルくらいで実行しまくればだいたい気にならなくなる
for (const e of document.querySelectorAll('yt-formatted-string#video-title')) { e.textContent = e.textContent.trim().replaceAll(/(^【.+】(?=.))|((?<=.)【.+】)/g, ''); }
尋常じゃなく小さい UMPC を作りたいという #アイデア
可能か?
Arduino か何かでシリアルコンソールを自作すれば良い気がする。
RPi からのシリアル出力をディスプレイ信号に変換して LCD を制御し、
キーボードからの USB HID 入力をシリアル信号に変換して RPi に送れば良いのでは
自宅に置いておくと面倒なことも多く、誰かがホストしてくれてるやつを使いたいという気持ちに
自宅でも稼動させつつ冗長にみたいなものも目指したい
要件
できるだけ安く
ストレージで 10〜30GB くらいあるとうれしい
https://github.com/sosedoff/pgweb
PostgreSQL 用の簡素な web クライアント。便利
結果を Google スプレッドシートに貼りたいので Run Query したときに TSV をクリップボードにコピーする機能を付けた
Linux で動かして local address で Windows から見るみたいなことをすると非 secure context になりがちなので、Clipboard API が使えなかったら古の execCommand にフォールバックさせるように、、、
なぜそんなことがしたいか?
データ節約
ギガがね
概要
自宅の PC で yt-dlp で YouTube につないで音声だけ読む
PostgreSQL で COPY(SELECT ROW_TO_JSON(foo) FROM foo) TO '/output.jsonl' みたいな感じでテーブルを JSON Lines にダンプしようとすると
{"str":"hello\\nworld"}
みたいな感じでバックスラッシュによるエスケープが2重になってしまう。本来は
{"str":"hello\nworld"}
になってほしい。
SELECT TO_TIMESTAMP(CAST((CAST(1290868000286678077 AS BIGINT) >> 22) + 1420070400000 AS FLOAT) / 1000);
これでいいのか…?
キャストと割り算で精度が落ちたりとかしてない…?
#PostgreSQL
こういうのを集めたい
https://x.com/search?q="記述トリック"&src=typed_query&f=live
#誤り
LoL とかで有名な Riot Games が運営する FPS ゲーム。CS シリーズとか AVA みたいなジャンルのラウンド制のアレ。いわゆる爆破。
感想
めちゃくちゃむずい。まだ20時間くらいだけど、たぶん500時間くらいやらないと何もわかってこないんだろうなという感じ
1ゲームが長くて疲れる
これまでの学びなど
PostgreSQL にデカめのデータを入れて重めのクエリを投げて遊んでいたら上記のような怒られが発生した
なんかメッセージ的にディスクっぽいなと思ったら /dev/shm が足りないらしい
Filesystem Size Used Avail Use% Mounted on
tmpfs 7.8G 25M 7.8G 1% /dev/shm
足りてるが…
便利、これです https://wiki.archlinux.jp/index.php/Tmux#systemd_.E3.81.A7.E8.87.AA.E5.8B.95.E8.B5.B7.E5.8B.95
[Unit]
Description=Start tmux in detached session
[Service]
Type=forking
経緯
すごい時間がかかるコマンドの実行をしたとき、終わったら通知したいみたいなことがある
子プロセスなら wait でいいんだけど、そうじゃないこともあり…
pid 12345 is not a child of this shell で怒られる
$ super_time_consuming_command; notify 'done' とかすればまあいいんだけど、忘れがちですよね
chsh しろよという気もするけど、 NIS で /etc/passwd を管理していると Zsh がないサーバにログインしようとしたときに死ぬので、ログインシェルを Bash にしつつ、可能なら Zsh に切りかえるという運用が大事になってくる。
いい加減 NIS とかやめなさいよという気もするが、、、
if [ "$TERM" = "dumb" ]; then
echo -n
else
CT スキャナは通常 X 線を使うが、すごく明るい可視光を使えば半透明の物体の CT スキャンはできるのではないか?
#アイデア
用意するもの
ステッピングモーター(& ドライバ)と回転ステージ
ハロゲンランプ
むずかしそう
簡単そうな例:Slack
平民、Admin、Owner、Primary Owner の 4 種で固定
難しそうな例:Discord, Google Cloud, AWS
ユーザが任意のロールを作れる
HOME'S
URL 末尾に /list をつけると全国検索になる
https://www.homes.co.jp/chintai/list/
https://www.homes.co.jp/kodate/chuko/list/
SUUMO
そういうサイトはいくつかあるが、
HTML が 1 バイトでも変わったかどうか
描画されたスクリーンが何ピクセル変わったかどうか
みたいな雑なのしかなくて、あまり使い物にならない。CSS セレクタなどを使って、もうちょっとインテリジェントに検知するというソフトウェアがほしい。 #アイデア
どういうのを検知できたら嬉しい?
https://kumpei.ikuta.me/
やるぞ!
Functions で GitHub に置いた HTML を読んで返すというのはどうか #アイデア
適当に編集画面も作れるのでは
Canvas (2d) にメッシュを張って変形させようみたいなやつ
https://github.com/fserb/canvas2D/blob/master/spec/mesh2d.md
所感:疑似的な布シミュレーションとかできそうだ
#javascript
WebCodecs API を使うと H.264 や VP8/9 のチャンクを作ることができる
https://developer.mozilla.org/en-US/docs/Web/API/WebCodecs_API
でも、この API は WebRTC でバシバシ映像をやりとりするために用意されており、ファイルに出力して再生したいみたいなことは考えられていない…気がする
まああたりまえ
なので、 MP4 とか AVI みたいなメディアコンテナの生成はサポートされていない
ブラウザ JS だけで PNG をデコードする のつづき。
2024-09 追記
https://x.com/voluntas/status/1838931379549073841
なんでブラウザで MP4 なの?って思うと思うんですが、WebCodecs があるので、うまくやれば「ライセンスがクリーン」な状態で、動画変換をブラウザかつローカルで完結する仕組みが作れると思っています。そしてそれをやっていこうと思います。
全部読んで知らなかった機能を発見する会 の一環です
https://developer.mozilla.org/en-US/docs/Mozilla/Firefox/Releases
英語版じゃないと3バージョンくらい古いことがあるぜ!
132
131
#javascript
const result = await Promise.all(array.map(async (elem) => await f(elem)));
シーケンシャルに実行したい場合どうすんだろ、、、
たとえば HTTP リクエストを含むなどしており、サーバに短期間に大量のリクエストが飛ぶのを抑制したい場合、など
みんながんばってるな https://www.google.com/search?q=promise+sequential
乗り換え案内のためのグラフ構造 を考えるにあたって駅とか○○線とか時刻表みたいな情報を無料で収集したいという気持ちが強くなった
https://ekidata.jp/
そこそこ揃っている
駅から駅までの沿線距離(直線じゃない)が無い
時刻表とかもない
ブラウザフィンガープリントを記録しておき、未知のブラウザからのアクセス(ログイン)について追加の認証(SMSとか)を要求する、みたいなの色々なサービスで行われてるけど、プライバシーを犠牲にしてセキュリティが高められている例な気がする。
いやちがうか。そもそもフィンガープリントの収集をやめて、既知だろうが未知だろうがあらゆるログイン試行に対してSMS認証を要求すればいいところを、毎回コードを入れさせるのは"面倒だから"(→そして、コンバージョンが下がり、得られるはずだった金が得られなくなるから)ブラウザフィンガープリントを照合して簡単にログインできるようにしてる、
…という気がしている。
関連:実質的なパスワードを増やすことは難しい
「メールでパスワードをリセットできる」というのはある意味でユーザの利便のためにある機能
ここで注意したいのは「アカウントの作成に有効なメールアドレスが必要」というのとは別の話題だということ。
機械的に大量にアカウントを作られるのを防ぐ
なぜ
何をしている?
Tailscale ネットワーク内の VPS に Nginx が動いており、 Stream Module で TCP パケットを自宅サーバにプロキシしている
挙動
しばらくは普通に遊べるが、突然落ちる
https://www.rfc-editor.org/rfc/rfc2743.txt
SOCKS5 プロキシサーバを実装する における疑問
なに?
よくわからないが、 SOCKS5 でサポートする必要があるのでわかりたい
UserScript とかで LAN 内のサービスにアクセスしたいことがある
Firefox ではレスポンスに Access-Control-Allow-Origin: * さえ入れておけばアクセスできるっぽい
もちろん * じゃなくてちゃんとした値を入れるべきです
しかし Chrome では専用の preflight request が飛んでくるのでちゃんと処理する必要がある
ルータとかに CSRF されるのを防ぐためっぽい、なるほど
RFC https://www.rfc-editor.org/rfc/rfc1928
日本語訳 http://srgia.com/docs/rfc1928j.html
Rust の練習に書いてみている
わからんポイント
BND.ADDR / BND.PORT
Google が先導して策定している、画像から物体を検出する API 。Web API のリファレンスを全部読んで知らなかった機能を発見する会 の活動中に見付けた。
目をトラッキングして ARuFa 化するデモ https://clutter.ikuta.me/detection/
今のところ
顔
バーコード
を作った。roはrootの略(適当)
ro() {
test "$PWD" = "/" && return
test "$PWD" = "$HOME/Workspace" && return
test -d .git && return
チェスの次元を拡張したゲーム
攻めの戦略
基本的には過去のキングにチェックをかけていく
過去の駒を動かすことはできない(つまり、過去キングが動いて逃げることができない)
そのため、チェックをかけている駒を取るか、キングと駒の間に入って邪魔をするしかない
最近 Minecraft に Modpack を入れて遊んでいるが、さすがに 300 以上 Mod が入っているだけあってけっこう不安定。落ちたら再起動するようにしたい
やりたい
落ちてたら再起動する
コンソールからアタッチできる
方針
風船、「おおまかな形状を保ったまま大きさが変わる物理的な物体」というのは比較的稀有なので、なんかできないか?
#アイデア
ol[data-list-id='chat-messages'] > div:has([class^='blockedMessage']),
span:[class^='username'],
img[class^='avatar'],
img[class^='replyAvatar'],
div[class^='typing']