^ page top

2017-06-01
 cms vps

 僕が、自分のサーバの、自分のブログの記事を編集するのに、いちいちケチをつけられる。理由は、YouTube タグが入ってるから。馬鹿じゃねえの。この警告ページが表示されるだけで、一応コマンドは通っている。が、使いにくいことに変わりはない。YouTube タグだけじゃなく、Googleマップや、アマゾン商品タグ、自前の FORM 入力も同様。

 ブログは、ブラウザひとつで、編集・閲覧できるのが、ミソなのに。わざわざ他のソフトを使わないといけないなんて、本末転倒。

 とりあえず、数の多い、YouTube タグの解決策として、独自の YouTube タグにして、表示するときに自動で展開するようにした。

 常時SSL化にすれば解決することなのかもしれないが、プロバイダに、ドメイン、メールサーバに、VPSサーバ、その上、SSL代も払えってか。さすがに、無理だわ。
2017-03-28
 既成のシステムを利用してサイトを構築、ではなく、根幹部分のシステムそのものから自作した話。

 このブログ、というかブログが動いているCMSシステムは、僕が丸ごと FreePascal で自作したものなのですが(ライブラリを利用したので、正確には繋ぎ合わせたというべきか)、なんだかんだいいつつ、2012年から4年以上、使い続けています。個人ブログの規模じゃ、動いて当たり前との指摘もあるかとは思いますが、デスクトップアプリの経験はあっても、サーバ側、ましてや、Linux 上でのプログラムというのは、経験もほとんど無いまま、初めてづくしで開発・運用してきたわけです。

 当初は、とりあえず、必要な機能まで動くようになったら、改めて作り直すつもりだったのですが、ちまちまと修正を重ね、まぁ、いいかと、今に至り、正直、作り直す気力は残っていません。

 CMSシェアにおいて、WordPress の、ダントツ独走状態が続いています。結果的に言えば、わざわざ自作するよりも、WordPress を勉強しておけば色々と便利だったのかもしれません。しかし、逆を言うならば、CMS を自分で作るような人間は、超マイノリティであって、出来栄え度外視で、自己満足ポイントは、非常に高いのです。実際、WordPress で、カスタマイズ運用するのも、それなりに大変らしいし、何が正解ていうことでもないかもしれません。


 以下は、将来、作り直す気になった時のための反省点。

 このシステムは、ベース部分があって、後はそこに必要分のブログを、どんどん追加していく形式になっています。各ブログは独立しているわけで、個別に削除や移動もできるようバックアップ&リストア処理も組み込んでいます。しかし、この処理後に各記事のアクセスURLが変わってしまいかねないのは、どうもよろしくない。検索エンジンが、必ずしも期待通り追従してくれる保障もないし、一般サイトから外部リンクされているURLにしても同様。

 そもそも、これは、URLを、内部構造そのままの、ブログ番号+記事番号を使っていることに起因しています。ブログ番号をブログ名に、記事番号を記事タイトル名として、変換する処理をいれるのが、もしかしたら正しいのかもしれません。ただ、日本語をURLに含めるのは、どうも抵抗があるし、そもそも美しくない。せめて、記事番号ではなく、記事作成日時にするべきでした。

 このサイト自身、僕個人の実験スペースなので、宣伝の類は一切していないし、たまに、リンクをしてくれている奇特な方もいますが、アクセスの大半は、検索エンジンからです。別に商売に使っていなくても、検索エンジンとの繋がりであるURLに関しては注意を払う必要があります。

 実際の変換処理は、Apache 側のモジュールも関係しているとはいえ、この辺は、設計段階でキチンと決めておかないといけなかった。具体的には、記事番号ではなく、ユニークな記事作成日時をキーとして管理すれば良かったわけです。



 もう一つの反省点は、CSS。つまりデザインの部分。レスポンシブ ウェブ デザインというか、簡単にいえば、スマホ対応。コレを全く考慮していなかった。これは、そもそも、このブログにスマホでアクセスする必要はないし、PCユーザ向けと意図的に切り捨てた部分です。

 それ以前に、デザインそのものも僕のオリジナルなわけで、これが賢くなかった。修正を積み重ねたので、グダグダ。結論から言えば、最初から他のCMS用の優秀なCSSを流用、若しくはパクれる(笑)ように作るべきでした。そうすれば、デザインのバリエーションや、レスポンシブな点も、いっしょに解決できていたはずです。


 https 未対応。ブラウザのクロームや、グーグルの動きを見ていると、そのうち暗号化されていないサイトなんぞ相手にしてもらえなくなるかもしれません。商売でやってるサイトなんかは、問答無用で https にしないといけないようですが、個人の趣味サイトまで、https 化する必要があるのが、大いに疑問です。


 他にも、細かなことで言えば色々ありますが、初のサーバ側プログラムとしては、及第点と、甘めに採点しておきます。
2017-01-19
 ブラウザで更新しても、外部CSSのように間接的に読み込まれるファイルは、キャッシュを読み込んでしまって反映されない。対策としては、CSS 読み込みのアドレスの指定に、適当なクエリを追加すればいいらしい、クエリが変化した時点で、新規に読み込まれる。へー、なるほど。

 このブログシステムでも、CSS を更新したときに、クエリを自動で書き換えるようにした。かなり前に、この問題に気づいたが、面倒くさいので、ブラウザのキャッシュ全削除で、ごまかしてた。それだと、閲覧者のほうは変化ないから、全く解決にはなっていなかった。

2012-08-02
 基本構成は、トップページに、必要分のブログを追加する形。データベースも含めて、CGI 側で全て管理できるようにしてある。

 管理画面はこんな感じ。

バックアップ、CSS編集、ユーザ管理

ブログ・パラメータ

記事の新規作成

記事の編集

2012-08-02
 おおまかな実装終えて、修正作業だけなら、重い VNC 越しの Lazarus を使わなくてもいい。WinSCP 経由で編集して、FreePascal のコンパイラをコンソールから動かせばいい。

 ローカルの PC にインストールしてある Windows 版の Lazarus のエディタを編集に使うが、WinSCP から単純に外部エディタの指定をしても、余計な部分が邪魔で使いづらい。そこで、.lpi とかの足りないファイルを適当にでっち上げるプログラムを間に挟む。編集以外は出来なくても、やはり本家のエディタが便利。

 コンパイルは、CGIから実行できるようにしているので、ソースの更新(保存すると、WinSCPが自動でアップロード)した後、ボタン一発で完了する。

 クロスコンパイル?なにそれ。
2012-08-02

 実際の開発は、VMware 上で形になるまでテストした後、VPSサーバ上に移行した。
① Win版 Lazarus で、開発開始(Linuxに不慣れなので)。
VMware 上の Linux版 Lazarus 用に修正。
③ VPS上の Linux版 Lazarus で実働、デバッグ。

 Linux は、一番使いやすい気がする CentOS を選択。テスト環境も、レンタルVPSサーバも扱いは同じ仮想マシン。接続先のアドレスが違うだけで、ツール類は、そのまま使える。いちいち変更の度にアップロードとか面倒なので、遅くてイライラしつつも、直接VPS側でデバッグすることになる。
PuTTYjp コンソール
  http://hp.vector.co.jp/authors/VA024651/PuTTYkj.html
WinSCP ファイル転送
  http://winscp.net/eng/docs/lang:jp
UltraVNC リモートデスクトップ
  http://www.uvnc.com/
 プログラム言語は、FreePascal。Lazarus は、エディタとデバッグのためだけに使用。フォーム付きのアプリつくるわけじゃないから、不安定さは感じない。
Free Pascal オブジェクト・パスカル
  http://www.freepascal.org/
Lazarus Free Pascal IDE
  http://www.lazarus.freepascal.org/
 CGIのプログラム中で、データベースを作成・修正するが、デバッグ中の確認や修正には、外部ツールを使ったほうが効率的。
Firebird SQLデータベース
  http://www.firebirdsql.org/
IBExpert
  http://www.ibexpert.net/ibe/
2012-08-02
 Webのサーバ側で動くプログラム。いわゆる CGIのプログラムを組むためには、最近ならPHP あるいは 昔からある Perl 。これらはスクリプト系の言語。ひと手間かかるコンパイル言語なら、Java や、C あたり。職業プログラマならば、用途に合わせた言語を使えなければ話にならないだろうけど、趣味でやってる人間は自由に選べる。僕も、C とか、Java とか使ってたはずなのに、さっぱり思い出せない。

 で、現実的に使えそうな言語が、Pascalぐらい。正確には Windowsで自前のツールとか作るのに使っている Delphi(オブジェクトPascal 風)で、使用暦だけは長い。ならば、CGI も Delphi で組めばよさそうなのだけど、根本的な問題としてプログラムが動作するのは、Windows上だけ。Windowsの Webサーバを用意するのは、OS そのものが有料なので、何かと割高になってしまう。

 そういうわけで、Linux にも対応(安いVPSで可)していて、現在も開発が続いている Free Pascal+Lazarus を使うことに。Lazarus は、Free Pascal コンパイラの受け渡しをするエディタ込みの開発環境、本来のポトペタでフォーム付のアプリを作成させるわけではなく、ブラウザ向けにテキストを吐き出すような、非ビジュアルなコンソールアプリを作る。

 ブログ・プログラムは、実はデータベースアプリ。書き込みは、データの追加だし、表示は、データの整形表示。プログラム的には、特別難しい題材ではないように思える。とりあえず、使い慣れた Firebird を選択。InterBase系は、Delphi と相性良かったので、Free Pascal でもいけるはず。

 Pascal + Firebird という、Webアプリとしては、超レアな組み合わせがステキ。
2012-08-02
 cms vps
 Web システムを作ろうというのだから、何らかのプログラム言語の経験は必要だが、何を使うとかいうのは、大した問題ではない。Javaが出来ます、Perlならまかせて、と言った所で、実際にはプログラム以外の知識も、それなりに必要になる。
1.自由に設定できるサーバ本体
2.Webサーバ、データベース・サーバの設定、オペレーション知識
3.データベースの基礎知識
4.Web、HTML、スタイルシートの基礎知識
5.CGIプログラム作成環境、および開発技術
 今風の選択例でいけば、LAMPと言われる、Linux + Apache + MySQL + PHP といったところか。サーバ本体は、実PCでも、ヴァーチャルな仮想PC、最終的なレンタルサーバ等、必要なアプリを自由に設定できればなんでもいい。OS、サーバソフトも、好きなのを選択すればいいが、メジャーなものの方が、資料も情報も多いので面倒がないはず。

 データベースは、実際にテーブルを作ったり、SQL文で色々と操作してみないことには、理解しづらい。当たり前だが、プログラム以前に、手書きの html で、簡単なWebサイトをつくれるくらいでないと、プログラムも組めない。

 僕も、スキルとしては、全然足りてなくて、プログラムを始める前の段階で、既にグッタリしていた。それでも、一つづつクリアしていけば出来ないこともない。結局のところ、自分自身のスキルアップと、他人には分からない自己満足の為ということになる。どんなにショボくても、本当の意味で、自作サイトなのだから。
2012-08-02
 cms vps
 長いこと、blogger というブログサービスを使っていたが、改変後、今ひとつ使いにくいような気がして乗り換え先を探す。国内のブログは相変わらずの気持ち悪さ、それなら流行の WordPress でも試してみようかと、説明読み始めたら、即、くじける。

 新しくPHPを学習する労力が、自分がやりたいことを実現させる事と釣り合うのか良く分からない。ついこの間までは、Movable Type がトレンドだったと思ったのに。必死に覚えて使えるようになった頃には、もう新しい別のシステムが広まり始めてるに違いない。ITの世界っていうのは、飯の種を作るため、わざとそういうことを繰り返している。

 結論から言うと、頭の悪さゆえ流れには乗れそうに無いので、トレンドに逆らって、ひたすら我が道を行くことにする。つまり、システムそのものをオリジナルで作成する。大規模サイトなど目指してるわけではないのだから、多機能である必要はないし、使う機能だけ随時組み込みつつ改良を重ねていけばいいかと。



 いきなり、システムの話をしても、何のことやら分からないという人のために、説明しておくと、昔風に言うところのホームページと呼ばれていたもの、つまり、ブラウザ経由で、情報閲覧できるコンテンツ群が、どのように構成されるかという話。もともと、Webの初期の段階においては、HTMLという拡張子のついた特殊なテキストファイルに、JPEGなどの画像ファイルを組み合わせたものを、サーバにアップロード(転送)していた。これが、静的なコンテンツ。アップロードされたファイルがそのまま表示される。現在でも単純なコンテンツならばこの形式で問題ない。

 それに対し、掲示板やブログに代表されるように、コンテンツを編集・管理する機能を、サーバ上に持たせる仕組みが出来た。これが、CMS(コンテンツマネジメントシステム)。自前のエディタや、ftpソフトなど持たずとも、閲覧者と同様「ブラウザひとつ」で、ページの作成、編集が可能になった。書き込み等に応じて、表示内容は、動的に変更される。重要なのは、Web側の知識など、ほとんど無くても誰でも情報を発信できるようになった点。動的コンテンツの場合、ベースとなるプログラムが動いてさえしまえば、コンテンツの中身の部分、文章なり、写真を書き込むだけでサイトの構築が可能になる。

 動的コンテンツの裏側の部分、つまり、データの実処理や表示形式などを、アレやコレ記述したものが、プログラムである。ビジネスアプリや、ゲームのプログラムとは違ってグラフィカルな画面を持たないが、ブラウザ越しのリクエストに答えて、表示データをその都度、再構成していく。この部分を自作しようという話。
rdoz.blog
管理人の趣味ネタ
 Arduino、映画、メカニカル キーボード、
  プログラミング、レトゲー etc...

links
search

recent comments
categories