(2014-05-19追記) 5/16に無事本家サイトが復活したようです.また関連ニュース記事を追加しています.

4/9に datago.jpというサイトを立ち上げました.おかげ様で色々反響がありました.データカタログサイトの問題やdatago.jpについてはdatago.jpについてや下記のメディア等の記事を読んでいただくとして,ここには事の顛末を記録として書いておきます.

私がデータカタログサイト(試行版)(以下,本家サイト)が動いていないことを知ったのは4/2のことでした.その後twitterで植原先生が本家サイトで公開されていたメタデータのCSVを再公開してくださっていることを知ったので,それを使ってデータカタログ部分だけでもクローンサイトを作れないかと考えました.本家サイトのデータカタログ部分が使用しているのはCKANというFLOSSであり,適切なダンプデータがあれば簡単にクローンを作れるからです.データのライセンスもCC BYなので問題ありません.

ところが,ここで公開されているCSVは,私が知る限りCKANが直接吐くことができるファイルではありませんでした.今は植原先生がデータの出処について追記してくださっていますが,このファイルがどう生成されていたのか知りたいところです.この時点で少しやる気がなくなったのですが,翌日4/3にLODI内とOKFJ側双方から,”このデータを使ってサイトを作れないか”という話が出てきました.そこで,その時点で検討していたこと,標準のデータではないので一件ずつ処理してAPI経由で入れないといけないのですぐできるわけではないという旨を説明をした上で,サイトの準備を始めました.

API経由でインポートできるように処理を書いてデータ投入をしましたが,データとしては以下の問題がありました.

  1. 不足部分: 組織データ,リソースのID
  2. CKAN標準でない項目名: publisher, frequency_of_update, release_day, language, copyright, supplementation
  3. タグ: 空のタグや,API経由でインポートできない文字(具体的には%)
  4. 謎文字: ^\-

1の不足部分について,組織データはInternet Archiveに保存されていたページからデータを作りました.また,リソースのIDは知る方法がなかったので諦めました.このためリソースのURIも異なるものになるので,今後本家サイトが復活したときに,例えばリダイレクトして本家サイトに流すという対処はできません.

2のCKAN標準でない項目名について,publisherはmaintainerと解釈しました.また,frequency_of_updateとrelease_dayはextrasに入れてあります.language, copyright, supplementationは入れていません.これらもextrasにいれればよかったのかもしれません.

3のタグと4の謎文字はインポート時に発生していた問題ですが,単純に問題文字を削除しました.具体的には2020年30%というタグがあったのですが,これは2020年30として入れてあります.タグの文字列として記号を受け付けないのはもしかしたらAPI側のバグかもしれません.

知ったのが4/2で公開日が4/9なので,1週間作業していたことになりますが,殆どはデータインポートに費やした時間です.実際には公開した時点では処理が終わっておらず,一旦処理が終了したのは4/10でした.その後うまくデータインポートできていなかった分を追加するなど,まだデータ作業は行っています.

クローンサイトを作るにあたって,我々が有志で行っているData for Japanに入れるという案もありました.Data for Japanは日本のオープンデータのハブという名目で行っているので,本家サイトのデータを入れることは検討すべきことでした.しかし,ここまで述べたようにもとにしたデータが不完全だったことで,今後本家サイトが復活したときにそちらのデータを入れるのにまた苦労をすることが容易に想像できたので,別の一時的なサイトを立ち上げるという判断をしました.

そもそもの話をするとData for Japanに本家サイトのデータを予め取り込んでおけば良かったのですが,旧サイト(http://data.linkedopendata.jp)からData for Japanへの移行を行ったのがそもそも3月末でしたので,そこまでできなかったというのが現状でした.CKANには他のCKANからカタログデータを取り込む仕組みがいくつかあるため,取り込む事自体はそんなに難しくないはずですので,本家サイトが復活したらその方向も考えたいと思っています.

サイト作り自体にはそんなに時間を掛けていません.ソースコードはhttps://github.com/fumi/ckanext-fake-datagojpに置いてあります.少し悲しいのはソース見て何か言ってくる人がいないことですね.こういうところで協働できる人が増えてきて欲しいなとおもいます.

なお,今回の件を受けて,データカタログサイトは行政側がやるのではなく,民間側がやるべきという意見を受けるときがありますが,行政側がデータカタログサイトを運営することには明確な意味があります.それはそのサイトが一次ソースになるということです.当然,民間側でもそのミラーサイト等を作ることはできますが,それは二次ソースでしかありません.

追記: 4/8は裏でHeartbleed対応というイベントもありました.

これはCivic Tech Advent Calendar 2013 22日目の記事です.

12月20日に日本政府のデータカタログサイト試行版(data.go.jp)が公開されました.日本では経済産業省が先行して今年1月にOpen DATA METIを公開しており,CKANをベースに作成されていました.data.go.jpにおいてもデータ以下の部分にCKANが採用されている (図1) とのことなので,data.go.jpを例にCKANについて書こうとおもいます.

図1: data.go.jpのCKAN部分
図1: data.go.jpのCKAN部分

CKANOpen Knowledge Foundationが開発している,オープンソースのデータポータルソフトウェアで,世界中の国や自治体,コミュニティ等に採用されています.データをWeb上に公開するだけならば,Web上にファイル置いてデータの紹介ページを作れば良いのですが,データポータルソフトウェアを使うことで,公開者側はデータの公開や管理をより容易にすることができます.また,利用者側は目的のデータを検索・発見しやすくなりますし,可視化等の汎用的な利活用手段を得ることもできます.

データポータルソフトウェアとして重要な機能はいくつかありますが,最も重要なのはデータカタログです.カタログというとまず図書館のOPAC (Online Public Access Catalogの略です!)を思い浮かべるかもしれません.OPACにはその図書館の蔵書について,書籍名,著者名,出版社,分類番号,所蔵場所等,様々な項目が記述されています.利用者はこれらを検索・閲覧することで興味のある本を発見して,請求番号で請求するなり,所蔵場所に行って実際に本を手にとる等ができます.著者名がわかっている場合は著者名で検索しますし,分類から眺めて本を探すといったこともできます.カタログのシステムというのは,物を説明するのにある程度決まった項目があって,それに応じて検索や絞り込みをすることができ,最終的に対象物のがどこにあるか等,物についての情報が得られるシステムと言えます.

データカタログの項目にはデータの名前,作成者,作成日,ファイル形式,ファイルの場所,ライセンス,分類,といったものが挙げられます.データに関するそれらの項目を予め整備しておくことによって,例えば交通関係でファイル形式がxlsのデータ (図2) といった検索を可能にできるわけです.

図2: 交通関係でxlsファイルのデータ
図2: 交通関係でxlsファイルのデータ

CKANでは,データセットというのが単位となります.データセットが何を表すかは使用者に依存しています.図3は”交通事故の発生状況について_平成24年度”というデータセットです.図3のように,データセットは複数のリソースを持つことができます.リソースとは実際のデータファイルやAPIといったものを指します (Webでいうリソースとは別概念).これはあるデータセットの提供方法がxlsとcsvとAPI提供のように複数ある可能性があるからです.また,データセットは組織に関連付けることができ,組織毎にアクセスコントロール等を設定することが可能です.データセットを分類するために,グループやタグを付与することもできます.

図3: データセット例
図3: データセット例

データセット内の各リソースをクリックすると,リソースの詳細(ファイルサイズ,ライセンス等)を知ることが可能です.特定のファイル形式の場合,リソースのページで汎用の可視化を用いることもできます.残念ながらこの機能はdata.go.jpでは動いていないので,我々が動かしている日本のデータを集めているサイトdata.linkedopendata.jpから,秋田県横手市の避難場所CSVを例として使います.CSVファイルであれば,それをテーブルとして表示してくれますし,データを使ってチャートを描画したり,緯度経度の列を指定することで地図に表示するといった汎用的な可視化が可能です.

図4: 横手市避難場所CSV
図4: 横手市避難場所CSV
図5: 横手市避難場所CSV - Map
図5: 横手市避難場所CSV – Map

データカタログに対してプログラムからアクセスするために,Linked Dataによるアクセスが用意されています.あるデータセットについてのデータをRDF/XMLで欲しい場合は,”Accept: application/rdf+xml”を送るか,URIの最後に.rdfを付けることで取得できます.text/n3でのアクセスもサポートされていますが,現在返ってくるデータには問題があります.以下はcurlでRDF/XMLを取得する例です.

% curl -L -H "Accept: application/rdf+xml" http://www.data.go.jp/data/dataset/npa_07_ds_131126_00000025
<rdf:RDF xmlns:foaf="http://xmlns.com/foaf/0.1/" xmlns:owl="http://www.w3.org/2002/07/owl#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dcat="http://www.w3.org/ns/dcat#" xmlns:dct="http://purl.org/dc/terms/">
  <dcat:Dataset rdf:about="http://www.data.go.jp/data/dataset/npa_07_ds_131126_00000025">
    <owl:sameAs rdf:resource="urn:uuid:fe6c67a1-e990-4346-8324-b7b1d3fc71e8"></owl:sameAs>
    <dct:description></dct:description>
        <dcat:keyword>交通</dcat:keyword>
        <dcat:keyword>交通事故</dcat:keyword>
        <dcat:keyword>統計</dcat:keyword>
    <foaf:homepage rdf:resource="http://www.data.go.jp/data/dataset/npa_07_ds_131126_00000025"></foaf:homepage>
    <rdfs:label>npa_07_ds_131126_00000025</rdfs:label>
    <dct:identifier>npa_07_ds_131126_00000025</dct:identifier>
    <dct:title>交通事故の発生状況について_平成24年度</dct:title>
        <dcat:distribution>
            <dcat:Distribution>
                <dcat:accessURL rdf:resource="http://www.e-stat.go.jp/SG1/estat/Xlsdl.do?sinfid=000019681521"></dcat:accessURL>
                    <dct:format>
                        <dct:IMT>
                            <rdf:value>XLS</rdf:value>
                            <rdfs:label>XLS</rdfs:label>
                        </dct:IMT>
                    </dct:format>
               <dct:title>平成24年中の交通事故の発生状況</dct:title>
            </dcat:Distribution>
        </dcat:distribution>
......

ここでは他のデータカタログと交換できるように,様々な共通語彙が用いられていますが,一つ大きな役割を果たしているのがData Catalog Vocabulary (DCAT)です.これはその名の通りデータカタログソフトウェア間での相互運用性のために設計されている語彙で,W3Cにて策定中です (2013年12月22日現在 Proposed Recommendation).すでに様々な実装があります.

一方で,カタログの検索やデータ管理を行う等の用途のために,APIも用意されています.結果はJSON(あるいはJSONP)で取得できます.以下はコードで検索する例です.[“result”][“results”]の中に検索でヒットしたデータセットが入ってきます.

% curl 'http://www.data.go.jp/data/api/3/action/package_search?q=コード'
{"help": "
........
  "success": true, 
  "result": {"count": 198, "sort": "score desc, metadata_modified desc", "facets": {}, 
    "results": [
       {"owner_org": "c34d69d9-f213-49eb-90de-f1e7ffc8639d",
        "maintainer": null,
        "relationships_as_object": [],
        "private": false,
        "maintainer_email": null,
        "num_tags": 2,
        "id": "132c3f2e-ec18-425f-b605-554aa02d57a9",
        "metadata_created": "2013-12-16T15:35:55.794289",
        "metadata_modified": "2013-12-16T15:35:55.794289",
        "author": "\u9632\u885b\u7701",
        "author_email": null,
        "state": "active",
        "version": null,
        "license_id": "notspecified",
        "type": "dataset",
        "resources": [
          {"resource_group_id": "373299af-7f32-46f3-9edb-96e786c99c24",
           "cache_last_updated": null,
           "revision_timestamp": "2013-12-16T15:35:55.794289",
           "webstore_last_updated": null,
           "file_size": "974K",
           "id": "dfe58d2a-4b38-4c84-b146-755c5eaec5ef",
           "size": null,
           "copyright": "",
           "state": "active",
           "resource_license_id": "CC-BY",
           "hash": "",
           "description": "\uff1c\u5f53\u8a72\u30b3\u30fc\u30c9\u306e\u30b3\u30fc\u30c9\u4f53\u7cfb\uff1e\n\u6841\u6570\uff1a\uff18\u6841\u3000\u2460-\u2461\u2462-\u2463\u2464\u2465\u2466\u2467\u3000\u3000\u3000\u3000\u3000\u3000\u3000\n\u610f\u5473\uff1a\u2460\u767b\u9332\u7a2e\u985e\u5225\u3000\u2461\u2462\u767b\u9332\u90e8\u5c40\u3000\u2463\u304b\u3089\u2467\u9023\u756a\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\n\u4ed6\u306e\u30b3\u30fc\u30c9\u306e\u5229\u7528\uff1a\u7121\u3057", 
           "format": "XLS",
           "tracking_summary": {"total": 0, "recent": 0},
           "mimetype_inner": null,
           "mimetype": null,
           "cache_url": null,
           "name": "\u6709\u8cc7\u683c\u8005\u540d\u7c3f\uff0f\u5317\u6d77\u9053\u9632\u885b\u5c40\uff0f\u5de5\u4e8b",
           "language": "\u65e5\u672c\u8a9e",
           "created": "2013-12-17T00:35:55.865272",
           "url": "http://www.mod.go.jp/epco/dfaa/news/kensetsu/kouji/01_hokkaidou_kouji.xls",
           "webstore_url": null,
           "last_modified": "2013-04-01T00:00:00",
           "position": 0,
           "revision_id": "db0d2755-bfa3-47cc-abe2-3e470b599c6b",
           "resource_type": null,
           "supplementation": ""},
........

APIについてはThe CKAN APIを参照して下さい.また,各言語毎にCKAN API用のライブラリが用意されていることが多いですが,更新されずに古いAPIを使っていることもあるので注意してください.CKAN2.xは様々な機能が追加されているため,APIのバージョンが3になっています.バージョン1及び2は互換性のために残してありますが,CKAN2.xの新しい機能に対応していません.

今回はカタログの機能を中心に書きましたが,CKANには他にデータストアの機能や様々な拡張があります.よりCKANについて知りたい場合は,CKAN’s Documentationgithubのwikiを参照してください (英語).また,CKANについて日本語で情報共有するためにFacebookグループを用意しています.ここではCKANの日本語訳等の活動をしているので,ご興味のある方は参加して頂ければとおもいます.

Facebook上では数ヶ月前から公開していたのですが,ここに書いていなかったので.本当はdebやrpmパッケージ作ると良いとはおもうのですがいまのところgithubからのインストールになります.まだ色々と書きかけで検証不足のところもありますので是非コメントよろしくお願いします.

Twitterを見れば分かるとおり最近RDF Storeの調査をしているのですが、その過程でOntoWikiを使おうとして色々嵌っているので、ログを残しておきます。現在Ubuntu10.04での動作を確認しています。

Virtuosoのインストール

Open Link Virtuosoは複数のデータ形式を統合して扱えるデータベースです。RDF Triple/Quad Storeとしても使え、SPARQLにも対応しています。Open Source版とClosed Source版があり、Closed版ではClusterやSnapshoなどの追加機能があります。ここではOpen Source版を使います。

まずVirtuoso Open Source Editionのインストールです。Ubuntuのrepositoryにあるのが6.1.0で、これだと最新のOntoWikiが不具合起こすので、debian squeezeから最新のソースパッケージ持ってきて再構築しました。


$ wget http://ftp.de.debian.org/debian/pool/main/v/virtuoso-opensource/virtuoso-opensource_6.1.1+dfsg1-1.dsc
$ wget http://ftp.de.debian.org/debian/pool/main/v/virtuoso-opensource/virtuoso-opensource_6.1.1+dfsg1.orig.tar.gz
$ wget http://ftp.de.debian.org/debian/pool/main/v/virtuoso-opensource/virtuoso-opensource_6.1.1+dfsg1-1.diff.gz
$ dpkg-source -x virtuoso-opensource_6.1.1+dfsg1-1.dsc
$ cd virtuoso-opensource-6.1.1

再構築に必要なパッケージをインストールします。

$ aptitude build-dep virtuoso-opensource
$ aptitude install quilt fakeroot

変更点はbuild formatを変えるだけです。changelogとかもそのままでbuildします。

$ echo "3.0 (quilt)" >debian/source/format
$ debuild -us -uc

ライブラリが足りなければ適宜インストールしてください。もし問題がなければ、上のディレクトリに*.debができているのでインストールします。インストール時にデータベースのパスワードを聞かれるので設定します。

$ dpkg -i ../*.deb

次のコマンドで問題なく起動できればインストール完了です。

$ /etc/init.d/virtuoso start

ODBCの設定 (要確認)

NOTE: この設定は必要ないかもしれないので要確認

まずodbcinstをインストールします。

$ aptitude install odbcinst odbcinst1debian1

その後、/etc/odbcinst.ini,odbc.iniを以下のように作成します。

- /etc/odbcinst.ini
[virtuoso-odbc]
Driver  = /usr/lib/odbc/virtodbc.so

- /etc/odbc.ini
[ODBC Data Sources]
VDS  = Virtuoso

[VDS]
Driver  = virtuoso-odbc
Description  = Virtuoso Open-Source Edition
ServerName  = localhost:1111

[VOS]
Driver  = /usr/lib/odbc/virtodbc.so
Description  = Virtuoso OpenSource Edition
Address = localhost:1111

OntoWiki

OntoWIkiはRDF用の閲覧・編集環境です。CMSと言ったほうがいいかもしれません。

とりあえずphp5とapacheの基本的な設定をしておく必要があります。解説を書いている方がたくさんいるので、やり方はググってください。一点追加で必要なのが、php5-odbcのインストールです。

$ sudo aptitude install php5-odbc

php5とapacheをインストールしたら、InstallFromMercurialに書かれている通りに、レポジトリから最新のソースをインストールします。

$ cd /var/www
$ hg clone https://ontowiki.googlecode.com/hg/ owrep
$ cd owrep/ontowiki/src/libraries
$ ln -s ../../../erfurt/src/Erfurt .
$ ln -s ../../../RDFauthor .

$ wget http://framework.zend.com/releases/ZendFramework-1.9.4/ZendFramework-1.9.4-minimal.tar.gz
$ tar xvzf ZendFramework-1.9.4-minimal.tar.gz
$ mv ZendFramework-1.9.4-minimal/library/Zend .
$ rm -rf ZendFramework-1.9.4-minimal.tar.gz ZendFramework-1.9.4-minimal

$ cd /var/www/owrep/ontowiki/src
$ cp htaccess-dist .htaccess
$ cp config.ini-dist config.ini

次にUsingOntoWikiWithVirtuosoを参考にconfig.iniの設定をします。

[private]
store.backend = virtuoso
store.virtuoso.dsn = VOS
store.virtuoso.username = dba
store.virtuoso.password = dba

その後OntoWikiに必要なディレクトリ作成します。


$ mkdir cache log uploads
$ chown www-data:www-data cache log uploads 

Apacheの設定をします。そのままトップに置くのなら/etc/apache2/sites-enabled/000-defaultのDocumentRootと該当Directoryを変更します。

DocumentRoot /var/www/owrep/ontowiki/src
<Directory /var/www/owrep/ontowiki/src>

Apacheを再起動した後、http://localhostにアクセスしてください。問題なければOntoWikiが表示されます。ユーザ名 Admin パスワードなしでログインすると管理画面になります。

Conference Model Demo

FirstStepにConferenceデータのデモの作り方がかかれています。注意する必要があるのは、もしlocalhost以外で動かす場合、Google Maps API Keyの設定が必要です。API Key取得ページで生成した文字列をontowiki/extensions/components/map/component.iniに設定します。

- ontowiki/extensions/components/map/component.ini
apikey.google = "生成した文字列"

初のEvernote本が出たというので買ってみました.結論から言うと,すでにEvernoteを使っている人には必要ない本だと思います.Evernoteそのものの使い方の本なので,今までEvernoteを知らなかった人や,インストールしたけど良く分からなくてそのまま放置してあるという人向けです.そういう方に手にとって頂いて,裾野が広がれば良いなと思います.

もう一つ, EvernoteハンドブックというのがPDFで販売されているようです.

アマゾンのサーバでエラーが起こっているかもしれません。
一度ページを再読み込みしてみてください。

私はずっとFirefoxをメインで使っていましたが,その大きな理由の一つがTomblooでした.以前ブログにも書きましたが,複数のウェブサービスを使っている人には大変役に立つアドオンです.Firefoxがメモリ2GBくらい占有して固まったりとかするのが日常茶飯事になってしまっていて,他ブラウザに移行したいなと思いつつも移行できなかったのはこれがあったからでした.

実はGoogle Chrome Extensionsには,TomblooのChrome版であるTaberarelooというExtensionがあります.しかし,Mac版のChromeではExtensionに正式には対応していなかったので使えませんでした.Windows版では既に試用しており,これが対応すれば移行できるのになと思っていました.

そんな中,やっと昨日の更新でMac版のChromeも正式にExtensionが動くようになったと聞きました.試したところ,Taberarelooもきちんと動くことが確認できました.というわけでしばらくの間Chromeをメインブラウザに指定して使ってみることにします.

さくらインターネットからSharkSpaceに移行するのに一番の問題がMySQLでした.MySQLは4.0と4.1とで文字の扱いが大きく変わっています.また,MySQLの文字の問題は環境によって様々なケースがあり,これをすれば良いという解決方法がありません.きちんと現状を把握して,それぞれの環境に合わせて解決するしかありません.詳しくは日本MySQLユーザ会のWikiを参照してください.ここではMySQL-4.0, 3.X を現在運用しているひとは原則今のままキープ,と言われてしまっています.

色々試行錯誤の結果,私の場合は,”さくらのレンタルサーバで MySQL 4.0 から 5.1 へ移行した記録“が参考になりました.以下に手順を書きます.

まず,私の場合,MySQL4.0の設定はujisでしたが,データ自体はutf8にしていました.そのため,データをそのまま取得する必要があります.そこで,敢えて5.xのmysqldump を使い,–default-character-set=utf8を指定することでうまくいきました.mysqldump-4.0はutf8に対応していないため,5.xのを使う必要があります.実行時に一つ文句を言ってきましたが,問題はないようです.

$ mysqldump --user=user --password=pass --host=db --default-character-set=utf8  dbname > dump

次にdumpファイルの中に記述されている以下の行をsedなどで全部除きます.

SET @saved_cs_client     = @@character_set_client;
SET character_set_client = @saved_cs_client;

その後,dumpファイルの最初に以下の行を加えました.これでdumpをリストアするときの環境をutf8にしてくれます.

SET names utf8;

ここまで準備できたら,SharkSpaceのcPanelでデータベースの設定をします.cPanelは日本語化されているのでやり方はすぐわかると思います.Panel内にデータベースの項目がありますので,そこでデータベースとデータベース用ユーザを作成し,ユーザに権限を与えれば良いです.データベースはusername_hogeというデータベース名であればいくらでも作れます.

また,phpMyAdminで作成したデータベースを選択し,操作 -> 照合順序のところで utf8_general_ci を選択しておきました.

最後にsshでアクセスして,mysqlコマンドでリストアすればOKでした.

$ mysql --user=user --password=pass --host=host dbname < dump

当サイトをSharkSpaceというホスティングサービスに移転完了しました.

さくらインターネットのスタンダードを今まで使っていましたが,色々問題がありました.まず,重かったです.特に管理画面が重く,いつまで待っても編集できないということが良くあったため,更新するのが億劫になっていました.また,自分がさくらを使い始めたときにはMySQL4.0.xしかなかったのですが,WordPress2.9からMySQL4.0をサポートしなくなったので,アップグレードできずにいました.現在さくらでもMySQL5.0.xが使えるのですが,どちらにしろ移行作業をしないといけないので,移転先を探していました.私が望んでいた要件は以下の通りです.

  1. ssh
  2. WordPressの速度
  3. MySQL5
  4. 容量 (Disk・転送)
  5. 価格

1. のsshがなかなか厳しい条件です.何故か未だにsshを提供しない,または条件付きのホスティングサービスが多いのです.sshでアクセスするのは基本だと思うのですが,この条件でかなり選択肢が減ります.国内で且つ低価格でsshを提供するのはさくらかxrea系列くらいです.また,4. Disk容量については,さくらスタンダードの3GBでは足りなかったのと,月の転送量が10GBを越えてきたので,それを余裕を持って上回るものを探す必要がありました.

この条件で探すと国内では割高なので,海外のホスティングサービスを中心に探していました.その中で,安定した評判を得ていたのはBlueHost系列 (BlueHost, HostMonster, FastDomain)でした.値段も6-7USD/monthからと,そこそこです.sshを使うには,アカウント作成後にPhoto ID (パスポートなど)を登録する必要があるというのが面倒ですが,それ以外は良さそうでした.

試しにHostMonsterとかを使ってみようかと思っていたところで,SharkSpaceという,聞いたことのないホスティングサービスを推薦しているサイトを見つけました(海外サーバーコレがイチばん!).読んでみるとなかなか良さそうなことが書いてあるので,海外のホスティングサービスフォーラムとかも見てみたところ,確かに地味に評判が良さそうでした.個人的にはsshがPhoto IDなしでいけそうだというところと,値段が安いことに惹かれて,使ってみることにしました.

値段は,真ん中のHammerheadコースの2年契約だと7.95USD/月(190.80USD/2年)なんですが,50%offクーポン(クーポンコード: 50offlife)があるので,3.975USD/月(95.4USD/2年)になります.今1USD=90JPYなので,大体360円/月です.これは安い.これでDisk容量が20GB,データ転送が500GBあります.PHPもモジュールで動きます.さくらのようにCGIモードではありません.

契約してわかったことですが,残念ながらsshを使うにはやはりPhoto IDが必要でした.仕方がないのでiPhoneでIDを写真に撮って,手続きしました.5分程ほどでsshアクセスできるようにしてくれたので,応対は良いですね.

今のところ,不満点はPhoto IDだけで,それ以外はかなり快適に使っています.まだcronで動かしているスクリプトがあるのでしばらくさくらも使いますが,少しずつ移していこうと思っています.

以下は参考サイトです.実際のMySQLの移転作業については別途まとめます.

Mercurial設定最近Flex Builderを使っているのですが,最初から対応しているバージョン管理システムがCVSしかないなくて困っていました.Flex BuilderはEclipseがベースなのでEclipse用のプラグインが動くはずだと思い,いじっていたら動いたようなので書いておきます.

まずMercurial Eclipseのサイトを見るとSoftware updateを使えと書かれていますが,Flex BuilderはSoftware updateのメニューが消してありますので使えません.そこで直接jarファイルをPluginsのページからダウンロードします.ダウンロードしたjarをFlex Builderのpluginsディレクトリ(Macなら”アプリケーション”→”Adobe Flex Builder 3″→plugins)に置いた後,Flex Builderを起動します.

ショートカット - 新規
起動後にMercurialの設定について聞かれますので,hgやgpgの場所などの設定をします.私の場合はfinkでMercurialを入れてあるので,それぞれ/sw/bin/hg,/sw/bin/gpgとしました.後は”パースペクティブの設定”→”新規”,”ビューの表示”でMecurialにチェックを入れれば設定完了です.

Mercurialで管理するためには,管理下に置きたいプロジェクトを右クリック→”チーム”→”プロジェクトの共用”→”Mercurial”で設定した後に,”チーム”→”Commit”で管理したいファイルをコミットすれば良いです.