Archive for December, 2007

今からCakePHPを使ってWebアプリを作成する-2

Saturday, December 29th, 2007

mysqlの設定

mysql -u root -p
mysql> grant all privileges on cake.* to cake@localhost identified by ‘PWD’;
mysql> create database cake;
mysql> exit;

あとはdatabase.phpを設定する。
その次にamazonのAPI関数を作成する。

Premature end of script headers: php5.cgi

Saturday, December 29th, 2007

CakePHPをセットアップしてindex.phpにアクセスすると500 Internal Server Error。
エラーログは以下。

Premature end of script headers: php5.cgi

今のところ手がかりなし

仕方がないので以下のようにphp4で動作するように.htaccessを無理矢理修正

-    RewriteRule ^(.*)$ index.php4?url=$1 [QSA,L]
+    RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]

今からCakePHPを使ってWebアプリを作成する-1

Saturday, December 29th, 2007

TODO

  1. 本番にCakePHP設定
  2. 雛形HTML作成
  3. 画像を取得するAPI利用モジュール作成

正直そんなにたいしたものは作らないけど、CakePHPを使ってWebアプリを作る。APIを使って画像を取得しそれを一覧で並べるだけというアプリを想定。入力窓があってそこに入力すると画面に変化があって、できればアフィリエイトもいれて。まずはそこまで、その次はjsを使ってみる。その次はPHP Extensionを使ってみる。

URLはここ

mod_ktaiは速度が100倍?

Thursday, December 27th, 2007

ゆめみが開発した「mod_ktai」。

速度が100倍っていうのは気になるなぁ。

携帯サイト構築簡易化Apacheモジュール『mod_ktai』を開発:携帯サイト構築・株式会社ゆめみ

3キャリア対応サイト作成へ、画像を自動変換をするApacheモジュールをゆめみが開発 - builder by ZDNet Japan

これも買った(文字本 片岡 朗)

Thursday, December 27th, 2007

文字本

これと一緒に この本も買った。

ほんとこういうのが好き。

NEW WAVESを買った

Thursday, December 27th, 2007

NEW WAVES

こういうのがすごく好き。

結合テスト仕様書作成

Wednesday, December 26th, 2007

むいてないのか全然集中しない。。

最新のcoLinux-.emacs

Wednesday, December 26th, 2007
;;;; -*- mode: lisp-interaction; syntax: elisp; coding: utf-8-unix -*-
;; ~/elisp をライブラリパスに追加
(setq load-path
      (append
       (list
    (expand-file-name "~/elisp/")
    )
       load-path))

;; 日本語設定 (UTF-8)
(set-language-environment "Japanese")
(set-terminal-coding-system 'utf-8)
(set-keyboard-coding-system '
utf-8)
(set-buffer-file-coding-system 'utf-8)
(setq default-buffer-file-coding-system '
utf-8)

;; ChangeLog の設定
(setq user-full-name "xxx")
(setq user-mail-address "xxx")
(defun memo ()
  (interactive)
    (add-change-log-entry
     nil
     (expand-file-name "~/memo/diary.txt")))
(define-key ctl-x-map "M" 'memo)

;; タブの基本設定
(setq tab-width 4)
(setq c-basic-offset 4)

;; フォントロックモード (強調表示等) を有効にする
(global-font-lock-mode t)

;; 一時マークモードの自動有効化
(setq-default transient-mark-mode t)

;; C-x C-u が何もしないように変更する (undo の typo 時誤動作防止)
(global-unset-key "\C-x\C-u")

;; 括弧の対応をハイライト.
(show-paren-mode 1)

;; バッファ末尾に余計な改行コードを防ぐための設定
(setq next-line-add-newlines nil)

;; C-x l で goto-line を実行
(define-key ctl-x-map "l" 'goto-line)

;; 時間を表示
(display-time)

;; 列数表示
(column-number-mode 1)

;; メニューバーを消す
(menu-bar-mode -1)

;; バックアップファイルを作成しない
(setq make-backup-files nil)

;; grep-find の結果に .svn ディレクトリを含まないようにする
(setq grep-find-command "find . -type f -path '*.svn*' -prune -o -print0 | xargs -0 -e grep -nH -e ")

;; C-h でカーソルの左にある文字を消す
(define-key global-map "\C-h" 'delete-backward-char)

;; C-h に割り当てられている関数 help-command を C-x C-h に割り当てる
(define-key global-map "\C-x\C-h" 'help-command)

;; C-z のキーバインドを開放
(global-unset-key "\C-z")

;; toggle-truncate-lines を "C-z l" に定義する
(define-key global-map "\C-zl" 'toggle-truncate-lines)

;; 画面の左端に行番号を表示できるように
(require 'wb-line-number)
;; "C-z n" に定義する
(define-key global-map "\C-zn" 'wb-line-number-toggle)

;; C-o に動的略語展開機能を割り当てる
;;(define-key global-map "\C-o" 'dabbrev-expand)
;;(setq dabbrev-case-fold-search nil) ; 大文字小文字を区別

;; 日本語・英語混じり文での区切判定
;; http://www.alles.or.jp/~torutk/oojava/meadow/Meadow210Install.html
(defadvice dabbrev-expand
  (around modify-regexp-for-japanese activate compile)
  "Modify `dabbrev-abbrev-char-regexp' dynamically for Japanese words."
  (if (bobp)
      ad-do-it
    (let ((dabbrev-abbrev-char-regexp
           (let ((c (char-category-set (char-before))))
             (cond
              ((aref c ?a) "[-_A-Za-z0-9]") ; ASCII
              ((aref c ?j) ; Japanese
               (cond
                ((aref c ?K) "\\cK") ; katakana
                ((aref c ?A) "\\cA") ; 2byte alphanumeric
                ((aref c ?H) "\\cH") ; hiragana
                ((aref c ?C) "\\cC") ; kanji
                (t "\\cj")))
              ((aref c ?k) "\\ck") ; hankaku-kana
              ((aref c ?r) "\\cr") ; Japanese roman ?
              (t dabbrev-abbrev-char-regexp)))))
      ad-do-it)))

;; BS で選択範囲を消す
(delete-selection-mode 1)

;; The local variables list in .emacs と言われるのを抑止
(add-to-list 'ignored-local-variables 'syntax)

;; ミニバッファ中での補完機構を補強
(iswitchb-mode t)

;; kill リングバッファの内容を表示しながらヤンクできるようにする
(autoload 'kill-summary "kill-summary" nil t)
(define-key global-map "\ey" '
kill-summary)

;; php-mode
(autoload 'php-mode "php-mode")
(setq auto-mode-alist
      (append '
(("\\.[php|inc]$" . php-mode)) auto-mode-alist))
(setq php-mode-force-pear t)
(add-hook 'php-mode-user-hook
  '
(lambda ()
     (setq tab-width 4)
     (setq c-basic-offset 4)
     (setq indent-tabs-mode nil)
     (setq php-manual-path "/usr/local/share/php/doc/html")
     (setq php-manual-url "http://www.phppro.jp/phpmanual/")))

;;;; ruby-mode (要 ruby-mode.el)
(autoload 'ruby-mode "ruby-mode"
  "Mode for editing ruby source files" t)
(setq auto-mode-alist
      (append '
(("\\.rb$" . ruby-mode)) auto-mode-alist))
(setq interpreter-mode-alist (append '(("ruby" . ruby-mode))
                                     interpreter-mode-alist))
(autoload '
run-ruby "inf-ruby"
  "Run an inferior Ruby process")
(autoload 'inf-ruby-keys "inf-ruby"
  "Set local key defs for inf-ruby in ruby-mode")
(add-hook '
ruby-mode-hook
          '(lambda ()
            (inf-ruby-keys)))

;; cperl-mode の設定。インデントをいい感じに、他。
(autoload 'perl-mode "cperl-mode" "alternate mode for editing Perl programs" t)
(setq cperl-auto-newline t)
(setq cperl-indent-parens-as-block t)
(setq cperl-close-paren-offset -4)
(setq cperl-indent-level 4)
(setq cperl-label-offset -4)
(setq cperl-continued-statement-offset 4)
(setq cperl-highlight-variables-indiscriminately t)
(add-hook 'cperl-mode-hook
          (lambda ()
            (set-face-italic-p '
cperl-hash-face nil)))
(add-hook 'cperl-mode-hook
      '
(lambda ()
         (define-key cperl-mode-map "\C-cc" 'cperl-check-syntax)
         (setq indent-tabs-mode nil)))

;; cf-mode
(autoload 'cf-mode "cf-mode"
  "Mode for editing cf source files" t)
(setq auto-mode-alist
      (append '(("\\.[cfm|cfc]$" . cf-mode)) auto-mode-alist))
(add-hook '
cf-mode-user-hook
  '(lambda ()
     (setq tab-width 4)
     (setq c-basic-offset 4)
     (setq indent-tabs-mode nil)))

;; mmm-mode
(require 'mmm-mode)
(setq mmm-global-mode 'maybe)
(set-face-background '
mmm-default-submode-face nil) ;;背景色不要
(setq mmm-submode-decoration-level 2) ;;カラー表示
(setq mmm-font-lock-available-p t) ;;カラー表示
(mmm-add-mode-ext-class nil "\\.ctp?\\'" 'html-php)
(mmm-add-classes
 '
((html-php
    :submode php-mode
    :front "<\\?\\(php\\)?"
    :back "\\?>")))
(add-to-list 'auto-mode-alist '("\\.ctp?\\'" . html-mode))

;; css-mode
(autoload 'css-mode "css-mode")
(setq auto-mode-alist
      (cons '
("\\.css\\'" . css-mode) auto-mode-alist))
(setq cssm-indent-function #'cssm-c-style-indenter)

;; リセットされた場合に UTF-8 に戻す
;; http://0xcc.net/blog/archives/000041.html
(set-default-coding-systems 'utf-8)

;; 矢印などの文字がうまく使用できない問題に対応
;; http://www.pqrs.org/~tekezo/emacs/doc/wide-character/index.html
(utf-translate-cjk-set-unicode-range
 '((#x00a2 . #x00a3)                    ; ¢, £
   (#x00a7 . #x00a8)                    ; §, ¨
   (#x00ac . #x00ac)                    ; ¬
   (#x00b0 . #x00b1)                    ; °, ±
   (#x00b4 . #x00b4)                    ; ´
   (#x00b6 . #x00b6)                    ; ¶
   (#x00d7 . #x00d7)                    ; ×
   (#X00f7 . #x00f7)                    ; ÷
   (#x0370 . #x03ff)                    ; Greek and Coptic
   (#x0400 . #x04FF)                    ; Cyrillic
   (#x2000 . #x206F)                    ; General Punctuation
   (#x2100 . #x214F)                    ; Letterlike Symbols
   (#x2190 . #x21FF)                    ; Arrows
   (#x2200 . #x22FF)                    ; Mathematical Operators
   (#x2300 . #x23FF)                    ; Miscellaneous Technical
   (#x2500 . #x257F)                    ; Box Drawing
   (#x25A0 . #x25FF)                    ; Geometric Shapes
   (#x2600 . #x26FF)                    ; Miscellaneous Symbols
   (#x2e80 . #xd7a3) (#xff00 . #xffef)))

mmm-modeを試してみる

Wednesday, December 26th, 2007

次の記事で.emacsをメモしているけど、なぜか上手く動かない。mmm-modeを設定するとcf-modeも何故か動かなくなった。mmm-modeを削除してもcf-modeは復活しない。。

wp-hatenaを再再カスタマイズ

Wednesday, December 26th, 2007

wp-hatena を Livedoorクリップ その他色々対応させてみました - Numb.からダウンロードさせてもらって、WordPress エントリのはてなブックマーク被リンク数を表示 - wp-hatena プラグインをカスタマイズ : zontheworldを参考にwp-hatenaをカスタマイズしてみた。

wordpressに表示するには以下のようなコードを表示したい場所に追加する。

<?php if(isset($wph)) {
    $wph->entryHatena();
    $wph->addHatena();
    $wph->adddelicious();
    $wph->addLivedoor();
    $wph->addYahoo();
    $wph->addFC2();
    $wph->addNifty();
    $wph->addPOOKMARK();
    $wph->addBuzzurl();
    $wph->addChoix();
    $wph->addnewsing();
}?>

このままだとコードが長過いので、wp-hatena.phpに関数を一つ追加。

/**
     * WP interface.
     *
     * @param none
     * @return none (いろんなブックマークとブックマーク数を echo)
     */

    function addBookmark($permalink=null)
    {
        $this->entryHatena($permalink);
        $this->addHatena($permalink);
        $this->adddelicious($permalink);
        $this->addLivedoor($permalink);
        $this->addYahoo($permalink);
    }

これで以下のように関数1つ呼べば表示できるようになる。

<?php if(isset($wph)) $wph->addBookmark(get_permalink($post->ID));?>

レイアウトがおかしいのは後から直す!

修正するwordpressテンプレートはindex.php、archive.php、single.phpの4つ。