2026/03/24(火)最近買った生活雑貨まとめ

投稿日:

ここ最近諸事情でブログの更新全般が滞っていたので最近買ったものをいくつかまとめて書く。

貝印の爪ヤスリ

1月16日にアマゾンで購入。1000円程度。

どことなくオシャレな感じを醸し出している爪ヤスリ。

中身はこんな感じで裏表でヤスリの粗さが異なる。

ケースがあるため持ち運びに便利で、家の中でもカスが散らばりづらい。

爪切りに最初からついているヤスリより遥かに強力で、かなり強いので爪切りの代わりになるレベルの代物だ。あまりに優秀なため、家用と別に携帯用も買ったほど。

折り畳み爪切り

2月21日にロフトで購入。1,100円程度。

ビー・エヌというメーカーのMimits 3wayスリム爪切りという製品。ぶっちゃけ聞いたこともないメーカーだ。

開くとこんな感じ。畳むときは開いた背中を上にかぶせ、力押しすると閉じる。貧弱な作りを力任せに閉じるため、なんか壊れそうで心配だが、数回使った感じは特に大丈夫そうなので、しばらくは使えるだろう、多分。

収納用に柔らかいスリーブもあり、爪切りを入れておく小物入れを傷めないのもポイントだ。

出先で爪切りがなくて困ることが稀にあり、爪切りが欲しかったのだが、普通の爪切りだと邪魔なので折り畳み爪切りを探していたところ出会った品。

1,100円程度と手ごろな価格な割に、切れ味も悪くなく、実用性は十分だ。本当は貝印のが欲しかったのだが通販でしか見つけられず、それも八千円近くするため諦めた。

足の指を広げるやつ

2月21日にダイソーで購入。

さっきの爪切りを買うときに同じものをロフトで見つけたのだが500円もしたのでダイソーで買うことにした。

最近は高い店で物を買うことが増えたので、節約のために百均も少し見直していいかもしれないと思った。

指を広げられて気持ちいいので、たまに使っていきたい。

2026/03/17(火)デスクチェア探しに一区切りがついた その2

更新日:
投稿日:

デスクチェア探しに一区切りがついたで、やや心残りな結果になったを何とかした話。

いい感じのオフィスチェアが欲しいオフィスチェア(EX338 GTS129 BK)が座高が低いことと、後ろに倒れていることを問題にしていたが、もしかしたら座高が上がれば使えるのではないかということに気が付いた。

ということで、LIFELEX ゆったりレザー調チェア ニネヴェの座面をシリンダーから抜き取り、オフィスチェア(EX338 GTS129 BK)の座面と交換したところ、ぼちぼちハマった。

元々使っていたNシールドカルカと並べてみたところ。座高はばっちりだ。

比較すると、やはり背もたれがやや後ろに倒れているし、座面も前が盛り上がり、後ろに流れているが、深く腰掛けなければなくはない感じ。

どうしても元の椅子とは違うので百点満点とはいかないが、LIFELEX ゆったりレザー調チェア ニネヴェと比べると大分マシだし、最悪元の椅子が修理不能だった場合でも使っていける感じはするので満足だ。

関連記事

2026/03/05(木)最近作ったWebツールの話とか

最近二つほどツールを作り、Webツール置き場に配置したので、そこで得た学びや、作る時に意識したことについても書いてゆく。

ENV Checker

まずENV Checkerを作った話。

端的に言うとCyberSyndrome : ENV Checker - 環境変数チェッカーのパクリである。但しJSがないと動かない。

違いとしてはCyberSyndrome側で見れる情報のうち、ユーザー環境に起因しない情報を大幅に削り、ユーザー環境をメインに出せるようにしているほか、IPv4とIPv6の表示にも対応している。

作りとしては必要な情報を返すAPIを3つ用意し、ページを表示したときにJSがそれぞれを叩きに行き、その結果を表示している。

Get Enviroment APIはIPアドレス以外の環境変数を返却するもので、Get IPv4 APIはIPv4アドレスとホスト名、Get IPv6 APIはIPv6アドレスを返すように作ってある。

なぜこの様な分け方にしたかというと、Get Enviroment APIはIPのバージョンを問わない情報しか返さないが、IPアドレスまで返すようにするとIPv4に付随する情報やIPv6アドレスを返すことになるため処理が煩雑になる。

これは実装としてはCGIの環境変数をそのまま返しているのでREMOTE_ADDRに:が含まれているかどうかを見てIPv4か、IPv6かを振り分ける処理が必要になるからだ。

一方でGet Enviroment APIが環境変数だけを返すことに専念できるのならば、IPv4に付随する情報はGet IPv4 APIを叩けば取れるし、IPv6はGet IPv6 APIを叩けば取れるため、分岐処理が不要になる。

これによって各APIは単一の責務だけを持つことになり、コードの複雑化を回避できるといった寸法だ。この程度のシンプルな実装に求めることではないし、現状では無価値ではあるのだが、常日頃から意識することで、より複雑なものを作る時にも生かせるだろうし、将来何か改修するときにも作りが単純なほうが理解しやすいと思うので、こうしている。

IPv4とIPv6のAPIをどう分けているかというと、これはDNSレベルで解決している。Get IPv4 APIのエンドポイントにはAレコードのみを、Get IPv6 APIのエンドポイントにはAAAAレコードのみを設定することで、クライアントが接続する際に使用するIPバージョンを強制している。

こうすることで、各APIは単純にREMOTE_ADDRをそのまま返すだけでよくなり、IPバージョンの判定ロジックを一切持たなくて済むのが利点だ。欠点としてはAPIの数が一つ増えるため、管理コストは増えているといえるだろう。しかし分岐ロジックというのは往々にしてバグを生む存在であり、ないに越したことはないと思い、こういう設計にした。

また画面の描画をJavaScriptにさせているのも、こういったいわゆる関心の分離の思想によるところが大きい。やろうと思えばIPアドレス以外はCGIで表示して、IPアドレスのところだけをJSで書き換えることも、当然できる。出来るのだが、責務を分けるにはデータを返すだけのエンドポイントと、それを受けてJSで書き換える手法のほうが、より責務がはっきりしていて、わかりやすいのでこうしている。疎結合ということでもある。

項目値をダブルクリック・タップすることで値をコピーできるようにしているのも、地味だがこだわりポイントだ。

余談だが、先日Value-DomainでcertbotのDNS Challengeをやるスクリプトを書き直したのは、このドメインにTLS証明書を付与したり、DDNSできるようにする目的があったのが大きい。

というのも、このENV Checkerの開発にはipv4.lycolia.infoipv6.lycolia.infoというドメインが関係しており、私の自宅サーバーの環境はIPv4がコロコロ変わるためDDNSが必須だった。

私が利用しているDNSレジストラであるValue-DomainはDDNS用のエンドポイントがあるのだが、1回1ドメインしか更新できず、60秒に1度しか叩けないという制約があり、これを回避するためには、Value-DomainのDNS APIに対して、一回で複数ドメインのAレコードを書き換える必要があった。

また同時に、以前使っていた、TLS証明書更新ツールである、value-domain-dns-cert-register (vddcr)はNode.jsのアップデートなどに伴う頻繁なメンテナンスが必要だったり、動作検証不足があったり、様々な面倒ごとがあり、これ以上触りたくなかった

そんなこんなの流れがあり、ENV Checkerを作る中でOpenWrtからValue-Domainに複数サブドメインのDDNSを行うツールを作ったり、新たなTLS証明書更新ツールを作り、その検証をしたりしたのだ。

QRコードジェネレーター

もう一つはQRコードジェネレーターを作った話。

QRコードジェネレーターなどググれば無数に出てくるわけだが、意外と読み取り可能な最小サイズかつ、それをSVGで出力できるものを見つけることができなかった。そこで作ることにした。

とはいえ、作ったのはフロントエンドだけで、QRコードの生成自体はqrcode-svgを使わせてもらっている。これはこのライブラリのデモサイトで、理想の要件のものが作れることが分かったからだ。

なぜデモサイトで使えるのに、わざわざ作ったかだが、まずこのデモサイトでは最小サイズのQRコードを簡単に得ることが困難だったほか、256px以下のサイズにすることが想定されていないように見えたからだ。少なくともUIをクリックしてDIMENSIONを256px未満にしようとしても出来なかった。

また、デモサイトはいつか消える可能性もあるし、ブックマークするのも面倒なので、自分でホスティング出来るなら、それをするに越したことはなかったというのもある。

これを作っている中で得た学びとしては、カラーパレットの入力UIがWeb標準で可能になっていたことだ。そこら中で見かけるし標準であるんちゃうか?と調べたらあったので採用した。こういう複雑なものは昔であれば恐らく何かしらのライブラリを使うか、気合で作る必要があったと思うが、全く世の中は便利になったものだ。

また、こちらの実装方法については、HTMLの標準機能でカラーパレットを使ったカラーコード入力UIを作る方法の記事で紹介している。

他にもQRコードの周りには余白が必要ということも知れた。QRコードの開発元であるデンソーウェーブでは余白の求め方の計算式が解説されている。仕様上は適切な余白がない場合、読み込めない可能性があるようだ。これは恐らく周囲の図形とQRコード本体を光学的に分けて認識させるために必要なのだと思う。

なお、今回作成したQRコードジェネレーターには余白の自動調整機能は実装していない。理由は単純でサイズを自由に変えられる仕様上、帳尻をつけるのが面倒だからだ。要は手抜きである。

ついでにWebツール置き場の保守性や解りやすさを少し上げたりした

Webツール置き場のドメイン配下は元々全てペラのHTMLで実装していたのだが、ページが増えるごとに共通部分のhead要素の管理が煩雑になっていた。そこで、PHPに置き換えることにした。

結果として、以下のように、head要素の中身を共通化することができた。

まぁやっていることとしては高校時代にPHPで静的HTMLの内容を共通化していたのと何ら変わらないので、何故今更そんなことを…という感じだが、元々は静的HTMLで済むものは静的HTMLのほうが表示速度が速くシンプルでよいよなという意図で、静的HTMLにしていたのだが、数が増えてくるとそうも言ってられないということで対応した形だ。こういうのは事前に考慮しすぎると、早すぎる共通化やKISSの法則的なリスクを孕むと思っていて、定期的に振り返り、都度対応するほうが良いと感じている。いや、この程度の内容でそこまで考える必要はないと思うが…w

 <!DOCTYPE html>
 <html lang="ja">
 <head>
-  <meta charset='utf-8'>
-  <meta http-equiv='X-UA-Compatible' content='IE=edge'>
-  <title>Slackのリマインダーコマンドを作るやつ</title>
-  <meta name="referrer" content="no-referrer-when-downgrade"/>
-  <meta name="viewport" content="width=device-width, initial-scale=1">
-  <meta name="author" content="Lycolia Rizzim">
-  <meta property="og:image" content="https://tool.lycolia.info/slack-remider-creator/OGP.png">
-  <meta property="og:site_name" content="Lycolia">
-  <meta property="og:title" content="Slackのリマインダーコマンドを作るやつ">
-  <meta property="og:description" content="必要事項を埋めることでSlackの/remindコマンドを生成するやつ">
-  <meta property="og:type" content="website">
-  <meta property="og:image" content="https://tool.lycolia.info/slack-remider-creator/OGP.png">
-  <link rel="stylesheet" href="style.css">
-  <script src="check.js"></script>
-  <!-- Matomo -->
-  <script>
-    var _paq = window._paq = window._paq || [];
-    /* tracker methods like "setCustomDimension" should be called before "trackPageView" */
-    _paq.push(['trackPageView']);
-    _paq.push(['enableLinkTracking']);
-    (function() {
-      var u="https://analytics.lycolia.info/";
-      _paq.push(['setTrackerUrl', u+'matomo.php']);
-      _paq.push(['setSiteId', '3']);
-      _paq.push(['enableHeartBeatTimer', 10]);
-      var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
-      g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s);
-    })();
-  </script>
-  <!-- End Matomo Code -->
+<?php
+require_once('../template.php');
+
+renderCommonHead(
+  thumbnail: 'https://tool.lycolia.info/slack-remider-creator/OGP.png',
+  title: 'Slackのリマインダーコマンドを作るやつ',
+  description: '必要事項を埋めることでSlackの/remindコマンドを生成するやつ'
+);
+?>
 </head>

template.phpの中身

関心ごとに関数を切り分け、呼び出される側は呼び出す側に依存するように設計することで、親が子の変更に引きずられないように保守性を意識した設計にしている。他にもほとんど固定値であるものについては運用を平易にする観点からOptional化して、初期値を設定している。

<?php

function buildMatomo() {
    return <<<END
  <script>
    var _paq = window._paq = window._paq || [];
    /* tracker methods like "setCustomDimension" should be called before "trackPageView" */
    _paq.push(['trackPageView']);
    _paq.push(['enableLinkTracking']);
    (function() {
      var u="https://analytics.lycolia.info/";
      _paq.push(['setTrackerUrl', u+'matomo.php']);
      _paq.push(['setSiteId', '3']);
      _paq.push(['enableHeartBeatTimer', 10]);
      var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
      g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s);
    })();
  </script>

END;
}

function buildCommonMeta(string $title, string $thumbnail) {
    return <<<END
  <meta charset='utf-8'>
  <meta http-equiv='X-UA-Compatible' content='IE=edge'>
  <title>$title</title>
  <meta name="referrer" content="no-referrer-when-downgrade"/>
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <meta name="author" content="Lycolia Rizzim">
  <meta name="thumbnail" content="$thumbnail">
  <link rel="icon" href="https://lycolia.info/assets/brands/lycolia-32x32.png" sizes="32x32">
  <link rel="icon" href="https://lycolia.info/assets/brands/lycolia-192x192.png" sizes="192x192">
  <link rel="apple-touch-icon" href="https://lycolia.info/assets/brands/lycolia-180x180.png">

END;
}

function buildOG(
    ?string $thumbnail,
    ?string $site_name,
    ?string $title,
    ?string $description,
    ?string $type
) {
    $tags = "  <meta property=\"og:type\" content=\"$type\">\n";
    $tags .= "  <meta property=\"og:site_name\" content=\"$site_name\">\n";

    if ($thumbnail !== null) {
        $tags .= "  <meta property=\"og:image\" content=\"$thumbnail\">\n";
    }
    if ($title !== null) {
        $tags .= "  <meta property=\"og:title\" content=\"$title\">\n";
    }
    if ($description !== null) {
        $tags .= "  <meta property=\"og:description\" content=\"$description\">\n";
    }

    return $tags;
}



function renderCommonHead(
    ?string $thumbnail = 'https://lycolia.info/assets/brands/lycolia-OGP.png',
    ?string $site_name = 'Lycolia.info',
    ?string $title = null,
    ?string $description = null,
    ?string $type = 'website'
) {
  $head = buildCommonMeta($title, $thumbnail);
  $head .= buildOG(
    thumbnail: $thumbnail,
    site_name: $site_name,
    title: $title,
    description: $description,
    type: $type
  );
  $head .= buildMatomo();

  echo $head;
}

また他にも、ドメイン直下にあるページの構造を見直した。

具体的にはulとliでリストにしていた部分をdl dt ddに直し、各ツールの内容を少し解りやすくした。ただ余りにも見た目が殺風景すぎるので、liに戻してカードUIをはめ込むようにするかもしれない。

変更前 変更後

2026/03/02(月)デスクチェア探しに一区切りがついた

更新日:
投稿日:

いい感じのオフィスチェアが欲しいや、ゲーミングチェアなどの調査をしてきたまとめで椅子探しをしていたが、いったん区切りがついたのそのことについて書く。端的に言うと椅子を修理する当てを見つけたので、修理することに掛けてみることにした。

現状の椅子と修理について

まず座面の状態は急速に劣化しており、椅子のフレームから脱落しかかるほどになっていた。これは単にここ最近変な座り方をしているせいなのだが、なってしまったものはどうしようもない。

しかしニトリではもう売ってないし、修理依頼は断られるし、どうしようもなかった。

そこでどうにかならないかと調べていたら、革製品の修理を専門とする革研究所 神戸店というお店を発見した。

椅子の修理実績もあったため、早速声をかけてみたところ最大五万程度で修理できるだろうという見積もりが出たので依頼してみることにした。

しかし、現在は先客で埋まっているので、現物確認と作業可否判断は来月以降という話になった。何はともあれ、いったんこの椅子を使い続けられそうな光明が見えたのはありがたい。

とはいえ、この状態の椅子を使い続けるのは難しく、現物確認までの間や修理中に使える椅子は必要だったので、追加で椅子探しをすることにした。

新たに見てきた椅子

前回、ゲーミングチェアなどの調査をしてきたまとめでゲーミングチェアは不適当だろうということになったので、オフィスチェアを見ることにした。

家具屋を探しつくしている中、どこに行けば椅子があるだろう?と考えた時に思い付いたのがホームセンターだ。

LIFELEX ラウンドキャスターチェア パドリア

コーナン 灘大石川店にて確認。

項目 詳細 備考
座面高 43-55cm かなり座面を高くできる
素材 PUレザー
あぐら × 座面が狭すぎる
価格 4,378円 非常に安価
  • 座り心地は悪くない

LIFELEX ゆったりレザー調チェア ニネヴェ

コーナン 灘大石川店にて確認。

項目 詳細 備考
座面高 44-54cm かなり座面を高くできる
素材 PUレザー+塩化ビニル
あぐら
価格 16,280円 やや高め
  • 見た目に反してクッションが硬く、尻が痛くなる
  • 肘当てを跳ねあげることができ、胡坐をかくことに支障がなく、座高を上げたまま机の下に入れるのも容易
  • 手前より奥のほうが低く、ややふんぞり返る形になるため、作業向きではない

LIFELEX アンティークチェア クラロスII

コーナン 魚崎店にて確認。

項目 詳細 備考
座面高 45-53cm
素材 PUレザー
あぐら × 肘当てが邪魔
価格 10,780円
  • 座り心地が良い

最終的に買った椅子

最終的にはLIFELEX ゆったりレザー調チェア ニネヴェを買うことにした。

座り心地だけを見ればLIFELEX アンティークチェア クラロスIIが一番よく、価格も安いからこれにしたかったが、肘置きの高さが机と衝突する高さだったため、値は張るが肘当てを跳ね上げることができるため、こちらを購入した。

この椅子は16,280円とやや高いが、それでもニトリのOC520と比べれば安価で、椅子の修理中にさえ使えるなら問題ないと判断した。

背中が群れるし、尻は痛いし、イマイチだが、価格からすれば及第点だ。せめてニトリのOC115 PVCの座高がもう少し高ければこちらにしたかったのだが、仕方ない。

関連記事

2026/03/02(月)最近見かけた面白いサービスやホームページ

投稿日:

この記事では、ここ最近見つけた面白いサービスやホームページについて書いていく。

サービス編

なんでもメモ、デライト (Delite)

まず初めに紹介するのがなんでもメモ、デライト (Delite)だ。どことなくレトロな雰囲気が楽しいサービスだ。

「デライトは、なんでも記憶できる魔法のメモ帳です。」とあるサービスで、ぱっと見はマイクロブログ的になっているが、投稿はすべて公開され、メディアのアップロード添付はできず、文章だけを投稿するSNSだ(一応YoutubeのURLを展開して動画プレイヤーを出す機能はあるようだが…)

このサービスでは投稿は「輪郭」と呼ばれ、輪郭は、花のように1輪、2輪……と「輪」で数えるとある。トップページにも「3,117,820輪の記憶が描き出されています。」とあり、投稿を「輪」という単位で計数していることがわかる。

また輪郭にはタイトルと本文を付与でき、タイトルは「知名」といい、これはハッシュタグとして機能するようになっている。本文は「描写」と呼ばれている。投稿すると投稿番号が附番されるが、これも「知番」という名前になっており、独自の世界観が熟成されていることがわかる。他にも独特の要素が色々あるので、気になった人は是非、使い方を見てみてほしい。あと、デライトで使える独自のマークアップ言語、デラングの存在も、デライトの独自性や世界観を補強しており、面白い。

アカウント登録は利用者番号とパスワードのみで行うことができ、メールアドレスが不要であることも独特だ。要するに忘れたら戻れないが、同時にアカウントの価値に重きを置いていないことも伺える。初期のころのMisskeyもそうだったが、あちらはメールアドレスが今では必須に近い運用だろうから、今はそうでないと言える。

もしかするとデライトは輪郭に重きがあり、利用者については、あまり関心がないのかもしれない。使い方のページに投稿が削除できない代わりに忘れ去られるとあるように、その利用者もまた忘れ去られるのかもしれない。そう考えると、詩的で、哲学的でもある。

中身としては、はてなキーワードの現代版といった感じで、「知名」を「引き込み」という、RTやリブログに近い仕組みで引用し、新しい輪郭を作ることで輪郭同士を知名で連携し、全ての情報をハッシュタグでリレーしていくような感じの世界が広がっている。

Wikipediaで何かの記事を見て関連記事を眺めていくみたいなことが無限にできる感じだ。中身はそこまで濃くなく、全体的にはてなキーワード的だと思う。

つまりこれは懐かしい感じのUIや雰囲気の中に、やや中二病じみた世界観を生み出し、中身としてははてなキーワード的なマイクロブログだといえると思う。

ちゃんと広告が貼ってあったり、ダークモードも実装されているのは今風だと思うし、広告が少なく、そこまで邪魔でもないのは利用に際し、快適だと感じる。

rururu

rururuはソーシャルフィードリーダーだ。個人的にソーシャルフィードリーダーという概念をここで初めて知ったので新しい概念に感じている。

これは自分の購読しているフィードを公開したり、読んだ記事に足跡をつけたり、その痕跡を友達にも見せられるサービスだという。

アルゴリズムで作られたおすすめ投稿がタイムラインに並ぶ昨今のSNSへのカウンターとして、拡散を意図しないブログサービスや個人サイトなどでしずかに情報発信をする人が増えています。そこで便利なのがフィードリーダー。フィードリーダーは自分が登録したサイトの更新情報だけが流れてくるので、自動レコメンドに煩わされることなく個人発信の最新情報をキャッチできます。

サービスの説明には、このようにあり、こちらもデライト同様に中々独創的なサービスだと感じる。

実は私も過去に似たようなものを考えたことがあり、それが具現化されていたのもあり、非常に面白いサービスだと感じた。

現在はまだベータサービス中で、本格運用はされていないようだが、申請すればベータアカウントが登録されるらしい。

個人的にはrururuという楽しそうなサービス名や、肉球のアイコンが気に入っているし、このブログもフィード登録されている事についても、嬉しく思っている。

ピクリエ

ピクリエはオンライン同人誌即売会ができるサービスだ。ここまでに紹介した個人運営系のサービスとは毛色が違い、お金が発生するやつで、会社法人が運営しているサービスである。運営企業はなんとメガネの町、鯖江にあるらしい。

ただ会社の住所や運営形態を見る感じ、自営業者ではあるように思う。

システム自体は名古屋にある株式会社GMWという企業が開発したpictSQUAREというものを使用しているらしい。なんと特許をとっているらしく、ピクリエはこの特許利用を許諾されている唯一の例らしい。

中身としてはRPGツクール製ゲーム的な画面の中で即売会イベントを行い、サークル側は指定のブースに立ち、ユーザーは会場を巡回し、ブースを回覧していくといった感じの内容だ。ただ、即売会とは言うもののピクリエ自体には販売機能がないため、ブースではBOOTHや通販サイトなどのリンクを張り、ブース内ではやってきた同好者と話をしたり、サンプル本が見れるリンクを見せて読んでもらったり、というのが軸になるようだ。

費用としてはイベントの企画者がシステム利用料をピクリエに払うほか、ユーザー側もイベンターに対して支援金を払うことができるようで、これはエールと呼ばれ、支援金の一部(15%)はマージンとしてピクリエの収益となるそうだ。他にサークルから参加費を撮ることができるが、これは主催者に送金されるものらしい。恐らく主催者はサークルから集金したお金をシステム利用料に転嫁することが多いのだろう。

エールはあまり期待できないだろうから、ピクリエは基本的にイベントのシステム利用料を収益源としていることが伺える。24時間のイベントだと1サークル当たりのシステム利用料が550円だそうだ。

3月3日~3月29日では780サークルの参加が確認できたことから、単純計算ではピクリエとしては429,000円の収入があると思われる。結構渋い。ちなみに29イベントあり、サークル参加の平均は26.89サークルだった。

ホームページ編

neocitiesのホームページたち

特定のホームページを指すわけではないが、neocitiesのホームページ達はどことなく懐かしい。例えばGIFがキラキラしていたり、要素がいごいごしていたりするのは、インターネット黎明期の個人ホームページを想起させる。

実際の作りや雰囲気は当時と異なるものの、どこか懐かしい風景が見れるホームページが多いのが特徴的だ。

全てがすべてそうというわけでもないが、100%healthneo's HEAVENWURLD ଘ(ˊ_ˋ)caramelpuddinzなどはその一例といえるだろうし、英語圏のホームページでもWebリングや日本のアニメ的画像が用いられているのは興味深い。

I'M FANTASIZING ALL THE TIMEというホームページも英語圏のように見えるのだが、何故かD4DJの笹子・ジェニファー・由香を熱く推したページが存在している。結構マイナーな作品だと思うのに、一体どこで知ったのか謎である。海外でも配信はされてたらしい

1990~2000年代の懐かしホームページとカオスのような空間を楽しみたい人にはneocitiesホームページ巡りはうってつけだ。気が付いたら時間が溶けていること間違いなしである。

ドギマギふんたぢ~

急にゆるいタイトルが出てきたが、ドギマギふんたぢ~というホームページでは、管理人のえのきのこさんが可愛らしいドット絵をはじめとしたイラストを展示されていて、非常に和む。

ホームページのタイトルがGIFでくるくるゆらゆらしていたり、全体的に手作り感というか、めちゃくちゃ手書きで手作りのデザインがとても素敵だ。

思えば、昔はこんな感じのゆるーい絵師さんのホームページをよく見ていた気がするし、怒涛のごとく流れ、消費してしまいがちなpixivやTwitterなどのSNSで絵を見るよりもゆったりと見れて、記憶に残りやすく、その分、感動もあるように感じる。

カウンターをクリックすると何やら胡散臭い所に繋がり、胡散臭さしかないのもいい。なんか埼玉の会社がやってるアクセスカウンターらしい。恐らく無料カウンターを多くのサイトに乗せてもらうことで被リンクを増やし、自社のSEOを上げようとしているのだろう。

ヤチヨの部屋 - Yachiyo's Room

ヤチヨって誰だよ!となるのが次に紹介する、ヤチヨの部屋 - Yachiyo's Roomだ。

恐ろしいことにタイムスタンプがすべて2003年で、お絵描き掲示板は動かないのに掲示板の風体をしてるし、タイムスタンプに対して絵柄が新しすぎるw

絵茶には定型文のチャットが流れ続ける中、自分も入力して流せるギミック付きで面白い。

絵茶はクレジットからして既存システムを使いまわしているようだが、ゲーム置き場には本格的なゲームもあり、ちゃんとプレイできる内容になっていて、ドット絵もかわいいのに、こちらにはクレジットがないのが驚きだ。

またフレームを使ってそうで、流石に使っていなかったり、ベースのHTMLが韓国語なのをブラウザの言語設定か何かを見て日本語表示になるようになっているのも面白い。

タイムスタンプの違和感や、取りされなかったハングルの痕跡など、全体的に嘘くさくて不気味なところはあるが、作りこみが素晴らしく、ぎゃらり~に至っては恐らく管理人氏のイラストだろうか?文字の部分は丁寧に各言語に直されているので、非常に素敵だ。特に「メンダコだよ…たぶん?」の可愛さや「シーラカンス!」の力強さ?が好きだ。

ちなみにこのホームページはフェイクが多いように感じるが、アクセスカウンターはどうも本物らしく、またWeb拍手もちゃんと書き込むことができて、これまた面白い。

作者は絶対面白い人だと思うので、一度どんな人なのかSNSか何かで見てみたいところである。それとWeb拍手にある以下の記述から推察するに、やちよさんが実際の人物だとしたら、多分一人で作ってなさそうな気もするので興味深い。

やちよ本人ではなくファンサイト制作者です

ところで結局やちよさんは誰なんだろうか…。

🌐Web 1.0 同盟

🌐Web 1.0 同盟は、なんと最新の技術で作られたWebリングである。ホームページにあるGoogle Formから申請すると登録することができる。

JSを貼り付けることでバナーを表示するのだが、どうやら参照するスクリプト内に登録ホームページの情報が列挙されていて、それを読み込むことで動いているようだ。github.ioのリソースだけで動かすことができ、この手のものにしてはバックエンドが不要というのがユニークだ。しかも実装技術にはOnionring.jsという海外製のものを使っているというのも面白い。Webリングって海外にもあるの!?でも、neocitiesにはあるからあるのかもしれない…?

バナーデザインもWeb1.0っぽく、ホームページのデザインもそれっぽいのがいい。実装や記法はモダンだが、見た目はレガシーというのに趣を感じる。

私も発見してすぐに申請を出し加盟しており、トップページにバナーを貼っている

あとがき

しかし、デライトもrururuも、アクセス解析にあったリファラで存在を知ったのだが、こういう経験をするとMatomoを入れて本当に良かったと思える。何故なら私はGoogle Analyticsを使っていた時は、まともにデータを見ていなかったからだ。Matomoは常に私に発見と感動を与えてくれる。非常に素晴らしいアクセス解析だと感じる。

昨今は個人ホームページブームが復権してきているのか、こういったものが増えていて個人的にはとても楽しい。これぞインターネットって感じがする。そう、令和初頭のインターネットの在り方の一つなのかもしれない。

個人ホームページ周りの隆盛については、以前書いたミンゲイインターネットの紹介でも触れているし、この手の記事はBlueskyの例の記事を読んだ感想と、古今のインターネットへの想いや、古のサイト探究~駄文同盟のID上位100サイトを巡り、今までのネット人生や自サイトの過去を振り返ってみるでも触れている。

私にとって個人ホームページこそが全てのインターネットの始まりで、Webみたいなところがあるので、こういう風潮はとても良いと感じているし、昨今の中央集権型のインターネットよりは、個人ホームページや、雑多なサービスに分散された疎なインターネットのほうが、余計な諍いも減り、平和になるだろうとも思っている。