きゃらりこ日誌

サイト管理 / 技術

JS CMSを使ってみました

最近のトレンドを学ぶべく、いろいろなCMSを試していたのですが、どうもしっくりこない。
メジャーどころをいくつか入れてみたのですが、個人サイトで使うにはオーバースペックで、設定・カスタマイズも難しすぎでした。
一番普及しているであろうWordPressも面白そうだったのですが、自サイトのアクセスログを見ると、WordPressを標的とした不正アクセスが頻繁にあるので、今回は避けました。

自サイトをCMSに移行するという想定だったので、ノーメンテナンスでも末永く使えるのを重視するという運営方針の都合上、頻繁にアップデートされるCMSは避けたいのと、セキュリティを考えるとCGIやデータベースは極力使わないようにしたいです。
そういう訳で、ライセンスフリー・静的HTML・データベースサーバ不要・小規模サイト向きでのCMSを探してみたところ、JS CMSを発見しました。
JS CMS公式サイト

数日間いろいろいじってみましたが、JS CMSは私にとって機能は充分で、使い勝手もなかなかよかったです。
ただオープンソースとして公開されたのが2015年7月なので、比較的歴史が浅いのでユーザもあまり多くないようです。
またJS CMSにはユーザコミュニティがないので、ノウハウの共有がなされていなかったり、実装がまだ不十分の機能があったり。
しかしマニュアルは動画版も用意されおり、スライド版だけでは分かりづらかった説明も動画版で見ると一目瞭然。
こういうソフトって、ドキュメントが整備されてなかったり、未翻訳だったり、旧バージョンのマニュアルしかなかったりすることが多いのですが、現行バージョンのマニュアルが用意されているうえに、動画マニュアルも用意されているというところは、他のCMSと違ってとても良いです。
また開発者へのフィードバックは、メール・ウェブチャット・GitHub・Facebookと多岐にわたっています。

自サイトは、SSIをテンプレートとして使っている関係からCMSと相性がいいので、これを機に本当にJS CMSに移行しようかしら。
※12/7追記 自サイトのJS CMS移行を進めていたところ、テンプレート化に不向きなページがいくつも出てきてしまったので、最終的に移行を断念しました。

JS CMS 4.1.5.3の管理画面

私が、JS CMS 4.1.5.3を触った範囲で気になったことを、以下に列挙します。

分かりづらい言葉・概念

‣「テンプレート」「ひな形」とは、一般的な意味で言うテンプレート・ひな形ではなく、もっと意味が限定されます。詳細は後述します。
‣「テンプレート」・「テンプレートHTML」とは、コンテンツ部分以外のテンプレートのこと。要するに、外装用テンプレートです。
‣「ページタグ」とは、システム定義のテンプレート用変数のことです。
‣「Myタグ」とは、ユーザ定義のテンプレート用変数のことです。
‣「Myタグ名ID」とは、テンプレート用変数の変数名のことです。
‣「ブロック情報パネル」とは、青色のモーダルウィンドウのことで、Windowsで言うところの「プロパティ」に相当する機能があります。
‣「テンプレート」・「テンプレートHTML」とは、コンテンツ部分({{PAGE_CONTENTS}}内)以外のテンプレート。要するに、外装用テンプレートのことです。
‣「ひな形ブロック」とは、セクション単位で使うコンテンツ用テンプレートのことです。
‣「{{Myタグ設定}}」ページを、2つに分けている理由が分かりづらいです。「UI用(ヘッダなど)」は「テンプレート用」、「パーツ用」は「コンテンツ用」に改名すると、分けた意図が分かりやすくなると思います。
‣「プリセット」とは、一般的な意味で言うところのテンプレート・ひな形のこと。いわばボタン一発で貼り付けることができる、コンテンツ用テンプレートのことです。

ノウハウ

‣JS CMSの管理画面にログインすることができるブラウザはGoogle Chrome・IE9以降で、非対応ブラウザではログインできません。しかし/_cms/js/cms.jsのinit:function()の中身をいじることで、非対応のブラウザでも管理画面にログインできます(上級者向け 不具合が出ても自己責任で)。なお私はFirefoxで使いましたが、私が触った範囲では大きな不具合はみられませんでした。
‣テンプレートの中身や「CMS設定」(もしくは/_cms/setting/setting.js)・jsonファイルを変更した後は、ブラウザをリロードしないと変更が反映されません。
‣「ひな形ブロック」のひな形(一般的な意味で言うところのテンプレート)は、{{Myタグ設定}}の「パーツ用」の中で設定します。
‣「ひな形ブロック」使用時には、ひな形で{{1}}・{{2}}・{{3}}などとなっている部分が、入力した値に置換されます。なおひな形ブロックは、セクション単位で使用することが想定されており、ページ単位で使うことには向きません。また似たようなものに「プリセット」がありますが、こちらもページ単位には、あまり向いていません。
‣「水平線ブロック」(<hr>)はありません。Myタグを使って代用することもできますが、HTML生成時には無駄に<P>タグで囲むことになる(<p><hr></p>)ので、「HTMLブロック」に<hr>と書くのが無難です。
‣「プリセット」や{{Myタグ設定}}のjsonファイルを追加する場合、/html/_mytag/や/html/_preset/に追加しても、自動では認識さません。「CMS設定」(もしくは/_cms/setting/setting.js)の「Myタグリスト設定」・「プリセットリスト設定」でファイル名・名称を追加する必要があります(上級者向け)。
‣「プリセット」の編集機能は未実装のようです。独自の「プリセット」の中身は、適当なページで中身を作って、そのページのjsonファイルを、独自のプリセットのjsonファイルにコピペしてください(上級者向け)。
‣共通のテンプレートを使いつつも、テンプレート内に任意のHTMLタグを挿入したい(新たなテンプレートを作るまでもない場合 スタイルシートを追加したいとき等)ときは、テンプレートの任意の位置に「Myタグ」を仕込んでおく。Myタグの値を入れるときは、青色のウィンドウ「テキスト編集」の左下にある「改行→<BR>」のチェックを必ず外す。
‣公開時には表示させたくないメモ書きをページ内に書きたいときは、「基本ブロック」の中の「ノート」ブロックを使います。
‣編集後は、必ず保存ボタン・ロックをかける習慣をつけましょう。うっかり保存し忘れ・消してしまうと、1から作り直すはめになります。

残念なところ

‣ファイルマネージャでファイル削除しても、右側のエディタ上の表示は消えないので、うっかりエディタの保存ボタンを押してしまうと、消したはずのファイルが復活してしまいます。
‣「保存する」ボタンが、全然目立ちません。文字色を黄色にするのではなく、背景色を反転させたり、反対色にするくらいやらないと見落としがちです。また保存し忘れを防ぐため、ページ遷移の際にダイアログで未保存であることを警告してほしいです。これで何度も痛い目にあいました。
‣ページを編集後、自動でページをロックする機能が欲しいです。編集時にロックをかけ忘れることも多く、うっかり削除ボタンを押してしまうと、ページが消えてしまうことがあります。これで何度も痛い目にあいました。
‣ページを誤って削除してしまった場合、復活させる方法がありません。せめてページ削除時に、確認のダイアログを出してください。
‣「Myタグブロック」はページ内ではなく、「HTMLページ編集・削除」の中に「Myタグ」タブを作り(要するに、プロパティに相当する場所)、その中で設定するほうが自然です。基本はそこで設定し、{{PAGE_CONTENTS}}を使わない特殊なテンプレートを使う場合のみ、ページ内に「Myタグブロック」を置いて設定するという使い分けにするのがよいと思います。
‣ディレクトリ選択をクリック、もしくはダブルクリックでできるようにしてほしい。
‣編集画面の左上のファイル名の横にも「設定」ボタンをつけて欲しい。ここにもあった方が使いやすいです。
‣「テキスト編集」のモーダルウィンドウで、「改行→<BR>」のチェックを外すと、HTMLを生成した際に改行が削除されてしまう。¥nは残してほしい。

不足している機能

‣サイト名・今年の西暦を表示するための「サイトタグ」{{SITE_NAME}}{{THIS_YEAR}}がありません。特に今年の西暦は、著作権表記などで多用するので、使用頻度が高い機能です。和暦対応は、使用頻度を考えると不要だと思います。
‣「オリジナルタグ」の追加・編集機能が未実装です。現状、JavaScriptを直接いじらないといけないので、ハードルが高いです。
‣テンプレートに、その用途説明・注意事項などを書いておくための場所(いわゆるreadme.txt的なもの)が欲しいです。
‣実装途中で止まっているようですが、{{PAGE_DATE}}や{PAGE_PUB_DATE}}の日付表記で、一般的な表記(2018-01-02 13:04、1/2(土)、PM 1:04など)に対応してほしい。
‣「ファイルマネージャ」で、フォルダの移動ができません。
‣「ファイルマネージャ」に、コンテンツ部分・テンプレート・ページのステータス等もコピーしてくれる「丸ごとコピー」ボタンが欲しいです。
‣Myタグ{{SRC}}の値にdog.jpgを入れたら、<img src="./img/dog.jpg">と展開され、値が空の場合はimgタグ自体が表示されない機能が欲しいです。現在のMyタグの仕様では、値が空の場合に<img src="./img/">と表示されるものしか作れないです。なおswitch関数のように、複数の表示が出せる高性能なものは必要としていません。
‣「Myタグブロック」にタイトルを付けたいです。ページ内に「Myタグブロック」を複数設置したとき、「これはヘッダ用」などのように、用途説明を書きたいです。
‣「Myタグブロック」で、値以外の部分を誤って編集したり、うっかり削除しないようにロックをかけたいです。
‣「{{Myタグ設定}}」の使い分けを意図するなら、「ひな形ブロック」の設定は「{{Myタグ設定}}」下ではなく、「ひな形の設定」という独立したページにまとめてほしいです。
‣「ひな形ブロック」使用時、「MyタグID」をプルダウンメニューで選択できるようにしてほしいです。
‣「プリセット」は正規手段での編集方法が実装されておらず、ガイドには使用方法が未記載になっています。現状では「プリセット」の代わりに、非公開のコピペ専用ページを用意しておいて、そこからコピーしてくるという運用にならざるをえません。
‣できればsitemap.txt、もしくはsitemap.xmlを自動生成して欲しいです。

重箱の隅

‣フローティングウィンドウの文字色が水色ですが、読みづらいです。
‣公式サイトの各所に誤字が散見されるのと、ウェブ版ガイドで意味が正反対になる致命的な誤記があるのが気になります。
‣動画版ガイドではナレーションの口調が丁寧なだけに、「グロナビ」・「テンプレ」のようなくだけた略称や、「おおまか」・「だったり」などの口語表現が気になります。
‣動画版ガイドで、ナレーション原稿の脱字や違和感のある言い回し・入力ミスは、それほど気にはなりませんが、できれば撮り直した方がよいと思います。
また断りを入れているとはいえ、「ファイルマネージャ」の隣にあるエディタではなく、Macのエディタで編集してしまう点も気になりました。
[ 秋野よう | この記事のURL ]


今月の○○

最近の1枚 TVK鶴見中継局

撮影:2018年7月19日 横浜市鶴見区 TVK鶴見中継局
夏の暑いさなか、三ッ池公園までやってきました。
tvkの親局って、こんなにいい場所にあるんですね。

(初出:350ml.netトップページ 2018年10月19日)
[ 秋野よう | この記事のURL ]


PC・家電 / 技術

Lightningケーブルの端子

iPhone・iPadで使われているLightning端子に内蔵されている認証チップについて調べていたところ、海外のサイトで確実そうな情報を発見したので、軽くまとめておきます。

Lightning端子の曲げ強度は10kg、ただしジャックの強度は3kgで、また450gで引っ張っても抜けないように作られているそうです。
端子とケーブルとのハンダ付け部分は、硬化剤で固めて補強してるそうです。

またAppleカスタムチップの附番は、Aで始まるものはCPU(A10 Fusionなど)、CはLightning、Hは入出力関係(ディスプレイポート・USB端子など)、Lはオーディオコーデック、MはiPhone・iPad用モーションコプロセッサ、SはApple Watch用チップセット、TはMac用チップセット、WはAirPods用チップセット、Xは無線チップになっているようです。
Lightning端子 C48・C10Lightning端子 C11・C12
Lightning C48・C10、C11・C12
Lightning端子の違いは、以下の通りです。
【頭の3文字】
Lightning端子の種類。
C10
固定強度の問題から、ケーブル用。2012年製造開始。現在は製造終了。
C11
ドックや本体と端子が一体化しているアクセサリ向け。固定金具の形状以外はC10と同じ。2012年製造開始。現在は製造終了。
C12
ネジ穴が設けられているが、接合部がピン状になっているためケーブル・ドックでは使用禁止。本体と端子が一体化しているアクセサリ用。2013年製造開始、2019年製造終了予定。
C37
Lightningのジャック(差し込まれるほう)。
C48
充電・通信用。アクセサリ側(逆方向)への電源供給は不可能。Lightning Audio Module非対応。C10・C11の後継。2013年製造開始、2019年製造終了予定。
C52
Apple純正品で使用。製造終了?
C68
2013年製造開始、2019年製造終了予定。
C78
Apple純正品で使用。USB Type-C対応。C12・C68の後継。
C79
USB Type-C対応。C12・C68の後継。
C89
USB Type-C対応。USB-PD非対応。C48の後継。
C91
Apple純正品で使用。端子は金メッキ。USB Type-C・USB-PD対応。C52の後継。
C94
USB Type-C・USB-PD対応。C48の後継。


【末尾の英字】
チップの設定。C10・C11・C12では取っ手で隠れてしまう場所に印刷されている。
A
USBホストモード。USB Type B専用。充電は非対応(アクセサリ側への供給のみ)。C10A・C48A・C68Aなど。
B
USBデバイスモード。USB Type A専用。C10B・C12B・C48B・C68Bなど。
C
シリアル通信モード。
D
充電専用。アクセサリ側(逆方向)への電源供給はできない。C10D・C11Dが存在したが、現在は廃止。
E
Lightning Audio Module搭載アクセサリ専用。C10E・C11E・C12E・C68Eなど。

※ Lightning Audio Module: オーディオ関係のアクセサリに必須のDAC(D/Aコンバーター)。Apple純正品ではCirrus Logicのカスタムチップを内蔵しているが、サードパーティではWolfson WM8533(iPod 第5.5世代(iPod Video)や、Lightning-30ピンアダプタでも採用)を使用している。
[ 秋野よう | この記事のURL ]


インターネット / 雑学 / メディア

MVNOの通信速度が遅い理由

図解を作る練習がてら「MVNOの通信速度が遅い理由」というスライドを作ってみました。
図解でざっくりと説明するために細かいところは省いていますが、それでも文字が多すぎますね。
「MVNOの通信速度が遅い理由」の図解


MVNOの通信速度が遅い理由
ピーク時のMVNOの通信量と③の太さ(帯域幅)が見合っていないのが、一番大きな原因。
電波が反射しやすい場所・利用者が多い場所(人混みの中など)では電波干渉の影響を受けるため、①が原因になることもある。
※ アンテナピクトは電波の強さを表すもので、電波の質の良し悪しを表すものではない。

なお自社でMVNO設備を持たず、他社(IIJ・OCN・NUROモバイルなど)の設備に相乗りする、二次MVNO(DMMモバイル・イオンモバイル・LINEモバイルなど)もある。

※ ③の接続料金(10Mbpsあたり)は、NTTドコモは55.2万円、auは76.6万円、ソフトバンクは77.3万円(2017年度)。
キャリア:NTTドコモ・au・ソフトバンク
MVNO:楽天モバイル・IIJ mio・OCN モバイルone・mineo・UQ mobileなど
[ 秋野よう | この記事のURL ]