Skip to content

Instantly share code, notes, and snippets.

@kotobukid
kotobukid / Cargo.toml
Created February 21, 2025 10:23
プロキシーアクセスを提供するAxumのリクエストハンドラのサンプル
[package]
name = "proxy_router"
version = "0.1.0"
edition = "2021"
[dependencies]
tokio = { version = "1.43.0", features = ["full"] }
axum = { version = "0.8.1", features = ["tokio"] }
hyper = { version = "1.6.0", features = ["client", "http1", "full"] }
pin-project-lite = "0.2.16"
@kotobukid
kotobukid / extract_session.py
Created February 19, 2025 08:57
trying to extract django session manually
from django.conf import settings
import base64
import json
from django.core.management.base import BaseCommand
from django.core.signing import Signer, BadSignature
from django.conf import settings
class Command(BaseCommand):
@kotobukid
kotobukid / django_auth.rs
Created February 14, 2025 09:06
DjangoデフォルトでエンコードしたパスワードをRustで検証するサンプル
use ring::pbkdf2 as ring_pbkdf2;
use std::num::NonZeroU32;
use std::time::Instant;
use base64::{engine::general_purpose, Engine};
use pbkdf2::pbkdf2_hmac_array;
use sha2::Sha256;
/// メイン関数:結果を簡潔に表示し、事前定義されたテストケースを確認
fn main() {
@kotobukid
kotobukid / ai_assistant.md
Created December 20, 2024 07:47
StringはSend+Syncである...から中身が気になってくる

Chat 'ChatTitle(text=String型の内部実装と挙動, isCustom=true)' (8a4a9318-8258-4dbe-844e-390df6678c66)

User: 添付コードのwrite!の第1引数はmut Stringだと思いますが、Stringが内部的にはVecであることから書き込みが成立する、と考えて良いケースですか? String(実態はバイト列)を便利に使えるのは type String = Vec; impl String { fn as_ptr(&self) ... } こんな感じの実装になってるんでしょうか

User: このコードはTUIでユーザーに選択肢を提示し、Enter操作なしに表示を切り替えるというサンプルコードです。実行したところ、 ・即座に終了する(target/debug.tui.exeを実行するとこうなる cargo run --example tuiでは即終了はせず対話が可能) ・ターミナルのウインドウの、本当に左上から選択肢が表示され、しかしコマンド実行を行ったターミナルの位置までの、(他のプロセス等からの)出力済みの文字列は残存しており、非常に見苦しい

といった問題がありました。 終了問題についてはできれば即座に回答をお願いしたく、出力位置と文字列残存問題については解決のヒントだけでもいいです。よろしくお願いしますAttachments:

Attachment Name: CustomSystemPromptAttachment Attachments Kind: Visible

@kotobukid
kotobukid / Cargo.toml
Last active December 12, 2024 10:20
WebSocketのブロードキャストをmpscで実現
[package]
name = "ws_s"
version = "0.1.0"
edition = "2021"
[[bin]]
name = "server"
path = "src/server.rs"
[[bin]]
@kotobukid
kotobukid / main.rs
Created December 10, 2024 13:41
任意の処理を挟むチャンネル
use tokio::sync::mpsc::{self, Receiver, Sender};
use tokio::task;
fn process_channel<T, F>(
buffer_size: usize, // チャンネルのバッファサイズ
processor: F, // データ処理用の関数ポインタ/クロージャ
) -> (Sender<T>, Receiver<T>)
where
T: Send + 'static,
F: Fn(T) -> T + Send + Sync + 'static,
@kotobukid
kotobukid / add_custom_armature.py
Last active October 15, 2024 06:37
In FrontでSTICKなアーマチュアを新規追加可能にするBlenderアドオン
import bpy
import os
from bpy.types import Operator
from bpy.utils import register_class, unregister_class
bl_info = {
"name": "Custom Armature Adder",
"author": "kotobukid",
"version": (1, 1),
"blender": (2, 80, 0),
import bpy
bpy.data.scenes["Scene"].render.filepath = '/path/to/target/dir/script_test.png'
bpy.data.scenes["Scene"].render.image_settings.color_mode = 'RGB'
bpy.ops.render.render(write_still=True, use_viewport=True)
@kotobukid
kotobukid / reloader.py
Last active September 20, 2024 11:52
自作のアドオン(これの他の)をBlenderのGUI上から再読み込みさせるアドオン
bpy.ops.script.reload()
を呼ぶのが一番確実だったので、それを呼ぶボタンを配置するだけのものに…
旧コードはサブモジュールの更新まではリロードしない