2011年はバッタの夢を見たか

2011年も残すところあと数時間。 hiromasa.another ブログのエントリから今年興味があったことを振り返ってみます。 はてさてほほう。:)

とりあえず今年の Archive をみると寂しいことにブログの本数が少ない! 週1くらいを目指していたのですが、月1なんて時も2ヶ月ほど。 別に twitter があるわけだからという訳でもないのですが、来年はもうちょっとお気楽に書いていきましょうぞ。

てなわけで、今年の一番の興味の対象であったらしいプログラム言語 Groovy ネタから。 以下、Groovy を使っていろいろ試している感じのエントリーです。

ぐるぐる Groovy。。

Groovy + XLSBeans でエクセルから HTML に流し込み

プログラミング Groovy キタ!

ぐるぐるぐる~び~。

Groovy + SWT + WebKit + jQuery Mobile でデスクトップアプリケーションをつくる

WordPress Live Writer が欲しい

twitter streaming API への接続

Groovy と PS3 Media Server プラグイン

PS3 と PS3 Media Server

Groovy と GUI アプリケーション

WordPress 3.1 の新しい XMLRPC API

Groovy は便利ですなぁ。 仕事でもいくつか活用するシーンがでてきていました。 個人ではたいしたものはつくっていませんが、、PS3 Media Server のプラグインなどは今も現役で動作しています。 :)

Redmine を JRuby + Tomcat で動かすネタ(メモ)もいくつかみつかります。

Redmine 1.0.5 + JRuby + Tomcat6 デプロイ

Apache Tomcat 6.0.32 インストールメモ

さくらの VPS と Apache Tomcat7

Redmine 1.2.2 + Eclipse Mylynでチケット管理

Redmine も現役でローカルサーバ、VPS で動作しています。 Redmine を JRuby で動かすは環境の準備がしやすく、安定していて良いですぞ。

そのほか例年変わらず Ubuntu / Java / Eclipse 系がありまして、、

最後に WordPress。

WordPress を dotCloud にデプロイ

OSC 北海道 2011 WordPress 出展

SaCSS vol.24 コーディング勉強会と OSC 北海道 2011 WordPress セミナー告知

WordPress は 5分でインストールできるか(2011年版)

WordPress 3.1 の新しい XMLRPC API

ありゃ、5本(笑)。

とはいえ、OSC 北海道出展や、札幌の有名な Web 勉強会である SaCSS メンバのみなさんに仲良くしていただいたり、WordCamp 東京に参加したりとオフライン活動が多かったのが今年の特徴だったかもしれません。楽しかったです。 :)

OSC 北海道 WordPress ブース。

DVC00288

札幌にてみんなで遊んでいる図。

2011-09-2221.50.23

WordCamp 東京にて。

20111126_194124

rps20111128_212807_425

札幌コワーキングスペース、ガレージラボさんにて。

20111203_172643

さて、年始めの 2011年の目標として「2011年スタート」エントリでぼくはこう書いていました。

もてるプログラマーに!

…。

2012年は、Groovy と、、OpenGL も少しやりたいし、スマートフォンアプリとか、WordPress もやりたいことがあったり、、というわけで、

カリスマプログラマーに!

…。

てなかんじで、いつまでも成長のないひろましゃくんですが。。

今年もお世話になりました。 来年もよろしくお願いいたします! :)

スマートフォン対応。

このサイトをスマートフォン表示対応してみました。 対応といっても基本 WordPress 3.2 のデフォルトテーマ twentyeleven にしただけなのですが。。(笑) リキッドデザインでそのまんま横幅が狭いブラウザで表示される感じで面白いですね。 :)

よく分かってないで、デフォルトから子テーマでちょこちょこソースに手を入れてしまっているので、たぶん iPad とかでみるとおかしなことになる予感なのですが、、とりあえず手持ちの Galaxy と iPod touch のブラウザでなんとなく見えたので良しとします。。

PC 版。

smart03

Galaxy SII webkit 版。

 smart02

iPod touch Safari 版。

smart01

twentyeleven テーマ設定で 1カラムにしていますが、2カラムでもうまいことサイドバーがおちて表示できるようになっているようです。

ぼくが修正した点としては、画像表示についてデバイスの横幅を超えると横幅合わせはしてくれるのですが、アスペクト比はにょろ~んと狂ってしまうようでしたので固定ピクセル指定して収まるようにしています。 ソースコード表示ととか、youtube 貼り付けがはみ出すのは仕様ということで。。(笑)

まだまだ直したいところあるのですが、とりあえずスモールスタート。 少しずつ変えていきたいと思います。

あ、そうそう。 ブログ始めて 5年? 6年? 初めてのワンカラムです。

MMRT の影響か!?。(←いつの話だ

WordPress を dotCloud にデプロイ

デプロイ田中です、みなさんこんにちは!!。。

本日は、最近ちらほら聞きます PaaS 型クラウド dotCloud さんに WordPress をデプロイしてみるです。 まぁ無料版のでやっているのでお遊びなのですが、まずはなかなかうまく動くようですぞ。 :)

dotCloud は、さまざまなプラットフォームのアプリケーションを配置できるいわゆる PaaS のサービスです。 Java はもちろん Ruby や PHP、サーバサイド JavaScript の node.js なんかも動作するようです。 また各種データベースも動作します。

wp3203

DotCloud – Deployment made simple

DotCloud lets you create the best cloud stack for your application. We give developers and IT professionals the freedom and flexibility to mix and match languages, databases, caching and messaging components without the need for additional servers or infrastructure.

PHP を扱っているとアプリケーションをサーバにインストールする行為というのは、FTP か何かでファイルを「置く」みたいな感じなので感覚が違うかもしれませんが、PaaS というのは OS にアプリをインストールするようなイメージで使います。 ここでいっている “OS” にあたるのがアプリケーションサーバというやつです。

まぁそうは言っても PHP にはアプリのインスタンスを保持するような仕組みはないので実質的にはファイルが置かれるだけなのですが、dotCloud の管理ツールの使い方的には PHP でもそんな感じになります。

さて、PaaS が普通の Web レンタルサーバと何が違うかというと、OS 的な部分が隠ぺい(クラウド)されていることです。 メモリとかファイルシステムとかネットワークとかリソースをあんまり考えずに使えるようになっていて、また必要であれば動的に付け足すことができます。

あとスナップショットバックアップのような、その時のサーバそのものをバックアップ保持するような機能がついているのも多いですね。 アプリケーションを簡単に動作させて運用するために特化した機能がついたサーバが PaaS。 この技術の後ろに見え隠れそるのがサーバ仮想化技術になります。

ぼく的な PaaS の感覚は、いろんな言語や動作プラットフォームを使ってインターネット上にアプリを公開できてわーい、、という感じなものです(笑)

てなわけで早速、Groovy のアプリをデプロイ、、といきたいところですが、ここは勝手知ったる WordPress でまずはお試しデプロイです。

dotCloud には便利な管理操作用 CLI インターフェースが用意されていますので、こちらで操作します。 python が必要なのでお使いの OS にいれて、、最初 easy_install というのが何かさっぱりわからなかったのは秘密です。。(マニュアル参考

$ sudo apt-get install python-setuptools
$ sudo easy_install pip && sudo pip install dotcloud

Ubuntu 11.04 の場合はこれで準備完了。 簡単アルネ。

API キーなど入れながら、アプリケーション(名)作成。(誰かとかぶらない任意の名前)

$ dotcloud create maple4ever

あとは WordPress をローカルのどこかのディレクトリに展開し、そのルートに dotcloud.yml ファイルを以下のようにして PHP と MySQL サービス設定。

wp:
  type: php
 
db:
  type: mysql

でもって、このディレクトリをカレントにおいて push します。

$ dotcloud push maple4ever .

これでデプロイ完了。

起動した MySQL インスタンスに WordPress 用の DB を create databese します。 とりあえず MySQL の情報閲覧。 「アプリケーション名.サービス名」で info コマンドしてあげます。

$ dotcloud info maple4ever.db
build_revision: rsync-1309187922.37
cluster: wolverine
config:
    mysql_password: nyoron
    mysql_serverid: -1
created_at: 1309187925.281122
ports:
-   name: ssh
    url: ssh://dotcloud@ugogogo.dotcloud.com:9284
-   name: mysql
    url: mysql://root:mogemoge@hogehoge.dotcloud.com:9344
state: running
type: mysql

WordPress に設定する DB ホストは hogehoge.dotcloud.com:9344 のところなのでメモ。(デフォルトポートと違うので全部いれる)

create table & ユーザ作成。 こんなかんじ。 キャラセットは指定するとはじかれたので、そのまま行きました。

$ dotcloud run maple4ever.db -- mysql -u root -p[パスワード]
# mysql -u root -p[パスワード]
 
mysql> CREATE USER 'wp' IDENTIFIED BY '[任意のパスワード]';
mysql> create database wp;
mysql> GRANT ALL ON wp.* to 'wp'@'%';

上はデータベース名 wp 、ユーザ名 wp で設定の図。

次に info コマンドで php サービスの URL を取得して普通にブラウザアクセス。

$ dotcloud info maple4ever.wp
-   name: http
    url: http://d84fa7d5.dotcloud.com/
state: running
type: php

あとはいつもの通り WordPress をインストールすれば、

wp3202

ようこそ WordPress の世界へ。 :)

wp3201

動いた~!

WordPress 3.2 RC2 日本語版キタ。  サイト中身はめ組さんの「日本語版インポートテストデータ」です。 試験に大変便利なので見てみてください。 :)

http://d84fa7d5.dotcloud.com/

(そのうち消えます。)

残念ながら dotCloud 無料版ではドメインマッピングできないので変なホスト名ですが、なかなかよく動きますね~。 memcached のインスタンスもあげられるようなので、追加してみるといいかもしれません。

httpd は nginx を使っているようです。 いじればパーマリンクも設定できると思います。 ファイルのアップロードなども問題なく動きます。(ちなみに Java のアプリケーションサーバは Jetty のようです)

てなわけで、ネットワーク上に好きなアプリを簡単に配置して使う。 そんなことができるようになるかもしれない PaaS プラットフォームのお話でした。 他にも cloudBees とか同様のサービスがありますので探してみるのも面白いでしょう。

ばいっ。(←芸風がおかしい。。

OSC 北海道 2011 WordPress 出展

昨日、6/11(土) に札幌市産業振興センターで開催されました、オープンソースカンファレンス北海道 2011 に WordBench 札幌として WordPress ブースとセミナーの出展を yuriko さんとしてきました。 今年はなんと来場者数 600 人とのこと、東京を除く1番の数字とのことでなんだか頼もしい感じでした。 :)

セミナー資料とかは後日記載しますので少々お時間をください。

今回はスクリーンキャスト動画でプレゼン行っていたのですが、実は動画総時間が 41分あることが事前に分かっておりまして、45分のセミナーで時間足りないのは自明。 かなり飛ばしたのもありまして分からない感じですいません。 動画は編集しまして分かりやすい感じで公開したいと思いますので、お待ちいただければと思います。

319000280

何人かの方にご質問をいただいておりましたが、持ち込んでいたのは Linux(Ubuntu 11.04)で、gtkRecordMyDesktop で録画したスクリーンキャストを動画再生して合わせてしゃべっていた感じです。 初の試みでしたがかなり難しいかったです。。すんません。。

さて、ブースの様子です。 :)

おきゃやまの WordPress ユーザの雄、Masayan さんよりいただいたぼくの愛用キャラ、木製 Pidgin ハトを絡めまして構成です。 みなさんにこれは何ですかときかれるたびに、WordPress 写真部と工作部? のご説明を差し上げました(笑)

DVC00288

yuriko さんが着てくれましたので当然モバイル系も充実。

IMG_0111

こうして、いろいろなものが絡むことができるのも WordPress の魅力の一つではないでしょうか。

さて、実はこんなコラボ企画で OSC 持ち込みが残念ながら間に合わなかったものがありますので、ここで紹介いたします。

おきゃやま WordPress 工作部 Masayan さんより、愛と勇気のバイクチーム Manukeno Masayan Racing Team 、M.M.R.T ロゴステッカーとなんと Pidgin ステッカーが届いておりました。

正直者が徳をする世界に・・・ – MMRT daily life

MMRTステッカー、インテル風ステッカー、ちょっぱー風ステッカーの3枚をセットで1名に・・

本日になってしまいましたが早速張ってみました。

やっべー、かっちょよすぎ。

IMG_0116

…ピットに置きたい(笑)

というわけで、いろいろな方がいろいろな形で参加できるオープンソースは楽しいですね!!

最後になりましたが、OSC 北海道運営スタッフの方々本当にお疲れ様でした。 おかげさまで楽しい一日でした。 :)

WordPress Live Writer が欲しい

ぼくは家では基本的に Linux を使っているのですが、ブログを書くときは Windows 。 というのは Windows Live Writer を使っているためなのです。 このソフトはできが良いので Windows 起動するのはやぶさかではないのですが、他の OS でも動くの欲しいじゃないですか、ということで contenteditable のお話です。 :)

Windows Live Writer のキモはブログの CSS をそのままもってきて、編集時の表示にそのまま使えること。 <p> の改行幅から引用表記からそのままで書けますので出来上がりの想像がつきやすいので気に入って使っています。 画像やソースコードの挿入が簡単なのも良いですね。

live03

このソフトがどうやって実装されているのかちょっと分かりませんが、IE の contenteditable か、、いや DOM で外からつっこんでるのかなぁ。 Trident いじったことないので一瞬の動きでわからないひろまさくん。

さて contenteditable というのはもともと IE 独自の HTML 属性で最近は HTML5 に入ったのかな、ちょっと詳しくないですけども。 ajax の基盤記述 XMLHttpRequest も実は IE 5 の独自実装が始まりですし、嫌われ者のくせに意外と世界を変えている IE くん。(笑)

これが何かって言うと、、デモ見てもらった方が早いですね。

HTML5 Demo: ContentEditable

Any elements with the contenteditable attribute set will have a grey outline as you hover over. Feel free to edit and change their contents. I’m using local storage to maintain your changes.

HTML の属性に contenteditable=true って記述すればその中があろうことかブラウザから編集可能になる技術です。

じゃあ、Linux でうごく Live Writer をつくるには WebKit をウインドウにはって サイトの CSS と HTML を読んで、コンテンツのところを contenteditable=true にしちゃえばいいんじゃないってことで、、

live02

って、まだなんも動きませんが一応ちゃんと CSS もってきて編集できていますぞ。 表示形式がこのサイトになっているところに注目です。

 

Groovy + SWT + WebKit でつくっているので JVM さえ入っていれば Windows / Linux / Max OS X で動くはずです。

ただ SWT は 3.7 M7 、、でも Ubuntu 11.04 ではそれでも動かなくて head を使っています。 Mac とか Windows は 3.7 M7 で WebKit ぺたっとできるはずです。(Windows は safari 入れるらしい)

Ubuntu 11.04 はこの修正で直っています。

Bug 343454 – XULRunner 2.0 kills Eclipse when opening anything Browser related

1. WebKitGTK 1.4 is not ABI-compatible with 1.2, so the initial attempt to use it is failing.  This is fixed with the patch in comment 19, so SWT.NONE-style Browsers should no longer fall back to using Mozilla when WebKit 1.4 is present.

まぁ動きを見ているといろいろ苦難はありそうですが、知恵と勇気でなんとかなるレベルの気がします。

実のところ、SWT と WebKit のインターフェースは JS のみで、Trident (IE) のように直接 DOM にアクセスできないので処理的に厳しい部分もあります。

でも最近この WebKit 張ってクライアントアプリつくるパターンって結構見ますね。 たとえば、Linux の gwibber とか Hotot とかそのタイプだと思います。

live01

Hotot はネイティブとのインターフェースに JS の alert だしてそのイベントハンドルからアラート文字列で Python と通信しあうという無茶をしてるようです(笑) ネイティブは設定ファイルの読み書きとか、ネイティブの通知を出すとかだけでほとんどの処理を JS に依存しています。

たとえば jQuery + jQuery Mobile を使うと iPhone 風のアプリとかすぐつくれそうですね。 クライアントアプリなんかかいたことないけど、JavaScript は得意だぜって方はこの方式は面白いかもしれません。 chrome extention とか chrome os とかの考え方に近そうです。

contenteditable 自体は別にブラウザでも動きますので、WordPress 自体にサイトを管理画面に入らずに直接編集できる機能がついたりしても楽しそうですぞ。 管理バーからぴっとするとそのままの画面で編集モードとかね。 :D

WordPress 3.2 から文書編集にも力が入っているようなので、こんな直接編集のも将来入ったらいいなと思っております。

SaCSS vol.24 コーディング勉強会と OSC 北海道 2011 WordPress セミナー告知

5/14 のハムさん主催、SaCSS 勉強会に参加させていただきました。 こちらの勉強会におじゃまさせていただきますのは 2回目となりますが、Web 製作の方とお話できるのでいつも楽しみにしています。 今回は東京から WordPress メンバもこられていましたのでさらに楽しかったです。 :)

SaCSS vol.24 札幌コーディング勉強会 開催 | THE HAM MEDIA BLOG

今月のテーマ者WordPress。何度かテーマとしてとりあつかっていましたけど、今月は少し内容も時間も盛りだくさんになる予定です!

ぼくはライトニングトークということで「PHPをかくときに便利なツール・手法の紹介」をちょっとだけしゃべらせていただきました。

sacss2402

Eclipse for PHP Developer に WordPress をのせた紹介にしてみましたが、やっぱりカーソルが動いた方が面白いということでスクリーンキャスト形式で。(実は最近スクリーンキャストネタが多いのはちょっと練習も兼ねていました(笑)

当日使ったものを、youtube のほうに編集してアノテーションとかつけてアップロードしましたので良ければご覧ください。 LT なのですぐ見れる長さです。

 

そしていつも通りカメラもっているのに写真を撮っていないぼく。。 どなたかください(笑)

みなさんのプレゼンも、、分かる限りでリンクさせていただきます。

SaCSS vol. 24に参加してきました | diary | understandard.net

今回僕は、「WordPress を自分好みに」というタイトルで、functions.php にちょっと書き足すだけでできるカスタマイズ方法を紹介しました。

SaCSS Vol.24参加レポート(講演資料公開) | Simple Colors

私の方は、「WordPressでの企業WEBの作り方」と題して、基本的な構成方法、設定、プラグインと簡単な利用方法の紹介、設定などをお話させていただきました。

みなさん果敢にライブ WordPress 操作に挑戦されていたのが印象的でした。 さすがに普段から慣れているだけのことはあります。

たくさんの方が集まりましたので、初めましての方、実は初めましての方(笑)、ご無沙汰しておりますの方、どうもありがとうございました。 夜の方も楽しかったです。

さてもうすぐ 6月てなわけで、OSC 北海道が 6/11 に開催されます。 今年も WordBench 札幌よりブースと、あとぼくが WordPress のセミナーをやらせていただくことになりました。 Ktai Style ゆりこさんも去年に引き続きまして来てくださいます。

オープンソースカンファレンス2011 Hokkaido – イベント案内 | 2011-06-11 (土): 世界標準ウェブ制作ツール WordPress の魅力

講師:田中 広将

担当:WordPress 地域コミュニティー「WordBench 札幌」

対象者:WordPress ユーザー、CMS に興味のある人、ウェブ制作者など
レベル:初級~中級者向け

ブログツールから汎用のウェブ制作ツールへと用途が広がりつつある WordPress。その機能紹介およびカスタマイズの魅力を伝えます。

去年もセミナぼくでしたので、もうひろまさならいいや、、と言わず良ければ遊びに来てください(笑) セミナーは長くて、、という向きはブースのほうにどぞどぞ。

ぼくはいつも通りふらふらしていると思いますので、見つけたら声をかけてやってください。 最近は知っている方が増えてきたので心強いです。 :)

WordPress は 5分でインストールできるか(2011年版)

OS をクリーンインストールしてごにょごにょしておりましたが、WordPress のローカル環境を最後に入れてみます。 XAMPP から WordPress のインストール、それでもってテーマ表示試験用にこのサイトのデータインポートは果たして何分でできるでしょう。 操作動画でご紹介です(笑)。

  1. XAMPP ダウンロード
  2. XAMPP セットアップ(インストール & アップロードファイル上限設定)
  3. WordPress 初期インストール
  4. このサイトのデータをエクスポートしてローカルインポート

という流れになっております。

xampp2011-01

WordPress はどのバージョンからだったかちょっと失念してしまいましたが、インストーラの画面遷移が減りましたのでより速くインストールできるようになったのが分かります。 実は 5分もかからなそうです。

途中で

痛恨のミス!

をしていますが気にしないでください。 地味にかなり凹みました(笑)

XAMPP も WordPress もまじファイルダウンロードしていますので少し時間かかっているのと、インポートに mysql のコマンド使わずに phpmyadmin からやっているのもあってロスタイムしてますが、全体で 13分くらいでしょか。

お遊び動画ですがなんとか暇しないように撮ったのでよければお楽しみくださいっ。

youtube サイトで HD フルスクリーン再生すると分かりやすいかもです。 人の PC 操作しているの見るのって結構好きなんですが、みなさんはいかがでしょう。 :D

WordPress 3.1 の新しい XMLRPC API

RC3 まできてもうすぐ出ると思われる WordPress 3.1!。

つらつら changelog をみていますと、XMLRPC の API にメディアライブラリ系の API が追加になっていましたので、ここ hiromasa.another の 3.1 テストもかねまして遊んでみました。 :)

新しく追加になったのは、wp.getMediaLibrary、wp.getMediaItem、wp.getPostFormats で前2つはメディアライブラリに関するもの、最後は投稿フォーマットに関するものです。

というわけで、せっかくですので練習もかねて Groovy  からレッツアクセス。 :D

import groovy.net.xmlrpc.*
 
class WPXMLRPCProxy {
    def proxy
    def user
    def passwd
    def currentArgs
    
    def methods = [
        getMediaLibrary :
            { [blog_id, this.@user, this.@passwd, struct]},
        getMediaItem :
            { [blog_id, this.@user, this.@passwd, attachment_id] },
        getPostFormats :
            { [blog_id, this.@user, this.@passwd] }
    ]
    
    def invokeMethod(String method, Object args) {
        currentArgs = args[0]
        def wpargs = methods[(method)]()
        method = "wp." + method
        proxy."$method"(wpargs)
    }
    
    def getProperty(String name) { currentArgs[name] }
}
 
def wp = new WPXMLRPCProxy(
    proxy : new XMLRPCServerProxy("http://another.maple4ever.net/xmlrpc.php")
    , user : ""
    , passwd : "")
 
wp.getMediaLibrary(blog_id:0
    , struct:[number: 1, mime_type:"image/jpeg"]).each {
    println it
}
 
println wp.getMediaItem(blog_id:0, attachment_id: 1394).metadata
 
println wp.getPostFormats(blog_id:0)

 

わざわざこんなことしなくてもいいかもですが、invokeMethod と getProperty の練習がてら Groovy に備わるリフレクションの仕組みでメソッドとプロパティを動的に生成して WordPress の API と同じ形で呼べるようにしています。

フィールドの methods マップにメソッド名と引数クロージャを追加していけば、wp.* 系の API がそのまま呼べるはずです。(今は新 API だけ入れています)

実行!

wp.getMediaLibrary

[title:DVC00169.jpg, thumbnail:http://another.maple4ever.net/wp-content/uploads/2011/01/DVC00169-150x150.jpg, date_created_gmt:Sun Jan 23 09:33:11 JST 2011, description:, link:http://another.maple4ever.net/wp-content/uploads/2011/01/DVC00169.jpg, parent:1396, caption:, metadata:[sizes:[thumbnail:[height:150, file:DVC00169-150x150.jpg, width:150], medium:[height:225, file:DVC00169-300x225.jpg, width:300]], height:308, file:2011/01/DVC00169.jpg, width:410, hwstring_small:height='96' width='128', image_meta:[focal_length:0, title:DVC00169, shutter_speed:0, iso:0, camera:SH906i, created_timestamp:1295293049, caption:copy="NO" SH906i, copyright:, credit:, aperture:0]]]

wp.getMediaItem

[sizes:[thumbnail:[height:150, file:DVC00169-150x150.jpg, width:150], medium:[height:225, file:DVC00169-300x225.jpg, width:300]], height:308, file:2011/01/DVC00169.jpg, width:410, hwstring_small:height='96' width='128', image_meta:[focal_length:0, title:DVC00169, shutter_speed:0, iso:0, camera:SH906i, created_timestamp:1295293049, caption:copy="NO" SH906i, copyright:, credit:, aperture:0]]

wp.getPostFormats

audio:Audio, standard:Standard, status:Status, gallery:Gallery, quote:Quote, link:Link, image:Image, chat:Chat, aside:Aside, video:Video

なーるほどざ、にゃんこ。 :)

あとはちょいちょいプログラムかけば、条件指定してクライアントアプリから画像ひっぱるとか簡単ですね。

xmlrpc01 

よいよい、簡単。 これは swing ですが次は SWT バインディングに挑戦してみたいです。 :D

Aptana Studio と DB 開発統合

Aptana Studio の Subversion 統合に続きまして、今度は DB 開発系を Aptana に統合してみます。 諸般の事情でスクリーンショットは Eclipse for PHP Developer になっていますが、Aptana でも同様です。 :)

ここでは、DB Viewer プラグインを設定しています。 これで SQL 開発やデータの閲覧を Eclipse 上から統一操作でできるようになります。

Download – DBViewer Plugin for Eclipse 開発プロジェクト – SourceForge.JP

DBViewer Plugin is an Eclipse Plugin as a Database Front end .
It connects with various Databases by way of JDBC Driver,
The function to assume not DB manager (DBA) but developer (Developer) is offered.

インストールは簡単で上記サイトから、 zigen.plugin.db_1.2.2.v20101009.jar など最新版の .jar を取得して、Aptana もしくは PDT の plugins ディレクトリディレクトリに格納して、Eclipse を再起動してください。

また、DB に接続するときに各データベース用の JDBC ドライバが必要になります。 ここでは、WordPress をサンプルにしていますので MySQL 用ということで下記からダウンロードします。

MySQL :: Download Connector/J

MySQL Connector/J is the official JDBC driver for MySQL.

.zip ファイルの中に .jar がありますので、それを分かりやすい位置に配置しておきます。 その他のファイルはここでは不要です。

準備ができたら Eclipse 起動で、DB Viewer のパースペクティブが作成されていますので、前回の SVN のパースペクティブ選択と同じように、右上の Other から選択します。

aptana21

でもって、接続先データベースを新規追加します。(ローカル環境で MySQL が立ち上がっているものとします。)

まずは JDBC ドライバの登録から。 先ほどの Connector/J の .jar をファイルの追加から指定して、適当なデータベース定義名を入力して Finish。

aptana22

次にデータベースの接続先を設定します。 ローカル環境ならホスト 127.0.0.1 でデータベース名を接続文字列で、またユーザ名とパスワードを指定します。

テスト接続でつながったらおめでとうございます。 :)

aptana23

スキーマ選択します。 見たいデータベースだけ設定しておくと便利でしょう。

aptana24

これで設定完了です。

まずは DB ツリービューからぴこぴこすれば内容の閲覧ができることが分かります。 また表示からデータのパッチも可能です。

SQL 開発を行う場合は、SQL 実行ビューで SQL の記述が可能です。 テーブル名などのオートコンプリートや SQL 整形がききますので非常に便利です。

aptana25

ツリーの方からカラム名をとってきて SELECT つくってくれたりもできますね。 :)

aptana26

プラグインをつくるときなど DB 直接アクセスしたりすることもありますが、そんなときのために環境を統合しておくと便利かと思います。 また最近ではカスタム投稿などの動作確認で (wp_)posts の内容がみたいこともありますのでそんな時にも。

WordPress を動かしながらテーブルを覗いていると、あ、カスタム系って post_type とか taxonomy に任意の文字列をいれれるようになったってことなのね、みたいな発見もあると思います。 :)

Aptana Studio と Subversion 統合

Web 開発向けの統合環境に Aptana Studio がありますが、これに Subclipse を入れてバージョン管理を使うお話です。 Eclipse for PHP Developer でも同様にインストールできるはずです。 :)

一応、Web サイトいじりのための Ubuntu (その2) の続きですが、今回は OS があまり関係ないのでタイトル変更。

前回。

Web サイトいじりのための Ubuntu (その2)

前回に引き続きまして、Web サイトいじりのための Ubuntu (その2)です。 WordPress 個人ブログなどをレンタルサーバに持っている方向けの、Ubuntu Tips。 前回は SSH でレンタルサーバに鍵認証で接続して、Nautilus と統合までしましたので、その次に進んでみます。

では張り切って行ってみましょう。

まずは Aptana Studio 3 のインストールから書いてみたいと思います。

実は Studio 3 はまだ beta なのですが、ベースの Eclipse が最新の Helios SR1 のようなのでこちらを選択しています。

Aptana Studio 3 Beta

The professional, open source development tool for the open web

Develop and test your entire web application using a single environment. With support for the latest browser technology specs such as HTML5, CSS3 and JavaScript; and Ruby, Rails, PHP & Python on the server side. We’ve got you covered!

ダウンロードに進んで Standalone 版の.zip を取得します。 オフィシャルでは Windows / Mac OS X / Linux に対応しているようです。 ここでは Linux 版をサンプルに。 他の OS でも同じだと思います。

Eclipse for PHP Developer にしたい方はこちらより。

まずは、適当な場所に .zip を展開。 ~/apps の下にいれてみました。

aptana02

実行ファイルをダブルクリックで起動します。 Linux の場合は AptanaStudio3 というファイルです。

aptana01

これだけでインストール完了です。

Aptana は Eclipse ベースですので、様々な Eclipse のプラグインが動作します。 ここから、Subversion にアクセスするために、Subclipse というプラグインをインストールしていきます。

Help –> Install New Software を選択します。

aptana03

Subclipse の配布アップデートサイトの URL を指定します。

URL 入力後エンターすると選択がでてきますので、Core SVNKit と Subclipse を選択します。 (Windows の方は SVNKit いらないですが、どうも経験的にネイティブ版はつながらないことがあるのでこっちのほうがいいかもです)

aptana04

で、次へ次へくらいで Aptana 再起動後インストール完了です。(途中、署名関係でワーニングがでます。)

起動したら SVN の設定をします。 Window –> Preference から SVN をたどります。 上のテキストボックスに SVN をいれるとフィルターできて便利です。

で、SVN インターフェースを SVNKit (Pure Java) にしてください。 これで Aptana からリポジトリに接続できるようになりました。

aptana04-02

さっそく WordPress のリポジトリに接続してみます。 右上のパースペクティブ選択ボタンから Other を選択します。

aptana05

Eclipse は画面に表示される部品のことをビューと呼び、そのセットのことをパースペクティブと呼びます。 ビューを使いやすいように配置しておいてパースペクティブに記憶させておく感じです。

Subclipse には Subversion アクセスに便利なビューを記憶したパースペクティブがデフォルトでありますのでそれを選択して画面を切り替えます。

aptana06

できたら、 SVN リポジトリビューにリポジトリを追加します。 右クリックから、新規 –> リポジトリ・ロケーションあたりを選択。

aptana07

でもって、リポジトリの URL を入力します。

WordPress の場合は上記になります。

aptana08

Finish 押下。 リポジトリの内容がでてきます。 :)

リポジトリのビューで便利なのが、タグ通しの比較です。 たとえば、3.0.1 と 3.0.2 を選択して「ユニファイド Diff ファイルの生成」。

aptana09

このようにタグ通しを比較して、ファイルの diff もクリックから見ることができます。 何が変更になったのかなというときに役に立ちます。

aptana10

ちなみに、Aptana ではなく Eclipse for PHP Developer (2.2) をお使いの方は上記操作が Nullpointer Exception でおちてしまいます。 これは不具合で現在作成中の 2.2.1 では fix されているようです。

Bug 326227 – Cant doubleclick on file for comparing files in svn commit dialogue

Roy Ganor 2010-10-11 17:45:57 EDT

(In reply to comment #5)
> I have a similar problem on 64-bit Ubuntu running PDT
> 2.2.1.v20100826-1100-53184QAN4IJShLXONIZhXX4Na9Od
>
> Will the fix posted above address all systems?

Please use this update site that includes a fix to this issue:
http://download.eclipse.org/tools/pdt/updates/2.2/milestones

とのことですので、上記アップデートサイトをしていして PDT をマイルストーンビルドにしてしまうといいかもしれません。(ぼくはしました)

では次に、リポジトリからファイルをチェックアウトしてみます。

落としたいタグなどを選択してチェックアウト。 遊びなら trunk (開発版)を落とした方がおもしろいかもですね。

aptana11

「新規プロジェクト~」を選択。

aptana12

PHP なので PHP プロジェクトにします。 PDT の方は PHP->PHPプロジェクトくらいにあります。

aptana13

ここが重要。 もしファイルをそのまま動かしたい場合は、チェックアウト場所を Apache の htdocs 配下にします。 これで、Aptana で修正しながらブラウザで確認できます。

aptana14

ぼくは、~/workspace/htdocs が Apache のドキュメントになっているのでそこを指定しています。 xampp を直で使っている場合は、 /opt/xampp/htdocs の下とかですね。 でもって、フィニッシュ。

チェックアウトが終わったらチェックアウトした場所に普通にファイルがありますので、ディレクトリのアクセス権限とかを指定して、Apache 経由でブラウザからアクセスすれば Hello, WordPress となることでしょう。 :)

aptana15

チェックアウトしたプロジェクトは、右のエクスプローラの右クリックから「Team」配下の操作でいろいろできます。

コアを間違って修正したものを戻したり、プロジェクト全体のタグの向き先をかえたりできます。 また、trunk を落とした場合は日々の WordPress コアチームのコミットがおちてきます。 コミットコメントとかもみれますので、進化が見れて面白いです。

また、Eclipse Mylyn を使うと trac との連携も可能です。

hiromasa.another :o )» Blog Archive » WordPress と Eclipse と

さらに Eclipse には Mylyn という仕組みが備わっていて、ソースコード管理とタスクを結びつけることができます。 タスク、、というのはそう、WordPress Trac。

さて、今回は WordPress のリポジトリを直接指定していますが、自分でつくったリポジトリであるとコミット操作もできるようになりますので、版数管理がとても便利になります。 お客さんに納品した時点のものをタグきったり、差分をとったりですね。

ぼくはローカルサーバの CentOS にリポジトリをたてていますが、いきなりサーバたてるのは結構大変なので、まずはプライベートリポジトリをフリーで貸してくれる assembla とかで試してみるといいかもしれません。

ファイルの管理というのはなかなか神経をつかう上間違いやすいものですので、こういったバージョン管理の仕組みを使うと精神衛生上もよいですね。 よければお試しください。 :)