積極的透明問題、どうすんだぜ☆(^~^)?

もう☆(^~^) 公開下書き

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↓ なんか☆」

20200312blog2a2.png

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑ こういう Excel みたいなスプレッドシートを作っているわけだぜ☆ Webで☆」

KIFUWARABE_80x100x8_01_Futu.gif
「 遊んでないで コンピューター将棋を作れだぜ☆」

OKAZAKI_Yumemi_80x80x8_02_Syaberu.gif
「 仕事をしているふり ばっかりしていては ダメなのよ。
コンピューター将棋を作りなさい?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ボロクソだな……☆」

20200312blog2a3.png

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑ フィルターに何か入れれば、それだけ取れるとしようぜ☆?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 さて そこで問題だぜ☆」

20200312blog2a4.png

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑ 空欄 を選びたいときは どうすればいいんだぜ☆?」

OKAZAKI_Yumemi_80x80x8_02_Syaberu.gif
「 (空欄を選ぶ) を選ぶのよ」

20200312blog2a5.png

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑ じゃあ 百歩譲って (空欄を選ぶ) を選べたとしよう☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 だがしかし すぐに問題になるぜ☆」

20200312blog2a6.png

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑ (空欄を選ぶ) を選びたいときは どうすればいいんだぜ☆?」

KIFUWARABE_80x100x8_01_Futu.gif
「 数の列に 文字を入れてはいけないのに……☆」

OKAZAKI_Yumemi_80x80x8_02_Syaberu.gif
「 フィルタリングに使われない文字を 空欄を選ぶ符牒にしたらいいんじゃないの?  とか」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「  をフィルタリングしたいときに困る☆」

KIFUWARABE_80x100x8_01_Futu.gif
「 エスケープ・シーケンスの話題だな☆」

OKAZAKI_Yumemi_80x80x8_02_Syaberu.gif
「 他のソフトでは どう解決してんの?」

''

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑ pgAdmin4 では '' が空文字になる☆ 何も入っていないときはヌル☆」

KIFUWARABE_80x100x8_01_Futu.gif
「 じゃあ '' と入れたいときは どうすんだぜ☆?」

''''

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑ ' が2個で ' になるんじゃないか☆?」

OKAZAKI_Yumemi_80x80x8_02_Syaberu.gif
「 そのルールに 合わせたらいいんじゃないの?」

20200312blog2a7.png

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑ 空欄に '' が表示されてたら 見づらい……☆」

KIFUWARABE_80x100x8_01_Futu.gif
「 表示のときは '' は表示しなくていいのでは☆?」

20200312blog2a8.png

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑ こんなファミマガ裏技大技林みたいなルール、誰が気づくんだぜ☆?」

OKAZAKI_Yumemi_80x80x8_02_Syaberu.gif
「 (空欄を選ぶ) は、チェックボックスにしておくのよ」

20200312blog2a9.png

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑ じゃあ 十歩譲って (空欄を選ぶ) は ポップアップメニューが出てきて、そこから選べたとしよう☆」

KIFUWARABE_80x100x8_01_Futu.gif
「 多分それで だいたいの場合はうまくいくぜ☆
ナンセンス をありにするか、 一貫性を通すか の話題だぜ☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 まだ問題はある☆」

20200312blog3a1.png

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑ ブラウザーには、アドレス・バーがあるだろ☆
フィルターが 13 のときは 13 と入れればいいな☆」

20200312blog3a2.png

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑ フィルターが無いときは 何も入れなければいい☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ここで問題があるぜ☆ 積極的透明問題だぜ☆」

KIFUWARABE_80x100x8_01_Futu.gif
「 もう寝ろ☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 空欄を選択したいときは どう アドレス・バーに入れるか……☆」

20200312blog3a3.png

OKAZAKI_Yumemi_80x80x8_02_Syaberu.gif
「 ↑ こうすればいいんじゃないの?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 それは あり ではあるが、習慣として 一般的かどうか……☆」

20200312blog3a4.png

OKAZAKI_Yumemi_80x80x8_02_Syaberu.gif
「 ↑ ブー垂れるんだったら、これでどーよ?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 アドレス欄に記号を入れるなら、URLデコードしたいぜ☆」

20200312blog3a5.png

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑ これなら 空欄をフィルタリングするという意志を感じるか……☆」

KIFUWARABE_80x100x8_01_Futu.gif
「 フィルター欄を空にすれば フィルタリングしない☆
フィルター欄に '' を入れれば 空欄を選択する☆
' をフィルタリングしたいときは '' にする、あれっ☆?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ' をフィルタリングしたいときは、両端を ' で挟めだぜ☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 そして その中では '' と書く☆」

OKAZAKI_Yumemi_80x80x8_02_Syaberu.gif
「 ''' と書いてたらどうなんの?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 エラーだが、くそめんどくさいんで、余分な ' は無視するか、 '' 扱いでいいんじゃないか……☆?」

KIFUWARABE_80x100x8_01_Futu.gif
「 どっちか1つに定義しろだぜ☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ' をエスケープシーケンスと考えれば、エスケープが不成立なら、そのまま ' として表示するのが正しいよな☆」

OKAZAKI_Yumemi_80x80x8_02_Syaberu.gif
「 シングル・クォーテーション (') を2倍に増やすプログラムなんか書けんの?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 例えば疑似コードで text.replace("'", "''") みたいに書けばいいんだぜ☆」

OKAZAKI_Yumemi_80x80x8_02_Syaberu.gif
「 アン・エスケープは?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 まず 両端が ' かを確認する☆ そうであった場合のみ 両端の ' をトリムし、
残った文字列を text.replace("''", "'") する☆」

KIFUWARABE_80x100x8_01_Futu.gif
「 それなら、ボッチの ' はそのまま表示するルールとも合うな☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 じゃあ次の問題☆」

KIFUWARABE_80x100x8_01_Futu.gif
「 まだ あんのか……☆」

20200312blog4a1.png

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑ 編集モードのとき、ヌルって どうやって入れるんだぜ☆?」

KIFUWARABE_80x100x8_01_Futu.gif
「 ヌルって何だぜ☆?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 変更していないとか、空欄にしておいたとかではなく、
ここに欄は存在しない、という意味だぜ☆」

20200312blog4a2.png

OKAZAKI_Yumemi_80x80x8_02_Syaberu.gif
「 ↑ 欄を 破壊するしか なくない?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 欄を破壊してしまったら、また何か中身を入れたくなったときに方法が無いだろ☆」

KIFUWARABE_80x100x8_01_Futu.gif
「 他のソフトでは どうやってんだぜ☆?」

pgAdmin4 View/Edit Data

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 空欄にすると ヌル、 空文字列にしたければ ''、 '' にしたければ '''' だぜ☆」

OKAZAKI_Yumemi_80x80x8_02_Syaberu.gif
「 それに合わせればいいんじゃないの?」

20200312blog4a3.png

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑ 空文字が入っていることを示すために '' なんか表示して すっきりできたものかだぜ☆?」

KIFUWARABE_80x100x8_01_Futu.gif
「 '' が入っているときだけ グレー表示できないのか☆?」

20200312blog4a4.png

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑ イベントハンドラを使えば やって できなくもないかもしれないが、頭がおかしな人だと思われて デザインの修正を求められるかもしれないな☆」

OKAZAKI_Yumemi_80x80x8_02_Syaberu.gif
「 そこは いつも通り あんたは 頭がおかしく在ればいいのよ。
なんで 頭が正常な人のふりをするのよ」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 頭がおかしく在ればいいとか 聞いたことのない日本語だぜ……☆」

KIFUWARABE_80x100x8_01_Futu.gif
「 だいたい データベースで 空文字とヌルは どういう違いがあるんだぜ☆?」

『NULL』『ブランク』の違いを解説 『スペース』『空文字』との違いも

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑ データベースによって違うらしい☆ 萎えた☆」

KIFUWARABE_80x100x8_01_Futu.gif
「 空文字にしたいときに '' なんか打ち込みたくないだろ☆
だいたい、オペレーターのおばちゃんに 空文字と ヌル の違いを区別させることに意味があるのか☆?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 2つのテーブルを マージ したときに 空文字ではなく、欄が存在しないという意味の ヌル になることがある☆」

20200312blog4a5.png

OKAZAKI_Yumemi_80x80x8_02_Syaberu.gif
「 ↑ ヌルに 特別な表示を用意した方が よくない?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ヌルさん問題が起こりそう……☆
わたしは死んだことになっている、みたいな☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 これも ナンセンスをありにするか、一貫性を取るかの問題だよな☆
テーブルの欄をヌルにしたいことがあるのか☆ ナンセンスなのか☆? 積極的透明問題だぜ☆」

20200312blog4a6.png

OKAZAKI_Yumemi_80x80x8_02_Syaberu.gif
「 空欄の状態で Alt キーを押しながら Delete で ヌルにできるとか できないの?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 キータイピングの操作系から外れてやるわけかだぜ☆ やってみる価値はあるな……☆
Ctrl + Alt + Delete 2回で間違えて再起動してしまうかもしれないが……☆」

KIFUWARABE_80x100x8_01_Futu.gif
「 ここで また1つ 問題が増えたぜ☆」

20200312blog4a7.png

KIFUWARABE_80x100x8_01_Futu.gif
「 ↑ Select null を用意すべきか☆?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 Excel と違って リレーショナル・データベースには ヌルが存在するからな……☆
しかし ほとんどのヌルは 自然なヌルで、
たまに 人の誤入力でヌルになってるのを 修正したいぐらいかな……☆」

OKAZAKI_Yumemi_80x80x8_02_Syaberu.gif
「 そんなのは データベースを直接いじって 修正する 運用 にすればよくない?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 実践的だぜ☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 じゃあ Webページでは ヌルに変更することはできないが、元からヌルのものはヌル表示される ということにするかだぜ☆
あるいは 欄が無いとか☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 つまり Webページでは 積極的透明 は入力できない、ということにするんだぜ☆
積極的透明は pgAdmin4 や SSMSデータベースを使って 直接いじるんだぜ☆」

KIFUWARABE_80x100x8_01_Futu.gif
「 それを 問題を解決していない という☆
けっこうあるんだぜ、空文字列ではなく ヌルが入っている 文字列のカラム☆」

20200312blog4a8.png

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑ じゃあ こうだぜ☆
ヌルに 文字を入れることはできる☆ でも ヌルに戻すことは できない☆
あるいは Alt + Delete でヌルにできる☆」

20200312blog5a1.png

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑ しかし ここに戻ってくる☆
GET送信にしろ POST送信にしろ、 ヌルと、ヌルさん の違いを どうやって付けるんだぜ☆?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 Excel をパクるなら null'null だが……☆
アドレス・バーに %27null と入るのも 目が耐えられないしな……☆」

20200312blog5a2.png

OKAZAKI_Yumemi_80x80x8_02_Syaberu.gif
「 欄1つごとに 隠しチェックボックスを付けて、フィールド名の末尾の方にアンダースコアを付けて column_=null とか別要素として送信すればいいのよ」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 それは あり かもしれないな……☆」

value = None
value = 'None'

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑ Jinja2 などを使った HTML生成では、 None と 'None' は簡単に区別がつくからいいだろう☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 問題となるのは GET 引数とか、 POST 引数だぜ☆ つまるところ……☆、」

name="Apple"
value="Banana"

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 名前という文字列、値という文字列の2つしか取れない☆」

KIFUWARABE_80x100x8_01_Futu.gif
「 そこで、値をエスケープするのではなく、名前をエスケープしようというのが夢美の案だぜ☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 そんなことが成立するのか、シミュレーションしてみる必要があるぜ☆」

<input name="age" value="null">

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑ これだと ヌル歳 になるな☆ ヌルではない☆」

<input name="age" value=null>

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑ そしてHTMLでは こういう書き方はできない☆」

<input name="" value="">

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑ いっそ 欄がなくなってしまうのも いいかもしれないが……☆」

OKAZAKI_Yumemi_80x80x8_02_Syaberu.gif
「 それが名前エスケープの骨子なのよ」

<input name="age_" value="null">

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑ もう少し緩やかなのは、名前の末尾に _ が付いていれば特別な意味を持たせるということだが、
一般に浸透している習慣からはかけ離れているぜ☆」

<input name="age_escaped" value="null">

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑ 分かりやすくするなら 単語を追加だぜ☆」

KIFUWARABE_80x100x8_01_Futu.gif
「 8文字は多すぎだろ☆」

<input name="age_esc" value="null">

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑ じゃあ4文字☆」

OKAZAKI_Yumemi_80x80x8_02_Syaberu.gif
「 いい落としどころなんじゃないの?」

<input name="age" value="">

<input name="age_esc" value="null">

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑ これで、空文字と ヌルを見分けるということな☆
つまり 積極的透明のヌルは 空文字列より8バイト多い☆」

KIFUWARABE_80x100x8_01_Futu.gif
「 ヌルにされたくないところで ヌルにされてもいいのか☆?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 パーミッション指定かだぜ☆」

age.nullability == 'WillBeBlank' # null から空文字にしてよいが、空文字から null にすることはできない。
age.nullability == 'WillBeNull' # null から空文字にできない、空文字から null にすることはできる。
age.nullability == 'Mutable' # null から空文字にすることも、空文字から null にすることも、どちらもできる。
age.nullability == 'Immutable' # null から空文字にすることも、空文字から null にすることも、どちらもできない。

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑ 全ての欄に これを設定したらどうだぜ☆?」

OKAZAKI_Yumemi_80x80x8_02_Syaberu.gif
「 めんどくさい」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 データベースで ブランクにするの めんどくさいんだぜ☆ ヌルにしてしまう☆
しかし ゼロを消せば 空文字列ではなく ヌル になるのだから、ヌルがデフォルトと考えたいのは分かるが……☆」

KIFUWARABE_80x100x8_01_Futu.gif
「 数の欄で テキストボックスが空なら 問答無用で ヌルと考えればいいんだぜ☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 だとすると 文字列の欄だって テキストボックスを空にすれば ヌル と考えるのが自然だよな……☆
空文字の方が 異常なのか……☆?」

OKAZAKI_Yumemi_80x80x8_02_Syaberu.gif
「 空文字の方が ヌルチェックが要らなくて プログラミングが楽になるなんていうのは、プログラマーの一方的な都合なんじゃないの?」

KIFUWARABE_80x100x8_01_Futu.gif
「 Null は視覚的には 欄が無い ということで統一しろだぜ☆」

20200313blog6a1.png

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑ じゃあ 今度は 数の欄に ブランク ができてしまわないかだぜ☆?」

20200313blog6a2.png

KIFUWARABE_80x100x8_01_Futu.gif
「 ↑ 数の欄の プレースホルダーを 0 にしろだぜ☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 数か テキストかで ブランクの表示が変わるのか……☆ 大変だな☆」

OKAZAKI_Yumemi_80x80x8_02_Syaberu.gif
「 placeholder 属性を指定するだけで 勝手にやってくれない?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 だが ここまで作り込めば シングル・クォーテーションのエスケープとか 打鍵しなくてよくなるので
オペレーターの おばちゃん にも説明不要になるだろう……☆」

エンティティID どうすんだぜ☆?

20200314blog7a1.png

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑ こういうテーブルなら ID は 自然数1つだな☆」

### Format
<input name="row_{{ Id }}_name" value="{{ Name }}">

### Example
<input name="row_4_name" value="Diana">

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑ input 要素のキーも 無理なく作れるだろう……☆」

20200314blog7a2.png

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑ 10年1サイクルで 学生証番号を使い回しているなら、 主キー列は Year と Student の2つになるだろう☆」

### Format
<input name="row_{{ Year }}x{{ Student }}_name" value="{{ Name }}">

### Example
<input name="row_2019x9001_name" value="Charey">

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑ x でつなげておけば、あとで x で分けることができるので数は簡単だぜ☆」

KIFUWARABE_80x100x8_01_Futu.gif
「 しかし x なんかでつなぐと 主キー が アルファベット だったとき混ざるぜ☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 もっと 工夫が必要だな☆」

Base32 Encode

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑ BASE32 でエンコードしたらどうだぜ☆?
区切り文字に 0 と 1 などが余っているので 使えるぜ☆ データの長さは 160% ぐらいになるけど☆」

### Source
豆腐

### Destination
5CYYN2EFSA======

KIFUWARABE_80x100x8_01_Futu.gif
「 パディングって何だぜ☆?」

### Source
豆

### Destination
5CYYMCQ=

### Source
腐

### Destination
5CCZACQ=

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑ 多分、1文字は、最長8文字の BASE32 になるのかもしれない☆
だとしたら、 パディングの = は、隙間を埋めてるだけだぜ☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 この = は 省いていい☆ ただし BASE32 どうしは くっつけてはいけないぜ☆ 離せ☆」

OKAZAKI_Yumemi_80x80x8_02_Syaberu.gif
「 じゃあ 数 は そのまま、テキストやタイムスタンプは BASE32エンコード すれば ID に使えるわね」

KIFUWARABE_80x100x8_01_Futu.gif
「 やってみろだぜ☆」

### Source
2020-03-14 10:59:13'217

### Destination
GIYDEMBNGAZS2MJUEAYTAORVHE5DCMZHGIYTOCQ=

### Source
GIYDEMBNGAZS2MJUEAYTAORVHE5DCMZHGIYTOCQ=

### Destination
2020-03-14 10:59:13'217

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑ BASE32 を使えば、エンティティID は作れるな☆」

KIFUWARABE_80x100x8_01_Futu.gif
「 HTML の inputタグの name に使える文字数はいくつだぜ☆?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 サーバー側で設定してある POST送信データの最大長がリミットだぜ☆ name ごとにリミットは仕様になってないと思うぜ、意味ないから☆」

### Source
0

### Destination
GA======

### Source
1

### Destination
GE======

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑ じゃあ数も BASE32 に揃えた方が アルゴリズムがシンプルになるな☆」

GAxGIYDEMBNGAZS2MJUEAYTAORVHE5DCMZHGIYTOCQ

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑ 例えば、こんな感じの ID になるんだぜ☆」

ga0giydembngazs2mjueaytaorvhe5dcmzhgiytocq

OKAZAKI_Yumemi_80x80x8_02_Syaberu.gif
「 ↑ 全部小文字にして、セパレーターは BASE32 で使われていない 0 にしましょうよ」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 HTML の ID の慣習にも合うな☆」

<おわり>

何度でもクリック!→

むずでょ@きふわらべ第29回世界コンピューター将棋選手権一次予選36位

光速のアカウント凍結されちゃったんで……。ゲームプログラムを独習中なんだぜ☆電王戦IIに出た棋士もコンピューターもみんな好きだぜ☆▲(パソコン将棋)WCSC29一次予選36位、SDT5予選42位▲(パソコン囲碁)AI竜星戦予選16位

Crieitは個人で開発中です。 興味がある方は是非記事の投稿をお願いします! どんな軽い内容でも嬉しいです。
なぜCrieitを作ろうと思ったか

また、「こんな記事が読みたいけど見つからない!」という方は是非記事投稿リクエストボードへ!

こじんまりと作業ログやメモ、進捗を書き残しておきたい方はボード機能をご利用ください!

ボードとは?

むずでょ@きふわらべ第29回世界コンピューター将棋選手権一次予選36位 の最近の記事