wordpressのパーマリンク設定で404になる問題

ワードプレスのパーマリンク設定をするとページ遷移先が404not foundになる場合。
チェックポイントは下記の3つ。

  • mod_rewriteの有効化
  • .htaccessの設置
  • 管理画面にてパーマリンクの設定・保存

でカスタム構造などのパーマリンクは使うことができるようになる。

私の場合はトップページはなんとか表示されたが(記事一覧は表示しなかった)、個別の記事のページを表示すると404エラーが表示されるという現象だった。mod_rewriteはウェブサーバーのapacheの設定で、レンタルサーバを利用している場合は大抵の場合は有効になっているので気にしなくていい。.htaccessファイルはパーマリンクの設定に不可欠なファイルで、内容はカスタム構造のリンクを変換するものになっている。このファイルをワードプレスの設置しているディレクトに置くことで有効になる。管理画面からパーマリンクの設定を実行すると.htaccessファイルは自動で作られる。対象ディレクトリに書き込み権限がない場合は自分でファイルを作成して置くか、権限を付与してから再度実行する。

mod_rewriteが有効化どうか確認するには、例えば下記のような内容に.htaccessを書き換えてみて、ページを表示してみたらヤフーのトップページが表示されるようならmod_rewriteは有効になっているといえる。

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /
RewriteRule ^.*$ http://yahoo.co.jp [L]
</IfModule>

他には、.htaccessのファイル権限とかもあるが、特には気にすることはなく標準のファイル権限を設定しておけばいい。レンタルサーバの場合は上記の点をチェックしておけばおそらく表示されるようになる。それでも表示されない場合は、サーバの設定(バーチャルホストやリダイレクト設定)に問題がある可能性が高い。

自宅サーバの場合も大体同じだが、httpd.confファイルでバーチャルホストを設定したりしている場合には設定の仕方によっては上記だけでは表示出来ない場合もある(私がそれでかなりハマった)
で、その時はウェブサーバーのログを見る。ログなんかめったに見ない主義だったが、今回ばかりはログを見ることで原因がわかった。そもそも404エラーはアクセスしたアドレスにファイルが見つからないというエラーで、ログにはアクセスしたディレクトリとともに404エラーが確認できる。バーチャルホストの設定が間違っている場合はおかしなディレクトリにアクセスしようとしてだから404なのだということがわかる。

ワードプレスとはあまり関係がないがapacheのhttpd.confでバーチャルホストの設定をする場合、一致したものから順に振り分けるという仕様になっているらしい。一致したものからというのはファイルの上から順にということで、バーチャルホストホストの設定で一番上にアスタリスク(*)で設定した場合はそれ以降は読まれないということになる。

windows 7 service pack 1の更新プログラムを確認していますが終わらない

windows7 pro 32bitを新規インストールしてからwindows update をかけると、更新プログラムを確認しています・・・とゲージが現れて何時間経っても終わらない問題。

解決方法は、不明。待つしか無い。windows updateを実行してから電源管理のスリープとか電源を自動で切る設定をオフにして一晩つけっぱなしにしておく。さすがに翌朝までには対象のアップデート数がいくつかはわかるようになるのでそこからダウンロード、インストールという流れになる。

だが、またしてもインストールしています・・・という画面から進まないという現象が発生。更新プログラムがダウンロードしている状態なら、電源をシャットダウンをする操作でインストールへと進むことができる。

とりあえず時間がかかる。新規インストールの場合は更新プログラムの数が200個とかになるのでダウンロードとインストールで時間を取られて1~2時間では絶対に終わらない。焦らず慌てないでやるしかない。

中古車を現車確認せずに通販で注文してみた

車検切れと同時に車を手放すことになったのでこの機会にと思って中古車を通信販売で買ってみた。ちなみに私は車のことは全然詳しくない。今まで買ったこともない。運転はするがそれは家族の車をたまに使う程度。つまり初めて買う車を、インターネットの通信販売で、車の画像数枚確認して、年式とか走行距離とかプロフィールを確認して、あと適当に電話で店の人に車の状態(修復歴とか気になるところとか)を聞いてみて、それだけで中古車を買ってしまった。

中古車の買い方として現車確認も試乗もせずに買うのは絶対間違っているだろうが、こういう無謀な買い方をする人は意外といるんじゃないだろうか。例えば遠方の自動車屋さんで車を買う場合など。近所の車屋さんで売っている車の中から選ぶというのなら堅実だが、自分が好きな乗りたい車を選んでからそれはどこに売っているか・・・と検討すると現車確認できない程遠くにあるというケース。私の場合がそれだが。

車を通信販売で電話一本で購入する流れは以下のような感じ。普通車と軽自動車とでやりとりに違いが出るようだが、今回は中古の軽自動車を注文する場合。

  • 電話で買う意思を伝える。そのとき店の人に無保証ですよと釘をさされてちょっとビビる。
  • 住民票と免許証のコピーをその自動車屋に郵送で送る。
  • お金を支払う。内訳は車両代金と車検代と名義変更などの事務手数料と陸送代。
  • 車検や名義変更、陸送の手配などを店の人にやってもらう。
  • 車検終わって名義変更も終わってナンバーもつけてもらって陸送してもらって受け取る←今ここ

注文してから陸送で納車までの手続きは約2週間ほど。郵送で書類を送ったり名義変更をしたりとするのでどうしても時間がかかる。普通車の場合は車庫証明を取得したりともっと時間がかかるかもしれない。

車が来たら追記します。

車が来た

陸送にて注文した中古車が来た。ここで初めての現車確認になる。正直なところ、注文する前に現車確認していたら注文するかどうかためらうぐらいの状態だった。うーん、ひどいのが来たなぁ・・・が、第一印象。状態が悪いのは覚悟していたが、予想よりも3割増しで悪いような気がする。

悪かった点

  • 車内のタバコの臭い
  • マフラーの騒音
  • モールの劣化
  • 可動すべきところの故障
  • 画像で確認できなかった部分に相当なカスタマイズが施されていた
  • パワーウインドウの動きが左右で違いなんか怪しい。運転席側の窓ガラスの一部が溶けてた
  • 車体の継ぎ目にあるゴム素材のモールは大体劣化および欠損していた
  • ビニールテープで雨漏り対策されてた(は?)
  • 洗濯バサミが落っこちてた(は?)
  • その他いろいろ

良かった点

  • 古い年式の車だったがエアコンは生きてた
  • 一応エンジンかかって自走できた(車検通ってきたから当たり前かもしれないが)
  • シートの破れは覚悟していたが奇跡的になかった

値段なりの車が届いたというのが客観的な現実だろうと思う。店の人が現状渡し、無保証ですと言った理由が
よく分かる気がした(現状渡しは承知だったが煙草の灰皿に吸い殻が残ったままだったのはさすがに閉口した)。それプラス現車確認を怠ったことによるいくつもの不安要素。現車確認せずに電話一本で中古車を購入した結果は悪いところばかりだが、自分が欲しいと思った車種の車が手に入ったという一点は達成できたので意外と満足感はある。これが自分の興味のない車種で買った理由が安かっただけというのなら最悪だったが。

return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));

xcodeでクラッシュする場合の話。

return UIApplicationMain をキャッチしてマウスカーソルを合わせるとEXC_BAD_ACCESSとだけ出る。コンソールログには何も出ていない。ゆえにどこで何が原因かということがまるでわからない。私の場合は特に処理の重いルーチンで発生していて、クラッシュの再現性もできなく不規則的に発生するので困難を極めた。それでもバグを取り除かなければならないのでまず手始めにやることはログの情報量を増やすことから始める。Edit SchemeからDiagnosticsタブでデバッグ時のオプションを選択できるようになっているので、そこからログに関係する項目にチェックしてコンソールに表示される情報を増やす。Loggingの項目のどれでもいいが例えばLog Dynamic Linker API Usageにチェックを入れて実行してみたところ変数名とその値がログに表示されるようになる。とりあえずその状態でデバッグをしてみることにする。クラッシュの再現性は不規則であったが、ログを確認してみると特定の関数内の変数に関わるところでクラッシュしているというのがわかった。クラッシュの原因は厳密にはわからないもののどこでクラッシュが発生しているかという関数の場所はログに表示される変数名から特定することができた。結局原因はプロパティ変数にアクセスする際のささいなミスだったんだけれども。

原因不明のEXC_BAD_ACCESSがでるクラッシュでもデバッグオプションでログの情報量を増やせば怪しい箇所を特定することができる。クラッシュした時に原因となる箇所がログに表示されれば一番いいのだけれど、表示されない場合もあるのでそういう場合は実行中にログを流し続ける設定にしてクラッシュしたらその直前のログをチェックして場所を限定する、という具合にやると厄介なバグでも修正できるかもしれない。

デバッグのオプション設定

Memory Management

Enable Malloc Scribble
Enable Malloc Guard Edges
Enable Guard Malloc
Enable Zonbie Objects

Runtime Sanitization

Enable Address Sanitizer Requires recompilation

Logging

Distributed Objects
Malloc Stack
Log Dynamic Linker API Usage
Log Library Loads

Dubugger

Stop on Debugger() and DebugStr()

スーパーロボット対戦F・完結編 精神検索

精神コマンドから該当するパイロットを一覧する

脱力
ボス、レミー、ミヤマ=アスフィー、レディ、ミオ
激励
さやか、ジュン、メリー、ベス、ハルル、沙羅、タシロ艦長、チャム、マーベル、エレ、シーラ、リリス、アム、ロザミィ、エマ、ファ、エル、イーノ、セシリー、レイン、シュバルツ、テュッティ、リューネ
再動
ギジェ、エレ、リリス、リィナ、リアル系副主人公
復活
シーラ、クリス
クリス、セシリー
補給
メリー、ちずる、ギャリソン、キャオ、カツ、レイン、サフィーネ
自爆
ボス、バーニィ、ヒイロ(とその他省略)

チャーハンをうまく作るコツ

固めのご飯を用意する
炊き立てのご飯は避けたほうが良い。炒める時に水分が多いためご飯の一粒一粒がバラバラになりにくい。水分が少ないご飯の方がパラパラになりやすい。
鍋の温度を煙がでるまで上げる
チャーハンの調理時間は大体1~2分程度で普通は完了する。長すぎると水分が飛びすぎてパサついてしまうため。
ご飯の量は0.5合ぐらい
慣れない内はご飯の量を少なめで炒める。ご飯の量が多くなると、家庭用のコンロでは火力が弱いため十分に炒めることが難しくなる。
炒め鍋は小さめのものを使う
大きい鍋は具材を炒めやすいが鍋の温度を維持する火力も必要になるので大きくなるほど扱いが難しくなる。同様に一度に調理する分量も多くなるほど難しくなる。慣れない内は小さい鍋で少ない分量で調理することで鍋の温度と具材のコントロールをすることで失敗が少なくなる

卵チャーハンの分量の一例

  • 卵1個
  • ご飯0.5合
  • サラダ油小さじ1~2杯
  • 醤油小さじ0.5杯
  • 塩コショウ少々
  • 味の素少々

調理器具

  • 鉄製中華鍋
  • 鉄製お玉

調理時間

  • 1分~1分30秒くらい(卵投入から完成まで)

調理手順

  • 強火で中華鍋を煙が出るくらいまで熱する
  • 油を投入して鍋肌に馴染ませる
  • 馴染ませて温度が上がった油をオイルポットに出して新しい油を入れる
  • 油の温度が上がりすぎないうちに卵を投入
  • 卵をお玉で数回かき回した後にご飯をその上に投入
  • 卵とご飯に油を吸わせてからひっくり返す
  • お玉の裏でご飯の塊を叩くように押し付けたり、お玉の縁でご飯を切るようにしたりしてご飯と卵をほぐす
  • 上記手順である程度ほぐれたら鍋の中身をひっくり返し、十分にほぐれるまで繰り返す。
  • 十分にほぐれたら調味料を入れて鍋を前後に振りつつ全体に馴染ませる。
  • 最後に醤油をふりかけて全体に馴染んだら完成

調理時間は短く終えるのが成功のコツ。火力の問題で鍋を火から遠ざけるとその分温度が下がるので鍋ふりするときはできるだけ火元から離さないようにする。ご飯や卵を投入したときや、なにか具材を投入したときにも鍋の温度は下がるため家庭用コンロでは一度に大量に作ると難しくなる。調理時間が長くなるとパサついたり焦げたりする。家庭用コンロでチャーハンを作るときの難しさはそのあたりにある。

鉄フライパンとテフロンフライパン調理結果に違いは出るか

2年前くらいから使用している鉄フライパン(クレープパン)でお好み焼きをまた最近焼き始めたところ、以前に比べて味がやたらと美味しく感じられるようになった。もちろん気のせいかもしれないが。前から作っていたのだけれど、この材料とこの材料を混ぜて焼いたらこんなのができて味も大体こんな感じだろうなと予想の範囲内のものができていたので驚きもなく特に美味しいと感じることもなかった。その後しばらく振りにまた鉄フライパンでお好み焼きでも作ってみようかと作ったところ、予想外に美味しくできてしまったのでテフロンフライパンでも同じように作れるかどうか試してみた。

作ったお好み焼きの具材は、

  • お好み焼きの粉
  • キャベツ
  • 卵1個
  • 薄切り豚バラ肉2枚
  • お好み焼きソース
  • マヨネーズ
  • 粉末かつお削り節

というお好み焼きを作る最低限のものを使った。作り方は説明するまでもないがキャベツをスライサーで2mmの薄さに切ってお好み焼きの粉を水で溶いたものに卵と一緒にいれて混ぜる。あとはフライパンを温めてサラダ油を引いてさっき作った生地を流し込んで上に豚バラ肉を上に載せて焼く。弱火から中火で2分焼いたら裏返して3分~4分焼いて、また裏返して2分焼いてソース・マヨネーズ・かつお削り節をかけて出来上がり。

同じ材料と同じ手順で調理して、鉄フライパンとテフロンフライパンでそれほど違いはでないんじゃないかと思っていたが、個人的な感想だが鉄フライパンで作ったほうが美味しいと思える結果になった。使ったフライパンはテフロンフライパンの方はどこにでも売っている980円くらいのもので鉄フライパンはデバイヤーのクレープパン 20cm

食べた時の食感に違いが大きく、鉄フライパンで作った時はいわゆる外はカリッと中はふわっとしたものに作れる。テフロンフライパンで作った方はそれに比べて若干固く感じられた。

この鉄フライパン固有の特徴でクレープパンという仕様であるため縁が浅く出来ていて、料理が出来上がったらそのまま鍋敷きにでも置けばお皿がわりにも使えて、板厚約2mmで冷めにくいのでお好み焼きを温かいまま食べられるというメリットもある。

鉄フライパンは使い込めば油馴染みがよくなってきて料理がやりやすくなる・・・というようなことがあるらしいが、2年近く使っている私の鉄フライパンにもそういう変化が起こったのかもしれない(傷だらけだけど使い込んでいるわけではないが)

結局、お好み焼きがテフロンより鉄フライパンで美味しく作れた原因はあまりよくわからない。気の長い話だが2年ぐらい鉄フライパンを我慢して使いこめば理屈じゃなくて自然とお好み焼きが美味しく焼けるようになるのかもしれない(ドラゴンボールの超聖水的な意味で)

コンピュータ将棋の思考ルーチンを検討

実際に人間が対局する場合の次の1手をベースに検討してみる。次の1手を検討する場合のチェックポイント。

・相手玉に詰みがあるか
・自玉が王手がかかっているか
・自軍の駒で敵駒の利きが入っている駒はあるか
 ・敵駒の利きに入っている駒の内、味方駒の紐がついているかどうか
・自軍の駒の利きに入っている敵駒はあるか
 ・利きに入っている敵駒の内、敵駒の紐がついているかどうか
・持ち駒がある場合、有効な打ち場所があるか
・序盤であれば玉形を固めることを検討
・飛車先の歩、角道の歩を前進して
攻め駒を押し上げていく
・銀・桂も飛車角に先行して進める

大まかには上から順にこんな感じで次の1手を検討していくのではないだろうか(初心者は)。将棋というゲームは複雑なルールで難しい形勢判断を必要とするため局面によっては上記順序を入れ替えて検討するというのもよくある。駒得をして終盤全力で寄せるというのが一般的だが、局面が有利になるのなら多少駒損はやむを得ないという判断も人間の対局では一般にあり、コンピュータ将棋の思考ルーチンの作成の難しさはその人間の微妙な心理の形勢判断をプログラムとして反映させることにある。

nsmutablearrayの参照コピー仕様

参照コピー・・・というものに慣れていなくて戸惑った。実体を複製するわけではなくて、実体のもつアドレスつまり参照だけコピーするので、コピーされたものに対して変更を加えようとするとコピー元のオリジナルに変更を加えることを意味する。

NSMutableArrayをコピーする場合は参照コピーになる。参照コピーではなくて、実体をコピーする、ハードコピーとかディープコピーとか呼ばれるコピーがしたくてその仕方を色々試してみた。
その方法は下記のようにいくつかある

  • [array mutablecopy]
  • [[NSMutableArray alloc] initWithArray:oldArray copyItems:YES]
  • NSArray* array = [NSKeyedUnarchiver unarchiveObjectWithData:
    [NSKeyedArchiver archivedDataWithRootObject:oldArray]]
  • 上記方法を試してみたが、結論からいうと全部ダメだった。私のやり方が悪いのかなんなのか。何をやっても参照コピーになってしまうので、最後の手段として力づくで複製することにした。つまりnewの段階から新しいオブジェクトを作って、コピー元の要素をループで回して新しいオブジェクトの中に入れるという方法。さすがにこの方法なら複製できる。

    デギンの憂鬱編をプレイ

    ジオンの系譜のデギンの憂鬱編をプレイしてみた。

    55ターンまでやった

    デギンの憂鬱編はプレイヤーはギレン率いるジオン公国を操作して、敵は正統ジオンと新生ジオン。ジオン公国のニュータイプは5人(シャリア・ブル、グレミー・トト、NT-002,003,004)。オールドタイプのエースパイロットはガトーやシーマ、ノリスなど他にもいて人材は十分揃っている。新生ジオンと正統ジオン、手ごわいのは強力なニュータイプがいる正統ジオンの方。シャア、ララァ、クスコ、マリオンウェルチの4人がいてジオングやエルメスに高確率で乗ってくるので非常に苦戦する。したがって先に攻略するのは正統ジオンの方にした(本拠地サイド3に敵本拠地グラナダが近接しているというのも)。

    55ターンほどやってようやく正統ジオンは滅亡させることに成功した。攻略の方針はまず宇宙を手っ取り早くグラナダ以外制圧して、その後正統ジオンが制圧している地上の特別エリアにザンジバルで降下して制圧していくというパターン。グラナダに隣接するエリアは攻めてこられても対応できるように少数のニュータイプ搭乗のジオングやエルメスかノイエジールを配備して対処するようにして、そのまま最終攻略まで閉じ込めておく。シャアなどのニュータイプなどにはシャリア・ブルや002をジオングに乗せて前衛に高アーマーのGBアルファを置いて仕掛ければ2〜3ターンあれば倒せる。

    正統ジオン倒して宇宙を全部制圧した後は地球の新生ジオンだが、もう勝ち確定が見えているためモチベーションが激しくダウン。ニュータイプもいないし、地上ではどのみちサイコミュ兵器も使えないし。エースパイロットもランバラルやドズル、シンマツナガなどは強いことは強いがシャアなどを倒した後では今更というかなんというか。

    モチベーションを維持するためには先に新生ジオンを倒すのがいいかもしれない。ただし正統ジオンを後にするとAランク以上にシャアやララァが成長する可能性もありそうなると手がつけられなくなる。

    デギン編をやってみて発見したことは002が予想以上に強かったこと。Sランクで射撃17、A覚醒なので実質射撃は21にもなる。他には登場ユニットはジオンで生産できるものに限定されているのでZガンダムやキュベレイといった強力なMSがいないのでニュータイプ相手でも数で押せばそのうち倒せるということ。