C:
-
NSError *err;
-
NSString *path = [[NSBundle mainBundle] pathForResource:@"hoge.json" ofType:nil];
-
NSString *data = [NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:&err];
-
-
arrHoge = [data JSONValue];
pathForResourceに拡張子を含めちゃえば、ofTypeはnilで大丈夫。
ただし.jsonはデフォルトではバンドルリソースに含まれないので、
ターゲット→アプリ名→バンドルリソースをコピー
にファイルを持って行っておく必要がある。
iPhoneを購入したその日。
Web屋さんたちの飲み会の席で保護シートを貼ろうとしたんだけど、ホコリなんかも入って気泡出来まくり。「下手くそ」だの「今まで見た中でさいあk(ry」だの罵詈雑言を浴びせr(以下妄言)
悔しかったので翌日さっそく買い直し、再度チャレンジを試みるも、これまた失敗。マシにはなったもののホコリを起点とした気泡が…
と言うことで、3度目の正直でトライしたところ、今度ばかりは気泡も入らずようやく成功。
教訓として、保護フィルムを貼る時に気をつけるべき点をピックアップしておきます。
- アクリルシートの様なちょっと厚みのある貼付補助シートがある物を購入する(安いのはシートだけしか無い)
- (個人的には)スピーカー側から貼る
- 貼り始めたら短時間でキメる
- (大体の製品が)ちょっと気泡が入っても、貼り直したら大丈夫
- 無風状態で(はいココ、テストに出るよ~)
- 保護シートの上の保護フィルムはちょっと時間をおいてから剥がす
要は保護シートの説明書きを良く読んで、慎重かつ大胆に貼ればOkということなんですが…2回も連続して失敗する自分は不器用認定、ということで…orz
ちなみに項目1については、大体600円以上のシートがそんな感じみたいです。500円以下のは安さにつられそうになるけど(失敗するのを考慮すると思わず買いそうになる)、ピンセットでつまんで貼る位の気合いが無いと、接着面に指紋とかで失敗すると思います。
2は位置を決めやすい、3はオタオタしてると貼ってない箇所にホコリが乗る、5は3にも関連するけど空気の動きがあるとホコリが…ね。6は接着剤の成分が液晶面としっかり反応するのを待ってからの方が失敗無く剥がせるよってことで。
一応、3回目にして成功した時に使用した保護シートをご紹介。ちょっと切り抜き位置やサイズが甘めですが、貼りやすさ・気泡の入りにくさでは一番良かったです。
フロントページを“固定”にして、投稿ページを何かに指定した場合、ページスラッグは入力した物じゃなくて投稿のタイトルがエンコードされた物が返ってくる。
ページスラッグを利用してページごとのCSSを読み込むようにしていたので、ここで大はまり。で、ナニをどうやっても投稿ページで指定しているスラッグを引っ張れないので考えた案。
投稿ページを指定すると、そのページはis_page()がfalseになるので、(逆説的に)is_page() === trueの場合のみページスラッグを使ってCSSを指定し、falseの時は投稿ページと判断して、ブログ用のCSSを読み込ませる。
#Ver2.7.1でのお話です。他にも別の解決策などあるかもしれません。
というかページテンプレートも指定できなくなるのは仕様なのか?
子供の好き嫌いは(除アレルギー)、料理が下手か、甘やかせすぎか、親が美味しそうに食べてないか、Loveスパイスが入ってない(キモッ)か、のどれかだと思います。うちは食育を大事にします。
さてさて閑話休題。
既に稼働済みのシステムが内部エンコードはUTF-8で最後にShift_JISに変換して出力する仕組みをSmarty使ってやってた時、後から文字コードがEUCの別PHPを組み込んで下さい、とクライアントから連絡来た時に悩んだ時の記録。
クライアントからは
<? include("path/to/hoge.php"); ?>
を挿入して下さい、という連絡が。
Smartyには{include}というタグがあるので、文字コードが同じであればコレで行けたはず。
しかし今回はUTF-8で作ってあって、最後にfetchしてその出力をShift_JISに変換して最終出力するという荒技をやってたので、上記の方法を使うとUTF-8の中にEUCが入ってきて、それをShift_JISに変換するもんだから、もう何が何やら。DBとの絡みもあって、内部エンコードをEUCに変更するのはアレだし、DBからの変数をいちいちEUCに変更するのはもっとアレ。
ということで、この状況を打開すべく試行錯誤の末に辿り着いたのが以下の方法。
{include_php file="path/to/hoge.php" assign=output}
{$output|mb_encoding:"UTF-8":"EUC-JP"}
{include_php}のassign指定で変数に出力を突っ込み、その変数をSmartyの中で文字コード変換してUTF-8に揃えちゃう。これでテンプレートの中身がUTF-8に統一されるので後はウマー。
ちなみにSmartyのプラグインを作らないといけないので、
<?
function smarty_modifier_mb_encoding($string, $to = "", $from="auto")
{
if ($to == "")
return "";
return mb_convert_encoding($string, $to, $from);
}
?>
として、modifier.mb_encoding.phpというファイル名でプラグインディレクトリに保存します。
タブン別のもっといい解決策もあるかと思うけど、日曜の深夜に泣いた防備録として。
部屋とYシャツと私 - 第2弾。
「地球が静止する日」を観てきた。良くも悪くもアメリカ映画。映像は面白いけど、内容は食傷気味な。やはり今年のNo.1映画は「おくりびと」ですよ、皆さん。
で、はまったはまったハマだショーゴ。
swfuploadを使ってアップロード部分を担当させ、複数のサムネイル作成などプロセッシング部分をclass.upload.phpにお任せする、最近のマイブーム的な作り方。さらにこいつらの駆動をAjaxで制御。
ということで、デバッグがやりにくい やりにくい。
サイズの小さい画像はすんなりアップロードされて、通常・サムネイル・モバイル用の3種類の画像を作成してくれる。が、ある程度の大きさ以上になるとアップロードはされてるみたいだけど、プロセッシングの所で落ちてる。しかもログを見てもエラーが出てない。マジまいっちんぐ。
ということでシラミ潰しの旅へ。
swfuploadは恐らく悪くない。デバッグモードをオンにしてログを吐かせてみると、特に問題は無い模様。
ということはやはり問題はclass.upload.php。
前述の通り、Ajaxで呼び出してるし$_FILEを与えてるのはswfupload。しかも途中で勝手に落ちるから、class.upload.phpが記録しているログも取れない、ということでトラップを仕掛けて途中途中でログをファイルに書き込ませるローテクで追ってみました。
続きを読む »
部屋とYシャツと私。
ドツボと原因究明とシステム作り直し。orz
SexyLightbox2(以下SLB)はajaxでhtmlを引っ張ってきてゴニョゴニョを勝手にやってくれるので、最近SLBどっぷりだしシステムにも組み込んじゃえ、と今作ってるシステムのフォームをajax駆使して表示してみたりしたらセキュリティの問題も(モロCSRF弱くなる)出てきて、対応策考えたり(ワンタイムトークン仕込んだり)で結構面白いことになってるんだけど、バッチリはまりましたよ、罠に。。。
続きを読む »
SQL Mk-2
国産、というとで。
普段は小規模DBしか組まないのでER図も必要ない位で、頭の中でDB構築完結させてしまってるのだけど、珍しく中規模くらいになってくると説明にも使えるようにDBDesigner4とか使ってます。印刷とかも出しやすいし。
ということで、国産の使い勝手は如何に?
取引先に作業に来てるのですが、待ち時間中ヒマなのでネットを徘徊してると…
こんな物をみつけてしまいました。
値段も手頃だし、試しに買ってみようと思います。作業中に凝ってしまう肩にも効果的だったり、寝てる時の気道確保などにもなるそうです。アゴを動かすことで、首や肩の筋肉も連動するから血流が良くなり、肩こりしにくいんですって。
ただでさえ首ヘルニアが定期的に暴れてくれるので、こちらにも何らかの好影響が出てくれればいいのですが…
list-style-position:outside;
腐れIE6がっ!!!
IE6なんて世の中から消えてくれればいいのに。
と思いつつ、アクセスを見てみるとIEでのアクセスが45%。その中でIE6が55%…orz
みんな!FirefoxかChromeを使おうよっ!快適だよ?軽いよ?速いよ?使いやすいよ?IE6からブックマークのインポートも簡単だよ?なぜそんなに使いにくいかつバグ放置プレイブラウザを使い続けるのさっ!
誰ですか!PlayStation3でアクセスしてるのはっ!w
Touch Diamondを購入したら買う本。
ToDo:Windows Mobile ネイティブアプリのパノラマビューアーを製作。