プログラミングを始めた動機とか。
なんか書くネタが無いので自分の「プログラミングを始めた動機」
ってのを語ってみよーかと思いますです。まぁ単純な理由なんですが、
「オリジナルの掲示板を作りたかった」から。
それまでフリーで配布されていたスクリプトを
HTMLの部分だけカスタマイズして使ってたんですが、
自分で全部作ってみたいという欲が出てきまして。
まぁ最初は宇宙語のよーなソースを見るだけで頭がクラクラしたし、
こんなのをちまちまと何百行、何千行も書くなんて
正直プログラマーって変態に違いないと思いました。
ぶっちゃけ。自分にはとても無理だと思いましたよ。
でも「クリエイティブな事したい!」って気持ちが当時は(今でもですが)溢れてたワケでして。
諦めずにプログラミングの入門書と格闘しつつ、
どーにかこーにか作り上げたのが「aa_bbs」(のプロトタイプ)。
だから「aa_bbs」には初めての作品って事で個人的に思い入れがあるんですよね。
今でこそアクセス解析ばっかり作ってますが……掲示板も好きですよ?
PHP
PHPスクリプトの不具合報告に関して
え~BBSやメールにてPHPスクリプト(殆ど『Lapis』ですが)の不具合報告を頂きますが、
純粋に「スクリプトのバグ」が原因というのは全体の5%ぐらいの割合です。
残り95%は「サーバーの設定が悪い(制限を設けている)」「パスの書き方が悪い」
「設定ファイルの書き方が悪い」「その他設置の仕方が悪い」といったことが原因です。
こちとら何年も開発を続けているわけなので、そうそう簡単にバグなんて見つかりませんよ(多分)。
素人のユーザーさんはどこに原因があるのか想像もつかない、というのは理解しています。
ですがまず疑うべきはスクリプトではなく、サーバーや自分の設置方法だということを
知っておいて欲しいです。
仕方の無いことですが、「スクリプトが悪い」という前提で話を進める人が大勢いるので
とても悲しいです(他の可能性を考えもしない)。PHPスクリプトに限らず、
プログラムというのは実行環境に依存するもの。
例えばPHPスクリプトなら「PHP本体」「Webサーバー」「OS」「ハードウェア」等。
それぞれにバージョンと細かい設定があり、組み合わせはほぼ無限にあります。
よほど単純なものでない限り、その全てのパターンで完璧に不具合なく動作するプログラム、
というのはこの世に存在しません。マイクロソフトには恐らく世界でもトップクラスの頭脳が
大勢いることでしょう。ですが『Windows』に不具合はないと言えますか? つまりはそういうことです。
PHP
『WordPress』への移行を断念
え~BBSでちらっと書きましたが『WordPress』に移行しようかと迷ってたんですが、やめました。
実際に『WordPress』を設置して試してる最中なんですけどね。
良い部分は取り入れて、このまま独自路線で細々と続けますですよ。
Sepiaの一番の問題点(?)は綺麗なテンプレートが用意出来ないってこと。
なので『WordPress』のテンプレートをそのまま利用出来ないかな~と思ってたんですが甘かった。
つーかバリバリPHPファイルなんですよね。『WordPress』は。しかもオブジェクト指向じゃないし。
なるべくシンプルなテンプレートが理想なんですが、ちょっとアレすぎなので断念。
デザインはなんとかするとしてシステムの話。
現在のテンプレートシステムは高速で動作するかわりに
「論理構造を変えられない」「パーツの再利用が出来ない」という欠点があります。
新しい仕組みを考えるしかないのかな~。う~みゅ。
PHP
blogツール
新作アクセス解析『Lunasys』を開発中です。
というわけで以前からちょくちょく話題にしてたアレです。
既に開発開始から2年ぐらい経過してる様な気がしますが気のせいですね。
多分『ダークソウル』が発売される前にはリリース出来るかと思います。
以前も言った記憶がありますがおさらい。『Lapis』の「後継」というより「リファイン」な感じです。
『Lapis』は要望があるままに機能をゴテゴテと増やしすぎ、設置も面倒になってしまいました。
なので今回は自分の使ってない機能は思い切って削り、シンプル路線で簡単設置という原点回帰。
細かい使い勝手も改良しています。
一番の大きな違いはデータの保存方法ですかね。『SQLite』オンリーにしてDB(ファイル)を分散して保存。
時間経過によりデータが肥大化し、処理が遅くなるという根本的な問題を解決しています。
まぁいまどき『PHP4』を使ってるサーバーもないだろう、と(セキュリティ的に)。
『SQLite』は『PHP5』以上で標準で使え、データはただのファイルなのでユーザーにとっても扱いが簡単です。
データ取得精度の向上を目標にしてますのでPHPページでのincludeを推奨。『Lapis』ではページタイトルを取得出来ない
ケースがありましたがこれも解決してます。もちろん従来通りJavaScript経由(tracker.js)でも使えます。
こっちも記述をシンプルにしてますので『Lapis』よりマシになってるかと。
管理画面は『HTML5』で記述して構造も極力シンプルに。装飾的な画像も廃してますので『Lapis』
より表示速度は上がってると思います。『HTML5』に興味のある人はソースを眺めてみると面白いかもしれません。
PHP
アクセス解析
Lunasys
新作アクセス解析『Lunasys 1.0.0 beta1』リリース!
【アクセス解析 Lunalys 特設サイト】
え~前回もっと時間がかかるというような言い方をしましたがそんなことはなかったです。
あれれ? まぁいいや。完成したてでまだテストが不十分なのでベータ版です。
バグがあったら遠慮なくBBSかメールにて指摘して下さいな。
『Lunasys』はフレームワークを同梱するようにしました。なので『Lapis』のように
個別にダウンロードする必要はありません。『Mint』ともアーキテクチャーが似て非なるものになってますしね。
リアルの友人からまだやってるの?(冷笑)とか言われたりしますが、まだまだ頑張れるYO!(泣きながら)
PHP
アクセス解析
Lunasys
新作アクセス解析『Lunasys 1.0.0 beta2』リリース!
【アクセス解析 Lunalys 特設サイト】
というわけで「beta2」です。めっちゃいじったので差分ファイルはありません。
解析対象ページとは別ドメイン(別サーバー)に『Lunasys』を設置する際は
必ず「lunasys/analyzer/configs/conf.ini」の「domain」の項目に対象ドメインを記述して下さい。
ファイルのフォーマットを『SQLite2』から『SQLite3』に変更したので「beta1」のデータは読み込み出来ません。
むしろ存在しているとエラーになりますので「beta1」をご利用の方は全てのファイルを上書きアップ後、
「lunasys/data/」フォルダのに存在するファイルを全て削除して下さい。
お手数をお掛けしますがよろしくです。
「beta1」からの変更点は以下の通り。
- 別サーバーでページタイトルが取得出来ないバグを修正
- 時間別推移の先頭が表示されないバグを修正
- IE7でレイアウトが崩れる問題を修正
- 自分のアクセスをカウントしない設定を復活
- リファラスパムブロック機能を実装
- mktime関数を自前で計算するように変更
- SQLiteの接続を「PDO」に変更
- UA/OS/ロボット判定を強化
- 全コードを最適化し処理速度を高速化
PHP
アクセス解析
Lunasys
新作アクセス解析『Lunasys 1.0.0 beta3』リリース!
【アクセス解析 Lunalys 特設サイト】
というわけで「beta3」です。現在把握しているバグなどは全てやっつけました。多分「最終beta」になりそうな予感。
またそこそこいじったので差分ファイルはないです。すいません。
一ヶ月ぐらい様子をみて問題が無ければ 7/20 頃に正式版をリリースすると思います。
要望のあったテキストカウンターを復活させました。設置用のタグは「lunasys/analyzer/setup.php」
にブラウザでアクセスして頂ければ表示されます。
beta2からの変更点は以下の通り。
- ブラウザ統計で全件リンクが表示されないバグを修正
- ロボットのアクセス時に日付更新されないバグを修正
- UAの統合フィルターで携帯が入っていないバグを修正
- トランザクションエラーが発生する問題を修正
- CSSの@import読み込みをlink要素に変更
- Valid HTML5 になるよう出力を修正
- ロボットのアクセスルートを最大20件に制限するよう変更
- テキストカウンター表示機能を復活
PHP
アクセス解析
Lunasys
新作アクセス解析『Lunasys 1.0.0 beta4』リリース!
【アクセス解析 Lunalys 特設サイト】
というわけで「beta4」です。今度こそ「最終beta」のはず。
今回は新機能「後追いデータ追記」を実装。これで「1.0.0」の機能は全て出揃いました。
「後追いデータ追記」とはなんぞや、というと基本PHPのincludeでデータを取得して、
その後にJavaScriptで「ディスプレイ解像度」と「ブラウザ表示領域」
のみ後追いでデータを追記する、というもの。
2種類のデータ取得方式の良いとこ取りなシステムです。
ネックはPHPのタグとJavaScriptのタグを両方書かなくちゃいけない点。まぁ『WordPress』とか
テンプレートを使ってるシステムなら簡単ですが、そうじゃない場合「簡単設置」という
コンセプトからはちょっと外れるんでこだわりたい人だけ使えばいいよ、というスタンスです。
従来通りPHPのincludeだけでも十分かなと個人的には思います。
beta3からの変更点は以下の通り。
- PHPからincludeの時もURLを絶対パスで取得するように変更
- DBエラー発生時の処理方法を例外処理に変更
- 表示領域が解像度以上にならないよう変更
- 後追いデータ追記機能を実装(add.js)
- readme.txtに表示の高速化に関する記述を追記
PHP
アクセス解析
Lunasys
『Lunasys』の今後の予定
「1.0.0」正式版は7月29日リリース予定です。例によってbeta4からまたちょこちょこと
変更があります。まぁちょっとした機能強化程度ですが。で、その先はというと来年あたりに
「1.1.0」を出せたらなと。
「1.1.0」は『Lapis』にある機能をいくつか復活させるのと『6hot_Analyzer』の一部機能を
取り込めたら幸せになれるんじゃないかと考えておりますですよ。予定は未定ですので期待せずに待て!
そんな感じです。
追記:あーバージョンは「2.0.0」になるかもしれません。メジャーバージョンアップ祭りが最近の流行ですしね。そこらへんは気分に応じて。
PHP
アクセス解析
Lunasys
約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からの変更点は以下の通り。
- UA/ロボット判定を強化
- 検索エンジン判定を強化
- conf.iniのjs_tracking切り替え機能を廃止
- 一部環境で検索語が正常に取得出来ないバグを修正
- tracker.js/add.jsのパス設定が不要になるよう変更
- スマートフォン/jigの時も機種名をUAにするよう変更
- 「DoCoMo」の表記を「docomo」に変更
- パラメータ統計のデータ公開機能を復活
- setup.phpの内容を「解析用タグ情報」に移行
PHP
アクセス解析
Lunasys
新作アクセス解析『Lunasys 1.0.1』リリース!
【アクセス解析 Lunalys 特設サイト】
というわけで色々と修正とか変更です。不具合など見つけたらBBSにどしどし書き込みよろしくです。
- 解析用タグ情報に「より正確に解析する設定」を追記
- URLを取得出来ない時は「Unknown」にするよう変更
- ロボット判定を強化(Y!J-AGENTを追加)
- ロボットの省略表記を強化
- 日間パラメータ統計の「全項目」でエラーが出るバグを修正
PHP
アクセス解析
Lunasys
新作アクセス解析『Lunasys 1.0.2』リリース!
【アクセス解析 Lunalys 特設サイト】
差分ファイルは「1.0.1」の内容も含みます。前回言いませんでしたが
「2.0.0」(仮)へ向けての仕込みもこっそり入れてます。
「1.0.0」からのアップデートだと何かと面倒になるので、
今のうちのアップデート推奨です。
今回は管理者Cookie関連の変更です。解析対象ページと同一ドメインに
設置している場合はあまり関係ないです。ちなみに下記の cookie.php
を使っただけては管理画面にログイン出来たりはしません。
あくまで「admin_count = 0」用です。
なので第三者に悪用されるといったことはないですが、
一応使った後は削除して下さい、と書いておきました。
「1.0.1」からの変更点は以下の通り。
- ログインIDを変更しても管理者Cookieが更新されないバグを修正
- サブドメインが違っても管理者Cookieが有効になるよう変更
- 別ドメイン用管理者Cookie発行機能を実装(cookie.php)
PHP
アクセス解析
Lunasys
Twitterの『Profile Widget』をPHPで表示してみた。
というわけでツイッターの『プロフィール ウィジェット』を
PHPからツイートを引っ張ってきて表示する仕組みを作りました。
きっかけはIE9で表示出来なくなったという障害。
以前も興味本位で簡単に作りましたが本格的に実装しました。
通常は外部.jsをHTMLから読み込んで表示しますが、今回は『Twitter API』というのをPHPから使います。
これのメリットは今回の障害のような不具合や仕様変更の影響を受けにくい、
外部.js(外部.css)を読み込まないので表示が速い、
表示に使うHTML及びCSSを好きにいじれるといった点です。
デメリットはAPIの実行回数制限がある、認証が必要な場合があるなど。
後者は他所で調べてもらうとして前者の対策は簡単です。
ツイートを読み取った時に内容をファイルに保存して
表示の際にそのファイルを参照するようにすればいいのです。
読み取り&保存と表示を分けることにより、閲覧者が直接APIにアクセスしなくて済むので
回数制限に引っかかりません。ただ、読み取り&保存を手動で実行する必要があります。
面倒なら『cron』で自動実行させることも可能ですが。自分は一日数回しかツイートしないので手動です。
ブラウザでスクリプトにアクセスするだけ。
仕様の内容は以下の翻訳を参考にさせて頂きました。感謝!
PHP
Webサイト作成
アクセス解析『Lunasys 2.0.0 beta1』リリース!
【アクセス解析 Lunalys 特設サイト】
というわけで新版です。色々と機能を追加しましたが目玉は「円グラフ」の機能ですかね。
これは『Lapis』の時代からやりたかったんですが、Canvasを使うことでようやく実現しました!
当然Canvasに対応したブラウザでないと表示出来ませんのであしからず。
実装にあたっては『HTML5.JP』という
素晴らしいサイトを参考にさせて頂きました。感謝!
『Lunasys 1.0.2』からの変更点は以下の通り。ログのフォーマットが変更になりましたので
旧バージョンからアップグレードする場合はまず最初に「ログデータ管理」から
「ログテーブルのコンバート」を実行して下さい。
- write.phpの呼び出しをimgタグからscriptタグに変更
- JavaScriptインジェクション対策を強化
- 詳細ログにユニークIDを追加
- 詳細ログに前回訪問日時を追加
- 詳細ログに訪問回数を追加
- 詳細ログにリンク先(クリック)を追加
- 月間パラメータに訪問回数を追加
- 月間パラメータにリンク先(クリック)を追加
- 月間パラメータの円グラフ表示機能を実装
- 月間パラメータの順位変動グラフ表示機能を復活
- 検索キーワードのデフォルト表示をフレーズに変更
- 検索キーワードの全角スペースを半角に変換するよう変更
- ログテーブルのフォーマットを変更
- 旧ログから新ログへのコンバート機能を実装
- ロボット判定を強化(.com.ua/.net.uaを追加)
- 検索エンジン判定を強化(babylon.com/conduit.comを追加)
- 詳細ログのユニークID検索を実装
- オーバーレイ表示機能を復活
- indexの今日ログ表示機能を実装(検索語&リンク元)
- リンク元がiモード検索時のジャンプ先をgooに変更
- リンク元のURLフィルターを廃止
- リンク元のドメインフィルターでwwwを余計に付加するバグを修正
- リンク元ジャンプの時に日本語が文字化けするバグを修正
- 簡易検索時に?が含まれているとヒットしないバグを修正
PHP
アクセス解析
Lunasys
アクセス解析『Lunasys 2.0.0 beta2』リリース!
【アクセス解析 Lunalys 特設サイト】
というわけでbeta2です。細かい部分の修正と変更、config設定の追加など。
beta1からの変更点は以下の通り。
- 稀に検索語がデコードされていない問題を修正
- ページ遷移が早いと訪問回数が更新されない問題を修正
- 未知の検索エンジンでも検索語を取得出来るよう変更
- データ公開機能のページ/リンク元にリンクを張るよう変更
- ダミー画像の出力方式を変更
- URLの拡張子無し / 補記設定を追加
- URLのポート番号削除設定を追加
- URLのwwwサブドメイン削除設定を追加
PHP
アクセス解析
Lunasys
アクセス解析『Lunasys 2.0.0 beta3』リリース!
【アクセス解析 Lunalys 特設サイト】
というわけでbeta3です。変更点は以下の通り。beta4は未定。
問題が無ければ一ヵ月後ぐらいに正式版リリースするかもです。
- スマートフォンのリストを更新
- パラメータの文字数制限アルゴリズムを変更
- 日間パラメータにリンク先/訪問回数を追加
- ロボット判定を強化(Feedfetcher-Googleを追加)
- ロボットの簡易検索時にエラーが出るバグを修正
- UA以外の簡易検索時にロボットを除外するよう変更
- 折れ線グラフの色指定方法を変更
PHP
アクセス解析
Lunasys
アクセス解析『Lunasys 2.0.0』(正式版)リリース!
【アクセス解析 Lunalys 特設サイト】
というわけで正式版です。Lunasysはシンプル路線で行こうと思ってたんですが例によって
気がついたらシンプル(笑)になってました。あるぇ~?? 1.0のときは
「Lapisのリファイン」と言ってましたが2.0は間違いなく「Lapisの後継」と言えるでしょう。
簡単に書くと
6hot_Analyzer + Lapis + α = Lunasys 2.0
といった感じ。これまでの解析の良いとこ取りかつ余計な部分を削り、全体的にブラッシュアップ。
今まで培ってきた技術の集大成と言っても過言ではありません。
こういうこと自分で言うのはあまり好きではないんですが、今回は良く出来てると思います。
まだLapisを使ってる人にもお勧めしたい一品でございますですよ。
beta3からの変更点は以下の通り。
- UA偽装のSPAMアクセス除外機能を実装
- ユニークアクセス判定を IP or ID に変更
- 後追いデータ送信処理を高速化(スリープ処理を廃止)
- readme.txtに別ドメイン用管理者Cookie発行の記述を追加
- 特定条件下で月別アクセス推移が表示されないバグを修正
PHP
アクセス解析
Lunasys
アクセス解析『Lunasys 2.0.1』リリース!
【アクセス解析 Lunalys 特設サイト】
というわけで修正版。フレームワークレベルで直してます。
タイムゾーン関連のエラーが頻発してたのでフレームワークに組み込みました。
多分サーバーの管理者がPHP本体をバージョンアップしたりすると問題が出るようで。
またエラーが発生するようならどんどんBBSに書き込んで下さい。
「リンク元が取得出来ない」と言ってくる人が非常に多いんですがその原因は
ほぼ100%「conf.ini」のドメイン設定が間違っている、
もしくは設定されてないのどちらかだと思われます。
設定したとしても、その後アップデートしたときに差分ファイルに「conf.ini」
が含まれていて再設定を忘れているというケースも考えられます。
今まではドメイン設定が空欄だと自動で設置先サーバーのドメインを設定していましたが、
昔みたいにチェック自体を行わないように変更しました。
設定しなくても動くけど設定しないと面倒なことになるよ、という感じです。
また、初心者向けに具体的なドメインの書き方を「readme.txt」に載せておきました。
ここまでやれば大丈夫でしょう。
あと『freo』でPHPインクルードの場合に動かない、
という情報があって試してみたんですが、全ての処理の前にLunasysのコードを
記述すると動作しました。恐らく内部で終了処理をしていると思われます。
Lunasysのコードを最後に記述すると実行前に終わってしまうケースがあるので
『freo』に限らずPHPインクルードで動かない場合は最後ではなく最初に記述して試してみて下さい。
主な変更点は以下の通り。
- オーバーレイで特定の条件下でエラーが出るバグを修正
- HTTPSのページでも正しくデータを取得出来るよう変更
- conf.iniのドメイン設定の詳細をreadme.txtに追記
- conf.iniのドメイン設定が空欄だとチェックしないよう変更
- php.iniにDynamic Extensions関連の記述を追加
- タイムゾーンをフレームワーク内で設定するように変更
- タイムゾーン設定をphp.iniからfw.iniに移動
- グリニッジ標準時の時差設定をconf.iniからfw.iniに移動
PHP
アクセス解析
Lunasys
アクセス解析『Lunasys 2.0.2』リリース!
【アクセス解析 Lunalys 特設サイト】
差分ファイルに関して「conf.ini」を中に入れたくないので一旦リセットしてます。
一応betaから2.0.1までの差分はPHPスクリプトのページに残しておきます。
「php.ini」にPDO関連のエクステンション読み込みの記述を入れたんですが、
さくらインターネットなどで問題となるようなのでコメントアウトしました。
必要ならコメントを外してね、ということでよろしくです。
あとリンク元の取得時に「conf.ini」のドメインで複数設定している場合、
そのドメイン間でのリンクは同じサイトと見なしてリンク元を消してしまう問題
(仕様とも言えますが)があったんで直しました。
ログ取得の部分を並列処理させようとしたんですが見事に期待外れ。
そもそも並列は時間のかかる処理向きで元々速い処理をさらに高速化するための
ものではない気がします。ですが実験する過程で無駄な部分がいくつか分かったので
少しだけ改善してます。
- ログ取得時の処理を若干高速化
- リンク元のドメインチェックを若干変更
- php.iniのDynamic Extensions関連の記述をコメントアウト
PHP
アクセス解析
Lunasys
アクセス解析『Lunasys 2.0.3』リリース!
【アクセス解析 Lunalys 特設サイト】
というわけで「2.0.3」です。なんだかんだで盛りだくさんになっちゃいました。
今回は主に高速化に注力してます。特にログ取得の部分は大幅に書き直してますので
パフォーマンスはかなり向上したと思います。管理画面も色々と工夫してます。
体感出来るレベルではないかもしれませんが。
あとオーバーレイに文字コード判定を付けたんですがHTML内に
「charset」が書かれていることが前提となってます。
書いてない人はちゃんと書いて下さい。よろしくです。
主な変更点は以下の通り。
- 全体的に処理速度を高速化
- ログ取得部分のクラス設計を大幅に変更
- 「ページ番号管理」を「ページ情報管理」に変更
- ロボットのアクセスルートを最大10件に制限するよう変更
- 解析タグ情報にRSSフィード用のタグを追記
- conf.iniのURL整形設定をリンク先にも適用するよう変更
- conf.iniのspam_not_jp設定の条件をjp|net|comに変更
- リンク先タイトルが空白文字のみの時に空欄になるバグを修正
- オーバーレイに文字コード自動判定機能を実装
- 検索エンジン判定を強化(ezsch.ezwebを追加)
※2012/02/02 21:21 追記
バグがあったのでアーカイブファイルを差し替えました。既にアップデートしてしまった人は改めて差分ファイルをダウンロードして上書きアップして下さい。申し訳ないです。
※2012/02/04 08:40 追記の追記
さらにバグがあったのでいい加減観念して本日中に「2.0.4」を緊急リリースします。前回の差し替え内容も「2.0.4」として扱います。バタバタしてすいませんです。
PHP
アクセス解析
Lunasys
アクセス解析『Lunasys 2.0.4』リリース!
【アクセス解析 Lunalys 特設サイト】
というわけでバグ修正版です。2.0.3は無かったことにして下さい。ハハハ。こやつめ。
まぁさすがにあれだけいじれば色々と見落としも出てくるものですよ。
最近毎週リリースしてますけど多分これで落ち着くのではないかと思います。
主な変更点は以下の通り。
- ページタイトルに特殊文字が含まれていると「undefined」になるバグを修正
- 2.0.3でページ情報管理のCSVがエラーが出て表示されないバグを修正
- 2.0.3でページ情報管理の全件表示でエラーが出るバグを修正
- 2.0.3で新規設置時にエラーが出てログが取得出来ないバグを修正
- 2.0.3で特定条件下で日付変更がされないバグを修正
※2012/02/07 08:15 追記
またバグがあったのでアーカイブファイルを差し替えました。既にアップデートしてしまった人は改めて差分ファイルをダウンロードして上書きアップして下さい。申し訳ないです。
・詳細ログ条件検索でリンク先の検索がエラーが出て表示されないバグを修正
PHP
アクセス解析
Lunasys
アクセス解析『Lunasys 2.1.0』リリース!
【アクセス解析 Lunalys 特設サイト】
というわけで『Lunasys 2.1.0』です。本当は出さないつもりだったんですが
まぁ色々ありまして。大人の事情により仕様変更の上リリースすることと相成りました。
今までリンク元とかのリンクは直接ジャンプ(転送ですが)してましたが
『Lapis』と同じワンクッション置く形式に変更となりました。
自分としてもギリギリの判断で心苦しい限り。ですが未来への布石、と前向きに考えて頂ければと。
最初は違和感あるかもですが、慣れればどうってことないです。ご理解頂ければ幸いです。
まぁ将来的に何事も無かったかのようにしれっと元に戻すかもですが。
そのときは……お察し下さい。
今回の目玉は以前から要望のあった「UA全文」を保存&表示するようになったことですね。
ただ追加するだけだとデータ量が増えすぎるので、他の部分でなんとか相殺出来るよう
工夫してみました。さすがにまったく増えない、というわけにはいきませんでしたが許容範囲内かと。
このサイトの場合、一割増し程度でした。
UA全文の追加に伴い、詳細ログ画面のレイアウトもちょっと変更しています。
少しは見やすくなったかと。あとはデザインの再調整とかバグ修正とか細かい変更です。
あ、そうそう。重要な変更点。データ量削減のために詳細ログと月間ログ(リンク元のみ)
のデータフォーマットが大幅に変更になりました。
詳細ログに関しては古いログが残ってるとエラーが出るので全てリセットになります。
月間ログ(リンク元のみ)はリセットではないんですが古いデータは表示されなくなります。
大変申し訳ないですがご容赦を。「リンク元」は今までそのままURLを保存してましたが、
「ページ」「リンク先」と同じようにページ番号で保存するようになりました。
アップデート後は必ず「ログデータ管理」から「ログテーブルのコンバート」を実行して下さい。
お手数をおかけしますがよろしくです。主な変更点は以下の通り。
- 詳細ログにUA全文を追加
- 詳細ログにシークエンス番号を追加(管理用)
- 詳細ログでもスマホの機種名を表示するよう変更
- 詳細ログのレイアウト&デザインを変更
- 管理画面の細部デザインを微調整
- ロボットのアクセスは同一IP/日でまとめるよう変更
- 検索語の半角カナを全角、全角英数字を半角に変換するよう変更
- スマホのリストを更新
- リンク元をページ番号で保存するよう変更
- ページ情報管理で編集後にデータ領域開放を実行するよう変更
- 詳細ログ検索時のリンク元に&が含まれると表示されないバグを修正
- 詳細ログ条件検索で特定条件下でエラーが出るバグを修正
- 詳細ログ簡易検索で特定条件下でエラーが出るバグを修正
- リンク元へのジャンプをワンクッション形式に変更
- リンク元へのジャンプ時に稀に検索語が文字化けするバグを修正
- conf.iniにログ取得時のUA/IPチェック可否設定を復活
- conf.iniにアクセスルートの最大保存件数設定を追加
PHP
アクセス解析
Lunasys
アクセス解析『Lunasys 2.1.1』リリース!
【アクセス解析 Lunalys 特設サイト】
バグがあったので修正しました。
- ログテーブルのコンバート時にデータがない場合は実行しないよう変更
- tracker.jsでリンク元の途中に対象ドメインが含まれていると削除してしまうバグを修正
- tracker.js呼び出しの時に訪問回数が1に固定されてしまうバグを修正
PHP
アクセス解析
Lunasys
アクセス解析『Lunasys 2.1.2』リリース!
【アクセス解析 Lunalys 特設サイト】
バグがあったので修正しました。
- ページ番号管理の通常編集でページタイトルが変更出来ないバグを修正
- ログローテーションをしない設定にすると詳細ログが取得されないバグを修正
PHP
アクセス解析
Lunasys
Google検索で検索語が取得出来ないケースについて
参考:米Google、検索サービスのSSL接続を標準に [詳細版]
以前から気になっていた問題ですが、『Lunasys』などアクセス解析でGoogleから訪問時に
検索語が空欄になるケースがあります。このカラクリがようやく判明しました。
結論から言うとGoogle先生の仕様です。バグでもなんでもありません。
プライバシーポリシーの変更に伴い、検索語が外に漏れるのは良くないんじゃないか
とGoogle先生は考えるようになったみたいです。プライバシー保護団体の圧力に屈したのかもしれません。
ともあれ「検索語を強制削除したURLからリダイレクト」という動きになるようです。
リンク元は一つ前しか取得出来ないので、実際に記録されるリンク元から検索語を復元することは
普通のアクセス解析では不可能です。サーバーの生ログでも確認しました。ただ、自社に有利になるよう
「Google Chrome」や「Google Analytics」だと……といった小細工を仕掛けてくるかもしれませんが。
上記のページだと「google.com」のみが対象と書いてありますが、2012年3月6日から「google.co.jp」でもこの仕組みが使われ始めてるようです。
今後全面的に検索語が取得出来なくなる可能性もあります。
Google先生には考え直して欲しいところです。
PHP
アクセス解析
アクセス解析『Lunasys 2.2.0 beta1』リリース!
【アクセス解析 Lunalys 特設サイト】
はい、というわけで先行版です。当サイト史上最も地味なバージョンアップかも。
動作の高速化がメイン。管理画面はmod_deflateによる全ファイルの圧縮転送を実施。
あとPHPからのincludeで新しく『tracker.php』というのを用意しました。
これはソケット通信でリクエストを送ってレスポンスを待たずに通信を終了させるので、
ページの表示速度に『Lunasys』の書き込み速度が影響しないようになります。
完全に別プロセスで動作するって感じです。何か不具合があったらバグレポートよろしくです。
主な変更点は以下の通り。
- 日間パラメータ統計にIPアドレスを追加
- 日間パラメータ統計にリモートホストを追加
- 高速include用tracker.phpを実装
- .htaccessに圧縮転送用の記述を追記(mod_deflate)
- tracker.jsとadd.jsのdocument.writeをcreateElementに変更
- PlayStation Vitaの表記をPSVからPS Vitaに変更
- conf.iniのURLカット設定をリンク元&リンク先にも適用するよう変更
- DBアクセスの例外発生時のリトライ回数制限を実装
- UA判定に「Blue Coat Proxy」を追加
- UA判定を強化(Android追加&Google Web Preview削除)
- conf.iniにユニークPV可否設定を追加
PHP
アクセス解析
Lunasys
アクセス解析『Lunasys 2.2.0 beta2』リリース!
【アクセス解析 Lunalys 特設サイト】
バグ修正がメインです。あとdocomoはスマホの発売ラッシュを自重すべき。
毎回更新が大変なのです。主な変更点は以下の通り。
- fw.iniのgzip圧縮転送設定を削除(常時圧縮)
- tracker.phpで特定のサーバー環境でIPが取得出来ないバグを修正
- データ公開機能のreferrerが表示されないバグを修正
- tracker.jsとadd.jsに記述ミスがあったのを修正
- Google検索の「not provided」に対応
- スマホのリストを更新
PHP
アクセス解析
Lunasys
『Lunasys』改め『Lunalys 2.2.0 beta3』リリース!
【アクセス解析 Lunalys 特設サイト】
はい、というわけで予告通り名称変更しました。『Lunasys』改め『Lunalys』です。
読み方は「ルナリス」。「analysis」(解析)にちなんだ名前です。
というか元々の『Lunasys』はどこから来たのかというと……。
まぁ人生には色々ありますよね。
ついに、というかようやくスマホ用の管理画面が出来ました。作ろうと思ってからここまで
来るのに余裕で半年ぐらいかかってます。
なんていうかモチベーションが上がらなかったんですよね。
そもそもスマホ持ってないし。
そんなこんなでgdgdになりつつもなんとか完成。
細かい部分は実機で確認して調整する予定です。
主な変更点は以下の通り。
- 名称を『Lunasys』から『Lunalys』に変更
- データ公開機能に「リンク先(クリック)」を追加
- フレームワークのアーキテクチャを変更
- ログイン画面のデザインを変更
- 全コードを最適化し処理速度を高速化
- tracker.js利用だとIEでオーバーレイが表示されないバグを修正
- スマホ用管理画面を実装
PHP
アクセス解析
Lunalys
『Lunalys 2.2.0 beta4』リリース!
【アクセス解析 Lunalys 特設サイト】
というわけでbeta4です。スマホ用管理画面を実機で確認して色々と修正しました。
多分これが最終betaになるかと。例によって一ヶ月ぐらい様子をみてから
正式版のリリースとなります。バグがあったら早めに連絡よろしくです。
あとbeta3で『PHP5.3』以上向けの記述をしてしまい(知らなかった)、
『PHP5.2』だと動かなくなってましたが記述を変えたので今度は動くはずです。
正確には『PHP5.2.3』以上。『PHP5.1』の人はごめんなさいです。
「2.1.2」を使って下さい。
- スマホ用で簡易検索が表示されないバグを修正
- スマホ用でアドレスバーを隠す機能を実装
- スマホ用のデザインを微調整
- スマホ用のログイン画面を修正
- スマホ用の自動リンク機能をoffにするよう変更
- IEで常に最新の描画モードを使うよう設定
- フレームワークのアーキテクチャを変更
PHP
アクセス解析
Lunalys
アクセス解析『Lunalys 2.2.0』リリース!
【アクセス解析 Lunalys 特設サイト】
きれいなスマホ表示してるだろ。HTML差し替えてるだけなんだぜ。これ……
というわけで正式版です。一ヶ月ほど様子を見る、と言いましたがなんかもう
引っ張るのが面倒になったのでリリースしちゃいます。
あとダークソウルのDLCも出るしね。
今回の目玉はやはり「管理画面のスマホ対応」ですかね。結構前からの懸念事項でしたが
ようやく実現しました。ぶっちゃけ今の時代スマホ対応しないとこの先生きのこれないですし。
とはいえ動いてるロジックにはほとんど手を入れてません。PC向けと同一のものが
そのまま動いてます。出力の時にHTML(とCSS)を差し替えてるだけ。
あと色々な部分で高速化してます。毎度よくやるわ、と自分でも思いますw
だってやってて楽しいし。パフォーマンスチューニングはやりだすと止まらない!
バグなどありましたら遠慮なく報告お願いします。
beta4からの主な変更点は以下の通り。
- UA/OS判定を強化(Android&OS X&PS3)
- JavaScriptの処理速度を高速化
- スマホのリストを更新
- PHPエラーのブラウザ出力設定をoffに変更
- フィルターメニューの携帯をモバイルに表記変更
- フィルターメニューのロボットをbotに表記変更
- Mac OS X(OS X)を愛称も併記するよう表記変更
PHP
アクセス解析
Lunalys
アクセス解析『Lunalys 2.2.1』リリース!
【アクセス解析 Lunalys 特設サイト】
バグがあったので修正しました。
- conf.iniのcut_url_out設定が反映されないバグを修正
PHP
アクセス解析
Lunalys
アクセス解析『Lunalys 2.2.4』リリース!
【アクセス解析 Lunalys 特設サイト】
- スマホのリストを更新
- OS Xのリストを更新
- UA/OS判定を強化(IE11以上に対応)
超久々です。このタイミングでしか更新出来なかったので遅くなりました……。
PHP
アクセス解析
Lunalys
アクセス解析『Lunalys 2.2.8』リリース!
【アクセス解析 Lunalys 特設サイト】
- スマホのリストを更新
- OS Xのリストを更新(macOS Sierraに対応)
- UA/OS判定を強化(Windows 10 Mobileに対応)
約1年ぶりのアップデート。スマホリストの更新を超頑張りました。
この作業ホント疲れるんですよね。誰か代わりにやってくれないかなw
PHP
アクセス解析
Lunalys
アクセス解析『Lunalys 2.3.0』リリース!
【アクセス解析 Lunalys 特設サイト】
はい。実に4年ぶりに機能を追加しましたよ奥さん。
放置しすぎですが、まぁそれぐらい元の完成度が高かったということで。
今まで特に変える必要性を感じなかったわけです。主な変更点は以下参照。
- モバイル系端末のUA取得を細分化
- UA/OS判定を強化(モバイル系UAに対応など)
- UA(ブラウザ)の3桁バージョンに対応(何桁でもOK)
- パラメータ「端末機種(モバイル)を追加
- パラメータ「通信キャリア」を追加」
- パラメータ「都道府県」を追加
- トップページの日別統計を好きなパラメータで表示出来るよう変更
4年前と比べて大きく閲覧者の環境が変わったことがあります。
それはスマホからアクセスする人が大幅に増えたということ。
まさかゲームだけでなく普段のWeb閲覧もスマホでするようになるとは。時代は変わるものですね。
というわけでスマホ時代に合わせて今まで曖昧にしていた部分をキッチリ整理。
モバイル系のアクセスは今までUAに端末機種とキャリア名を無理やり詰め込んでましたが、
別パラメータとして保存しUAはUAでちゃんと取るように変更しました。
微妙にパワーアップした『Lunalys 2.3.0』を是非お試し下さい!
【超重要】ver 2.2.x からアップデートする場合【超重要】
アップデート後 必ず 管理画面右の「ログデータ管理」より「ログテーブルのコンバート」を実行して下さい。実行は一度だけでOK!
設定ファイル「conf.ini」の内容が一部変更になりましたので、お手数ですが再設定をお願いします。
PHP
アクセス解析
Lunalys
アクセス解析『Lunalys 2.3.1』リリース!
【アクセス解析 Lunalys 特設サイト】
- スマホのリストを更新
- macOSのリストを更新(macOS High Sierraに対応)
毎年恒例のアップデートですよ。まぁ最低でも一年に一回はやらないとね。
終わってないよ! 更新し続ける限りそのアプリはまだ生きてます。
PHP
アクセス解析
Lunalys
『Lunalys 3.0.0』鋭意製作中!
約4年ぶりにアクセス解析『Lunalys』を更新する予定です。ついにPHP8に対応します。放置しすぎだってばよ。時間がかかりそうなので2021年内を目標に頑張ります。
約4年ぶりなのでやるならとことんやろう!ってことでめちゃめちゃ書き直してます。
ただ内部的な話なのでパっと見あまり変わらないですw ユーザーに関係ありそうな
主な変更点は以下
- 最近のAndroidでもバージョンを取得するよう修正
- PHP 7系 8系 でも動作するよう修正
- HTTPS環境でも完全に動作するよう修正
- DB接続をPDOクラスからSQLite3クラスに変更
- スマホの愛称表記を最新版に対応
- macOS の愛称表記を Monterey まで対応
PHP
アクセス解析
Lunalys
アクセス解析『Lunalys 3.0.0』リリース!
差分ファイルはなし。というかログデータのフォーマットが
変更になったため、旧バージョンをご利用の方は大変お手数ですが
一旦全削除の上設置し直して下さい。申し訳ないです。
コンバート機能を付ける余力がありませんでした……。
あとスマホリストもよく分からないキャリアの型番が
増えすぎて、ある程度のところで切り上げました。
ver 2.3.1からの変更点は以下の通り。
- スマホの愛称表記を最新版に対応
- macOS の愛称表記を Monterey まで対応
- 管理画面のデザインを若干変更
- 最近のAndroidでもバージョンを取得するよう修正
- PHP 7系 8系 でも動作するよう修正
- HTTPS環境でも完全に動作するよう修正
- DB接続を PDOクラス から SQLite3 クラスに変更
- tracker.phpの通信を cURL に変更
- ユニークPVの設定を廃止
- 時間別推移の曜日フィルターを廃止
- 日間パラメータテーブルを追加
- トップページ、日間パラメータの表示を高速化
- HTMLページ用解析タグをhead内とbody内に分割
- ロボット判定を強化
- 日間パラメータのデフォルト表示を一覧に変更
- 検索キーワードのデフォルト表示を単語に変更
PHP
アクセス解析
Lunalys
アクセス解析『Lunalys 3.0.1』リリース!
というわけで新版です。管理画面のCSSを大幅に変更しました。
パっと見違いはないですが、いままで float でレイアウト
してたのを flex-box という最新仕様で作り直しました。
あと単語の区切りに「|」(パイプライン)を使ってましたが
思い切って廃止。スッキリと見やすくなりました(当社比)。
表示した際に崩れる人はブラウザのキャッシュを削除して
リロードしてみて下さい。その他変更点は以下の通り。
- ロボット判定を強化
- 管理画面のデザインを若干変更
- .htaccess、php.iniの記述を若干変更
- リンク先の取得が出来ていなかったのを修正
PHP
アクセス解析
Lunalys
アクセス解析『Lunalys 3.0.2』リリース!
はい。というわけで新版です。LINE Search のロボットが
あまりにも多かったので、ロボット判定を更新。
他はまぁオマケですw 主な変更点は以下
- スマホの愛称表記を最新版に対応
- macOS の愛称表記を Ventura まで対応
- ロボット判定を強化(LINE Search を追加)
- 日間のUAでモバイル系が表示されてないバグを修正
- 一部環境でトップ以外が表示できないバグを修正
PHP
アクセス解析
Lunalys
アクセス解析『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 の時代ですよ!
主な変更点は以下
- データ取得時の不正なURL判定を強化(SQLインジェクション対策)
- 特定条件下でオーバーレイが正常に表示されないバグを修正
- 特定条件下で簡易検索が正常に表示されないバグを修正
- 特定条件下でSafariのバージョンが取得取得出来ないバグを修正
- 管理画面のCSSを若干変更(float を廃止、flex を grid に変更)
- UA/OS判定を強化(Chromium版、iOS、Android のEdgeに対応)
- UA-CHが取得可能な時はUA-CHからUAとOSを取得するよう変更
- (Windows 11 以降、mac OS Big Sur 以降が判別可能に)
PHP
アクセス解析
Lunalys
アクセス解析『Lunalys 3.1.0』リリース!
【アクセス解析 Lunalys 特設サイト】
はい。というわけで新版です。突然ですが今回から
『Lunalys』関連のコンテンツを特設サイトに
移動させることにしました!
お手数ですが上記サイトよりダウンロードして下さい。
お知らせは今まで通りこっちのサイトで載せる予定です。
上部のバナーは仮のものだしスマホ向けの
レスポンシブ対応もまだなので プレオープン
といったところでしょうか。
サイトデザインは『WordPress』公式サイトを丸パクリインスパイアさせて頂きました。
今回から『WordPress』のプラグインとして動かせるようになったので
ユーザー的に見慣れたデザインの方が良いかなって。
あと念願の(?)マルチサイトに対応しました。
前々から要望があったのですが面倒だと思って放置してました。
で、実際やってみたら案外簡単でしたね。
あと今更ですが、今までデータディレクトリのパーミッションは
「707」に変更必須だと思ってましたがサーバーによっては
変更は不要みたいです。
このサーバーは変更不要だった、このサーバーは変更必須だった、
という情報が欲しいので一言で構いませんので
サポートBBSに書き込んでくれるとありがたいです。
主な変更点は以下の通り。
- 特定条件下でUA統計に同じUAが複数登録されるバグを修正
- 条件検索の件数が正常に表示されていないバグを修正
- サイト別にデータを切り替えて表示出来る機能を実装
- データ取得用タグに複数サイト向け設定を追加
- 管理画面のデザインを若干変更
- ダークモードの表示を実装
- ログデータの拡張子を「.db」から「.sqlite」に変更
- トップページの日間パラメータソート設定を廃止
- 「configs」の.iniファイルを「config.ini」に統合
- 「config.ini」を変更出来る「システム設定」を実装
- WordPressのプラグイン機能を実装
PHP
アクセス解析
Lunalys
アクセス解析『Lunalys 3.1.1』リリース!
【アクセス解析 Lunalys 特設サイト】
バグ修正がメイン。年に一度ぐらいはアップデートしたいと思ってます。出来ればいいな。
あと超今更ですけどログアウトボタンを入れました。
主な変更点は以下。よしなに。
- 特定条件下でAndroidのバージョンが取得出来ないバグを修正
- 特定条件下でUAが unknown になるバグを修正
- UAが空(Robot)の時にエラーログが出力されるバグを修正
- リンク元判定を強化(Gmail、Quick Search Boxに対応)
- 管理者とは別の一般ユーザー用ログインID設定を実装
- 管理者のみシステム設定を編集可能に変更
- システム設定にログアウトボタンを実装
PHP
アクセス解析
Lunalys
アクセス解析『Lunalys 3.2.0』リリース!
【アクセス解析 Lunalys 特設サイト】
約1年3ヶ月ぶりの機能追加アップデートです。自分があまりスマホ使わないので
いらないかな、と思い削除したスマホ対応を復活というか作り直しました。
以前はPC用とは別URLにしてたのですが、いわゆるレスポンシブデザインに
したので同じURLになります。ただ折れ線グラフの部分はCSSだけで
切り替えが難しかったので正確にはレスポンシブ+αです。
不具合などありましたらサポートに書き込んでください。
こちらの環境で現象が再現出来なかったバグは直すのが難しいので、
詳細情報を教えて頂けるとヒントになります。
- WordPress 6.4.0 以降正常にデータが取れないバグを修正
- PHP 8.1 以降推移グラフでエラーが表示されるバグを修正
- 特定条件下で推移グラフの位置がズレるバグを修正
- UA-CHのモバイル判定がおかしいバグを修正
- 不正なアクセスURL登録の防止を強化
- 管理画面の main aside ラッパーを廃止
- 管理画面のデザインを若干変更
- UA-CHのデータを保存、表示するよう変更
- macOS Sonoma に対応
- ロボット判定を強化(LINE Search を追加等)
- UA判定を強化(Brave、Yandex を追加)
- スマホの愛称表記を最新版に対応
- スマホ&タブレット向けにレスポンシブデザインに変更(PCと同一URLで閲覧可能に!)
PHP
アクセス解析
Lunalys
アクセス解析『Lunalys 3.2.1』リリース!
【アクセス解析 Lunalys 特設サイト】
主な変更点は以下の通り。
- 詳細ログのID検索が正常に表示されないバグを修正
- 月初アクセス時にエラーログが出力されるバグを修正
- パラメータ統計に UA-CH を追加
- UA判定を強化(Samsung Internet を追加)
- 管理画面のデザインを若干変更
PHP
アクセス解析
Lunalys
アクセス解析『Lunalys 3.2.2』リリース!
【アクセス解析 Lunalys 特設サイト】
主な変更点は以下の通り。
- スマホ向けに月移動リンクの位置を調整
- Android端末で折れ線グラフがはみ出るバグを修正
- 特定条件下で詳細ログでエラーが表示されるバグを修正
- 特定条件下でルートが正常に表示されないバグを修正
- サブドメイン利用時に特定条件下でデータが
正常に取得出来ないバグを修正
PHP
アクセス解析
Lunalys
アクセス解析『Lunalys 3.2.3』リリース!
【アクセス解析 Lunalys 特設サイト】
久しぶりのアップデート。細かい部分ですが
今まで端末機種をキャリア(型番)別に分けて
表示してたのを同じモデルは合算して
表示するよう変更しました。
あと配列周りの古い書き方をモダンな書き方に変えたり、
一部関数をより高速な関数に置き換えたりして最適化しました。
主な変更点は以下
- 一部フィルターで前月比が正常に表示されないバグを修正
- ショートカットが正常に表示されないバグを修正
- 端末機種で Pixel が統合されないバグを修正
- 端末機種のキャリアを分けないよう変更
- 管理画面のデザインを若干変更
- UA判定を強化(Whale、Konqueror を追加)
- macOS Sequoia に対応
- スマホの愛称表記を最新版に対応
- 全体的にコードを最適化
PHP
アクセス解析
Lunalys
『Lunalys』のバージョン表記変更
【アクセス解析 Lunalys 特設サイト】
色々と思うところがあり『Lunalys』のバージョン表記を以下の通りに変更します。
再始動した時にメジャーバージョンを上げるべきでした。
2.3から2.4は内部的に滅茶苦茶書き直してて
ログのフォーマットも変更してリセットしてたのに
何でマイナーバージョンしか上げなかったのか。
正直自分でもよく分からないw 適当に付けたのを反省してます。
そして次のバージョンは「3.3.0」か「4.0.0」どっちにしようか迷い中です! よしなに!
追記:次期バージョンは「4.0.0」になります!
- 2.4.x → 3.0.x
- 2.5.x → 3.1.x
- 2.6.x → 3.2.x
PHP
アクセス解析
Lunalys
アクセス解析『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
君たちのおかげでまた一段高みへと登ってしまったよ……
アクセス制限機能の要望がありましたが今回は見送り。
正直需要は少なそうだし、それはアクセス解析の仕事ではない
と思うからです。要望を送って頂いた方には申し訳ない。
見解の相違というやつです。主な変更点は以下の通り。
- iPhoneの機種名を候補で表示するよう変更
- AndroidもUA-CHからOSを取得するよう変更
- 詳細ログのブラウザ表示領域を実数に変更(月間統計は四捨五入した値を使用)
- 月間統計の「検索キーワード」を廃止(2025年現在ほとんど取れなくなったため)
- OS判定を強化(iPadOS を追加:いまさら!)
- UA判定を強化(DuckDuckGo を追加)
- リンク元判定を強化(Pinterest を追加)
- スマホの愛称表記を最新版に対応
- ロボット判定を大幅に強化
- データ取得時の不正対策を強化(不正ログ作成防止、PHPエラー出力防止)
- 棒グラフを廃止し折れ線グラフのみに変更
- 月間統計の接続元ドメインのデフォルトを.jp のみに変更(v6connect.netは例外)
- 接続元ドメインの unknown 表記を廃止し月間統計に保存しないよう変更
- データ取得時に端末が横向きの時に表示領域を縦横逆にするよう変更
- フィーチャーフォン等古い端末の判定を廃止
- WebView の時はUAを上書きしないよう変更
- 月間統計で全件表示後に割合、推移に遷移した時に正常に表示されないバグを修正
- スマホ向けの月間統計にUA-CHを追加
- 日間統計にUA-CHを追加
- 月間統計のUA-CHに統合フィルターを追加
- 月間統計のUA-CHを見やすくするよう変更
PHP
アクセス解析
Lunalys
アクセス解析『Lunalys 4.0.2』リリース!
【アクセス解析 Lunalys 特設サイト】
ちなみに 4.0.1 の告知は完全に忘れてました。
両バージョン共にバグ修正のみの変更です。
4.0.0 でテーブルのカラム名を一ヶ所変更したのですが、
変更用のSQLがSQLite 3.25.0 未満のサーバーでは使えない文法でした。
古いバージョンでも違う書き方でいけるのですが
スマートではないし、カラムの数も違ってて
複雑怪奇な感じになるので諦めました。
(妥協して古いカラム名でもエラーが出ないように修正)
- 一部環境の詳細ログでエラーが表示されるバグを修正
- 一部環境でリンク先が取得出来ないバグを修正
PHP
アクセス解析
Lunalys
アクセス解析『Lunalys 4.0.3』リリース!
【アクセス解析 Lunalys 特設サイト】
今回もバグ修正のみです。4.0.0以降短いスパンでの
リリースになってしまい申し訳ないです。
何でこういうしょうもないバグが発生するかというと
私はプログラムを完成させたら放置するタイプではなく、
新しい文法を知ったり効率的なアルゴリズムを思いついた時に
全コードを最適化したくなるタイプなのです。
なのでそういった書き換え作業中にミスがあると
バグが発生してしまうのです。いやはや困ったものですね!
- 詳細ログのモバイルフィルターが動作しないバグを修正
PHP
アクセス解析
Lunalys
超今更なHTML仕様が判明した
Lunalys関連で衝撃の事実が判明してしまったのですが、
JavaScript OFF環境用の解析タグ<img>に入れていた
「url=~」という引数は不要でした!
な、なんだってー!!
<img>タグで呼び出した時はそのページのURLが
リンク元に自動的に設定される仕様でした(恐らくHTMLの仕様)。
し、知らんかった……何だよ全ページ共通のタグで問題ないやん!
もーそういうことは早く言ってよね
追記:実際にJavaScript OFF、引数なしで試したところ普通に動きました。
ただリンク元の設定が適当なbotは怪しい。とはいえbotのことを気にする必要はないか
PHP
アクセス解析
Lunalys
『Lunalys』過去語り
私は以前『Lapis』というアクセス解析を公開していたのですが、
自作のブログツールと干渉して
自分のサイトで上手く動かないという問題がありました。
(PHPのincludeで呼び出すのがNGだった)
そこでフレームワークのアーキテクチャを見直して
新しく作り直したのが『Lunalys』の始まり。
元々はCMS全体を指して『Luna System』
略して『Lunasys』と(自分の中で)呼称していました。
そこからアクセス解析を切り出して配布用にしたのですが
名前を考えるのが面倒だったのでそのまま
『Lunasys』としてリリース。
しばらくして(自分の中で)やっぱり紛らわしいな
と感じるようになり、「解析」「分析」にちなんだ名前に
改称することにしたのです。
「analysis」だと1文字変えるだけで済むし語呂も良い。
「analytics」という言葉もありますが
『Google アナリティクス』のイメージが強いので却下。
『Lapis』の後継なのでなんとなく
「L」で始まって「s」で終わる名前にしたかったのです。
そんなわけで『Lunalys』という名前が誕生しました。
競合しないユニークな名前だし気に入ってます。
今後とも『Lunalys』をよろしくお願いします!
PHP
アクセス解析
Lunalys
アクセス解析『Lunalys 5.0.0』リリース!
【アクセス解析 Lunalys 特設サイト】
というわけで過去最大級のアップデート。
例によってログデータのフォーマットを変えたので、
念のためバックアップを取ってからアップデートしてください。
ログデータは古いフォーマットから新しいフォーマットへ
自動で変換されますが、万が一失敗してどうにもならなくなった場合は
「data」フォルダの「~.sqlite」ファイルを全削除して
最初からやり直せばいけると思います。
あとログイン時のIDとPWの暗号化部分を変更したので
再入力が発生すると思います。お手数ですがよろしくお願いします。
PHP8.4で非推奨になった機能の置き換えです。
あと紹介記事をnoteに書いたのでご覧頂けると幸いです。
『Lunalys 5.0.0』の新機能を紹介!(note)
- 環境解析に分布グラフを実装(ヒストグラム)
- 月別アクセス推移に時間別分布グラフを実装
- 日別アクセス推移にカレンダー表示を実装
- IPアドレスで詳細ログ検索する機能を実装
- スマホ向け管理画面のデザインを変更
- データ取得時にCookieを発行しないよう変更
- UAが違う時は別アクセスと判定する設定を標準に変更
- ログインIDとPWのハッシュ化関数を変更(PHP8.4対応)
- ビジターIDのユニーク値生成関数を変更(PHP8.4対応)
- 一部リンクをブロックレベルに変更し当たり判定を拡大
- 解析対象ページのドメインチェック可否設定を追加
- ブラウザバージョン末尾の「.0」表記を廃止
- モバイルブラウザの「Mobile」表記を廃止
- 月間統計のブラウザ全体表示をPCモバイル合算に変更
- 折れ線グラフの数値をcanvasで描画するよう変更
- 取得パラメータに言語設定を追加(bot判定用)
- botの詳細ログに言語設定を追加
- bot判定を強化
- 詳細ログのルートをそのまま表示するよう変更
- 外部出力でないiPadの機種名を取得するよう変更
- システム設定にカウントしないIPアドレス設定を追加
- 特定条件下でbotのPVを加算してしまうバグを修正
- 表示項目を説明したヘルプを実装
- 全コードに型宣言を追加
PHP
アクセス解析
Lunalys
アクセス解析『Lunalys 5.0.3』リリース!
【アクセス解析 Lunalys 特設サイト】
今回から設置/更新が大幅に簡略化され、
ボタン1クリックで実行可能になりました。
「setup.php」というファイルをサーバーに置いて
ブラウザから実行するだけ。
- example.com/setup.php ←これを実行すると
- example.com/lunalys/ ←こうなります
5.0.3以降は管理画面のバージョン情報から
同じようにボタン1クリックでアップデート可能です。
これまで必要だった以下の作業が不要になります。
- zipファイルをダウンロード
- zipファイルを展開
- FTPで大量のファイルを転送
主な処理はUNIXコマンドで実行しているので
サーバーによっては動作しない可能性があります。
もし失敗するサーバーがあったら教えてください。
こちらで試して対策を考えます。
各バージョンのzipファイルも置いてありますので、
従来通りFTPでの設置/更新も可能です。
今回の変更点は以下
- PHP8.4以上でログイン画面でエラーが出るバグを修正
- バージョン情報からアップデート出来る機能を実装
PHP
アクセス解析
Lunalys