IT人の雑談

筋トレと体重の記録アプリケーションを作って運用している話(とそれの今後の展望)


タイトルの通りなのだが、インスタで毎日投稿している筋トレの実施記録を管理する機能と、ついでに体重の記録を管理する機能をもったアプリケーション自作していて、現状それを運用しているので、その話をしたい。それと、ついでにそのアプリケーションの抱える課題や、今後の展望について考えていることを挙げていきたい。


【SE雑談】某サイトにおける「凛として時雨」の文字化け現象の追跡と、異なる文字コード間における文字化け現象について


身近にいい「文字化け」の題材を見つけたので、
これを元ネタに「文字化け」について改めて振り返る、という目的で、
少しこれを深堀してみる(深堀るほどのネタにもならないが…)。

まあどっちかというとこれを単純に好奇心と興味本位で追求したいという思いの方が強いのだが。
(仕事に飽きただけである)


 


【ストレイテナー】【SE雑談】テナモバの「今日の一曲」に見る文字列ソート談議+α


ストレイテナー結成20周年を記念して開設された会員制モバイルサイト「テナモバ」。
当然のごとく速攻で入会したわけだが、まあ、それはいいとして、
この「テナモバ」では、「今日の一曲」というコーナーの中で、
日替わりでストレイテナーの楽曲を1つ紹介してくれる。
この「今日の一曲」だが、ツイッターのフォロワーさん方の報告等を見る限りでは、
「紹介される順番はアルファベット順になってんじゃないか?」という疑惑がうまれた。
少なくとも2017/8/16まではこのルールが適用されていたように思うのだが、
2017/8/17以降はこのルールが撤廃され、どうも完全ランダム性になったようだ。
(どうでもいいがこのことについて、裏でエンジニアが急きょ開発を任されたのでは…と予想している。事実だとすると同職としての思いもあり、なぜか同情してしまう)

まあ「完全ランダム性になった」というのもここ1日2日の紹介内容を見たうえでの経験的予想に過ぎず
実際裏でどんなロジックが動き、紹介される曲が選定されてるのかはわからないし、
同時に8/16までの「アルファベット順」というのも数日間の動向を見たうえでの経験的予想に過ぎないため、
要するにどこまでいっても「予想」の域を出ないのだが、
もし仮に「アルファベット順」だったとして、という仮定が成り立っていたとすると
どういう曲順で曲が紹介されていったのか?を論じてみたい。
これはどちらかというとプログラマとしてのソート順に関するロジック考察が主たる題材であり、
たまたまソートされる材料(各要素)に「ストレイテナーの楽曲」がいるだけの、
要するに仕事に飽きたことによる暇つぶしである。
まあ読み物として見ていただければいい。


 


UTF-8の2バイト文字の存在を失念していたことによる失敗談(+サクラエディタの見え方の違和感)について


バージョンとか設定とかにもよるのかもしれないが、サクラエディタは、中途半端にブチ切れられたUTF-8の文字コードを上位サロゲートの一部と見做して文字コード表示してしまうらしい。バイナリエディタとかで中身を見ると実際のコードは違ったりする。

例えば「あ」だが、UTF-8では「E3-81-82」の3バイト。
これを無理やり「E3」「81」「82」の1バイトずつにぶった切って保存すると、
「E3」は「U+DCE3」
「81」は「U+DC81」
「82」は「U+DC82」
で表示される。

実験として「あ」を無理やり1バイトでブチきったときのスクリーンショット↓
「E3」部分


上位サロゲートはUnicodeでU+DC00~U+DFFFの範囲なので「E3」という1バイトが勝手に上位サロゲート範囲の文字の一部として扱われてしまっている。
UTF-8の1バイト文字のコード範囲は「00」~「7F」までなので、「E3」というバイトは定義外にあたるため、
エディタの都合上無理矢理サロゲート範囲に位置づけているという考えもなくはない。
そもそも「文字」としては表現できないコード値なので、テキストエディタにこれをちゃんとコード値で表現しろというのも酷な話な気がするが
最初は「なんで突然サロゲートなんか出てきてるんだ?おい?」と思って軽くビビった。


 


プログラムと英語


今までいくつかのシステム開発に携わってきて、それらは様々なプログラムで構成されているわけだが、
ソースコードの主要な部分、つまり変数とかメソッド名とかテーブル名とか、その辺は基本的に半角英数記号で記述されるので、
まあ、システム都合にも寄るんだろうけど、基本的に「日本語を無理やり英語にした」っていうのがスゴク多い。
例えば「受注金額」という項目があった場合、
Javaで定義する変数は「juchu_kingaku」とかだし
テーブル項目の物理名は「JUCHU_KINGAKU」なわけだ。
俺みたいな英語が全然できない人間からするとむしろこういうほうがわかりやすいんだけども、
グローバル化が叫ばれる昨今、本来はこういうのはよくないのかもしれないなと、なんとなくふと思った。


JSESSIONID

JSESSIONID(ジェイセッションアイディー)って発音しづらいよね。めっちゃ噛む。IT業界は、これに対するなんか呼びやすい略称考えるべき