Twenty Twelve Theme + MEGA MENU でハマったのでメモ。
<nav id="site-navigation" class="main-navigation">
これを
<nav id="site-navigation" role="navigation">
こうすることで上手くいく。
症状は、メニューは開くがテキストが出ない。
きっとclass名「main-navigation」が邪魔してるんやろね。

Twenty Twelve Theme + MEGA MENU でハマったのでメモ。
<nav id="site-navigation" class="main-navigation">
これを
<nav id="site-navigation" role="navigation">
こうすることで上手くいく。
症状は、メニューは開くがテキストが出ない。
きっとclass名「main-navigation」が邪魔してるんやろね。

coreserverのssh登録、サーバーをリニューアルされた頃から、Pythonスクリプトで正常に登録できなくなっていた模様。Launch Agentの構文に不具合がある? cronだと動くのか? と悩みつつ、しばらくは「面倒やなぁ」と思いつつ、30日ごとにコンパネにログインしてボタンをクリックしていたんですが……

ええ加減いやになってきて調べて見たら、ホスト名とか表示されるようになってる。
なんか関係あるんかと思ってソースを追うが、ん? 関係あらへんような………
答えはもっとシンプルでした。
最終 if ブロックの url が変更されてます。
いま検索して出てくるソースはこの2サイト。
[Python]CORESERVERのSSH登録を自動化する
coreserver の ssh 登録を pythonによって手動でやる
どちらも同じ内容(同じ人?)。
https://ss1.coressl.jp/www.XXX.coreserver.jp/jp/admin.cgi
となっていますが、
https://XXX.coreserver.jp/jp/admin.cgi
これでOK牧場。以下更新ソースです。
#!/usr/bin/env python
# coding: utf-8
import urllib
def get_ip():
f = urllib.urlopen('http://dyn.value-domain.com/cgi-bin/dyn.fcg?ip')
ip = f.read()
return ip
def regist_host(ip, url):
userid = 'ACCOUNT'
passwd = 'PASSWORD'
keyword = u'SSH登録'
encoding = 'shift-jis'
p = [
('id', userid),
('pass', passwd),
('remote_host', ip),
('ssh2', keyword.encode(encoding)),
]
params = urllib.urlencode(p)
#print params
up = urllib.urlopen(url, params)
#print up.read()
if __name__ == '__main__':
url = 'https://XXX.coreserver.jp/jp/admin.cgi'
ip = get_ip()
regist_host(ip, url)
あとは cron を回すなり、Launch Agent に登録するなりで自動化しましょう。
随分時間が経過していますが、ownCloud から Nextcloud へ移行しました。
といった感じ。(個人の感想です)
「同期されない=オンラインストレージの意味がない」といった判断と、クライアントが無償提供されていることから Nextcloud へ移行しました。
古いファイルが残るのは(同期されないことに比べたら)大した問題ではないし、履歴が残っているとでも考えれば(笑)
ログイン画面もカスタマイズできるし、アプリも追加できるし、なんならメールの確認やチャットまで組み込めるので、イントラサーバー等で運用すると超快適かもしれませんね。そこまでコストはかけられないので、レンタルサーバでの運用です。
できるだけ高速で高負荷に耐えられるサーバーに移転しました。なかなか快適です。
ご興味のある方、ご相談いただければ相談に伺います。

ここ数年は SSL だの サイトの応答速度だの………
書いている内容に関することよりも、ページが早く安全に見えることが重要っぽいですね。
まぁ、パクリ記事が多いからしょうがないんですかね。
調べ物をしていると、ほとんど同じ内容でいくつものサイトが出てくるのも本当の話。
そう思うと、数秒待って開かないサイトは、間違いなく閉じちゃいますね。
なんであんなに開かないんだろう。Javascript? CSSが巨大? 画像が重い?
エントリーが多すぎるとか?
ということで気になったのでやってみた次第。
Googleのサービス Page Speed Insights 。
広告も全部外して、CSSもミニファイして影響のない物は非同期に。Javascriptも同様。さらにデスクトップとモバイルの表示エリアが異なるので、読み込まれるJSとCSSもUAで振り分けて非同期読み込み。
致命的な警告は出なくなり、緑のサインになったようです。
まずまずな感じですね。
あとは「ページ表示のどこに時間がかかったかチェック」のブックマークレットでも試して見ましたが、
「ごっつい速いですね。」と褒めていただきました。
ま、ページのソースも短いですし (^^;
Let’s Encrypt で SSL 化がうまくいったもんだから、調子に乗って ownCloud も常時SSL化。
でも遅い……なんとか高速化できないものかと情報を漁ってみると……
ownCloud9 + php7 で爆速オンラインストレージ構築というスライドを発見。
どうやら細々としたノウハウがあるようだけど、ownCloud9 + php7 という組み合わせは試してみる価値がある様子。
幸か不幸か、本体はこの前9にアップデートしたところなのでphp7に切り替えるだけ。早速やってみると……なんと体感できるぐらい早くなってるじゃないですか。
しばらくこの感じで使ってみることにします。
そう。誰しもが考えますよねぇ。
wordpressもphp7で動かしたら早くなるんじゃねぇの?
プラグインを一つ諦めましたが……
速くなりました。うひひ。
こちらもしばらく様子見。
あれ以来マシンも順調に動いております。
残念ながら、MacPro Early2008 は、次期 macOS Sierra の対象外となってしまいましたが……OSもようやく OS X El Capitan に。そして AdobeCC2015 に完全移行しました。
幸いユーティリティ類も全て問題なく動作しておりますし、ちょっともたつく以外は(笑)特に問題はありません。
余っていたSSDによく使うアプリを移動して、アプリフォルダにシンボリックリンク……とすると、インストール済みアプリとして認識してない様子。
しばらくの辛抱なので、このまま続行です。
さて閑話休題、紆余曲折しながらもようやく常時SSLとしました。
以前に使っていた coreserver が SNI に対応したとのことで、固定IP契約不要でSSLが使えそうなので欲をかいてやってみようと思ったのがきっかけでした。
最初は Cloud Flare (https://www.cloudflare.com)を試すも、ネームサーバを書き換えたら、DNS も Cloud Flare で管理されていることに気づかず……かなりハマりました。
証明書を見てみると、複数のドメインがひとまとめ、ものすごいパックになっていてビックリ。どことなく挙動もおかしかったので、いったんすべて抹消。
共用サーバーなので自動更新は無理なのですが、そんなに手間でもなさそうですし、面倒で嫌になるまでやってみようかと思って Let’s Encrypt をインストール。
幸いベータ版からの先人が数多く存在するので、環境を整えるまでの時間はさほどかかりませんでした。
というかそのあとも、証明書を発行してサーバーにインポートするのもあっけなく終了。
誰かの役に立つかもしれないので、備忘録として拙いログを晒しておきます。
El Capitan (10.11.5)
Mac Pro (Early 2008)
Coreserver (core-A)
Xserverで他のドメインは使用(AレコードのみCoreserverに向けている)
value-domain でドメイン管理
GoogleApps 使用
なんとも特異な環境ですが(笑)
Let’s Encrypt のインストールは「ウェブタタン」さんのエントリーが、非常にわかりやすく解説されていて助かりました。
Let’s encryptのSSL証明書をMacで作成!さくらレンタルサーバーに導入する方法
あちこちを見ながらやったので、私の環境は新旧織り交ぜた環境になってるような気がします。
まず公式を見て、言われるがまま Git から certbot を……
git clone https://github.com/certbot/certbot
として云々。
途中で権限エラーや get できないからソースからコンパイルしちゃうよ〜みたいなメッセージがズラズラと……。
半ばあきらめていたところ、先ほどの「ウェブタタン」さんのエントリーを発見。
じっくり読み進め、表示されているエラーを解説通りに進めていき、なんとか動作するように(笑)
まぁこの辺りは本職でないので、基本結果オーライで行っちゃってます。
そして、待望の証明書発行へ。
$ cd certbot $ ./certbot-auto certonly --manual -d example.com -d www.example.com -d sub.example.com
とすると、UNIXっぽいスクリーンが表示されますので、ガイドに沿って進めていきます。
今回はサブドメインも含めて、3つをひとまとめにしたSSL証明書を発行しますので、-d オプションでドメインを3つ並べます。
Make sure your web server displays the following content at
http://example.com/.wexx-xxxn/acme-challenge/OdNmEVBSEvJJqvqZmGdmB_1yVBSEvJJqdmDFyo before continuing:
OdNmEVBSEvJJqvqZmGdmB_1yVBSEvJJqdEvJJqmDFyoFyo.uh6sL2eW-jvA6CMmUz-Hs67e4bBU_doPOlIjxnzRGvg
If you don't have HTTP server configured, you can run the following
command on the target server (as root):
mkdir -p /tmp/certbot/public_html/.well-known/acme-challenge
cd /tmp/certbot/public_html
printf "%s" OdNmEnv12_540PB_1yW6KDkIVBSEvJJqvqZmGdmDFyo.uh6sL2eW-jvA6CMmUz-Hs67e4bBU_doPOlIjxnzRGvg > .well-known/acme-challenge/OdNmEnv12_540PB_1yW6KDkIVBSEvJJqvqZmGdmDFyo
# run only once per server:
$(command -v python2 || command -v python2.7 || command -v python2.6) -c \
"import BaseHTTPServer, SimpleHTTPServer; \
s = BaseHTTPServer.HTTPServer(('', 80), SimpleHTTPServer.SimpleHTTPRequestHandler); \
s.serve_forever()"
Press ENTER to continue
こんなスクリーンで [Press ENTER to continue]と云うプロンプトで待機してます。
cui 操作が楽な人は、SSHでサーバーに接続した後サイトルートに移動して
mkdir -p .well-known/acme-challenge printf "%s" OdNmEnv12_540PB_1yW6KDkIVBSEvJJqvqZmGdmDFyo.uh6sL2eW-jvA6CMmUz-Hs67e4bBU_doPOlIjxnzRGvg > .well-known/acme-challenge/OdNmEnv12_540PB_1yW6KDkIVBSEvJJqvqZmGdmDFyo
とかでいいんじゃないでしょうか。
私はFTPでディレクトリを作ってファイルをアップしました。
結果は目的のファイルにアクセスできればいいだけの話だと思うので、お好みでどちらでもいいと思います。
ドメインが3つあるので、ドメインごとに3回認証作業を行います。
無事終了すると
/private/etc/letsencrypt/live/[ドメイン名]
にシンボリックリンクが出来上がります。
root権限のあるサーバーだと、この証明書のシンボリックリンクを然るべき場所に置いて、cron で回せば自動更新……ということのようです。
あとは Value Dmain のコントロールパネルで「SSL証明書のインポート」をするだけ。
/private/etc/letsencrypt/live/[ドメイン名]/cert.pem (証明書)
/private/etc/letsencrypt/live/[ドメイン名]/chain.pem (中間証明書)
/private/etc/letsencrypt/live/[ドメイン名]/fullchain.pem (ひとまとめになった証明書)
/private/etc/letsencrypt/live/[ドメイン名]/privkey.pem (プライベートキー パスフレーズなし)
証明書はテキストファイルなので、テキストエディタで開いて貼り付けます。
必要なファイルを選んで貼り付けてください。
coreserver のドメイン設定でSSLに割り当てるドメインの設定を忘れずに。
SSL 配下でうまくリファラっぽく送る方法を思いついたので、ついでにダウンロードサーバーの php も SSL 配下で正常動作するように書き換えました。
wordpress のテーマで使うアレです。
ココにかくphpって、単独ファイルにしてプラグインヘッダ(っていうんですかね)を追加すると、プラグインとして動作するんですね。
トップページに「最近のPOSTはこんな感じです」ってのを載せてますが、functions.php に書いてる内容を反映させてます。
で、iPhone 等のモバイル端末から見ると残念なことになってたのですが(笑)、プラグイン化することで、どこから見ても見えるようになりました。
先ほどのスクリプト「カーソルサイズを変更してみる」の改訂版、「システム環境設定を開いている間は何もしない」処理を追加したソースです。
tell application "System Events"
repeat
set pList to name of every process whose visible is true and frontmost is true
if (pList = {"Finder"}) then
my front_app()
else if (pList = {"System Preferences"}) then
my quiet_app()
else
my other_app()
end if
--何秒おきに監視するかの秒数
delay 3
end repeat
end tell
--システム環境設定を開いている間は何もしない
on quiet_app()
end quiet_app
--Finderがアクティブの場合
on front_app()
my open_pref()
my open_univ()
tell application "System Events"
if UI elements enabled then
tell slider "カーソルのサイズ:" of tab group 1 of window "ユニバーサルアクセス" of application process "System Preferences"
set value to 4
end tell
end if
end tell
end front_app
--他がアクティブの場合
on other_app()
my open_pref()
my open_univ()
tell application "System Events"
tell slider "カーソルのサイズ:" of tab group 1 of window "ユニバーサルアクセス" of application process "System Preferences"
set value to 1
end tell
end tell
end other_app
--システム環境設定 > マウス を開く動作
on open_pref()
tell application "System Preferences"
set current pane to pane "com.apple.preference.mouse"
end tell
end open_pref
--システム環境設定 > ユニバーサルアクセス を開く動作
on open_univ()
tell application "System Preferences"
set current pane to pane "com.apple.preference.universalaccess"
end tell
end open_univ
デュアルモニター環境で画面が広くなると快適なんですが、カーソルを見失うのが長年の悩みでして……。
カーソルを大きくすると追いかけやすくなっていい反面、Photoshop 等でブラシサイズまで大きくなってしまい、正確なブラシ操作が困難になります。
当たり前なんでしょうが、Finder で表示されているカーソルと標準の黒矢印は綺麗に拡大されますが、他のアプリケーションではカーソルデータを切り替えて表示しているんですよね。
以前、Magic Mouse を使い始めた頃、不意のスクロールでかなりイライラした際、Applescript で「Adobe系アプリがアクティブになっている時だけスクロールをオフにする」というものを作りました。
その時は腱鞘炎を起こしたため、Magic Mouse からトラックボールに変えてしまったので作ったことすら忘れていました。
で、そのスクリプトをいじれば
「Finder がアクティブになっている時だけカーソルサイズを特大にする」
ってはできるんじゃね? という思いつきで作りました。
気になる人は気になると思いますが
そんな感じです。
見せるのが恥ずかしいようなソースですが、こちらも公開しておきますね。
Applescript エディタにコピペすれば動作確認ができます。
tell application "System Events"
repeat
set pList to name of every process whose visible is true and frontmost is true
if (pList = {"Finder"}) then
my front_app()
else
my other_app()
end if
--何秒おきに監視するかの秒数
delay 3
end repeat
end tell
--Finderがアクティブの場合
on front_app()
my open_pref()
my open_univ()
tell application "System Events"
if UI elements enabled then
tell slider "カーソルのサイズ:" of tab group 1 of window "ユニバーサルアクセス" of application process "System Preferences"
set value to 4
end tell
end if
end tell
end front_app
--他がアクティブの場合
on other_app()
my open_pref()
my open_univ()
tell application "System Events"
tell slider "カーソルのサイズ:" of tab group 1 of window "ユニバーサルアクセス" of application process "System Preferences"
set value to 1
end tell
end tell
end other_app
--システム環境設定 > マウス を開く動作
on open_pref()
tell application "System Preferences"
set current pane to pane "com.apple.preference.mouse"
end tell
end open_pref
--システム環境設定 > ユニバーサルアクセス を開く動作
on open_univ()
tell application "System Preferences"
set current pane to pane "com.apple.preference.universalaccess"
end tell
end open_univ
(抜けがあったので修正しました)
追記
カーソルを見失いにくくなりましたが、システム環境設定をいじるときは不便なので、アプリ名を決めて、前面のアプリが「システム環境設定」だったら、一時停止する、的な処理を加えないといけませんね(笑)
iPhone5 使い心地は快適なんですけど、バッテリーの消耗が異常なぐらい早い(泣)。
この状況ってのは尋常ではないわけで。
先日も夜の打ち合わせに出かけて、19時半の時点で97%。
22時の終了時にはなんと17%。
どう考えてもおかしい。テザリング中ですか(笑)
調べてみると
MMSを一度設定をクリアするといいとか
ネットワーク設定をリセットするといいとか
復元したら治りますとか
諸説ありますが、というか原因がいろいろあるんでしょうね。
一時的に治ったように見えるんですが、充電してしばらく経過するとグングン減る。
もう泣けるぐらい(笑)。←逆に笑えてきましたけど
私の場合はどうやら iCloud に不具合があったようで……
一度 iCloud のアカウントを削除し、再度アクティブにしたところ…
それ以来、バッテリードレインは再発していません。
あまりにも減らないので、「あるある電池か?」とか疑ってみましたが、問題ないようです。
同期するデータが多いとちょっと時間がかかるかもしれませんが、どうやっても治らない場合に試す価値はあるかもしれません。
重なるときは重なるんですね、こういうトラブルって。
iCal が突然 507 エラーを吐いて、同期してくれなくなりました。
こういう使い方は想定されてないと思うんですが(笑)、自分の工数管理というか仕事チェックというか。
作業ファイル/フォルダを AppleScript & Cron で定期監視させて、自動でiCal に書き込ませてます。
いつのタイミングでどんな仕事をしていたか、ざっくりと、どれぐらい時間喰ってるかが把握できます。反省材料であったり、心の糧であったり。
4sqのチェックインと組み合わせて利用すると、自動ライフログのできあがり。
それはいいんですが、
調べてみても、iCal で 507 エラーってのは国内では出てこない。
米Appleディスカッションボードで発見したんですが(英語に弱くて……)……
https://discussions.apple.com/thread/3398234?start=0&tstart=0
いったんライブラリの中の iCal データを削除し、iCal を再起動させたあとで、もう一度同期させるといいよ
と書かれている気がします。
できれば残しておきたい記録なので、ics 形式で書き出しをしたあと、iPhone側のカレンダー同期はOFFにしてから、思い切って削除してみました。
最悪は「インポートすればいいや」って気持ちで。
すると、削除されたあと…なぜか復活(サーバーからデータを引っ張ってくるのが当たり前?)。
少々時間はくいましたが、今回はエラーも吐かずに同期してくれているようです。
ちょっとこの状態で様子見してみます。