プログラミングを始めた動機とか。

なんか書くネタが無いので自分の「プログラミングを始めた動機」 ってのを語ってみよーかと思いますです。まぁ単純な理由なんですが、 「オリジナルの掲示板を作りたかった」から。

それまでフリーで配布されていたスクリプトを HTMLの部分だけカスタマイズして使ってたんですが、 自分で全部作ってみたいという欲が出てきまして。

まぁ最初は宇宙語のよーなソースを見るだけで頭がクラクラしたし、 こんなのをちまちまと何百行、何千行も書くなんて 正直プログラマーって変態に違いないと思いました。 ぶっちゃけ。自分にはとても無理だと思いましたよ。

でも「クリエイティブな事したい!」って気持ちが当時は(今でもですが)溢れてたワケでして。 諦めずにプログラミングの入門書と格闘しつつ、 どーにかこーにか作り上げたのが「aa_bbs」(のプロトタイプ)。 だから「aa_bbs」には初めての作品って事で個人的に思い入れがあるんですよね。 今でこそアクセス解析ばっかり作ってますが……掲示板も好きですよ?

PHPスクリプトの不具合報告に関して

え~BBSやメールにてPHPスクリプト(殆ど『Lapis』ですが)の不具合報告を頂きますが、 純粋に「スクリプトのバグ」が原因というのは全体の5%ぐらいの割合です。 残り95%は「サーバーの設定が悪い(制限を設けている)」「パスの書き方が悪い」 「設定ファイルの書き方が悪い」「その他設置の仕方が悪い」といったことが原因です。

こちとら何年も開発を続けているわけなので、そうそう簡単にバグなんて見つかりませんよ(多分)。 素人のユーザーさんはどこに原因があるのか想像もつかない、というのは理解しています。 ですがまず疑うべきはスクリプトではなく、サーバーや自分の設置方法だということを 知っておいて欲しいです。

仕方の無いことですが、「スクリプトが悪い」という前提で話を進める人が大勢いるので とても悲しいです(他の可能性を考えもしない)。PHPスクリプトに限らず、 プログラムというのは実行環境に依存するもの。 例えばPHPスクリプトなら「PHP本体」「Webサーバー」「OS」「ハードウェア」等。

それぞれにバージョンと細かい設定があり、組み合わせはほぼ無限にあります。 よほど単純なものでない限り、その全てのパターンで完璧に不具合なく動作するプログラム、 というのはこの世に存在しません。マイクロソフトには恐らく世界でもトップクラスの頭脳が 大勢いることでしょう。ですが『Windows』に不具合はないと言えますか? つまりはそういうことです。

『WordPress』への移行を断念

え~BBSでちらっと書きましたが『WordPress』に移行しようかと迷ってたんですが、やめました。 実際に『WordPress』を設置して試してる最中なんですけどね。 良い部分は取り入れて、このまま独自路線で細々と続けますですよ。 Sepiaの一番の問題点(?)は綺麗なテンプレートが用意出来ないってこと。

なので『WordPress』のテンプレートをそのまま利用出来ないかな~と思ってたんですが甘かった。 つーかバリバリPHPファイルなんですよね。『WordPress』は。しかもオブジェクト指向じゃないし。 なるべくシンプルなテンプレートが理想なんですが、ちょっとアレすぎなので断念。

デザインはなんとかするとしてシステムの話。 現在のテンプレートシステムは高速で動作するかわりに 「論理構造を変えられない」「パーツの再利用が出来ない」という欠点があります。 新しい仕組みを考えるしかないのかな~。う~みゅ。

新作アクセス解析『Lunasys』を開発中です。

というわけで以前からちょくちょく話題にしてたアレです。 既に開発開始から2年ぐらい経過してる様な気がしますが気のせいですね。 多分『ダークソウル』が発売される前にはリリース出来るかと思います。

以前も言った記憶がありますがおさらい。『Lapis』の「後継」というより「リファイン」な感じです。 『Lapis』は要望があるままに機能をゴテゴテと増やしすぎ、設置も面倒になってしまいました。 なので今回は自分の使ってない機能は思い切って削り、シンプル路線で簡単設置という原点回帰。 細かい使い勝手も改良しています。

一番の大きな違いはデータの保存方法ですかね。『SQLite』オンリーにしてDB(ファイル)を分散して保存。 時間経過によりデータが肥大化し、処理が遅くなるという根本的な問題を解決しています。 まぁいまどき『PHP4』を使ってるサーバーもないだろう、と(セキュリティ的に)。 『SQLite』は『PHP5』以上で標準で使え、データはただのファイルなのでユーザーにとっても扱いが簡単です。

データ取得精度の向上を目標にしてますのでPHPページでのincludeを推奨。『Lapis』ではページタイトルを取得出来ない ケースがありましたがこれも解決してます。もちろん従来通りJavaScript経由(tracker.js)でも使えます。 こっちも記述をシンプルにしてますので『Lapis』よりマシになってるかと。

管理画面は『HTML5』で記述して構造も極力シンプルに。装飾的な画像も廃してますので『Lapis』 より表示速度は上がってると思います。『HTML5』に興味のある人はソースを眺めてみると面白いかもしれません。

新作アクセス解析『Lunasys 1.0.0 beta1』リリース!

【アクセス解析 Lunalys 特設サイト】

え~前回もっと時間がかかるというような言い方をしましたがそんなことはなかったです。 あれれ? まぁいいや。完成したてでまだテストが不十分なのでベータ版です。 バグがあったら遠慮なくBBSかメールにて指摘して下さいな。

『Lunasys』はフレームワークを同梱するようにしました。なので『Lapis』のように 個別にダウンロードする必要はありません。『Mint』ともアーキテクチャーが似て非なるものになってますしね。

リアルの友人からまだやってるの?(冷笑)とか言われたりしますが、まだまだ頑張れるYO!(泣きながら)

新作アクセス解析『Lunasys 1.0.0 beta2』リリース!

【アクセス解析 Lunalys 特設サイト】

というわけで「beta2」です。めっちゃいじったので差分ファイルはありません。 解析対象ページとは別ドメイン(別サーバー)に『Lunasys』を設置する際は 必ず「lunasys/analyzer/configs/conf.ini」の「domain」の項目に対象ドメインを記述して下さい。

ファイルのフォーマットを『SQLite2』から『SQLite3』に変更したので「beta1」のデータは読み込み出来ません。 むしろ存在しているとエラーになりますので「beta1」をご利用の方は全てのファイルを上書きアップ後、 「lunasys/data/」フォルダのに存在するファイルを全て削除して下さい。 お手数をお掛けしますがよろしくです。

「beta1」からの変更点は以下の通り。

新作アクセス解析『Lunasys 1.0.0 beta3』リリース!

【アクセス解析 Lunalys 特設サイト】

というわけで「beta3」です。現在把握しているバグなどは全てやっつけました。多分「最終beta」になりそうな予感。 またそこそこいじったので差分ファイルはないです。すいません。 一ヶ月ぐらい様子をみて問題が無ければ 7/20 頃に正式版をリリースすると思います。

要望のあったテキストカウンターを復活させました。設置用のタグは「lunasys/analyzer/setup.php」 にブラウザでアクセスして頂ければ表示されます。

beta2からの変更点は以下の通り。

新作アクセス解析『Lunasys 1.0.0 beta4』リリース!

【アクセス解析 Lunalys 特設サイト】

というわけで「beta4」です。今度こそ「最終beta」のはず。 今回は新機能「後追いデータ追記」を実装。これで「1.0.0」の機能は全て出揃いました。

「後追いデータ追記」とはなんぞや、というと基本PHPのincludeでデータを取得して、 その後にJavaScriptで「ディスプレイ解像度」と「ブラウザ表示領域」 のみ後追いでデータを追記する、というもの。 2種類のデータ取得方式の良いとこ取りなシステムです。

ネックはPHPのタグとJavaScriptのタグを両方書かなくちゃいけない点。まぁ『WordPress』とか テンプレートを使ってるシステムなら簡単ですが、そうじゃない場合「簡単設置」という コンセプトからはちょっと外れるんでこだわりたい人だけ使えばいいよ、というスタンスです。 従来通りPHPのincludeだけでも十分かなと個人的には思います。

beta3からの変更点は以下の通り。

『Lunasys』の今後の予定

「1.0.0」正式版は7月29日リリース予定です。例によってbeta4からまたちょこちょこと 変更があります。まぁちょっとした機能強化程度ですが。で、その先はというと来年あたりに 「1.1.0」を出せたらなと。

「1.1.0」は『Lapis』にある機能をいくつか復活させるのと『6hot_Analyzer』の一部機能を 取り込めたら幸せになれるんじゃないかと考えておりますですよ。予定は未定ですので期待せずに待て!  そんな感じです。

追記:あーバージョンは「2.0.0」になるかもしれません。メジャーバージョンアップ祭りが最近の流行ですしね。そこらへんは気分に応じて

約3年ぶりの新作アクセス解析『Lunasys 1.0.0』リリース!

【アクセス解析 Lunalys 特設サイト】

というわけで『Lapis 4.4.0』から約3年ぶりとなる新作アクセス解析です。 インターフェイスは以前配布していた『Sepia』をベースに細部を作りこんだ感じ。 『Lapis』は「ポップで柔らかい」デザインなのに対し『Lunasys』は 「シックでソリッド」なデザインになってます。

まぁその時々のサイトデザインに影響されていますが、ずっと同じだと飽きるしね。 ソフトウェアの進化で一番楽しいのが「見た目の進化」だと個人的に思ってます。 そこはこれからもこだわっていきたい部分ですね。

IE6だと盛大にレイアウトが崩れるのがネックですが、あえて修正しません。 仕様です。IE6を使ってる人は慌てず騒がず新しいバージョンにアップデートするか、 窓から投げ捨てて下さい

ちなみに折れ線グラフはIE9以降で表示可能です。『Lapis』ではIE用にVMLを使ってましたが、 IE9でVMLのサポートが打ち切られたのでVMLは使ってません。 HTML5のCanvasオンリーになりました。時代の流れというやつです。

何度か言ってますが位置付け的には『Lapis』のリファイン版。 『Lapis』をベースにしつつ細かい使い勝手を改良してます。 必要性が低いと判断した機能は削除しましたが、今後バージョンアップで復活する可能性もあります。

beta4からの変更点は以下の通り。

新作アクセス解析『Lunasys 1.0.1』リリース!

【アクセス解析 Lunalys 特設サイト】

というわけで色々と修正とか変更です。不具合など見つけたらBBSにどしどし書き込みよろしくです。

新作アクセス解析『Lunasys 1.0.2』リリース!

【アクセス解析 Lunalys 特設サイト】

差分ファイルは「1.0.1」の内容も含みます。前回言いませんでしたが 「2.0.0」(仮)へ向けての仕込みもこっそり入れてます。 「1.0.0」からのアップデートだと何かと面倒になるので、 今のうちのアップデート推奨です。

今回は管理者Cookie関連の変更です。解析対象ページと同一ドメインに 設置している場合はあまり関係ないです。ちなみに下記の cookie.php を使っただけては管理画面にログイン出来たりはしません。 あくまで「admin_count = 0」用です。 なので第三者に悪用されるといったことはないですが、 一応使った後は削除して下さい、と書いておきました。

「1.0.1」からの変更点は以下の通り。

Twitterの『Profile Widget』をPHPで表示してみた。

というわけでツイッターの『プロフィール ウィジェット』を PHPからツイートを引っ張ってきて表示する仕組みを作りました。 きっかけはIE9で表示出来なくなったという障害。 以前も興味本位で簡単に作りましたが本格的に実装しました。

通常は外部.jsをHTMLから読み込んで表示しますが、今回は『Twitter API』というのをPHPから使います。 これのメリットは今回の障害のような不具合や仕様変更の影響を受けにくい、 外部.js(外部.css)を読み込まないので表示が速い、 表示に使うHTML及びCSSを好きにいじれるといった点です。

デメリットはAPIの実行回数制限がある、認証が必要な場合があるなど。 後者は他所で調べてもらうとして前者の対策は簡単です。 ツイートを読み取った時に内容をファイルに保存して 表示の際にそのファイルを参照するようにすればいいのです。

読み取り&保存と表示を分けることにより、閲覧者が直接APIにアクセスしなくて済むので 回数制限に引っかかりません。ただ、読み取り&保存を手動で実行する必要があります。 面倒なら『cron』で自動実行させることも可能ですが。自分は一日数回しかツイートしないので手動です。 ブラウザでスクリプトにアクセスするだけ。

仕様の内容は以下の翻訳を参考にさせて頂きました。感謝!

アクセス解析『Lunasys 2.0.0 beta1』リリース!

【アクセス解析 Lunalys 特設サイト】

というわけで新版です。色々と機能を追加しましたが目玉は「円グラフ」の機能ですかね。 これは『Lapis』の時代からやりたかったんですが、Canvasを使うことでようやく実現しました! 当然Canvasに対応したブラウザでないと表示出来ませんのであしからず。 実装にあたっては『HTML5.JP』という 素晴らしいサイトを参考にさせて頂きました。感謝!

『Lunasys 1.0.2』からの変更点は以下の通り。ログのフォーマットが変更になりましたので 旧バージョンからアップグレードする場合はまず最初に「ログデータ管理」から 「ログテーブルのコンバート」を実行して下さい。

アクセス解析『Lunasys 2.0.0 beta2』リリース!

【アクセス解析 Lunalys 特設サイト】

というわけでbeta2です。細かい部分の修正と変更、config設定の追加など。 beta1からの変更点は以下の通り。

アクセス解析『Lunasys 2.0.0 beta3』リリース!

【アクセス解析 Lunalys 特設サイト】

というわけでbeta3です。変更点は以下の通り。beta4は未定。 問題が無ければ一ヵ月後ぐらいに正式版リリースするかもです。

アクセス解析『Lunasys 2.0.0』(正式版)リリース!

【アクセス解析 Lunalys 特設サイト】

というわけで正式版です。Lunasysはシンプル路線で行こうと思ってたんですが例によって 気がついたらシンプル(笑)になってました。あるぇ~?? 1.0のときは 「Lapisのリファイン」と言ってましたが2.0は間違いなく「Lapisの後継」と言えるでしょう。 簡単に書くと

6hot_Analyzer + Lapis + α = Lunasys 2.0

といった感じ。これまでの解析の良いとこ取りかつ余計な部分を削り、全体的にブラッシュアップ。 今まで培ってきた技術の集大成と言っても過言ではありません。 こういうこと自分で言うのはあまり好きではないんですが、今回は良く出来てると思います。 まだLapisを使ってる人にもお勧めしたい一品でございますですよ。

beta3からの変更点は以下の通り。

アクセス解析『Lunasys 2.0.1』リリース!

【アクセス解析 Lunalys 特設サイト】

というわけで修正版。フレームワークレベルで直してます。 タイムゾーン関連のエラーが頻発してたのでフレームワークに組み込みました。 多分サーバーの管理者がPHP本体をバージョンアップしたりすると問題が出るようで。 またエラーが発生するようならどんどんBBSに書き込んで下さい。

「リンク元が取得出来ない」と言ってくる人が非常に多いんですがその原因は ほぼ100%「conf.ini」のドメイン設定が間違っている、 もしくは設定されてないのどちらかだと思われます。 設定したとしても、その後アップデートしたときに差分ファイルに「conf.ini」 が含まれていて再設定を忘れているというケースも考えられます。

今まではドメイン設定が空欄だと自動で設置先サーバーのドメインを設定していましたが、 昔みたいにチェック自体を行わないように変更しました。 設定しなくても動くけど設定しないと面倒なことになるよ、という感じです。 また、初心者向けに具体的なドメインの書き方を「readme.txt」に載せておきました。 ここまでやれば大丈夫でしょう。

あと『freo』でPHPインクルードの場合に動かない、 という情報があって試してみたんですが、全ての処理の前にLunasysのコードを 記述すると動作しました。恐らく内部で終了処理をしていると思われます。 Lunasysのコードを最後に記述すると実行前に終わってしまうケースがあるので 『freo』に限らずPHPインクルードで動かない場合は最後ではなく最初に記述して試してみて下さい。

主な変更点は以下の通り。

アクセス解析『Lunasys 2.0.2』リリース!

【アクセス解析 Lunalys 特設サイト】

差分ファイルに関して「conf.ini」を中に入れたくないので一旦リセットしてます。 一応betaから2.0.1までの差分はPHPスクリプトのページに残しておきます。 「php.ini」にPDO関連のエクステンション読み込みの記述を入れたんですが、 さくらインターネットなどで問題となるようなのでコメントアウトしました。 必要ならコメントを外してね、ということでよろしくです。

あとリンク元の取得時に「conf.ini」のドメインで複数設定している場合、 そのドメイン間でのリンクは同じサイトと見なしてリンク元を消してしまう問題 (仕様とも言えますが)があったんで直しました。

ログ取得の部分を並列処理させようとしたんですが見事に期待外れ。 そもそも並列は時間のかかる処理向きで元々速い処理をさらに高速化するための ものではない気がします。ですが実験する過程で無駄な部分がいくつか分かったので 少しだけ改善してます。

アクセス解析『Lunasys 2.0.3』リリース!

【アクセス解析 Lunalys 特設サイト】

というわけで「2.0.3」です。なんだかんだで盛りだくさんになっちゃいました。 今回は主に高速化に注力してます。特にログ取得の部分は大幅に書き直してますので パフォーマンスはかなり向上したと思います。管理画面も色々と工夫してます。 体感出来るレベルではないかもしれませんが。

あとオーバーレイに文字コード判定を付けたんですがHTML内に 「charset」が書かれていることが前提となってます。 書いてない人はちゃんと書いて下さい。よろしくです。

主な変更点は以下の通り。

※2012/02/02 21:21 追記

バグがあったのでアーカイブファイルを差し替えました。既にアップデートしてしまった人は改めて差分ファイルをダウンロードして上書きアップして下さい。申し訳ないです。

※2012/02/04 08:40 追記の追記

さらにバグがあったのでいい加減観念して本日中に「2.0.4」を緊急リリースします。前回の差し替え内容も「2.0.4」として扱います。バタバタしてすいませんです。

アクセス解析『Lunasys 2.0.4』リリース!

【アクセス解析 Lunalys 特設サイト】

というわけでバグ修正版です。2.0.3は無かったことにして下さい。ハハハ。こやつめ。 まぁさすがにあれだけいじれば色々と見落としも出てくるものですよ。 最近毎週リリースしてますけど多分これで落ち着くのではないかと思います。

主な変更点は以下の通り。

※2012/02/07 08:15 追記

またバグがあったのでアーカイブファイルを差し替えました。既にアップデートしてしまった人は改めて差分ファイルをダウンロードして上書きアップして下さい。申し訳ないです。

・詳細ログ条件検索でリンク先の検索がエラーが出て表示されないバグを修正

アクセス解析『Lunasys 2.1.0』リリース!

【アクセス解析 Lunalys 特設サイト】

というわけで『Lunasys 2.1.0』です。本当は出さないつもりだったんですが まぁ色々ありまして。大人の事情により仕様変更の上リリースすることと相成りました。 今までリンク元とかのリンクは直接ジャンプ(転送ですが)してましたが 『Lapis』と同じワンクッション置く形式に変更となりました。

自分としてもギリギリの判断で心苦しい限り。ですが未来への布石、と前向きに考えて頂ければと。 最初は違和感あるかもですが、慣れればどうってことないです。ご理解頂ければ幸いです。 まぁ将来的に何事も無かったかのようにしれっと元に戻すかもですが。 そのときは……お察し下さい

今回の目玉は以前から要望のあった「UA全文」を保存&表示するようになったことですね。 ただ追加するだけだとデータ量が増えすぎるので、他の部分でなんとか相殺出来るよう 工夫してみました。さすがにまったく増えない、というわけにはいきませんでしたが許容範囲内かと。 このサイトの場合、一割増し程度でした。

UA全文の追加に伴い、詳細ログ画面のレイアウトもちょっと変更しています。 少しは見やすくなったかと。あとはデザインの再調整とかバグ修正とか細かい変更です。 あ、そうそう。重要な変更点。データ量削減のために詳細ログと月間ログ(リンク元のみ) のデータフォーマットが大幅に変更になりました。

詳細ログに関しては古いログが残ってるとエラーが出るので全てリセットになります。 月間ログ(リンク元のみ)はリセットではないんですが古いデータは表示されなくなります。 大変申し訳ないですがご容赦を。「リンク元」は今までそのままURLを保存してましたが、 「ページ」「リンク先」と同じようにページ番号で保存するようになりました。

アップデート後は必ず「ログデータ管理」から「ログテーブルのコンバート」を実行して下さい。 お手数をおかけしますがよろしくです。主な変更点は以下の通り。

アクセス解析『Lunasys 2.1.1』リリース!

【アクセス解析 Lunalys 特設サイト】

バグがあったので修正しました。

アクセス解析『Lunasys 2.1.2』リリース!

【アクセス解析 Lunalys 特設サイト】

バグがあったので修正しました。

Google検索で検索語が取得出来ないケースについて

参考:米Google、検索サービスのSSL接続を標準に [詳細版]

以前から気になっていた問題ですが、『Lunasys』などアクセス解析でGoogleから訪問時に 検索語が空欄になるケースがあります。このカラクリがようやく判明しました。 結論から言うとGoogle先生の仕様です。バグでもなんでもありません。

プライバシーポリシーの変更に伴い、検索語が外に漏れるのは良くないんじゃないか とGoogle先生は考えるようになったみたいです。プライバシー保護団体の圧力に屈したのかもしれません。 ともあれ「検索語を強制削除したURLからリダイレクト」という動きになるようです。

リンク元は一つ前しか取得出来ないので、実際に記録されるリンク元から検索語を復元することは 普通のアクセス解析では不可能です。サーバーの生ログでも確認しました。ただ、自社に有利になるよう 「Google Chrome」や「Google Analytics」だと……といった小細工を仕掛けてくるかもしれませんが。

上記のページだと「google.com」のみが対象と書いてありますが、2012年3月6日から「google.co.jp」でもこの仕組みが使われ始めてるようです。 今後全面的に検索語が取得出来なくなる可能性もあります。 Google先生には考え直して欲しいところです。

アクセス解析『Lunasys 2.2.0 beta1』リリース!

【アクセス解析 Lunalys 特設サイト】

はい、というわけで先行版です。当サイト史上最も地味なバージョンアップかも。 動作の高速化がメイン。管理画面はmod_deflateによる全ファイルの圧縮転送を実施。 あとPHPからのincludeで新しく『tracker.php』というのを用意しました。

これはソケット通信でリクエストを送ってレスポンスを待たずに通信を終了させるので、 ページの表示速度に『Lunasys』の書き込み速度が影響しないようになります。 完全に別プロセスで動作するって感じです。何か不具合があったらバグレポートよろしくです。

主な変更点は以下の通り。

アクセス解析『Lunasys 2.2.0 beta2』リリース!

【アクセス解析 Lunalys 特設サイト】

バグ修正がメインです。あとdocomoはスマホの発売ラッシュを自重すべき。 毎回更新が大変なのです。主な変更点は以下の通り。

『Lunasys』改め『Lunalys 2.2.0 beta3』リリース!

【アクセス解析 Lunalys 特設サイト】

はい、というわけで予告通り名称変更しました。『Lunasys』改め『Lunalys』です。 読み方は「ルナリス」。「analysis」(解析)にちなんだ名前です。 というか元々の『Lunasys』はどこから来たのかというと……。 まぁ人生には色々ありますよね

ついに、というかようやくスマホ用の管理画面が出来ました。作ろうと思ってからここまで 来るのに余裕で半年ぐらいかかってます。 なんていうかモチベーションが上がらなかったんですよね。 そもそもスマホ持ってないし

そんなこんなでgdgdになりつつもなんとか完成。 細かい部分は実機で確認して調整する予定です。 主な変更点は以下の通り。

『Lunalys 2.2.0 beta4』リリース!

【アクセス解析 Lunalys 特設サイト】

というわけでbeta4です。スマホ用管理画面を実機で確認して色々と修正しました。 多分これが最終betaになるかと。例によって一ヶ月ぐらい様子をみてから 正式版のリリースとなります。バグがあったら早めに連絡よろしくです。

あとbeta3で『PHP5.3』以上向けの記述をしてしまい(知らなかった)、 『PHP5.2』だと動かなくなってましたが記述を変えたので今度は動くはずです。 正確には『PHP5.2.3』以上。『PHP5.1』の人はごめんなさいです。 「2.1.2」を使って下さい。

アクセス解析『Lunalys 2.2.0』リリース!

【アクセス解析 Lunalys 特設サイト】

きれいなスマホ表示してるだろ。HTML差し替えてるだけなんだぜ。これ……

というわけで正式版です。一ヶ月ほど様子を見る、と言いましたがなんかもう 引っ張るのが面倒になったのでリリースしちゃいます。 あとダークソウルのDLCも出るしね。

今回の目玉はやはり「管理画面のスマホ対応」ですかね。結構前からの懸念事項でしたが ようやく実現しました。ぶっちゃけ今の時代スマホ対応しないとこの先生きのこれないですし。 とはいえ動いてるロジックにはほとんど手を入れてません。PC向けと同一のものが そのまま動いてます。出力の時にHTML(とCSS)を差し替えてるだけ。

あと色々な部分で高速化してます。毎度よくやるわ、と自分でも思いますw  だってやってて楽しいし。パフォーマンスチューニングはやりだすと止まらない!  バグなどありましたら遠慮なく報告お願いします。 beta4からの主な変更点は以下の通り。

アクセス解析『Lunalys 2.2.1』リリース!

【アクセス解析 Lunalys 特設サイト】

バグがあったので修正しました。

アクセス解析『Lunalys 2.2.4』リリース!

【アクセス解析 Lunalys 特設サイト】

超久々です。このタイミングでしか更新出来なかったので遅くなりました……。

アクセス解析『Lunalys 2.2.8』リリース!

【アクセス解析 Lunalys 特設サイト】

約1年ぶりのアップデート。スマホリストの更新を超頑張りました。 この作業ホント疲れるんですよね。誰か代わりにやってくれないかなw

アクセス解析『Lunalys 2.3.0』リリース!

【アクセス解析 Lunalys 特設サイト】

はい。実に4年ぶりに機能を追加しましたよ奥さん。 放置しすぎですが、まぁそれぐらい元の完成度が高かったということで。 今まで特に変える必要性を感じなかったわけです。主な変更点は以下参照。

4年前と比べて大きく閲覧者の環境が変わったことがあります。 それはスマホからアクセスする人が大幅に増えたということ。 まさかゲームだけでなく普段のWeb閲覧もスマホでするようになるとは。時代は変わるものですね。

というわけでスマホ時代に合わせて今まで曖昧にしていた部分をキッチリ整理。 モバイル系のアクセスは今までUAに端末機種とキャリア名を無理やり詰め込んでましたが、 別パラメータとして保存しUAはUAでちゃんと取るように変更しました。

微妙にパワーアップした『Lunalys 2.3.0』を是非お試し下さい!

【超重要】ver 2.2.x からアップデートする場合【超重要】

アップデート後 必ず 管理画面右の「ログデータ管理」より「ログテーブルのコンバート」を実行して下さい。実行は一度だけでOK!

設定ファイル「conf.ini」の内容が一部変更になりましたので、お手数ですが再設定をお願いします。

アクセス解析『Lunalys 2.3.1』リリース!

【アクセス解析 Lunalys 特設サイト】

毎年恒例のアップデートですよ。まぁ最低でも一年に一回はやらないとね。 終わってないよ! 更新し続ける限りそのアプリはまだ生きてます。

『Lunalys 3.0.0』鋭意製作中!

約4年ぶりにアクセス解析『Lunalys』を更新する予定です。ついにPHP8に対応します。放置しすぎだってばよ。時間がかかりそうなので2021年内を目標に頑張ります。

約4年ぶりなのでやるならとことんやろう!ってことでめちゃめちゃ書き直してます。 ただ内部的な話なのでパっと見あまり変わらないですw ユーザーに関係ありそうな 主な変更点は以下

アクセス解析『Lunalys 3.0.0』リリース!

差分ファイルはなし。というかログデータのフォーマットが 変更になったため、旧バージョンをご利用の方は大変お手数ですが 一旦全削除の上設置し直して下さい。申し訳ないです。

コンバート機能を付ける余力がありませんでした……。 あとスマホリストもよく分からないキャリアの型番が 増えすぎて、ある程度のところで切り上げました。

ver 2.3.1からの変更点は以下の通り。

アクセス解析『Lunalys 3.0.1』リリース!

というわけで新版です。管理画面のCSSを大幅に変更しました。 パっと見違いはないですが、いままで float でレイアウト してたのを flex-box という最新仕様で作り直しました。

あと単語の区切りに「|」(パイプライン)を使ってましたが 思い切って廃止。スッキリと見やすくなりました(当社比)。 表示した際に崩れる人はブラウザのキャッシュを削除して リロードしてみて下さい。その他変更点は以下の通り。

アクセス解析『Lunalys 3.0.2』リリース!

はい。というわけで新版です。LINE Search のロボットが あまりにも多かったので、ロボット判定を更新。 他はまぁオマケですw 主な変更点は以下

アクセス解析『Lunalys 3.0.3』リリース!

はい。というわけでアップデートです。 知ってる人は少ないと思いますが最近のブラウザは従来の 「User-Agent」の代わりに「User-Agent Client Hints」(UA-CH) なるものに移行しようとしています。

なのでUA-CHが使える環境ではUA-CHからUAとOSの情報を取得するよう変更しました。 現時点では多くのブラウザがUA-CHはデフォルトで OFFになっていますが、いずれONになるでしょう。 そうなると従来の「User-Agent」はダミーデータが設定される 可能性が高い。

つまりUA-CHに対応していないアクセス解析のデータは 信頼性に欠けると言えるでしょう。 今後を見据えLunalysはUA-CHに対応することにしました!

あとデータ取得時に不正なURLを設定してSQLインジェクションを 試みてる形跡を見つけたので対策をしました。 従来のバージョンでもSQLインジェクションは実行されませんが、 不正なURLがそのまま保存され管理画面上で 表示が崩れる可能性があったので弾くように。

それと管理画面のCSSを少し変更したので表示が 崩れる場合にはブラウザのキャッシュを削除した上で リロードしてみて下さい。お手数をお掛けします。 ついに float を廃止しました。これからは grid の時代ですよ!

主な変更点は以下

アクセス解析『Lunalys 3.1.0』リリース!

【アクセス解析 Lunalys 特設サイト】

はい。というわけで新版です。突然ですが今回から 『Lunalys』関連のコンテンツを特設サイトに 移動させることにしました!

お手数ですが上記サイトよりダウンロードして下さい。 お知らせは今まで通りこっちのサイトで載せる予定です。 上部のバナーは仮のものだしスマホ向けの レスポンシブ対応もまだなので プレオープン といったところでしょうか。

サイトデザインは『WordPress』公式サイトを丸パクリインスパイアさせて頂きました。 今回から『WordPress』のプラグインとして動かせるようになったので ユーザー的に見慣れたデザインの方が良いかなって。

あと念願の(?)マルチサイトに対応しました。 前々から要望があったのですが面倒だと思って放置してました。 で、実際やってみたら案外簡単でしたね。

あと今更ですが、今までデータディレクトリのパーミッションは 「707」に変更必須だと思ってましたがサーバーによっては 変更は不要みたいです。

このサーバーは変更不要だった、このサーバーは変更必須だった、 という情報が欲しいので一言で構いませんので サポートBBSに書き込んでくれるとありがたいです。

主な変更点は以下の通り。

アクセス解析『Lunalys 3.1.1』リリース!

【アクセス解析 Lunalys 特設サイト】

バグ修正がメイン。年に一度ぐらいはアップデートしたいと思ってます。出来ればいいな。 あと超今更ですけどログアウトボタンを入れました。 主な変更点は以下。よしなに。

アクセス解析『Lunalys 3.2.0』リリース!

【アクセス解析 Lunalys 特設サイト】

約1年3ヶ月ぶりの機能追加アップデートです。自分があまりスマホ使わないので いらないかな、と思い削除したスマホ対応を復活というか作り直しました。

以前はPC用とは別URLにしてたのですが、いわゆるレスポンシブデザインに したので同じURLになります。ただ折れ線グラフの部分はCSSだけで 切り替えが難しかったので正確にはレスポンシブ+αです。

不具合などありましたらサポートに書き込んでください。 こちらの環境で現象が再現出来なかったバグは直すのが難しいので、 詳細情報を教えて頂けるとヒントになります。

アクセス解析『Lunalys 3.2.1』リリース!

【アクセス解析 Lunalys 特設サイト】

主な変更点は以下の通り。

アクセス解析『Lunalys 3.2.2』リリース!

【アクセス解析 Lunalys 特設サイト】

主な変更点は以下の通り。

アクセス解析『Lunalys 3.2.3』リリース!

【アクセス解析 Lunalys 特設サイト】

久しぶりのアップデート。細かい部分ですが 今まで端末機種をキャリア(型番)別に分けて 表示してたのを同じモデルは合算して 表示するよう変更しました。

あと配列周りの古い書き方をモダンな書き方に変えたり、 一部関数をより高速な関数に置き換えたりして最適化しました。

主な変更点は以下

『Lunalys』のバージョン表記変更

【アクセス解析 Lunalys 特設サイト】

色々と思うところがあり『Lunalys』のバージョン表記を以下の通りに変更します。 再始動した時にメジャーバージョンを上げるべきでした。

2.3から2.4は内部的に滅茶苦茶書き直してて ログのフォーマットも変更してリセットしてたのに 何でマイナーバージョンしか上げなかったのか。

正直自分でもよく分からないw 適当に付けたのを反省してます。 そして次のバージョンは「3.3.0」か「4.0.0」どっちにしようか迷い中です! よしなに!

追記:次期バージョンは「4.0.0」になります!

アクセス解析『Lunalys 4.0.0』リリース!

【アクセス解析 Lunalys 特設サイト】

約3年4ヶ月ぶりのメジャーアップデート。 ついにiPhoneの機種名を解像度とデバイスピクセル比から 候補で表示するよう変更しました。最初からやっとけという話ですがw 表示が長くなるので「Pro Max」は「Max」に「Plus」は「+」に省略してます。 Androidの機種名と同様、新機種が登場しだい随時アップデート予定です。

拡大モードの値は要調査な感じ。実際に取れた値を検証(計算)して 恐らく正しいだろう機種のみ設定してます。倍率が複数あるのが難しい。 調べた感じ微妙に間違っている情報を掲載しているサイトばっかりだったので。

iPadは拡張モードで外部ディスプレイを使えるので 解像度から判別出来ませんでした。残念。 ちなみにiPhoneでも外部ディスプレイは可能のようですが、 単純なミラーリングなので取得する値は多分変わらない。

そしていまさらですがiPadOSにも対応。iOS13から独立(フォーク) したのは知ってたのですが、組み込むの後回しにしてたら完全に忘れてました。 iPadは判定が複雑なんですがブラウザを片っ端からインストールして試しました。

あと最近のAndroidはChrome等でUA削減が進み、Android 10 固定 になってたので、UA-CHからOSバージョンを取るようにしました。

セキュリティの強化もガッツリしました。 データ取得時のパラメータに不正な値を無理やり設定して バグらせようとする手法を確認しましたので、 全てブロックするよう対策を強化。

あの手この手で攻めてくるので個人的にはちょっと楽しい。 こんなやり方をよく思いつくものだと感心しますねw 君たちのおかげでまた一段高みへと登ってしまったよ……

アクセス制限機能の要望がありましたが今回は見送り。 正直需要は少なそうだし、それはアクセス解析の仕事ではない と思うからです。要望を送って頂いた方には申し訳ない。 見解の相違というやつです。主な変更点は以下の通り。

アクセス解析『Lunalys 4.0.2』リリース!

【アクセス解析 Lunalys 特設サイト】

ちなみに 4.0.1 の告知は完全に忘れてました。 両バージョン共にバグ修正のみの変更です。 4.0.0 でテーブルのカラム名を一ヶ所変更したのですが、 変更用のSQLがSQLite 3.25.0 未満のサーバーでは使えない文法でした。

古いバージョンでも違う書き方でいけるのですが スマートではないし、カラムの数も違ってて 複雑怪奇な感じになるので諦めました。 (妥協して古いカラム名でもエラーが出ないように修正)

アクセス解析『Lunalys 4.0.3』リリース!

【アクセス解析 Lunalys 特設サイト】

今回もバグ修正のみです。4.0.0以降短いスパンでの リリースになってしまい申し訳ないです。

何でこういうしょうもないバグが発生するかというと 私はプログラムを完成させたら放置するタイプではなく、 新しい文法を知ったり効率的なアルゴリズムを思いついた時に 全コードを最適化したくなるタイプなのです。

なのでそういった書き換え作業中にミスがあると バグが発生してしまうのです。いやはや困ったものですね!

超今更なHTML仕様が判明した

Lunalys関連で衝撃の事実が判明してしまったのですが、 JavaScript OFF環境用の解析タグ<img>に入れていた 「url=~」という引数は不要でした!

な、なんだってー!!

<img>タグで呼び出した時はそのページのURLが リンク元に自動的に設定される仕様でした(恐らくHTMLの仕様)。 し、知らんかった……何だよ全ページ共通のタグで問題ないやん!  もーそういうことは早く言ってよね

追記:実際にJavaScript OFF、引数なしで試したところ普通に動きました。 ただリンク元の設定が適当なbotは怪しい。とはいえbotのことを気にする必要はないか

『Lunalys』過去語り

私は以前『Lapis』というアクセス解析を公開していたのですが、 自作のブログツールと干渉して 自分のサイトで上手く動かないという問題がありました。 (PHPのincludeで呼び出すのがNGだった)

そこでフレームワークのアーキテクチャを見直して 新しく作り直したのが『Lunalys』の始まり。 元々はCMS全体を指して『Luna System』 略して『Lunasys』と(自分の中で)呼称していました。

そこからアクセス解析を切り出して配布用にしたのですが 名前を考えるのが面倒だったのでそのまま 『Lunasys』としてリリース。

しばらくして(自分の中で)やっぱり紛らわしいな と感じるようになり、「解析」「分析」にちなんだ名前に 改称することにしたのです。

「analysis」だと1文字変えるだけで済むし語呂も良い。 「analytics」という言葉もありますが 『Google アナリティクス』のイメージが強いので却下。 『Lapis』の後継なのでなんとなく 「L」で始まって「s」で終わる名前にしたかったのです。

そんなわけで『Lunalys』という名前が誕生しました。 競合しないユニークな名前だし気に入ってます。 今後とも『Lunalys』をよろしくお願いします!

アクセス解析『Lunalys 5.0.0』リリース!

【アクセス解析 Lunalys 特設サイト】

というわけで過去最大級のアップデート。 例によってログデータのフォーマットを変えたので、 念のためバックアップを取ってからアップデートしてください。

ログデータは古いフォーマットから新しいフォーマットへ 自動で変換されますが、万が一失敗してどうにもならなくなった場合は 「data」フォルダの「~.sqlite」ファイルを全削除して 最初からやり直せばいけると思います。

あとログイン時のIDとPWの暗号化部分を変更したので 再入力が発生すると思います。お手数ですがよろしくお願いします。 PHP8.4で非推奨になった機能の置き換えです。

あと紹介記事をnoteに書いたのでご覧頂けると幸いです。

『Lunalys 5.0.0』の新機能を紹介!(note)

アクセス解析『Lunalys 5.0.3』リリース!

【アクセス解析 Lunalys 特設サイト】

今回から設置/更新が大幅に簡略化され、 ボタン1クリックで実行可能になりました。 「setup.php」というファイルをサーバーに置いて ブラウザから実行するだけ。

5.0.3以降は管理画面のバージョン情報から 同じようにボタン1クリックでアップデート可能です。 これまで必要だった以下の作業が不要になります。

主な処理はUNIXコマンドで実行しているので サーバーによっては動作しない可能性があります。 もし失敗するサーバーがあったら教えてください。 こちらで試して対策を考えます。 各バージョンのzipファイルも置いてありますので、 従来通りFTPでの設置/更新も可能です。

今回の変更点は以下