アーカイブ

投稿者のアーカイブ

VMWare FusionでゲストOSを強制的にシャットダウン

2010 年 2 月 3 日 oinume コメントはありません

VMWare FusionのゲストOSとしてWindows XPを使っていたのですが、シャットダウン中に「Windowsをシャットダウンしています…」というメッセージからいっこうに進まなくなり、どうしようもなくなった時の対処方法。

VMware Fusionの「仮想マシン」メニューを選択して「option」キーを押しっぱなしにすると、ゲストOSの制御メニューが以下のように変化します。そして「強制シャットダウン」を選択するとシャットダウンできるようになります。

レジューム
再起動
シャットダウン
       ↓
強制レジューム
強制再起動
強制シャットダウン

ちなみにVMWare Fusion 3の場合です。2だと表記が違うっぽいです。

VMware徹底入門 (DVD付)

著者/訳者:ヴイエムウェア株式会社

出版社:翔泳社( 2008-11-13 )

大型本 ( 416 ページ )



VMware Fusion 3

VMware Fusion 3

発売日:2009-11-06


カテゴリー: VMWare Fusion タグ:

DBIx::ThinをCPANから削除

2010 年 1 月 13 日 oinume コメントはありません

表題の通りですが、思うところがあってDBIx::Thinを削除しました。きっかけは、CPAN Ratingsのレビューです(以下引用)。

DBIx-Thin (0.05) **

It strikes me as odd how almost most of Japanese authors (of course, except honourable and admirable authors) don’t write why they have written their modules and the intention of the modules.
So is the author of this module.
The module is yet another ORM module but unfocused one. What the heck is different from DBIx::Skinny? The explanation is nowhere to be found, but there is just an enumeration of methods. And yet could anyone else use the module?

言われてみればその通りで、PODにコンセプトも書いてなければDBIx::Skinnyと違うところも良くわからないと。その辺に関してはモジュールのPODに書いておきましたが、それでもDBIx::Skinnyとあんまり変わらないし、現時点で自分以外の誰かが使っているとも思えないので、変な混乱を招かないようにCPANからは削除しました。んでgithubでは開発を継続していきます。

カテゴリー: DBIx::Thin タグ: ,

WordPressで自分の投稿にリンクを貼るためのプラグイン “The Permalinker”

2010 年 1 月 5 日 oinume コメントはありません

WordPressで文章を書いている際に過去の自分の投稿にリンクしたいことがよくあります。今までは<a href=”/tech/index.php/archives/12345″>過去の投稿へのリンク</a>のように普通のアンカータグでリンクを貼っていたのですが、これだと万が一パーマリンクのURLの設定を変えた場合に手動で一つ一つリンクを直すのが嫌だなぁと思ってました。

で、これを回避するのが最近見つけたThe Permalinkerというプラグイン。

[permalink id=12345]過去の投稿へのリンク[/permalink]

というように書くと過去の投稿へのリンクを生成してくれます。こういうプラグイン絶対あると思ってたんですが、なかなか見つけられなくて悔しい思いをしていたので、非常に嬉しいです。よかったよかった。

WordPress 2.7対応「導入&カスタマイズ」実践ガイド―個人ブログも企業サイトも簡単&無料で構築できる!

著者/訳者:吉村 正春

出版社:秀和システム( 2009-02 )

単行本 ( 415 ページ )


カテゴリー: WordPress タグ:

MySQL 5.1の最新のソースからdebを作成する

2010 年 1 月 3 日 oinume コメントはありません

以前MySQL 5.1の最新版のdebパッケージを作成する方法というエントリを書いたのですが、Ubuntuの最新の開発版パッケージではなく、MySQLが出している最新のMySQLのソースをビルドしてdebパッケージを作成する方法を見つけたのでメモしておきます。ちなみにMySQL以外にもperlとかのパッケージもこの方法で最新にすることが出来ると思います。

debを作成するための準備

まずはビルドする人間のメールアドレスと名前を環境変数で設定しておきます。適当に自分のものに置き換えて下さい。

$ export DEBEMAIL="hogehoge@foo.com"
$ export DEBFULLNAME="Your Name"

次にパッケージをビルドするために必要なものをインストールします。

$ sudo aptitude install dh-make devscripts debhelper fakeroot lintian sudo pbuilder piuparts dpatch build-essential
$ sudo aptitude build-dep mysql-server-5.1

ソースの取得

Ubuntuのdebを作成するのに使われているソースを取得します。ソースはカレントディレクトリに展開されるので、必要があれば適当なディレクトリに cd しておいてください。

$ apt-get source mysql-server-5.1

次に最新のMySQLのソースをmysql.comより取得します。”Select Platform”というプルダウンで”Source Code”を選択し、”Generic Linux (Architecture Independent), Compressed TAR Archive”をダウンロードして下さい。現在の最新版は5.1.42になるので、mysql-5.1.42.tar.gz としてダウンロードしています。

ビルド

ではビルドを始めます。uupdate というコマンドを使うと、自動的に引数で指定した最新のソースパッケージを展開しそこにDebianのパッケージを作成するためのファイルが生成されます。(つーか
uupdate便利過ぎ!)

$ cd mysql-dfsg-5.1-5.1.37
$ uupdate ../mysql-5.1.42.tar.gz

“cd ../mysql-dfsg-5.1-5.1.42 しろ”と言われるので、cd してパッケージをビルドします。(私はAthlon X2 5050eの環境で約2.5時間かかりました)

$ dpkg-buildpackage -uc -us -rfakeroot

インストール

ビルドが完了すると .deb パッケージがソースパッケージのディレクトリに作成されているので、必要なものをdpkg -iしてインストールします。ただし、依存関係が若干複雑なのでエラーが出たら依存しているものを先にインストールすると良いでしょう。

sudo dpkg -i \
libmysqlclient16_5.1.42-0ubuntu1_amd64.deb \
libmysqlclient-dev_5.1.42-0ubuntu1_amd64.deb \
libmysqlclient16-dev_5.1.42-0ubuntu1_all.deb \
mysql-common_5.1.42-0ubuntu1_all.deb \
mysql-client-5.1_5.1.42-0ubuntu1_amd64.deb \
mysql-client_5.1.42-0ubuntu1_all.deb \
mysql-server-5.1_5.1.42-0ubuntu1_amd64.deb \
mysql-server-core-5.1_5.1.42-0ubuntu1_amd64.deb \
mysql-server_5.1.42-0ubuntu1_all.deb \
libmysqld-dev_5.1.42-0ubuntu1_amd64.deb \
libmysqld-pic_5.1.42-0ubuntu1_amd64.deb

無事にインストールできれば、これでmysql-server-5.1が最新版になっています。mysqlコマンドでSQLを発行して動作を確認してみて下さい。

$ mysql -uroot -pxxxxx
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 72
Server version: 5.1.42-0ubuntu1-log (Ubuntu)
カテゴリー: Debian, MySQL タグ: ,

rackspace cloudが安い

2009 年 12 月 31 日 oinume コメントはありません

海外の安いVPSというエントリでLinodeというVPSを紹介したのですが、(条件次第では)それよりもさらに安いrackspace cloudというサービスを見つけました。
プランのスペックが微妙に違うし、データ転送量の料金次第な面もあるので一概に比較出来ませんが、Linodeの540とrackspaceの512MBのプランだとrackspaceの方が7$ぐらいお得。データ転送量が少なければrackspaceも全然ありだなぁ。

カテゴリー: VPS タグ:

DBIx::ThinというORMapperをリリースしました

2009 年 12 月 29 日 oinume コメントはありません

今年のYAPC(9月)からすき間時間を使って作っていたDBIx::Thinという、DBIx::Skinnyインスパイアなモジュールを昨日やっとリリースしました。作った動機は単に自己満足の追求と車輪の再発明による個人のスキルアップですが、前職で3年前ぐらいに自作したORMのコードを忘れないうちに改良して世に出したいなぁとずっと思っていたのです。SkinnyのAdvent Calendarが日々更新されているのを読み、途中で何度も「これSkinny使えばいいんじゃね?」って思って挫折しかけましたが、Skinnyも細かいところでは自分のポリシーと合わない部分があったりしたのと、とりあえず作ってしまったので世に出してみます。

特徴としては

  • 生SQL派にやさしい
  • Skinnyより書き方は冗長だと思うけど、コードを見て何をやっているかわかるようにした
  • 依存モジュールが少ない(標準以外のものは3つ)
  • Schemaクラスを生成するジェネレータが標準添付(ただしまだMySQL以外のDBに対応していない)

かなと思います。SQLはなんだかんだ言ってもまだWebエンジニアの共通言語だと思うので、ORMでゴリゴリJOINのコードを書くより生SQLの方がわかりやすい、と思っているので、生SQLなモジュールを作りました。

「Skinnyより書き方は冗長」というのは、例えばSkinnyだと

my $iterator = Your::Model->search(
    'user',
    {id => 1},
    {order_by => 'id'}
);

と書きますが、2つ目の引数が何を表しているのかぱっと見わからないので、Thinの場合は

my $iterator = Your::Model->search(
    'user',
    where => {id => 1}, # これ
    order_by => 'id',
);

と書くようにしています。もちろんSkinnyも学習すれば全然わかると思うので、細かいどうでもいいことかもしれませんが…

あとSkinnyと違う点は、

  • SchemaクラスとレコードのRowクラスは分離されていますが、シンプルさを重視してあえて一緒のクラスにまとめているところ(Your::Model::UserみたいなクラスがSchema定義をしてさらにこれのインスタンスがRowオブジェクト)
  • Schemaクラスの書き方がSkinnyはinflateやutf8がルールベースで全テーブルに適用されますが、こっちは基本的にテーブルの各カラムごとに書くようにさせてます

ところぐらいでしょうか。

最後に、Skinnyのコードはすごく綺麗で色々な部分を参考にさせてもらいました。作者のnekokakさん、どうもありがとうございました。

カテゴリー: DBIx::Thin タグ: ,

MySQLのdrop tableでは複数のテーブルを一気に削除できる

2009 年 12 月 24 日 oinume コメントはありません

タイトル通りなんですが、今までは複数のテーブルを削除する時は

> drop table hoge;
> drop table fuga;

なんてやってましたが、

> drop table hoge fuga;

って書けるんですね。豆知識。

カテゴリー: MySQL タグ:
Pages: << 1 2 3 4 5 6 7 8 ...18 19 20 >>