すうすうアイランド

技術メモとか

ECMAScript について

どの実行環境でも共通な動作が定義されているので、GoogleChrome でもFirefox でも同じ動作が得られる。
ECMAScript2015(ES6) 以降、毎年リリースされているもののECMAScript 2016+ compatibility table を見ると2016以降は何も考えずに使えるとは中々思えない(特にiOS)ので2015を使用するのがベターかもしれない。

インターネットなし を解決する

ここ1年くらいインターネットに突然接続出来なくなる現象(インターネットなし)に悩まされていて騙し騙しやり過ごしてきたものの、PS4がインターネットに接続できなくなってしまったので向き合うことにした。
どうやらルータのDHCPサーバ機能がおかしかったようでIPアドレスが適切に振られなかったっぽい。ルータのコンセントを抜いて15秒ほど放置して差し直したら直った。

ipconfig コマンドで確認してみたらIPv4アドレスが169.254.x.x になっていた。これはリンクローカルアドレスというらしく、DHCPサーバ機能がなくても個々のコンピュータが自分自身にIPアドレスを振るらしい。このことからDHCPサーバ機能が正常に動作していないことが分かった。
もっと早く向き合うべきだったな~!

ミラクルボックス用のお知らせタイマーを作った

ミラクルボックス用のお知らせタイマー
ポケモンHOMEのミラクルボックスは2時間~が交換の目安とどこかで聞いたような気がしたので2時間経ったらお知らせしてくれるタイマーを作りました。
使用言語はC言語、開発環境はWindows 10とVisual Studio 2019 Communityです。

miracle-timer - Chico Shiratori
MITライセンスです。遊びで作ったのでサポートは受け付けていません。

なんでC言語

PythonやNode.jsだとexe化した時に数~数10MBになってしまうようなので。それはちょっとね...。

適当な説明とか

do {
    if ((key = getchar()) == 's') {
        printf("タイマーをセットしました\n");
        Sleep(7200000);    // 2時間待つ
        printf("ポケモンが交換されたかもしれません!ミラクルボックスを確認してみましょう。\n");

sが入力されたらprintfでメッセージを出力、Sleep関数が実行される。2時間経ったらメッセージを出力するようにしているが見る暇はほぼないのでおまけです。
WindowsのSleep関数の単位はmsecというものらしい。1000msecは1秒くらい。

// 5回アラートを鳴らす
for (i = 0; i <= 4; i++) {
    printf("\a");
    Sleep(1000);
    }  

2時間経ったら5回ビープ音を鳴らして通知。
Sleep関数を挟まないと1回鳴ってすぐに終わってしまうように聴こえるので1秒程度間を挟んでいる。

while (key != 'e');   // eが入力されるまでループする

do while文でeが入力されるまでループするようにしている。

今後やりたいことや感想

大文字のSとEを入力しても判定に引っかからないので反応するようにしたい。
残り1時間 とか出力する機能もアリかなと思うが放置させることが前提のアプリケーションなので必要がない。
ポケモンHOMEはスマホアプリなのでスマホで完結できるようにAndroid用のアプリも作ってみたいけど、今使っているAndroidは壊れかけ(物理)なのと次のはiPhoneに変えるか悩んでいるので微妙なところ。
もし作るならタイマーをスタートさせるとバックグラウンドで動いて時間になると通知バーで通知してくれるやつが作りたいです。

C言語Visual Studioも触るのが久しぶりすぎてインデントが分からないです。

faviconの話

タブやブックマークバーに表示されるfavicon、今はSVGも使えるのを知り調べたのですがサポートはまちまちのようで。特にモバイル端末はまだまだっぽい。
ブラウザのシェアはどのくらいか知りたくなったので、WebブラウザシェアランキングTOP10(日本国内・世界) | ソフトウェアテスト・第三者検証ならウェブレッジ を見たのですがIE使っている人ってかなりいるんですね。驚いた。
無難なのはICO形式だと思いつつ、楽はしたいのでPNG形式のfaviconを使おうと思ったのでした。

HTMLの見出し要素の話

見出しは<h1>から<h6>まであるけど、見出しのレベルを飛ばしてはいけないことをはっきりと知ったのははじめてな気がします。私が普段どれだけ適当にやっていたかが分かる。
いや普通飛ばさないだろ とか 当たり前だろ とか思うかもしれないけど、意外と意識していないのではないかな?と思ったり思わなかったり。

あと1つのページで<h1>を2回以上使用するのは避けることもはじめて知った。普段どれだけなんとなくやっていたかが分かる。

<title>: 文書題名要素 で思ったこと

<title>はブラウザのタイトルバーや検索結果に表示されるページの名前だけど、ページ名が長かったり説明的な文言を使用した方がSEOに強いことをはじめて知りました。言われてみれば確かに。
これは自己満足ブログなのでSEOについては気にしていないのですが。

それはおいといて、今までアクセシビリティのことなんて考えてもいませんでした。ありがたいことに視覚や聴覚に障害がないので全く眼中になかったわけです。
別名義でやっているサイトの名前がCliemu Parfait、くりーむぱるふぇ と読むのですが、Cliemu が造語なのでもし文章読み上げ技術を使ってインターネットしている人がきたら読めませんよね。リーダーがそれらしく読んでくれれば一番いいのですがたぶん現時点では無理でしょう。
なので、インターネット上では極力ひらがなやカタカナで表記しようと思ったのでした。