Skip to content

Instantly share code, notes, and snippets.

View chromabox's full-sized avatar
😺
funny!

chromabox chromabox

😺
funny!
View GitHub Profile
@chromabox
chromabox / ja_jp_utf8check.cpp
Created January 5, 2025 03:24
簡易的なUTF-8な文字列に日本語が入ってるかのチェック(固有名詞向け)
// 日本語が含まれている度合いのスコアを返す。0なら日本語と違う
// UTF-8ではCJK漢字が統合されてしまっているので完璧ではない。中国語であっても日本語と判定する場合あり
// ひらがな・かたかなが含まれていると100%日本語だが、固有名詞を扱うので漢字と同じスコアを入れるとする
// (なんらかの文章だった場合はひらがな・かたかなが出現したらスコア配分をおおくするとかすると良い)
int check_jp_name(std::string_view src)
{
int score = 0;
size_t mx = src.size();
unsigned char ch,ch2,ch3,ch4;
for(size_t i=0; i < mx; i++){
@chromabox
chromabox / dynamic_prompt_perser.hpp
Created November 25, 2024 10:27
ある文字列の特殊処理({}で囲まれた文字列は特別です。{aa|bb|cc}と|記号が使用されている場合、|で区切られている文字列はいずれか選択になります。 {}は入れ子にすることが出来ます。)
#define DYNAMICPROMPT_MAX_DEPTHS (100)
namespace dynamicPromptParser
{
// DynamicPrompt の単純な字句解析器
class dynamicPromptToker
{
public:
enum TOKEN_TYPE{
TYPE_ERR=0,
@chromabox
chromabox / replace_dynamic_prompt.cpp
Created November 24, 2024 12:08
ある文字列の特殊処理({}で囲まれた文字列は特別です。{aa|bb|cc}と|記号が使用されている場合、|で区切られている文字列はいずれか選択になります。 {}は入れ子にすることが出来ます。)
wxString _replace_dynamic_prompt(wxString &src,int &kaisou)
{
wxString debug_worksrc = src;
wxString dest,work;
while(! src.empty()){
wxString ch = src.Left(1);
src.erase(0,1);
// 大かっこを探す
if(ch == "{"){
@chromabox
chromabox / bluesky_query_did.sh
Last active February 14, 2024 09:26
blueskyのハンドルネームからdidを問い合わせて取り出すbashスクリプト(認証必要なし&要curl jq)
#!/bin/bash
# bluesky did to handle resolver
# written by chromabox
#
# requirements curl jq
# apt install curl jq
#
user_handle=${1}
@chromabox
chromabox / gen_selfcert_docker.sh
Created March 24, 2023 09:12
Dockerでオレオレ証明書を作成するスクリプト(Self-signed certificate)
#!/bin/bash
# 作りたい証明書のドメイン指定
MY_DOMAIN=example.lan
# Key Accessで表示される表示名
MY_CA_NAME=test-example-com-ca
# 証明書をDockerで生成(1年)
mkdir -p ${MY_DOMAIN}/certs && \

Keybase proof

I hereby claim:

  • I am chromabox on github.
  • I am chromarock (https://keybase.io/chromarock) on keybase.
  • I have a public key ASCIDYl84q3lXA-iJWRLXRLqDJuIziu8QQ30xAAemwzy5Qo

To claim this, I am signing this object:

@chromabox
chromabox / barrier-2_3_3-Fix-daemon-mode-execute-missing.patch
Created September 16, 2020 09:00
barrier 2.3.3でbarrierc を daemon指定した時に落ちるバグのFixをしたパッチ
From 21a7ac68eec90c064bcb5419c30e6caefe5ed1eb Mon Sep 17 00:00:00 2001
From: localuser <localuser@localdomain>
Date: Wed, 16 Sep 2020 12:44:07 +0900
Subject: [PATCH] Fix daemon mode execute missing
---
src/lib/base/NonBlockingStream.cpp | 20 ++------------------
1 file changed, 2 insertions(+), 18 deletions(-)
diff --git a/src/lib/base/NonBlockingStream.cpp b/src/lib/base/NonBlockingStream.cpp
@chromabox
chromabox / unlz4.s
Created June 5, 2020 10:08
lz4ブロック解凍(arm向け)
/*
unlz4
LZ4ブロック圧縮の解凍。展開速度が早く単純でコードサイズも抑えられるので組み込み向け
LZ4は単純なRLEではなく辞書方式なので、展開用RAMが多ければ多いほど高圧縮が見込めるが
妥当な圧縮率を得る場合はメモリは最低64Kほど必要かもしれない。
https://lz4.github.io/lz4/
以下の実装を参考にCM4-7向けに変更と書き出しサイズを返すように改良
また、末端で必ず+4バイトほどオーバ書き込みしていたのでそれも治した
Jens Bauer
@chromabox
chromabox / sample_iconv.cpp
Created June 25, 2019 06:43
iconvをC++で使う例(C++17必要)
bool conv_iconv(const std::vector<uint8_t> *src,std::string &dest,const char* fromcode,const char* tocode)
{
iconv_t ic = iconv_open(tocode,fromcode);
char *pin = (char*) src->data();
size_t ilen = src->size();
size_t blen = ilen*3+10;
size_t olen = blen;
size_t ret;
dest.resize(olen);
@chromabox
chromabox / hotkey_joystick.xml
Last active September 12, 2016 10:57
Tree of Savior でゲームパッドのBuffalo BSGP1204シリーズを使ったときの設定。差し替えて使えばOK
<?xml version="1.0" encoding="UTF-8"?>
<!-- edited with XMLSPY v2004 rel. 3 U (http://www.xmlspy.com) by imc (imc) -->
<!-- edited with XMLSpy v2009 sp1 (http://www.altova.com) by MinstFaith (EMBRACE) -->
<Category>
<HotKey ID="MoveUp" Name="" DownScp="None" UpScp="None" Key="JOY_UP" PressedKey="None" Mode="Key" UseAlt="NO" UseCtrl="NO" OnEdit="YES" Category="Battle"/>
<HotKey ID="MoveDown" Name="" DownScp="None" UpScp="None" Key="JOY_DOWN" PressedKey="None" Mode="Key" UseAlt="NO" UseCtrl="NO" OnEdit="YES" Category="Battle"/>
<HotKey ID="MoveLeft" Name="" DownScp="None" UpScp="None" Key="JOY_LEFT" PressedKey="None" Mode="Key" UseAlt="NO" UseCtrl="NO" OnEdit="YES" Category="Battle"/>
<HotKey ID="MoveRight" Name="" DownScp="None" UpScp="None" Key="JOY_RIGHT" PressedKey="None" Mode="Key" UseAlt="NO" UseCtrl="NO" OnEdit="YES" Category="Battle"/>
<HotKey ID="QuickSlotExecute1" Name="" DownScp="JOYSTICK_QUICKSLOT_EXECUTE(0)" UpScp="None" Key="JOY_BTN_4" PressedKey="JOY_BTN_5" Mode="Key" UseAlt="NO" UseCtrl="NO