裸電球

社長;ふー、帰りました。今日はうってかわって夏の日差しですね。

経理:酒臭いですね。

基盤:ちかくのそば屋で牛丼ですか。

開発:優香みたいな子が居たとか。

社長:あー、あそこはおそらく中国系の学生バイトさんで回してますね。忙しいとは思えないのに厨房に2人、バイト1人。不思議ワールド。

社長:で帰りがけにゥエルシァに寄った時に、ハッとひらめいたのです。

開発:ポインティリズムの件ですか。

社長:いや、トイレのLED電球がもう海王星から冥王星になりつつあることを。それで入り口そばの雑貨コーナーで見たんですが、なーんと、昔風の電球が2つで200円、LED電球が一個で500円なのです。

基盤:HDDとSSDの価格差より大きいですね。

社長:でスペックを見たら、40W型のシリカ電球は消費電力38Wで定格寿命が1,000時間、一方LED電球の40型相当品は4.7Wで40,000時間なわけです。

基盤:大体ラズパイ vs 省電力PCみたいな感じですね。電球て宣言通りに40Wも食うのかー。ほとんど熱になっちゃってるんでしょうね。

開発:まあ昔は100Wのつけっぱなしくらいなんとも思わなかった時代はありました。

社長:電力消費のランニングコストでもとがとれるかどうか知りませんが、40,000時間といえば1,666日、4.6年なわけです。一方1,000時間というのは、つけっぱなしだと2ヶ月持たないから、頻繁に交換が必要。LED電球はこの間に電球交換の手間が要らないし、一回の交換の作業コストを100円と見積もっても、それだけで1年でもとがとれる勘定です。

社長:ですが、今冥王星化しているLED電球は、まあほぼつけっぱなしだったとは言え、2年弱しか持たなかった。もっとも、あれ自体の定格寿命とか見てなかったですが。それはともかく、さっそく電球交換しましょう。

開発:おっと、今日はまた新しい光り方をしてますね。20Hz くらい?で高速点滅。

社長:うーん、この点滅は高速ビデオカメラでないと撮影不可能ですね。

基盤:なんかそういう光り方をさせる回路かMCUでも内蔵しているですかね?一種のエラーメッセージみたいな。

社長:それではご苦労さんと。うーむ、全然熱くないところが元祖裸電球と違ってありがたいですね。さ、これが新しい電球ですよっと。ぐりぐり。おー。

開発:おー、明るいですね。今度のは昼光色っぽくてより良いと思います。

基盤:それで、終了した電球の頭にはこんな風に。

開発:同じメーカーですね。

経理:台所にその電球のケースが残ってました。

社長:捨てられない症候群。

基盤:60W相当方、8.2W、寿命20,000時間とあります。

開発:おー、ほぼ天命を全うしたと。

基盤:しかし、それから2年でこれだけ長寿命化が進歩したのか、そもそも低輝度のものは寿命が長いのか。数ミリアンペアレベルのインジケータ用LEDだとほぼ半永久的ですよね。

開発:しかしあの不思議な光り方、レギュレータあたりがイカれたんじゃないですかね。

基盤:私はマジで屋内の電源配線はUCB-CかPoEでいいんじゃないかと思うんですが。

社長:うーん。この新しい電球は5年近く持つと期待されます。それよりはわが社も長く頑張りたいものです。

基盤:ところでこの足元のサザエさん、E26口金と言うらしいです。すごい長寿命のスタンダードなんでしょうね。

経理:この旧式電球2つ、200円とは言え、何かに使うんでしょうね?

社長:冬になったら暖房用かな。ひよこを育てて楽しむとか。

開発:裸電球と言えばかぐや姫赤提灯でした。

社長:雨が続くと仕事もせずにキャベツばかりをかじってた♪

基盤:でもキャベツって結構高いですよね。

— 2020-0702 SatoxITS

窮極のお絵かきツール

開発:ふあー、よく寝た。っていつの間に寝てましたが。

基盤:点描スペースに最後に打った点のタイムスタンプが07時00分54秒と出ています(笑)

開発:これは、ミリ秒単位まで記録すると面白いかもですね。

基盤:体にセンサー付けといて動きを点描したら面白いかも。

開発:なんにしても、人間が手書きで入れるだけではつまらないですね。なんでもモニターとして使うと良いかな。

社長:それで、まず、流石に1点を1ピクセル表示では厳しいので拡大表示したいですね。

開発:これはCSSの拡大率をJavaScriptで制御すれば良いでしょうね。2, 4, 8, 16, 32 倍拡大、あるいは縮小程度でしょうか。

開発:ではズームボタンを定義して、ここがクリックされたらズーム関数を呼ぶと。あれ?onmouseoverとかいうからonmouseclickとか言うのかな。検索。あー、同じ質問をしている初心者が居たw。onclickと。

基盤:マウス以外でのクリックというのもアリですかね。

開発:要素を選択してENTERとか、どういうイベントなんですかね。まあともかく、クリックされたらalertでもしてみる。あれ、何も反応しないな。ここはDevToolでお願い。うーん、関数未定義。… そうか、func じゃなくて function なんだ。Go と混線してます。function に直して。alert ポップしましたOK。onmouseoverでフォントをredにしてみる。…あれ?undefined。そうか、red とかいうのはcssを解釈する時の予約後か何かなんですかね。では e.style.color=”ff0000″。はい、赤くなりました。

基盤:しかしその、リモートマシンで vi で編集して、ローカルなブラウザでデバッグするという、不思議な開発環境ですね。

開発:それなんですが、手元のマシンでテンポラリにでもそのファイルを編集する機能があれば。WebDavと連携したブラウザ上のエディタとかあるんですかね… しかし笑っちゃうほどタイプミスとかミススペルが多いのは昔からです。最近はIDEに体が慣れてしまったので、変数名とか間違うとその場で警告がでるとかオートコンプリートしてくれないとちょっと。まあ即テストができるので、つらいというほどのことでも有りませんが…

開発:それで、ズームボタンが押されたらキャンバス部分を拡大…って、id から要素を検索する関数ってなんでしたっけ。ちょっと疲れたので一服。

基盤:しかしログを見ていると、ロボットさんがキャンバスをクリックするとはとても思われないですね。

社長:よくわからないのは、HTTPリクエストをしてくるだけのロボットがマウスのイベントを発生できるとは思えないので、そもそもマウスの動きが検出できたるようなら、そこにはロボットでは無く人がいるようだ、で良いような気もするんですけどね。

開発:そもそもスマホではマウスの動きとはな無いんで、スマホ版のreCAPTCHAって何を見てるのか不思議です。

開発:されてそれで、何日か前にCSSがらみでJavaScriptの切れ端を書いたのでブログを見ればわかるはずという… ええ!6月13日の初めてのJavaScriptですよ。あれから2週間以上も経ったんですね。

基盤:検索できるように、画像じゃなくてテキストとして貼り付けておくことも重要ですね。

開発:それで document.getElementById(name) という長ったらしい関数でした。さてそれではキャンバスの style.width *= 2。これで2倍化するはず… げ、爆縮してしまった。なんか現在の値を参照できないとか?ではとりあえず4倍でwidth=1600 でお願いします。えいっ。

実サイズ
4倍拡大

基盤:でかい。ハッブル宇宙望遠鏡のよう。しかし、打ったところと別のところに点が現れますね。

開発:そうか、座標はあくまでもピクセル位置でサーバに送られる、サーバ側はクライアント側で拡大されているとは知らない、ということですかね。てことは拡大率をサーバに知らせないといけない。

社長:サーバに知らせる x, y の値はいじれないですかね?

開発:どうなんでしょう。でもとりあえずクライアントは拡大して見てますってのも、サーバ側としてもそれなりに参考にな情報ではあるでしょうね。というか、クリックしてリロードされるたびにサイズが元に戻ってしまいますから、それを維持する意味でも表示サイズをFORMで送る必要はあるかと。

基盤:お腹すきましたね。

社長:ここのところ連チャンでカップ麺ですからね。今日は外でちゃんと食べましょう。

* * *

社長:これはあれですね、既存の点をクリックすると、その点をいつ誰が打ったのか情報がみえると便利かも。

開発:それは簡単ですね。というか私、少し前にFPGAの設計ツールをいじっていた時、回路図を拡大して素子をクリックすると、それがなんというモジュールのどういう回路かが表示されるというのに、とても感動しました。

基盤:それはそうとこのWordPressの検索機能、検索結果に、ヒットした検索語の前後の文脈が表示されないのが、非常に不便です。

社長:それもあって、GoogleとかBingでも検索できるように工夫はしています。ただ、やはりWordPress自体でちゃんと表示できるのに越したことは無いです。

開発:なんでそういうところをサボるんですかね。理解不能。

社長:まあいずれ暇ができたら、自分たちで作ればよいのでは。

開発:あと、FPGAの設計ツールでは、あの業界ではIPって余分ですが、部品がグラフィカルにクラスみたいになってて、それをインスタンシエートして使うのが普通です。お絵かきツールだって、X Windowの時代の idraw とかはそうなってました。それがMSのパワポなんかだと、すごくめんどくさい。ああいうのもなんとか出来れば良いと思います。

社長:部品を自分で作る時には、既存の図全体を背景画像みたいにインアクティブな下敷きにできると良いですね。

* * *

開発:はっ、また寝てしまった。

社長:眠い時は寝たいだけ寝る。我社の方針です。

基盤:ところでこの、画像を拡大したときに補完されてもやっとなるのをやめさせたいですね。CSSで指定できるんでしょうか?

開発:どうなんでしょう。CSS 拡大。ああ、zoom っていうプロパティがあるんですね。これは width hight とかで指定するより適切です。%指定ですかね。style.zoom = 400 … おお!

基盤:電子顕微鏡のようですね。

開発:倍率でしたか。この変、CSSではシンタックスシュガーがかかってるけど、JavaScipt でプロパティを入れる時は生の値だというのが面白いですね。

開発:うーむ、CSS的には image-rendering、canvas に明示的に描く場合には imageSomoothingEnabled = false で制御できるようですが、周辺との平均値を取ってなめらかにしたがるというのは避けられないような… いやまてよ、単に image-rendering:pixelated でした。16倍で、じゃん。

社長:おー、これならきっちり目的の点をクリックできますね。

基盤:しかし、いつのCSSからかは知りませんが、こんな楽しい表示オプションがあったとは。

社長:んー、となりのアパート新築工事ももうそろそろ竣工っぽいですね。これからは静かになります。ちょっといっぷくしましょう。

* * *

開発:私はMonzilloのビルドトライアルの時に、MDNってもうオワコンなのかと思ったら、そんなこと全然ないんですね。わかりやすい簡潔な記述は素晴らしいと思います。助かります。

開発:というわけで、queryに来たzoom率で座標を変換してPNGへの座標値とする、生成して返すCSSにzoomの値を埋め込み、これでクリックしたところに点が打てます。

基盤:JavaScript要らなくなりましたね。

社長:作り方が完全に25年前にタイムスリップしています(笑)

基盤:時々書いた点が反映されないことがありますね。

開発:うーん、生成したPNGをロードしに来るタイミングが変なのかな。なにか自分のキャッシュした情報でプリフェッチしてるとか。

基盤:ログを見ると、304 Not modified が出てますね。Last-Modified が1秒単位でしか無いから、高速に変更すると、変化したことが検出できないのでは。

社長:なるほど。最近のHTTPの仕様では秒以下まで拡張されてないんですかね。ファイルシステムがその情報を持っているかですが。というか、HTTP/1.1 でもコンテンツのハッシュ値で変化を確認してもらえるはずなんですが…

開発:そういえばさっきCSSを調べた時、そうだ z-index ぜひ使いたいなと思いました。機能的にも見栄え的にも。

社長:あとは色と透明度の選択を入れたら一応の点描のお絵かき的には一区切りですかね。

開発:これはとりあえず32ビットで、8ビットずつ、R, G, B, A を生指定すれば良いかなと思います。

社長:色の件は次のステップということにして、ちょっと休憩しましょう。

* * *

社長:しかし、点じゃないオブジェクトを置く時には、後で編集する時にIDが必要ですね。

開発:時間との組合わせで行けるかなとは思ったんですが。あるいは、ある部分空間に追加された時のシリアル番号。

社長:うーん、それで一応一意性は保てると。でもなんかかっこ悪いような。

基盤:再利用性の高いオブジェクトとしてはやはり文字かなと思います。7セグとか。

開発:うーん、結果として点の集合としてオブジェクトなら、元の情報量は関係ないような。

基盤:手作りフォントを作りたいですね。メタじゃないベタなフォント(笑)

開発:その昔 X11 で k14 というフリーの日本語フォントを作ってくれた人がいましたね。

基盤:14px で漢字を?

開発:少くとも当時は違和感もなく使えてました。すごいですね。

社長:今見ると、これはこれで味のあるグリフだなーと思いますね。

開発:そういえばIPAから各国文字のフリーフォントを出してませんでしたっけ?

社長:あ、あれは私の学生時代からETL時代の友人がやってたんですよ。

基盤:点描空間でベースとしてサポートするテキストオブジェクトの文字として使わせていただくと良さそうですね。

基盤:それにしても、DNSサーバのログを見ていると面白いです。どういう名前のどういうレコードを取りに来ているか、かなり敵の意図が見えます(笑)。たとえば MX 取りに来るやつとかミエミエですよね。登録直後にあさりにくるロボットの挙動は特に特徴的でした。

開発:そういえば、ドメイン名って世界全体で見ると一日10万くらい取得されているようですね。.com が大半の模様。

社長:怪しげなgTLDだとXSOみたいに1円で投げ売りしてたりしますしねえ。なんにしても、1ドメイン1000円平均としても、一日1億円。全世界で年間365億円。小さいパイだなと思いますね。

基盤:名画1枚でもそのくらいのありますよね。

* * *

開発:それにしても、色を選んだりするうのにいちいちその入力フィールドまでカーソルを持ってって入力するってかったるいですよね。

基盤:右クリックのコンテクストメニューで選べたり、現在ポインタで指しているピクセルの色をピックアップできると良いですね。

開発:extension の助け無しにコンテクストメニューに参加できるものかなぁ。

開発:色を円グラフみたいのとスライダーで選ばせるのがあるけど、あれって思ったとおりの色が選べないんですよね。計算機屋の浅知恵みたいな。

社長:その点では色見本というか色図鑑的なサイトにいくと、目移りしてしまういい色が陳列されてますね。色のプロフェッショナルという感じがします。あれはどういうテクなのでしょう?

基盤:色の詰め合わせですよね。せいぜい数色に抑えないと、色気違いになる。

社長:色見本のサイト、以前さんざん眺めたんですが、ブックマークもしてなくて忘れちゃいました。今 royalblue で検索してみますと…

社長:とにかく、色を選ぶ時には、良い色して歴的に人間が選んできた色、名のある色を参考にしたいのです。たとえば graf1x.com では同系色の色の選択肢としてこういうのを提供している。

開発:よりどりみどりですね。

社長:こういう、歴史に洗われた色の見本の中から選べたら気持ちが良いなと思うわけです。

社長:たとえば私は、私が「オレンジ色だ」と感じられる色をパワポなんかで作るのは非常に困難で、ディスプレイ上では出ないのかな?とか自分の視覚に問題が?とまで思ったのですが、上の見本のオレンジは、まさに私が思うオレンジなんです。

開発:良い色見本というかパレットは、文書の各部の配色を決めるのには、とても重要というか必須と思います。ただ、絵画と言うか、お絵かき点描では色は完全に自由に選べる必要はあるとは思います。

基盤:欲しい色をピックアップをする方法は、それだけで重要な機能かなと思います。まあその辺が、プロが使ってるツールの売りなのかも知れませんね。

* * *

社長:ちょっとお絵かきからは外れますけど、QRコードを自動生成して貼り付けたりfavixconにしたりする機能もほしいですね。

開発:ああ、そのパッケージはGoにありますから、CGIで、…あ言っちゃった(笑)作るのは簡単です。

社長:じゃあまあ、だいたい見通しは付きましたから、今日はこのへんで飲みに行きますか。

— 2020-0702 SatoxITS

点描宇宙空間

社長:点描空間の次元はやはり X, Y, Z と T の4次元ですかね。

開発:とりあえずそれだと思いますが。

基盤:各次元32ビット?

開発:そうですねえ。合わせて128ビットというのは、ユニークIDなんかも考えると、今どきの桁数としてはいい感じかなと思います。

基盤:時間軸の収まりが厳しそうですね。

社長:メッシュというか区切りはどのくらいの単位がいいでしょうね?

開発:うーん、例えばファイル化する単位だとしますと、8KBに収まると現状のコンピュータのハードウェア的にも、ネットワーク転送上も効率が良さそうに思いますね。ちょっと細切れになりますが、32 x 32 で約1K。まあアイコンサイズですね。

基盤:アイコンの点描くらいなら耐えられれそう(笑)

* * *

経理:ポーン。G Suite から請求書メールが来ました。2ドメイン分。

基盤:そういえばこの間ネームサーバの引っ越しをした時に間違ってits-more.com までうちのいい加減なDNSサーバに移してしまいまして、1日2日 its-more.com のメールが不通になってしましました。回復してよかった。

開発:というか、せっかくの GoogleDrive 1TB x 2 が休眠状態ですね。

基盤:それをぜひ、ライトセールから活用したいです。あと、実は、これ絶対いらんだろうというドメイン名で試しにドメイン廃止をしてみました。XSOのコンソールメニューから廃止を探すのは難しいですが、個別ドメインを選択してドメイン詳細ページに入ると、そこにひっそりと「>ドメインを廃止する」というリンクがあったんです。いろいろ脅しをかけられたりしますが、淡々と廃止できました。そこには「変更履歴」というリンクもあって、なんだここをみれば時間軸を含めて経緯が全部見られたのかー、と思いました。あの山のようなメールを検索しなくて済むかと思うとほっとします。

開発:機能を調べたい時にいちいちヘルプページとかに飛ぶんじゃなくて、機能を検索してジャンプできるといいんだよね。OperaやVivaldi みたいに。なんで世の中はそうなってないのかなー。WordPress とかにそういう機能を入れれば、多少は改善するかしら。

社長:ああ、あのドメインは逝ってしまわれたのか。4月の頭にユニークIDについて考えて居た時に取ったんですが… まあ、語呂が全然よくなかったとは思います。しかしあの当時は、高価な .org とか平気で取ってましたね。おーっと、.space 空いてるじゃないですか、しかも50円。ポチポチっと。んー?最後のポチッとの前に利用規約というのがひっそりありますね。

開発:勝手に自社サーバのアドレスを向けますよってここに書いてあるんですかね。あとでじっくり読みます。

経理:「クレジットカード」で申し込んだ場合には自動更新に設定しちゃうからね、とも書いてありますね。設定の解除をお忘れなく。

社長:じゃあ、申し込みますよ。ポチッと。

基盤:速攻でNSを変更します。あちゃー、またくるくるして応答が無いっす。

基盤:これって固まってるのかと思っていたのですが、1分くらい辛抱すると応答があるらしいことに気づきました。速攻でNSを変更。自動更新解除も忘れずにと。ところでこれ、.org の NS を変えようとしたら「失敗しました」になるんで何かと思ったら、どうやらセカンダリの名前が違ってもアドレスが同じだとバレると拒否しているような感じです。TLDごとに運営方針が違うのが面白いなと思いました。

基盤:あと1点、残念なことに、あのクソツールの解約がされてなかったことがわかりました。気づいて速攻でやったのですが、8月末日にようやく解約という悲しい事になりました。それと、この Exchange の契約ってなんですかね?

社長:うーん、当時、クラウドのメールサーバがあったほうが良いかなと思ってポチったんですが… まあもう Gmailで独自ドメイン確定したからもう不要なんですが。以前、解約の手続きもしたはずで…

経理:ここ、自分が今何を契約しているのか全体像を把握するのが極めて難しく出来てますね。まあ外でも一般的にそうですけど。

基盤:その点でも、ライトセールは素晴らしいです。

経理:あとレンタルサーバと抱き合わせで契約した365も解約しなくては。別途MSに直接サブスクライブしましたし。

社長:まあそのOneDriveはそこそこ、これまで有効利用できたとは思うんですが。でも最近、Office アプリもほとんど使わなくなりました…

* * *

社長:うーん、これはやはり、同じところに何度も上書きすると盛り上がって立体感が出るとか。透明度を定義して重ね塗りで色を出すとかしたいところですね。点描的では無いですが。

開発:そうですが、立体表示はPNGとは直交する話かなとは思います。透明度を持つ色を重ねたらどういう意味になるのかは面白いですね。

基盤:あたたたたたー。左上に青い島を作ってみました(笑)

開発:点描空間の切り取りとURLをどう対応づけるかが興味深いと思います。まあ / で分けて上位に向けて合成していくっていう感じなのかなと思いますが。しかし、どういう単位でまとめ上げたり分解するのか。たとえば256倍ずつズームってのは無いですよね。

基盤:直感的には一桁ずつというか、対数的というか。現実的な線ではベースは2ですかね。縦横2倍ずつが静的に保存されてればいいのかなという気がします。あとはそれに収まらない場合には、動的に生成する。

社長:最終的には点のアドレスという事になりますね。点までたどり着くと、その点の属性、履歴とかノートが表示されるみたいな。

開発:しかし最終的な点の行き止まりがあるというのも何かつまらないですね。いくらでもミクロにズームできるのが良いかと。

社長:てことは全ての点は下位の世界を代表する値、色を持つって感じですかね。

開発:点の集まりをURL的にどう表現するかですね。まあ矩形だとすれば、x, y, w, h ということになりますが。最上位では断面を規定するのかな。しかしやはり、規定の区画のサイズというものが無いと、合成とかすごく重そうですね。

社長:いずれにしてもそこは、階層的な静的なURLとは別の、query 的なものになりますよね。query 部分で結合とか変換を指示する。

基盤:点とか区画の所有権とかアクセス権も規定したいですね。

開発:可変長のURLで管理するとなると、特に128ビットのユニークアドレスである必要は無いですね。

社長:下へはいくらでもズームインできるとして、てっぺんをどこに置くのかというところも気になります。予め2段くらいは予約しておくんでしょうか。

基盤:ところでこれ、連ちゃんでクリックすると、ブラウザの画面の書き換えが結構気になります。ブラウザによりますけど。

開発:まあ、このお試し実装に性能を求めないで下さい(笑)。いずれ考えましょう。

社長:既存の画像のアップロードを可能にするのも良いですね。一種のタイルというか、ワールドワイドモザイクみたいな(^-^)

基盤:Google Map とか Earth みたいになめらかにズームしたらすごいだろうなぁ…

社長:いずれにしてもこういうのって、世界を全ての視野に入れて、各層の区画にユニークなIDを振りたいって話の一つではあるんですよね。しかもユニークIDはぜひ人間が読み書きしたり記憶できるようなものであってほしい。となると、識別子は数字で12桁程度、ドメイン化、チャンク化は必要。さっき廃棄されてしまったドメイン名を考えてた頃って、そういうことができるといいなって考えてたんです。

開発:特定の区画はプライベートアドレスみたいにグローバルにはユニークで無いというのも、ある種の安心感がありますね。というか、上位を補完すれはグローバルにもユニークになるって話かも知れませんが。

基盤:ところでこれまでの点描のPNGをダウンロードしたらこんな感じで、なんとなく星空のようです 。

開発:赤い。やはり宇宙は膨張しているようですね。

社長:私の星はどれかな。

— 2020-0702 SatoxITS