このブログもWordPressとか見栄えのいいものにしたいなという気もありますが、リファラのリンクが生成される点や構造がシンプルな点でtdiaryを今でも使用しています。で、最近放置していたtdiaryを2.2.2から3.0.1にアップデートしたときに、iPod Touchで見るとページが左に寄ってしまう現象が起こったのでそのメモ。
□ tdiary 3.0.1の表示がiPod Touch 4thでずれる tdiary 3.0.1のページをiPod Touch 4thで表示すると、下記のようにページが左にずれて表示されます。 通常のパソコン上のブラウザで見る分には問題なく表示されます。 tdiary 3.0.0からiPhone/iPod Touchなどのスマートフォン向けのページ表示機能が 追加されているので、そこが原因のようです。 どうも、iPhone向けに320x240などの解像度で文字を大きくして見やすく表示されるはずが 幅の広いテーブルを作成しているためか最大限テーブルを表示しようとして アンバランスなことになっているようです。 これを直すには、iPhone向けの設定を無効にすればいいわけで、HTML中に <meta name = "viewport" content = "width = device-width"> のようなタグを表示させなければ、下記のようにページ全体が表示されます。 tdiaryのフォルダ中の./plugin/00default.rb を開いて、379行目あたりの iphone_tagメソッドの中身を変更する。 ---------------------------------------------------- def iphone_tag if @conf.iphone? then <<-CSS <meta name = "viewport" content = "width = device-width"> ---------------------------------------------------- ↓ ---------------------------------------------------- def iphone_tag if false then <<-CSS <meta name = "viewport" content = "width = device-width"> ---------------------------------------------------- もっと良い方法があるかと思いますが、時間がなかったので下記の画像のように とりあえず対処することはできました。
単なるsudoのNOPASSWD設定でハマってしまった件のメモ。原因は単純なことなのにどうして気づかなかったのさ..。
sudoの設定を行うには $ sudo visudo のようにコマンドを利用して、/etc/sudoersファイルを編集しますが Ubuntuではデフォルトのユーザでsudoを扱えるよう、インストール時に設定されています。 □ 今回ハマった件 下記は、/etc/sudoersファイルのサンプルです。 コメント部分をあえて日本語に訳しておきます。 ----------------------------------------------------------- # /etc/sudoers # # このファイルはroot権限で 'visudo' コマンドで編集する必要があります。 # # sudoersファイルの書き方の詳細についてはmanを参照してください。 # Defaults env_reset # Host alias specification # User alias specification # Cmnd alias specification # ユーザ特権の指定 root ALL=(ALL) ALL user ALL=NOPASSWD:/usr/local/bin/test.sh .....(1) # sudoグループに属しているすべてのメンバーが、各自のパスワードを入力すれば # 任意のコマンドを実行できるようにします。 # (後のエントリでこの設定を上書きされるので、これより下に # 設定を移動させる必要があるかもしれません。) %sudo ALL=(ALL) ALL # #includedir /etc/sudoers.d # adminグループのメンバーがroot権限を取得できるようになります %admin ALL=(ALL) ALL .....(2) # 自分の設定 user ALL=NOPASSWD:/usr/local/bin/test.sh .....(3) ----------------------------------------------------------- 最初(1)の場所に、userユーザがパスワードなしでスクリプトを実行できるよう NOPASSWD設定を追加したのですが、これが有効にならずはまってしまいました。 user ALL=NOPASSWD:/usr/local/bin/test.sh 【参考】 sudoersのNOPASSWD設定の確認 NOPASSWDがきちんと設定されているか確認を行うには、sudo -kなどで パスワードキャッシュのタイムアウトを無効にして、コマンドを実行するのが便利です。 例) sudo -k /usr/loca/bin/test.sh man sudoより引用 --------------------------------------------------------- -k -k (kill) オプションが指定されると、 sudo は有効期間を紀元年 (epoch) に設定することで ユーザのタイムスタンプを無効にする。 次回 sudo を実行するときは、パスワードが必要とされる。 このオプションにはパスワードが必要ない。 ユーザが .logout ファイルで sudo 権限を 取り消す ことができるように追加された。 --------------------------------------------------------- □ 解決編 /etc/sudoersファイルの一番下、(3)の場所にNOPASSWD設定を移動させると ちゃんとパスワードなしで実行されました。 これは、(2)の場所にadminグループ向け(つまりインストール時に作るデフォルトユーザが含まれるグループ)の エントリがあるため、(1)の設定が上書きされてNOPASSWD設定が無効になっていた というオチでした。 sudoersのエントリは一番下に書くというのを守らなかった上に、設定全体の意味を 理解していなかったという点で反省。 下記の参考URLでも、似たような注意点が書かれています。 □ 参考URL Ubuntu Wiki - Sudo https://help.ubuntu.com/community/RootSudo Ubuntu Wiki - Sudoers https://help.ubuntu.com/community/Sudoers