CakePHPでHABTMなデータを保存する方法

環境

毎回忘れてしまうのでメモ。
例えばArticleモデルとTagモデルがHABTMで結ばれていた場合、Article保存時にTagを複数一度に保存する方法です。

$this->data['Article']['title'] = 'タイトル';
$this->data['Article']['body'] = '本文';
$this->data['Tag'] = array(1, 2, 3); //Tagのid
$this->Article->saveAll($this->data);

CakePHPのTree Behaviorのフィールドの規約を変更する方法

環境

問題

ツリービヘイビア(Tree Behavior)ではデフォルトでparent_id, lft, rghtフィールドをテーブルに入れる必要があります。
しかし、例えば、既存テーブル内のparent_idにあたるフィールドの名前が「p_id」などだった場合、デフォルトの値を変更したくなります。

解決法

ツリービヘイビアをモデルで呼び出す際に、

var $actsAs = array('Tree' => array('parent' => 'p_id'));

とします。
lft, rghtフィールドもそれぞれ"left", "right"キーに値を入れることで変更できます。

Ubuntu上のVirtualBox内で起動しているマシンにSSH接続する方法

環境

方法

仮想マシンを停止させておき、ホスト側(Ubuntu側)の端末で以下のコマンドを実行します。

$ VBoxManage setextradata "(仮想マシン名)" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/guestssh/Protocol" TCP
$ VBoxManage setextradata "(仮想マシン名)" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/guestssh/GuestPort" 22
$ VBoxManage setextradata "(仮想マシン名)" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/guestssh/HostPort" 50022

ホスト側のポート番号を「50022」にしていますが、これは適当な番号で大丈夫だそうです。
ホスト側からSSHでリモート側(Debian側)にアクセスするには、

$ ssh -p 50022 -l (ユーザ名) localhost

というコマンドを実行します。
HTTPなど、他の接続についても、同じ方法で接続できるみたいです。
なお、この設定をすると、ホスト側の「/home/(ユーザ名)/.VirtualBox/Machines/(仮想マシン名)/(仮想マシン名).xml」の中身が変更されます。

Debianのインストール, 設定メモ

環境

Debian本体のインストール

Installer boot menu

「Install」

[!!] Choose language

「Japanese - 日本語」

[!] キーボード配置の選択

「米国」

[!] ネットワークの設定 (1)

ホスト名を入力する。

[!] ネットワークの設定 (2)

ドメイン名を入力する。

[!!] ディスクのパーティショニング (1)

「ガイド - ディスク全体を使う」

[!!] ディスクのパーティショニング (2)

ディスクを選択する。

[!] ディスクのパーティショニング

「すべてのファイルを1つのパーティションに (初心者ユーザには推奨)」

[!!] ディスクのパーティショニング (3)

「パーティショニングの終了とディスクへの変更の書き込み」

[!!] ディスクのパーティショニング (4)

「はい」

[!!] ユーザとパスワードのセットアップ (1)

rootのパスワードを入力

[!!] ユーザとパスワードのセットアップ (2)

ユーザの名前とアカウント名、パスワードを入力

[!] パッケージマネージャの設定 (1)

「日本」

[!] パッケージマネージャの設定 (2)

ftp.jp.debian.org」

[!] パッケージマネージャの設定 (3)

プロキシ情報の入力

[!] popularity-content を設定しています

「いいえ」

[!] ソフトウェアの選択

「標準システム」

[!] ハードディスクへのGRUBブートローダのインストール

「はい」

[!!] インストールの完了

CDを取り出して(マウント解除して)「続ける」

sshのインストール

# aptitude update
# aptitude install ssh
(コンソールが文字化けしてる。「Y」と入力)

sudoをインストール

デフォルトでは入っていないので入れる必要があるみたいです。

# apt-get install sudo
# visudo
(「(ユーザ名) ALL=(ALL) ALL」を入力)
# reboot

おしまい

この記事の下書きはこちら。
http://docs.google.com/Doc?id=d9h95g5_46dzvbh7c7

Debianのコンソール画面で日本語が文字化けする際の解決策

# dpkg-reconfigure locales

表示された画面で「en-US.UTF-8 UTF-8」を選択して「OK」。そして次の画面で「en_US.UTF-8」を選択して「OK」。

要するに英語の表示に変更するだけです。消極的な解決策だけど、ま、いっか(^^;)

今日はねこび〜んの誕生日!

Nabble - ねこび〜ん
1歳のお誕生日おめでとう!これからもよろしくね!

追記

僕の誕生日でもあります!21歳です!興味ないと思いますが、一応報告しておきます!ありがとうございます!

MacにGaucheをインストールしたよ

だいぶ前に買ってからずっと放置していた「プログラミングGauche」をまた読み始めました。関数型言語の面白さが何となくでもわかるようになれたらいいな。

$ sudo port install gauche

MacPortsにあったのが0.8.13だったけど(現時点での最新バージョンは0.8.14)、とりあえず、これで。

プログラミングGauche

プログラミングGauche