にしし ふぁくとりー:西村文宏 個人サイト

Presented by Nishishi via Movable Type. Last Updated: 2019/08/17. 13:36:32.

てがろぐCGI Ver 2.2.0を公開。新規機能とか、今後の計画とか、裏話とか

てがろぐ Ver 2.2.0 を公開

うちのサイト内にあるフリーCGIコーナーで配布中の、お手軽マイクロブログ的メモ蓄積フリーCGI「てがろぐ」Ver 2.2.0 を先日に公開しました。(もう「先週」か。) 前のバージョンを公開してから3ヶ月ぶりです。 予定ではもうちょっと早く公開するつもりだったんですけども、いろいろ仕事が忙しくて1ヶ月ほどさっぱり開発できない期間があったりしつつ、ようやく配布に漕ぎ着けました。

ミニブログCGIてがろぐ

もうちょっと機能を増強してから公開する予定だったんですが、あまり新機能を詰め込みすぎると時間だけが過ぎて行ってしまう上に、更新点の案内も大変になりますから、一旦ここで区切って公開することにしました。
現状でもちょっと盛り込みすぎなくらいで、案内ドキュメントを作るのがやや大変でしたが。(^_^;)

以下はそんな「てがろぐ」Ver 2.2.0製作の裏話など。

目次:

手軽にログを蓄積できるツール、お手軽マイクログログで「てがろぐ」

この「てがろぐ」CGIは、複数ユーザ対応のTwitterっぽいCGIなので「マイクログログ的メモ蓄積フリーCGI」と呼称しているわけですけども、なんて言えば一番伝わるんでしょうかねー?

Twitter系のサービスに対しては、ミニブログという表現も耳にしたことがありますが、特に明確な定義ってありませんよね。「小説」に対する「ライトノベル」のような。^^;
表題と本文とコメント機能が別々に存在するような本格「ブログ」ツールと比べると簡素だからということで、「ミニブログ」とか「マイクログログ」とか言われているだけで。(^_^;)

▼てが+ろぐ

てがろぐ(Tegalog)という名前は、手軽(Tegaru)にログ(Log)を蓄積できるツールという意味で付けました。

Twitterで「手書きブログの略かと思っていた」というコメントもありましたが。(笑) 「なるほど、そういうのもあるのか」と思いました。^^; 手書きブログというジャンルがあるんですね? 紙に手書きした文章をスキャンしてUPするんだろうか。ペンタブで書いた文章を画像としてUPするとか? もしかして「手書き」ではなくて「手描き」で要するにお絵かきブログという意味なのかな。

名称は4文字ともひらがなを使って「てがろぐ」としておいて良かったと思いました。
もしアルファベットの「Tegalog」を正式名称をにしていたら、Googleで検索しても強制的にTagalog(タガログ語=フィリピンの主要言語)の検索結果が表示されてしまうので、うまく検索できないところでした。(^_^;)
当初には「ログ」をカタカナにして「てがログ」と表記する案もあったんですが、ひらがな+カタカナだと打ちにくい(変換が面倒くさい)ので表記の統一が困難になりそうなため、全部ひらがなにしました。

▼Ver 2.2.0での追加機能とか

てがろぐVer 2.2.0では、「続きを読む」ボタンの挿入機能、投稿画像のデフォルト挿入位置の指定機能、色の16進数での指定機能、前後の投稿への移動リンクを出力する機能……あたりが最大の更新点です。
そのほか、要望を頂いていた細々した機能を追加したり、一部の仕様を改善・改変したり、不具合を修正したりもしました。
詳しい更新点は、リリースノート(No.16)にも書いていますのでそちらをご参照下さい。

まだまだ追加搭載したい機能は多数あります。
開発モチベーションの維持には、最新版を使って下さる方々がどれくらい居るかが重要なので、ぜひアップグレードをお願いします。(^_^;)

Twitterに似せたスキンだったんだけど

標準添付のスキンは今のところ8種類ありまして、その中では「Twitterっぽいスキン」が一番の人気スキンなんですけども、本家Twitter側がUIを大きく変えてしまったので、今では似ていません。
配布スキンの名称も、「昔のTwitterっぽいスキン」と改名した方が良いかな……。(^_^;;;

昔のTwitterっぽい感じで、自分のウェブサイト内でつぶやきたい方々にもお勧めなCGIですよ!(^_^;)

てがろぐ用Twitterっぽいスキン てがろぐ用Twitterっぽいスキン

Twitterがデフォルトで用意している配色を使って、もっとバリエーションを用意したいな……と思っていたんですが、ブルーとピンクの2色を用意しただけで、本家Twitter側のUIが変わってしまったので用意できなくなってしまいました。^^;(オリジナルの配色がどうだったか調べる手段が消えたので。^^;)

ユーザさんの増加とサードパーティスキンの希望

ここ最近、てがろぐのユーザさんが加速度的に増えてきて、たいへん嬉しいです。
しかも、かなりスキンをカスタマイズして使って下さっている方々も多くて驚きます。自由度の高いスキン仕様にしておいて良かったな、と思いました。(^_^;)
いくつか紹介したいんですけども、検索避けを設定なさっている方々のを紹介するわけにもいかない気もするので、いろいろ迷うところです。
同人サイトでの利用がそこそこ多いような気がします。

▼自作スキンを配布して下さる方々が現れるのが目標

今のところは、自分専用のスキンを作って使っていらっしゃる方々ばかりっぽいので、「独自スキンを一般にも配布をしてくれる方」が現れるのが今の目標ですかね。(^_^;;;
私にデザイン能力が乏しいために、あまり魅力的なスキンを作成できませんから。
標準添付のスキン(今のところ8種類)だけだとやはり寂しいですし。

独自スキンを配布しても良いが、配布場所として自分のウェブサイトは使いたくない事情がある、という場合にはスキン一式を送って下されば、私のサイトで配布させて頂きますので、もしよろしければぜひご連絡下さい。
また、既にご自身のサイトでスキンを配布していらっしゃるようなら、教えて頂ければ公式配布ページからリンクさせて頂くなりしたいと思っています。

▼更新案内用スキンを作って、リリースノートを公開

てがろぐCGIのバージョンアップ版を公開する際に、「どんな機能が増えたのか?」を案内する専用のページが必要だな……と思っていまして、どうせなら「てがろぐ」そのものを使って更新案内ページを作る方がカスタマイズサンプルも兼ねられて望ましいよな、と思ったのでリリースノートを作成しました。

てがろぐCGIリリースノート

基本デザインは、デフォルトの「標準スキン」ですが、「1行目を表題・2行目以降を本文」だとみなすブログタイプスキンと同じ書き方を使って、タイトル付きのブログのような形態で作成しています。(上図の黄色矢印部分が記事タイトルとして見せている部分です。)
機能追加や更新点だけをバージョン別に紹介していますので、バージョンアップ時の参考にして下さい。
既存ユーザさんが更新点を知るには便利だと思います。

RSSフィードの出力機能もありますから、RSSで「てがろぐ」の更新をチェックする用途にもご活用頂けます。

画像投稿の需要が結構高かったんですね

画像の投稿機能を加えたのは Ver.2 からなんですが、そこから一気に訴求力が上がったのかユーザさんが大きく増えたように思います。
従来のVer 1.xでも、外部にUPした画像をURL指定で埋め込む機能はありましたが、やはり別途何らかの方法でUPしないといけないのは面倒ですからね……。

個人的には画像投稿機能にここまでの需要があったとは思っていなかったので驚きました。(だからこそ、当初は画像UP機能を実装しなかったわけで。^^;)

今回のVer 2.2.0では、埋め込んだ画像をリンクにするかどうか、リンクにする場合はLightboxを使うかどうか、などの機能を追加しています。
また、Lightboxで拡大画像を表示するかどうかは「てがろぐに直接投稿した画像」と「URLを書いて埋め込む外部画像」とで別々に設定できるようにもしました。(※下図の緑色矢印と水色矢印部分)

投稿画像関連の設定部分

▼投稿画像のサムネイル画像を自動生成できると望ましいんでしょうね

今は投稿画像をそのまま表示するだけ(標準添付スキンをそのまま使う場合は、CSSを使って横幅の上限は制限して表示する仕様)ですが、イラストや写真などの画像投稿をメインに据える活用方法の場合には、UPされた画像からサムネイル画像を自動生成する仕組みを加える方が望ましいんでしょうね。
解像度が重要な画像を公開する場合、最初からオリジナルの画像を掲載してしまうと、ページ全体のデータサイズが大きくなりすぎてしまうでしょうから。

自動でサムネイルを生成する場合、ウェブサーバ側にその機能を持ったPerlモジュールが存在しないと使えないので、「できるだけ多くの環境で利用できるようにしておきたい」と考えて実装はしていない(そのPerlモジュールの存在を必須扱いにしていない)わけですが。

そこをもうちょっとうまく何か解決できそうなら、サムネイルの自動生成機能も加えたいとは思っています。たぶん、「あれば読んで使うけどなければ使わない」的な分岐ができれば良いんだと思うんですが。詳しくはまだ考えていません。(^_^;)

利用時の手軽さを第一に考える方針ですが、CGI自体の設置要件が軽いこと(緩いこと)も1つの設計思想にしているつもりなので、「これがなければ動かない」的な要素はできるだけ少なく抑えておきたいと思っています。

▼画像へのテキストリンクに、Lightbox用の属性を付加する記法を加えました

Ver 2.2.0では、画像を直接掲載する代わりに「画像へのテキストリンク」を掲載しておいて、そのリンク先画像自体は「Lightboxを使ってその場で表示する」という方法が採れるようになっています。(ユーザさんからご要望頂いたので実装しました。)

従来から任意の文字列でリンクを作る際には [ラベル]URL という記法が使えましたが、[ラベル:LB]URL のように「:LB」を加えるこ
とで、リンクにLightbox用の属性が付加される仕様になっています。
この方法なら、ページ表示時にいきなりサイズの大きな画像を読み込ませてしまうことは避けられます。

「てがろぐ」への機能追加要望もいろいろ届いて嬉しい

事実上のサポート掲示板と化している動作試験版てがろぐ上やメールなどでも、いろいろと機能追加のご要望を頂けて嬉しいです。
ご要望を頂くと、たいていは想像していなかった活用方法に関する機能だったりして、多機能化の要因になってたいへん嬉しいです。(^_^)
「ああ、そんな使い方もあったのね」という驚きは、汎用性の表れでもあって、開発者冥利に尽きる感じです。

▼今回に実装した、ご要望による細かな機能の例

既に頂いているご要望や、ご要望を元に実装した機能については、公式配布ページ内の下部「開発検討中の機能など」に列挙してあります。
頂いたご要望を元に今回のバージョンで実装した機能としては、例えば以下のような機能があります。

  • 本文の投稿と同時に画像をアップロードする際に、画像をどの位置に掲載するかを選択(事前設定)できる機能。
  • 投稿本文に含まれる「1つめの画像」のURLだけを得る記法の追加。
  • 投稿本文をプレーンテキスト化した上で、先頭から指定の文字数だけのテキストを取得できる記法の追加。
  • 画像を表示する際のsrc属性値が相対パスで出力されていて、SSIでの埋め込み時に正しく表示できない問題への対処(=絶対パスでの出力を選択できる機能)。
  • てがろぐの出力結果をSSIで埋め込んで使う場合に、リンクや画像のパスが置き換わってしまって正しく表示できない問題への対処(=CGIが出力する絶対パスを手動で固定設定できる機能)。
  • 最新の記事を表示した場合でも「次の記事へ」のリンクが表示される問題への対処。
  • 画像へのテキストリンクにも、Lightbox用の属性を付加できる記法の追加。

自分一人だけで使っていたら絶対に気付かないような要望もあって嬉しいです。

なお、SSIで既存ページに埋め込んで使う場合は、Powered-by表記は消せる方がデザインしやすくて望ましいと思います。Powered-by表記はスキンから削除しても強制挿入される仕様ですが、消したままで運営できるライセンスも用意していますのでご活用頂ければ幸いです。

ランダム表示機能と結城浩さんメルマガの話

てがろぐに追加する機能は、ユーザさんからご要望を頂いたり、自分で使っていて「欲しいな」と思った機能のほか、全く関係のないところからヒントを得ることもあります。例えば、結城浩さんのメルマガとか。

▼ポータルメモ+ランダムに1個だけを表示する機能

結城浩さんの2019/02/05発行分のメルマガ本文で、ブラウザの起動直後に表示されるよう設定されたローカルのWebページとして、Rubyで書かれた「ポータルページ」を用意している話がありました。(※画面イメージの掲載もあったんですが、転載するわけにもいかないので、もし興味がおありならメルマガをご参照下さい。^^;)
そのページには「ポータルメモ」という機能もあって、「ときどき思い出したいこと」を掲示板的に書いておく用途に使われているそうです。
しかし、ずっと同じ内容を表示していると無意識のうちに(広告のように)次第に読み飛ばすようになってしまうため、それを防ぐためにランダムに1個だけを表示する仕様にしているとのこと。

なるほど、と思いました。

私も自分専用の「てがろぐ」をそのようなメモ蓄積ツールとして使っていますが、メモの分量が増えると過去のメモを読み返す機会が低下しますから、古いメモほど目に入る(思い出す)頻度が低下します。
なので、投稿時期に関係なくランダムに表示する機能を加えると、既に忘却していたネタを思い出しやすくて良さそうです。

▼てがろぐCGIにもランダムに1件を抜き出して表示する機能を追加

というわけで、てがろぐにも ?mode=random というパラメータを加えることで、ランダムに1件の投稿が表示される仕様を加えました。(その機能自体を加えたのは前のVer 2.1.0なんですが、削除したメモを除外するなど、まともに使えるようになったのは今回のVer 2.2.0からです。^^;)

単純に「 ?mode=random 」というパラメータを加えて使うだけでも良いですが、他の既存ページに埋め込む方法だと、より手軽に参照できて良いかもしれません。

例えば、既存ページへの埋め込み専用に作成したシンプルなスキン「umekomi」を用意しておいて ?skin=umekomi&mode=random などとパラメータを指定すれば、ランダムに選ばれた1件だけをスキン「umekomi」を適用した状態で出力できます。
この方法で、既存のページに埋め込むようにしておけば、(「てがろぐ」CGIそのものにアクセスしなくても)時々思い出したいネタを自分の目に付く場所(任意のウェブページ)に表示されるようにすることもできそうです。

▼結城浩さんといえば

ちなみに、結城浩さんと言えば、初めて買った本はC言語の文法本で、高校生だった当時のコマンドラインな環境(MS-DOS)でのプログラミングに激しく役立ちました。
その本をどうやって買ったのかについては、過去に2~3回くらいどこかで語った気もしますが、直近では以下のブログ記事にしています。(^_^;)

→『受験番号を書き忘れたら失格になるかどうか』(2018年9月27日)

私が高校時代に入試のお手伝いをしたときの話です。
タイトルからは全然違う話のように思えますが(実際に違う話なんですけども^^;)、ここで学校から手にした報酬で結城浩さんのC言語文法本を買ったのでした。^^; 最後の「余談」の中にある「さらに余談」の部分に書いてあります。

Perlよ、どうしてこうなった……!

てがろぐCGIのソースは、プログラミング言語のPerl(Perl5)で記述しています。
私の中では、今でもプログラミング言語の使用率No.1はPerlなんですけども、これ、世の中からは相当に乖離しているんですよね。(^_^;;;
Perlがどうしてここまで凋落してしまったのかは分かりませんけども、人気の低迷は事実のようで。技術者が選ぶプログラミング言語ランキングとかでも、Perlの名称が登場することはあまりなく、ランク外になっていることもよくある気がします。

今、初めて「ウェブサーバで動くスクリプトを作ろう」と思い立った人々のうち、最初に使う言語としてPerlを選択する人の割合ってどれくらいなのかな……。(^_^;;;

適当な相づちを自動で打つ機能とかどうだ?(笑)

てがろぐはTwitterっぽい形での呟きツールとしても使えるので、適当な相づちが自動投稿されると面白そうな気がします。(笑)
何かを投稿するたびに、「へぇ~」とか、「ほぉー」とか、適当に返事してくれるような。(笑)

てがろぐは、ユーザIDを複数作成して複数人でも使えるCGIですが、そうは言っても設置者1人だけで使っている方々も多そうです。私もそうですし。せっかく複数人で共用可能な仕組みになっているので、自分の投稿に対して(人工無能が)相づちを打ってくれるような機能があっても良いんじゃないでしょうかね。(笑)

相づちにどんなセリフを使うのかはユーザが事前に登録できると良いでしょう。相づちを打つかどうかの条件も指定できると良さそうですかね?^^;

今後に追加したい機能

公式配布ページの末尾には、ご要望を頂いているリスト「開発検討中の機能など」があります。
だいたいはそこに従って加えていく予定ではいます。

あのリストは、優先順に並んでいるわけではありません。かといって完全な順不同というわけでもなくて、なんとなく実装しやすそうだったり、要望数が多そうだったりするものが上位に来ていたり、既に実装計画に入っているものが上に来ていたりします。また、単に同ジャンルの機能をまとめているだけの場合もあります。(要するに、かなり適当です。)

ものすごく簡単なもの(例えば、Lazy Load用の属性を付加するとか)みたいなのは、できるだけ早めに加えたいと思います。(そういえば、LazyLoadの話はリストに加え忘れているな……。)

▼ご要望はお気軽に

リストに載っていないからといって拒否しているわけではありません。
開発系のファイルを格納しているローカルフォルダにあるToDoリストにはもっと項目がありますので。(^_^;)
とはいえ、ただ忘れているだけの可能性もありますので、さほどニッチな要望ではないにもかかわらず「要望したのに載ってない」という場合はお知らせ頂けるとありがたいです。

その他、ご要望はお気軽にお送り下さい。
公式配布ページの「開発検討中の機能など」リストに載っていないなら、積極的にご要望頂けると実装計画を立てる参考になってありがたいです。
さらに、リストに載っていても「これは何としても欲しい」という機能は何度でもお知らせ頂ける方が、優先度の判断材料にできてありがたいです。(笑)

▼カレンダー機能が欲しい

特にご要望は頂いていないんですが、いくつか作りたい機能があります。
例えば、カレンダー表示機能。
「日記CGI」として利用するケースを考えると、カレンダー形式でリンクできると便利そうですし。
カレンダーは「曜日×週」のボックス型のほか、横一列・縦一列とかを選べるとデザインの幅が広がって良さそうですね。

なんか、そんな感じのを加えたい気がしています。
カレンダーの生成機能は、拙作の「Fumy Teacher's Schedule Board」というスケジュール表示機能フリーCGIで既に実装しているので、それを参考にして作れそうですし。(遙か昔に作って以降、まともに書き換えていないので、かなり古いUIですが。)

てがろぐVer.1系をまだ使っている方を見かけたら

RSSフィード出力機能も画像投稿機能も必要ない方々だと、Ver.1系の「てがろぐ」CGIを今でもお使いの場合もあると思います。
が、Ver.1系CGIは、ただ普通に動作させるだけでもウェブサーバのログに莫大なワーニング(本当に莫大な量)が記録されてしまうので、極力Ver.2以降にアップグレードすることをお勧めします。
もしVer.1系CGIを使い続けているサイトを目撃したら、ちょっくら教えてあげて下さい。^^;;;

では、Ver 2.0.0なら安心か、というとそうでもなく、Ver 2.0.0でも少しワーニングが記録されてしまう問題があったものの、2.1.0ではある程度解消させまして、Ver 2.2.0ではさらに解消しています。
ワーニングが記録されるからといって、動作上の問題があるわけではありませんから、そのまま使い続けたからといって何か不都合があるとは言えませんが。(ログがサーバ容量を圧迫するという問題はありますけども。)

基本的にソフトウェアのアップグレードというのは「望みの機能があるかどうか」で決めるとは思いますが、できるだけ望みの機能がなくてもアップグレードして頂けるとありがたいです。(^_^;)
不具合が修正されているから、という理由もありますし、
何より、最新版が使われることが、私の開発モチベーションの維持に非常に役に立ちますから。(笑)

……というわけで、お手軽マイクログログ的メモ蓄積フリーCGI「てがろぐ」Ver 2.2.0 を公開した話でした。

活用例として公式サイトで紹介しても良いよ、という方がいらっしゃいましたらぜひお知らせ下さい。また、自作の独自スキンを配布している場合もぜひ!

コメント

コメント数: 0件

コメント投稿欄 この日記に対するコメント投稿を歓迎します。



※本文中にURLは書けません。(書くと投稿が拒否されますのでご注意下さい。)

※ご投稿頂いた内容は、掲載前に管理者が確認する設定にしている場合があります。たいていは数日以内には表示されるはずですので、気長にお待ち願います。m(_ _)m

著者紹介


にしし(西村文宏)

にししでございます。本書いたり記事書いたりしてます。あと萌えたり。著書5冊発売中です(Web製作系4冊+小説1冊)。著書や記事は「西村文宏」名義。記事は主にAll Aboutで連載。本の最新刊は2011年3月に発売されたライトノベルでございますよ。

Twitter:にしし/西村文宏
にしし/西村文宏 on facebook にしし/西村文宏 on mixi フォローはお気軽に!

にしし(西村文宏)連絡先
☕ コーヒーをおごる

著書一覧と詳細

関連する記事など

※下記には、本サイト内外の関連記事などが8本くらい自動で表示されています。

にししふぁくとりー Sakura scope内限定での主要なカテゴリ

--- 当サイト内を検索 ---