Archive for category dev

Objective-C Documents

ついったで@kazz12211さんにおすすめのドキュメントを教えてもらったのでメモ。

Object-Oriented Programming with Objective-C

場所↓

/Developer/Documentation/DocSets/com.apple.ADC_Reference_Library.DeveloperTools.docset/
Contents/Resources/Documents/documentation/Cocoa/Conceptual/OOP_ObjC

FC2ブックマークへ追加 Bookmark this on Delicious このエントリーを含むはてなブックマークはてなブックマーク - Objective-C Documents

評価をお願いします→参考にならなかった参考になった

読み込み中 ... 読み込み中 ...

WordPress@Xrea Server (SAFE MODE php環境)でのWordPressの自動アップグレード方法

xrea serverでWordPressを使っていると,phpにSAFE MODEがかかっていてWordPressを自動アップグレード出来ない.

エラー例:

WordPress のアップグレード

http://ja.wordpress.org/wordpress-2.9.1-ja.zip からアップデートをダウンロードしています。

Warning: touch() [function.touch]: SAFE MODE Restriction in effect. The script whose uid is 10418 is not allowed to access /tmp owned by uid 0 in/virtual/hogehoge/public_html/wp-admin/includes/file.php on line 175

ダウンロードに失敗しました。: 一時ファイルを作成できませんでした

インストール失敗

xreaに限らず割とよく知られている問題のようで,以下のようなまとめサイトもある.

セーフモードによる制限と対処方法 – WordPress Codex 日本語版.

上記URLによると,phpをcgiモードで動かすと可能っぽいです.

XREACORESERVER.JP にて、PHP を CGIモードで動かすことにより対処したい場合、次の内容を書いた .htaccess ファイルを wp-admin/ ディレクトリに置きます。

WordPress 2.9.x の場合:

# 画像・ファイルアップロード
<files async-upload.php>
AddHandler application/x-httpd-phpcgi .php
</files>
# プラグイン・テーマ 新規インストール/アップグレード
<Files update.php>
AddHandler application/x-httpd-phpcgi .php
</Files>
# 本体アップグレード
<Files update-core.php>
AddHandler application/x-httpd-phpcgi .php
</Files>

ただし,メリット/デメリットがあるらしい.

PHPをCGIとして動かす方法について – XREA&CORE SUPPORT BOARD.

○メリット

・ユーザー権限で実行され、セーフモードがOFFになっているため、様々な制限がない。
・負荷率が管理画面で見られる。

○デメリット

・モジュール版PHPに比べて、動作が遅くなる。負荷が掛かる。
・XREAサーバー特有の機能で、汎用性がない。

多分そこまでデメリットでもないんだろうけど,たまたま他のやり方も見つけたのでメモがてら紹介.

  1. まず,上のエラーメッセージをよく読むと,以下のようなログがある.
    /virtual/hogehoge/public_html/wp-admin/includes/file.php
    このパスを参考に,アップデートファイルを置く場所を以下にする.
    /virtual/hogehoge/public_html/tmp
  2. wp-admin/includes/file.phpをダウンロードして,get_temp_dir()を以下のように修正する.
  3. function get_temp_dir() {
    /*
            if ( defined('WP_TEMP_DIR') )
                    return trailingslashit(WP_TEMP_DIR);
    
            $temp = WP_CONTENT_DIR . '/';
            if ( is_dir($temp) && is_writable($temp) )
                    return $temp;
    
            if  ( function_exists('sys_get_temp_dir') )
                    return trailingslashit(sys_get_temp_dir());
    */
            return '/virtual/hogehoge/public_html/tmp/';
    }
    
  4. 自分のアカウントの/public_html/下に,tmpディレクトリを作成し,chmodでパーミッションを777にする.

ええ力尽くですともw
でもこれで一応出来ました.tmpディレクトリはアップデートが済んだら消しておいた方がいいかもしれません.また,file.phpがどのタイミングで呼び出されるかとかをちゃんと調べてないので,不具合が起きてしまう可能性があるのでfile.phpのバックアップはお忘れなく

FC2ブックマークへ追加 Bookmark this on Delicious このエントリーを含むはてなブックマークはてなブックマーク - WordPress@Xrea Server (SAFE MODE php環境)でのWordPressの自動アップグレード方法

評価をお願いします→参考にならなかった参考になった

読み込み中 ... 読み込み中 ...

DDNS登録とcron+Applescriptを利用したMacでのIP自動更新方法

Macで自宅サーバの第一歩として、DDNSへの登録があります。

DDNSはDynamic DNSの略で、通常のDNSサーバと違いIP更新の頻度が早く、固定IPを利用出来ないような一般家庭でも簡単に自宅サーバーのドメインを利用出来るというものです。

DDNSサーバへのIP更新は基本的にはHome Pageから出来るものが多いです。しかし、自動で更新出来た方が突然のIP変更などでも安心なので、そういう仕組みを用意したいところです。

Windowsであれば、Diceなどのフリーウェアを使えばいいのですが、Macにはありません(少なくとも自分は知りません)。

そこで、Applescriptとcronを利用したIPの自動更新方法を紹介します。

前提とするもの

  • 無料・ダイナミックDNS(DDNS)サービス ieServer.Netを利用する。
  • 上記 ieServer.Netの登録済みであり、自身のドメインのIDおよびパスワードを入手済みである。(まだのひとはこちらから登録してください。)
  • Mac OS X (Leopard, Snow Leopard推奨)の常時稼働環境

手順

まず、以下のURLからieServer用のApplescriptをダウンロードします。

ファイルを解凍したら、ieServerScript0.2をAppleScriptエディタで開きます。変更するのは最初の3行

set UserName to "username"
set UserPassword to "password"
set Domain to "dip.jp" ---"myhome.cx" "or.cf" "jpn.ph" "fam.cx" "dip.jp" の5種類から選択

上の赤字の部分です。変更/保存したら、実行をしてみましょう。

〜〜〜〜を保存しました。

と表示されればOKです。

スクリーンショット(2009-10-07 0.55.25)

次に、cronによる自動実行の準備をします。まず、今編集したスクリプトファイルをテキスト形式で保存しなおします。

“ファイル”→”別名で保存”を選び、ファイルフォーマットをテキストにして保存します

スクリーンショット(2009-10-07 1.29.58)

次に、cronへスケジュールします。ターミナルからcrontabを起動

> crontab -e

viが起動するので、以下のような感じに登録します。

0 9-17/2 * * 1-5 /usr/bin/osascript /Users/punsuka/ddns_punsuka.applescript
0 17-22/3 * * 6 /usr/bin/osascript /Users/punsuka/ddns_punsuka.applescript

上記の設定の場合、平日9, 11, 13, 15, 17時、土曜日の17, 20時にIPの更新をします。

cronについては以下のURLを参考にしてください。

以上なんですが一つだけ注意点。
ieServer.Netは無料で利用できる便利なサービスです。IP更新を頻繁にやると、その分サーバに負荷がかかってしまいますので、あまり頻繁な更新は控えるようにしましょう。
※本当はIPがかわった時のみ更新するようにした方がいいんだけれど・・・やり方がわかりません。もし何か情報あればコメントください。
FC2ブックマークへ追加 Bookmark this on Delicious このエントリーを含むはてなブックマークはてなブックマーク - DDNS登録とcron+Applescriptを利用したMacでのIP自動更新方法

Tags:

評価をお願いします→参考にならなかった参考になった

読み込み中 ... 読み込み中 ...

UISearchBarの検索語を先頭マッチではなく部分マッチさせるtips

iPhone SDK – TableSearch – Search all words instead of only the first one. – Stack Overflow.からの抜粋メモ.

Appleの公開しているSample CodeであるTable Searchでリスト内検索をすると,入力した検索語と先頭からマッチする単語のみしか検索結果に出てこない点を解決するためのノウハウが書かれている.

TableSearchの使っているマッチング方法は,

NSComparisonResult result = [product.name compare:searchText options:(NSCaseInsensitiveSearch|NSDiacriticInsensitiveSearch) range:NSMakeRange(0, [searchText length])];

で,これに対してresultがNSOrderedSameかどうかで判定するって方法。これだと先頭からのマッチ結果しか得られない.

これを解決するために,

  1. resultをNSRange型で宣言する
  2. NSStringをrangeOfString:options:で部分マッチングさせる
  3. resultをNSNotFoundで判定する

という方法で解決できますよ,ということみたいです.

NSRange result = [product.name rangeOfString:searchText options:(NSCaseInsensitiveSearch|NSDiacriticInsensitiveSearch)];

自分は手探りでTableSearchを書き換えながら作っていたのでこの記事は助かった.少しずつ知識を蓄えてます :-)

FC2ブックマークへ追加 Bookmark this on Delicious このエントリーを含むはてなブックマークはてなブックマーク - UISearchBarの検索語を先頭マッチではなく部分マッチさせるtips

評価をお願いします→参考にならなかった参考になった

読み込み中 ... 読み込み中 ...

iPhone SDKのNDAについて

iPhone Developer ProgramのNDAの範囲がよくわかんないので調査するなど.ほとんどが一昨年や去年の情報ばっかりで,最近の動向がよく見えてこない中で1つだけ発見.

SDK3.0アップデイトで再度Agreementに同意しなさいって画面が出てる時点で項5.1からNDAというキーワードが消えていたのは気づいてたのだが。。。つたない英語力で超絶要約するとこんな感じ?

pre-releaseな内容はあいかわらずApple Confidential Informationですよ

commercial releaseなものはconfidentialではありません

つまりだ、これまではAppStoreにリリースしたアプリに関するものだけがNDAの対象から外れるってとこから、AppStoreへのリリースに関わらずAppleがiPhone Developer Programの中で正式にリリースしている情報すべてがNDAの対象に外れるっつーかNDA撤廃!みたいなことだよね。いやね、あまりにも英語理解力が乏しくて自信がなかったわけで、まぁそのうち各ニュースサイト取り上げてくれるからそれで詳細は明らかになるよねって思ってたらどこもニュース取り上げないでやんの(あくまで自分がキャッチアップしてる範囲では)。

引用元: [iPhone]iPhone SDK の NDA がさらに緩和してる件 – l4l .

Developer向けOSの内容にだけ注意すればいいのかな・・・?
Agreement自体も”No Redistribution”ってなってて公開したら怒られそうだし。自分で作ったソースコードの公開も許されると考えてよいのだろうか。うーむ・・。

結局結論がわかってないんですが、メモということで公開。後で書き直すかもです。

FC2ブックマークへ追加 Bookmark this on Delicious このエントリーを含むはてなブックマークはてなブックマーク - iPhone SDKのNDAについて

Tags:

評価をお願いします→参考にならなかった参考になった

読み込み中 ... 読み込み中 ...