Latest Publications

どこでもMyMacでAirMac Time Capsuleにつながらない問題を解決

AirMac Time Capsuleに付けた外付けHDDを
外出先からも見れるようにしようとチャレンジした。

「簡単な設定ですぐつながるのですごい」と各所に書いてあったものが
どうやってもつながらず、半日チャレンジして諦める。
翌日再トライしてなんとか解決。

つながらなかった原因は
「IPv6の構成」を「リンクローカルのみ」にしていたことで、
これを「自動」に変えると外部からも接続できるようになった。

これは「自動」だと「IPv6リレーエラー」という警告が出ていたもので、
調べると「リンクローカルのみ」に変えると良いとあったので変更したところ
警告が消えたのでOKと思っていた。

これが原因とは考えなかったので他のところをずっと触っていた。

ダイナミックグローバルホストを登録してみたり、
DNSサーバーを登録してみたり
DHCPの範囲を変更してみたり、
光ルーターの設定を探してみたり。

結局、これを触らず初期設定に近い状態でやればすぐだったのに。
警告は出ているが、利用には問題なさそうなのでこのままにする。

WordPressマルチサイトの子サイトをローカル環境で動かす

サーバーでマルチサイト運用しているものを
ローカル環境にデータを持ってきて
その中の子サイトを動かす方法。

wp-config.phpへの設定などでそのまま動かそうとしたが
どうやっても上手く動かず断念。
無理やり動かす方法。

データベースで、
wp_usersとwp_usermetaを複製して
wp_2_usersとwp_2_usermetaなど
子サイトのprefixに合わせる。

wp-config.phpで
$table_prefixをwp_2など子サイトに合わせる。

表のサイトは上手く表示されない。
ログインはできるようになるので
管理画面からテーマを一旦別のものに変更し、元に戻す。

CakePHPでのMySQLエラー

色々と環境を変えた後で
CakePHP2で作っているシステムにアクセスすると

Missing Database Connection

Error: A Database connection using "Mysql" was missing or unable to connect.	
The database server returned this error: SQLSTATE[HY000] [2002] Connection refused

Notice: If you want to customize this error message, create app/View/Errors/missing_connection.ctp

とエラーが出るようになってしまった。
前は動いてたのに。

ぐぐると、PDO系が入ってない/設定が上手くいっていない時に
このエラーが出るとのことで、
その辺をたくさんいじってみても変わらず。

最終的に、databese.phpの

'host' => '127.0.0.1'

としていたのを

'host' => 'localhost'

に修正することで動いた。

mysqlの入れ替えで上手く動かなくなり
改めて入れなおしたことが原因かと。

vimでlessを扱う時のsyntaxとcolor

MacvimやVimでlessファイルを扱う時に
デフォルトでは対応していないようなので設定したことをメモ。

.vimrcに

au BufNewFile,BufRead *.less set filetype=css

を書くことで、lessファイルをcssと同じ扱いで開いてくれる。

本当はless専用のものがいいんだろうけど、
less.vimを色々と探してきて入れてみたけど
自動インデントがおかしくなったりで不具合が多く諦めた。

ほぼcssの色付けで問題ないんだけど
よく使う1行コメントアウトの色付けがされていなかったので
それだけcss.vimに追加。

MacVimの
/Applications/MacVim.app/Contents/Resources/vim/runtime/syntax/css.vim
をコピーして
~/.vim/syntax/css.vim
に設置して、下記を追記。

syn match cssComment "//.*$" contains=@Spell

sudoコマンドが見つからなくなった

下記のエラーがでるようになって困っていた。

sudo: コマンドが見つかりません
visudo: コマンドが見つかりません
command not found: sudo
command not found: visudo

rootで以下を実行して解決

yum -y install sudo

Googleスプレッドシートの新しいバージョンでワークシートID

ZendGdataでGoogleスプレッドシートのデータを取得している。
スプレッドシートは順次新しいバージョンになっているが
そのワークシートIDの取得部分でエラーが発生した。

以前はgidが0からの連番で
それに対応した値を入れ込んでいたが
新しいスプレッドシートはバラバラの数になっていて、そのまま投げてもエラーになる。

取得方法は

1.gidと474をXOR
2.36進数に変換
3.頭にoを付ける

とのことで、PHPだと

$worksheetId = 'o' . base_convert($gid ^ 474, 10, 36);

で動いた。

Googleスプレッドシートの新しいバージョンでAPI接続エラー

Googleスプレッドシートのデータを
PHPのZendGdataを使って処理する内容に関して。

スプレッドシートを触っていたら、
「新しいスプレッドシートになりました」とのメッセージ。
使い勝手も変わらないので、いいかと思っていたら接続部分でエラーが。

まず、最初は認証エラー。
これはZend Frameworkから最新版をダウンロードしたらできた。

Latest – Downloads – Zend Framework

ただし、Version 1.12.10にしたけど、最初はZend/Xml/Security.phpがないってエラー。
確かに無い。
Zend Framework 1.12.10 MinimalからZend/Xml/の中の2ファイルを移したら動いた。

解決かと思ってたら、数日後に利用するとまたエラー。

Expected response code 200, got 409

409はコンフリクトとのことだけど思い当たるものがない。
見てみると、スプレッドシートでアクセスした時のURLが変わっている。

とういうことで、spreadsheetKeyを新しいURLの文字列にしてアクセスしてみると動いた。

URLエンコードした文字列をURLで取り扱う

システムではなく、サーバーレベルのエラーが出たので確認。

通常は取り扱えなくなっているようで
httpd.confに

AllowEncodedSlashes On

を追加する必要があるとのこと。

ただ、ローカルで上手くいったので
サーバーで試すと上手くいかず。

さらに調べると、Virtualhostの場合はその中に書く必要がある。

<VirtualHost *:80>
        ServerName example.com
        ・・・
        AllowEncodedSlashes On
</VirtualHost>

Macの消せないVPNを消す方法

VPNを使って見るためにHot shieldという無料アプリを入れたけど
接続できたりできなかったりとイマイチなのでアンインストールした。

Macの環境設定のネットワーク画面で
VPNの接続リストがあるが、
Hot shiledを入れたことでできた下記のVPN設定があった。

US Server
GB Server
JP Server

もう不要なので削除しようと思ったら
削除ボタンである「ー(マイナス)」が
disableになってて押せない。

放置しててもいいんだろうけど
気持ち悪いので調査。

termminalから、

networksetup -listallnetworkservices

と入力するとGUIと同じリストが出力される。

そこから、下記のコマンドで各不要な設定を削除。

networksetup -removenetworkservice "US Server"

スプレッドシートのシートごとのID

いつも探すにに苦労するのでメモ。

table – Google SpreadSheetで使用されているGIDのテーブル – Qiita

GID_TABLE = {
    'od6': 0, 
    'od7': 1, 
    'od4': 2, 
    'od5': 3, 
    'oda': 4, 
    'odb': 5, 
    'od8': 6, 
    'od9': 7, 
    'ocy': 8, 
    'ocz': 9, 
    'ocw': 10, 
    'ocx': 11, 
    'od2': 12, 
    'od3': 13, 
    'od0': 14, 
    'od1': 15, 
    'ocq': 16, 
    'ocr': 17, 
    'oco': 18, 
    'ocp': 19, 
    'ocu': 20, 
    'ocv': 21, 
    'ocs': 22, 
    'oct': 23, 
    'oci': 24, 
    'ocj': 25, 
    'ocg': 26, 
    'och': 27, 
    'ocm': 28, 
    'ocn': 29, 
    'ock': 30, 
    'ocl': 31, 
    'oe2': 32, 
    'oe3': 33, 
    'oe0': 34, 
    'oe1': 35, 
    'oe6': 36, 
    'oe7': 37, 
    'oe4': 38, 
    'oe5': 39, 
    'odu': 40, 
    'odv': 41, 
    'ods': 42, 
    'odt': 43, 
    'ody': 44, 
    'odz': 45, 
    'odw': 46, 
    'odx': 47, 
    'odm': 48, 
    'odn': 49, 
    'odk': 50, 
    'odl': 51, 
    'odq': 52, 
    'odr': 53, 
    'odo': 54, 
    'odp': 55, 
    'ode': 56, 
    'odf': 57, 
    'odc': 58, 
    'odd': 59, 
    'odi': 60, 
    'odj': 61, 
    'odg': 62, 
    'odh': 63, 
    'obe': 64, 
    'obf': 65, 
    'obc': 66, 
    'obd': 67, 
    'obi': 68, 
    'obj': 69, 
    'obg': 70, 
    'obh': 71, 
    'ob6': 72, 
    'ob7': 73, 
    'ob4': 74, 
    'ob5': 75, 
    'oba': 76, 
    'obb': 77, 
    'ob8': 78, 
    'ob9': 79, 
    'oay': 80, 
    'oaz': 81, 
    'oaw': 82, 
    'oax': 83, 
    'ob2': 84, 
    'ob3': 85, 
    'ob0': 86, 
    'ob1': 87, 
    'oaq': 88, 
    'oar': 89, 
    'oao': 90, 
    'oap': 91, 
    'oau': 92, 
    'oav': 93, 
    'oas': 94, 
    'oat': 95, 
    'oca': 96, 
    'ocb': 97, 
    'oc8': 98, 
    'oc9': 99
};

[検索用メモ]
Google SpreadSheet
ページ シート
1枚目
2枚目
3枚目