コマンド(Linux)で改行コードを変換する

$ tr -d "\r" < input.file > output.file

こうやると、間違ってWindowsの改行コードでサーバにアップした場合も、
サーバ側で修正することができます。地味ですが便利。

cronで実行したり、コマンドラインで実行するときは改行コードがCRLFになっていると、スクリプトが実行エラーになってしまうので、注意が必要です。

ネタ元はこちら

WordPressの日付表示はthe_time()で

1つのテンプレート内で、複数の記事を表示する場合、the_date()を利用すると、
同一の日付が複数存在する場合、2つ目以降の日付が表示されなくなります。

そこで、the_time()に変更すると、同じ日付でも問題なく表示されます。
秒まで一緒だと表示されないのかもしれませんが、そんなことはないという前提で。

DBから取得した値をどうにかして加工しようとしてたので、the_time()を
知ったときは、すごい助かったーという気分でした。便利です。

hetemlでSSHが利用可能に

このブログを運営しているhetemlでSSHが利用可能になりました。
注意するところは、ポート番号が22ではなく、2222ってところです。

WindowsのTera Termで接続する際は、ポートも同時に入力できるので問題なく接続。
MacのTerminalからだと、新規接続でサーバ指定したら勝手に2222に接続してくれました。
MacのCarbon Emacsだと、22に接続しにいくので、設定が必要です。
設定は、”.ssh/config”に、接続したいサーバ名とポートを指定するだけです。
このような記述で設定しました。

Host hogehoge (なんでもいいです)
HostName sshxx.heteml.jp (接続するサーバ名)
Port 2222 (接続するポート番号)

これで、無事に接続できました。
直接ファイルを触れるっていいですね。バックアップはちゃんととらないと怖いですが。

Zend_Db_Table_Rowsetを拡張する2

以前、Zend_Db_Table_Rowsetを拡張するという記事をあげましたが、
不備というか使いづらい点があったので修正しました。

deleteト等を行う前に、foreach や、更新を行っていると、
rowset内カウンタの関係で、 validでfalseが返ってきたので、
処理の前後に、rewindでカウンタを0に戻す処理を追加しました。

class MyRowset extends Zend_Db_Table_Rowset_Abstract
{
  public function delete()
  {
    $this->rewind();

    if (!$this->valid()) { return; }
    foreach ($this as &$row) { $row->delete(); }
  }

  public function save()
  {
    $this->rewind();

    if (!$this->valid()) { return; }
    foreach ($this as &$row) { $row->save(); }

    $this->rewind();
  }

  public function __set($key, $value)
  {
    $this->rewind();

    if (!$this->valid()) { return; }
    foreach ($this as &$row) { $row->{$key} = $value; }

    $this->rewind();
  }
} 

サマソニ09のラインナップが懐かしい

サマソニのラインナップを見ていたら、懐かしい気分になった。
http://www.summersonic.com/09/lineup/

・LINKIN PARK
・LIMP BIZKIT
・MONGOL800
・BOOM BOOM SATELLITES

段ボールの中を探せばどれもCDが出てくる。
大学生から社会人3,4年目まで一番聞いてたCD達。
後は、BAD RELIGION、PENNY WISEとかなつかしい。

最近家で聞くのはゆるいダンスクラシックス(アースとかチャッカーンとか)を
聞くことが多かったんですが、久しぶりにひっぱりだしてみようかと思いました。

デュプリシティ

先々週くらいに見てきました。

推理ゲーム、騙し合いな内容ですが、
難解ではなく、画面のままを受け入れていけば楽しめます。

見て損はない映画です。

http://duplicity-spy-spy.jp/

これから見たい映画の候補といえば、昨日公開の天使と悪魔。
http://angel-demon.jp/

あとは、会社の人に教えてもらった、おと・な・りって映画。予告が好みです。
http://www.oto-na-ri.com/index.html

LightboxをWordPressで利用した

友人のブログをWordPressを使って作っているのですが、画像をLightbox風に
表示させたいってことだったので、やってみました。
スクリプトの種類はいくつもあるんですね。

参考にさせていただいたのは、こちら。いつも読んでます。
http://www.designwalker.com/2008/01/lightbox.html

この中で、選んだのは、こちら。
http://www.dolem.com/lytebox/

理由は、ProtoType.jsや、jQuery.js等のライブラリを必要としないこと。
jQueryは使うので、まぁいいかなと思っていたのですが、ProtoType.jsは
使ったことがないので、問題が起きた時に対応できるかなという不安でやめました。
導入は1時間ほどで完了。ちょっとマニュアル読むのに時間がかかったくらいでした。

思ったより簡単だったので、仕事でも使える部分があったら、使ってみたいですね。

有田焼カレー食べてきました

https://life.co-hey.com/2009/04/有田焼カレー/

↑の記事で書いていた有田焼カレー。先週末食べてきました。

内装も落ち着いてて好印象。味もいいし、家から近いのもいい。
ただ、1500円という値段と味のバランスなら、池尻のビストロ喜楽亭がいいかも。

喜楽亭はこちら
http://gourmet.suntory.co.jp/shop/0334105289/food.html

Zend_Db_Table_Rowsetを拡張する

Zend_Db_Table_Rowsetのデータを削除したり、一括で更新したりするのに
foreach使っていたんですが、めんどうだなーと思って、拡張を考えました。

http://framework.zend.com/manual/ja/zend.db.table.rowset.html#zend.db.table.rowset.extending
上記を参考にして、以下のクラスを追加

class MyRowset extends Zend_Db_Table_Rowset_Abstract
{
    public function delete()
    {
        if (!$this->valid()) { return; }
        foreach ($this as $row) { $row->delete(); }
    }

    public function save()
    {
        if (!$this->valid()) { return; }
        foreach ($this as $row) { $row->save(); }
    }

    public function __set($key, $value)
    {
        if (!$this->valid()) { return; }
        foreach ($this as $row) { $row->{$key} = $value; }
    }
}

まだ動かしてないので、うまくいくかわからないけれど、メモとして残します。

あと、書き込み操作連鎖も初めて使ってます。
http://framework.zend.com/manual/ja/zend.db.table.relationships.html#zend.db.table.relationships.cascading

DBはMySQLで、外部キー制約を付けようと考えたのですが、対象テーブルにないキーが入ってしまうことがあるので、つけることができずに、上記の機能を利用することを考えました。
今までは、MySQLで外部キーつける権限がない時に使えるくらいの認識だったんですが、都合がいい部分だけ外部キー制約つけれるかもってことで、これは使えるんじゃないかと思います。

Tractor Scratch Duo登場

Tractor Scratch Proは、4つの音源を同時にならせること、
CD型とレコード型両方のコントローラーがあることが特徴でした。

現在よくクラブで使われているseratoと比較した点の優位点はそれで、
ソフトとしての安定性、ミキサーとの接続の簡単さはseratoが上というのがよくきく話です。

実際僕は、どちらもちゃんと使ったことがないので、なんとも言えませんが、
まだCDJにも音質的に負けているという話もありますが、聞き比べたこともないです。
興味はあったんですが、CDにもジャケットを印刷して識別しているので、
文字だけで曲を探すことに苦手意識があるので、情報だけ収集している状態が続いていました。

Tractor Scratch Duoという2つの音源の再生に機能を絞ったソフトが発売されたという
ニュースを見て、serato(こちらも2つの音源再生)に対抗してきたのかなーと何気なく眺めてたら、
曲の一覧のところに画像が取り込めている!!

これが一番の進化なんじゃないかと思います。
beatportと連携しているので、beatportで購入した曲は問題ないでしょうが、
他のダウンロードサイトで購入した曲に指定した画像を表示できるのかが気になるところです。
これがクリアできたら、俄然魅力的な商品になりますねー。
あとは、接続がどれだけ簡単にできるかが焦点です。