rnishino

IT翻訳者Blog

翻訳、英語、ローカリゼーション、インターナショナリゼーションなどについて書いています。

16 5月

自分用 URL 短縮サービスを作る: Yourls 編

注:記事内「短縮.jp」は、サーバ契約が終了したためリンクを外してあります(2010/6/27)
----------

Twitter を利用している人であれば、bit.ly や ow.ly といった URL 短縮サービスをご存知であろう。
通常はこういった外部サービスを使うことが多いのだが、自分専用または自社専用の URL 短縮サービスを作ることもできる。これにより、自分のドメイン短縮サービスを提供できる。自ドメインで提供する場合、例えば次のようなメリットがあると思われる。

 ・外部サービスへの依存から脱却できる
 ・ユーザーに安心感を与えられる

前者の場合、突然サービスが停止してしまうといったリスクや、アクセス データを外部サービスに握られてしまうというリスクを回避できる。また、後者の場合、自分しか使えないドメイン名で提供できるので、どこに飛ばされるか分からないという不安感を軽減できる。例えばニューヨーク タイムズは自社の短縮 URL を「nyti.ms」というドメインで提供しているが、これによって読者はジャンプ先がニューヨーク タイムズであることが確認できる。

こういった自分用 URL 短縮サービスを作るには、大きく分けて 2 つの方法がある。

 A. 自分で用意するサーバで提供する(レンタルサーバ、自宅サーバ含む)
 B. 外部インフラを利用する

今回は A で実現する方法について説明する。


◆◆ オープンソース ソフトウェア Yourls ◆◆


サーバにインストールできる URL 短縮サービス ソフトウェアはいくつか存在する。例えば次のサイトで紹介されている。

 9 OpenSource URL shortening apps to make your own services
 7 Open Source And Free URL Shortener Scripts To Create Your Own

本記事では、上記サイトにも紹介されている「Yourls」で試してみたい。ホームページはこちらである。

 YOURLS: Your Own URL Shortener
 http://yourls.org/

Yourls は PHP のオープンソース プログラムで、よくある短縮サービスを Web サーバ上で提供できる。パスワードで保護して自分だけが利用できるようにすることも、パスワードなしで利用できるようにすることもできる。また WordPress のプラグインとも連携し、書いた記事の URL を自動で短縮することもできる。

必要なもの
 ・自分のドメイン。***.com や ***.jp など(1 年間で 500 〜 3,000 円程度で購入可能)
 ・自分の Web サーバ。レンタル サーバでも、自宅/自社サーバでも可

サーバ要件
 ・PHP 4.3 以降
 ・MySQL 4.1 以降
 ・mod_rewrite が有効
(2010 年 5 月 16 日時点の情報。こちらも参照のこと)

必要な知識
 ・初歩的な PHP の表記
 ・MySQL との接続方法
 ・Web サーバの設定方法
 ・独自ドメインの設定方法
 ・外部にサービスを公開する場合は、セキュリティの知識
 ・辞書を使って説明を読める程度の英語力

普段 Web サーバの管理をしたり、PHP を使ったりしている方であれば、非常に容易にインストールして運用できると思う。どちらの知識もほとんどない私でも何とか完了できた。


◆◆ 導入手順 ◆◆


次に導入方法であるが、私自身の行なった手順で説明する。私の環境と異なる部分については、適宜読み替えていただきたい。

今回私は「短縮.jp」という独自ドメインを「チカッパ!」というレンタルサーバで使用した。日本語ドメインを使用した理由は、既存のアルファベットのみのサービスと違っていて面白そうだという点と、日本語で文字数を節約できる(「短縮」は 2 文字)という点である。

この独自ドメインとサーバは連携済みという前提で説明する。

結果を先に示すと、こうなった。
 http://短縮.jp/(リンクは切れ)

これは外部公開ページである。このように外部公開ページを設置することもできるし、自分だけが見られる管理ページのみにすることもできる。


1. Yourls をダウンロードする

Yourls のサイトにアクセスし、[Download] から zip ファイルをダウンロードする。

100516_1


今回は本記事公開時点で最新版の「yourls-1.4.3.zip」をダウンロードした。
ダウンロードしたら、適当な場所に解凍しておく。


2. MySQL を設定する

Yourls のファイルに情報を書き込む必要があるので、まず MySQL の設定をしておく。設定して必要になるのは、次の情報である。
 ・MySQL のユーザー名
 ・パスワード
 ・データベース名
 ・ホスト名

私が使うチカッパ!レンタル サーバーの場合、MySQL でデータベースを作成すると、設定情報が次のように表示される。

100516_2


この写真で、
 ・サーバー(MySQLバージョン): mysql***.chicappa.jp → ホスト名
 ・ユーザー名: OA000*** → MySQL のユーザー名
 ・データベース名: OA000***_nishinotest → データベース名
となる。パスワードは表示されていない。


3. Yourls の config ファイルを設定する

zip ファイルを解凍すると「yourls-1.4.3」というフォルダが出てきたはずだ。この「includes」フォルダの中に「config-sample.php」というファイルがあるので、テキスト エディタなどで開く。

まず、前のステップで作成した MySQL データベースの情報を設定する。下の写真のように、「MySQL settings」エリアにユーザー名、パスワード、データベース名、ホスト名を書き込む。

100516_3


テーブルのプリフィックス(MySQL tables prefix)も設定できるが、今回はデフォルトのままとしておいた。

次にドメイン名などのサイト情報を設定する。config-sample.php ファイルの MySQL 設定エリアの少し下に、「Site options」というエリアがある。次のように書き込んで設定する。

100516_4


私はドメイン名に日本語を使っているため、ファイルは UTF-8 で保存してみた。これで動くには動いたが、サーバやデータベースの文字コードに詳しくないため、最適の方法かどうかは分からない。

管理ページにパスワードを設定する(Private にする)とは、http://<ドメイン名>/admin/ ページにアクセスしたときにパスワードを要求するかどうかということである。この管理ページは、外部公開 Web ページとは別のものなので注意していただきたい。いくら管理ページ(http://<ドメイン名>/admin/)のパスワードを設定しても、外部公開 Web ページ(http://<ドメイン名>/)を設置している場合、第三者に使われる。
とりあえず自分だけで使いたいという場合は、ここでユーザー名とパスワードを設定して true(デフォルト)にし、外部公開 Web ページを設置しないことをお勧めする。

上記の写真以外にもいくつか設定項目があるので、簡単に説明する。
 ・Timezone GMT offset
  タイムゾーンのオフセット。0 のままでも、恐らく MySQL の値を取得する

 ・Allow multiple short URLs for a same long URL
  同一の元 URL に対し、複数の短縮 URL を許可するか

 ・A random secret hash used to encrypt cookies
  クッキー暗号化のためのハッシュ値(私はよく分からない)

さらにこの下に「URL Shortening settings」という設定エリアがある。私はデフォルトのままとしたが、もし必要であればこちらも設定する。
 ・URL shortening method: 36 or 62
  短縮 URL で大文字・小文字を区別する(62)か、しない(32)か

 ・Reserved keywords
  NG ワード。元 URL に含まれている場合、短縮 URL は生成しない

設定を書き込んだら、「config.php」という名前で保存する。
(上記の通り、日本語ドメインを使うのであれば文字コードに注意する必要があるかもしれない)


4.(オプション)外部公開用 Web ページを設定する

もし http://短縮.jp/ のような外部公開用 Web ページを設置する場合、この手順を行なう。公開せずにとりあえず自分だけで使うのであれば、この手順を行なう必要はない。

「yourls-1.4.3」フォルダの直下にある「sample-public-front-page.php.txt」というファイルを開く。
ここでスタイルやタグなどを設定する。ファイルを見れば分かるが、細かな設定をする場合、HTML や PHP プログラミングの知識が必要となる(逆に言えば、それが分かれば高度にカスタマイズしたページを作れる)。
ちなみに私は最低限必要そうな部分のみを残し、余計な機能(Twitter への簡易投稿など)は削除しておいた。

これを「index.php」という名前で保存する。


5. サーバにアップロードする

FTP ツールなどを使用して、「yourls-1.4.3」フォルダの中身を Web サーバにアップロードする。
この際、.htaccess の作成や robots.txt の設定など、各自の要求に合わせて必要な作業を行なう。
(私は Web サーバの設定には明るくないため、この辺りの設定は各自で調べて行なっていただきたい)


6. インストールする

サーバへのアップロードが完了したら、Yourls をインストールする。
まず、ブラウザに「http://<ドメイン名>/admin/」と入力してアクセスする。表示された画面の [Install YOURLS] ボタンをクリックしてインストールする。

100516_5


うまくインストールが完了すると、下のような画面が表示される。[YOURLS Administration Page] というリンクがあるので、それをクリックする。

100516_6


もしすでにインストール済みであるというようなメッセージが表示されたら、「http://<ドメイン名>/admin/」にアクセスしてみる。

ログイン パスワードを設定した場合、ログインすると次のような管理ページが表示される。

100516_7


(デフォルトで 2 つ入っているが、消しても問題ない)


7. 管理ページで使う

上記の管理ページが表示されたら、試しに URL を短縮してみる。
下の例では、自分のブログの URL(http://blog.nishinos.com/)を短縮している。

100516_8


この際、「Custom short URL」に文字を入力すると、自分の好きな文字列を URL に付加できる。
[Shorten The URL] をクリックすると、次のように短縮される。この場合「1」が短縮 URL である。つまり、「http://<ドメイン名>/1」である。私の場合、「http://短縮.jp/1」(リンクは切れ)にアクセスすると「http://blog.nishinos.com/」にジャンプする。

100516_9



8.(オプション)外部公開 Web ページで使う

手順 4 で外部公開 Web ページを設定した場合、上記の管理ページではなく、外部から短縮サービスを利用できる。

私の場合、「http://短縮.jp/」(リンクは切れ)が外部公開 Web ページなので、そこにアクセスしてみる。
ここでは試しに、私のブログ記事の 1 つの URL(http://blog.nishinos.com/archives/2637052.html)を短縮してみる。

100516_a


[短縮] をクリックすると、次のような画面が表示される(これは私が作成した画面なので、各人によって異なる)。自動的に「2」が短縮 URL となっている。

100516_b


また、管理ページ(http://<ドメイン名>/admin/)を見ると、次のように「2」が追加されている。

100516_c





以上が Yourls の設定と使用方法である。

Yourls の設定で不明な点があればコメントをいただきたい。分かる範囲でお答えする。ただ、Web サーバの設定や PHP プログラミングなどは私は分からないので、各自で調べていただきたい。
15 5月

プライバシー問題の Facebook に代わる分散型サービス

Facebook がプライバシー問題で袋叩きにされている。

このプライバシー問題とは、最近 Facebook が加えた変更から発生している。例えば次のような点である。

 ・プロフィール情報がデフォルトで公開されるように規約が変更された
 ・非公開にもできるが、設定が煩雑(「友達まで」「友達の友達まで」など)
 ・プロフィール情報が第三者に勝手に送られる(即時パーソナライゼーション)

Facebook はこれによって他人とのつながり(connect)が簡単にできるようになって便利だと言っている。しかし、批判は高まるばかりで、メディアだけではなく米上院議員が Facebook の社長に書簡送るという事態にまで発展している。


ここで急に注目を浴びているのが Facebook の代わりになるサービスである。

Diaspora
ニューヨークタイムズWired は「Diaspora」を紹介している。これはニューヨーク大学の学生が始めたオープンソースのプロジェクトである。ただしまだ開発中で、利用はできない。
特徴としては、中央のサーバで情報を管理するのではなく、分散型のノードで情報を管理する。各人(各社)のサーバにソフトウェアをインストールしてノードとし、そこで自分の情報を管理できる。




OneSocialWeb
この Diaspora 以外では、上記 Wired や TechCrunch が「OneSocialWeb」というプロジェクトを取り上げている。
こちらもオープンソースで分散型という特徴がある。ビデオを見ると、異なるサイトのユーザー同士を友達としてつなげられるようだ。ベータ版のコードはダウンロードできる。




Appleseed
Wired がもうひとつ取り上げているのが「Appleseed」である。
こちらも同様にオープンソースで分散型で、Appleseed をインストールしたサイト同士で友達関係を作ることができる。コードはできており、ベータ版がダウンロードできる。


いずれのプロジェクトも、データをどこかの中央サーバで管理するのではなく、各人(または各社)のサーバに分散させて管理するところに特徴がある。これによって、ある一社に個人情報を握られるという問題を回避できる。
また、Facebook が批判されているプライバシーにも気を配っている。
13 5月

英語でモバイル アプリを出すべき理由

Android アプリのコンテストである「Android Application Award 2010 Spring」に応募した。会社で開発した「シンプル体重レコーダー」である。アプリケーション自体は非常に簡素なものなので入賞は難しいだろうが、試しに出してみた。

この「シンプル体重レコーダー」のダウンロード数は、すでに 80,000 を超えた。Androlib というサイトの統計情報を見ると、8 万ダウンロード程度だと上位 2〜3% くらいに入りそうだ。これほど多くの人に利用していただけているのは、ありがたいの一言である。しかし、半分素人のプログラマである私が開発したアプリが、なぜここまでダウンロードされたのだろうか?
以前のエントリでいくつか理由を考えたのだが、基本的に今もそれが正しいのではないかと考えている。すなわち、

 1. 英語で作成した
 2. アプリケーションの目的が明確であった
 3. 早い時期に参入した
 4. アップグレードした

という理由である。

この中でも特に重要なのが 1 であると感じている(2 も重要だとは思うが)。
つまり、英語で作成することで、ユーザー数の多いアメリカ人をターゲットにできた点に加え、非英語圏(ドイツなど)で英語が分かるユーザーにもダウンロードしてもらえたのである。英語でアプリケーションを公開するということは、単にネイティブ人口だけがターゲットになるのではない。外国語として英語を教えている国は多いため、こういった層もユーザーになるのである。世界市場を狙えるのは、Android アプリの開発者にとって大きなチャンスである。


ところで 3 月に au が Android 端末を発表したとき、このような発表があった。
「au one Market」の提供開始について

「au one Market」は、auの「Android™搭載スマートフォン」向けに、日本国内のお客さまニーズに最適化されたアプリケーションを集めたマーケットプレイスです。

http://www.kddi.com/corporate/news_release/2010/0330b/besshi.html

日本人のユーザーが使いやすくなることは、いいことだろう。その点に異議はない。しかし問題は、開発者の側である。もし開発者が国内専用マーケットで日本人相手に満足するのであれば、せっかくターゲットにできる世界市場を逃すことになる。「ガラパゴス」のままである。
同様のマーケットはドコモも持っているし、Taosoftware さんのブログによると Vector もマーケットを作るようだ。


ご存知のように、現在 Android 端末はアメリカのみならず、日本でも増え続けている。近い将来、モバイル人口が増え続けている新興国でもかなりの数になるだろう。新興国のモバイル普及を考える上で重要なのは、先進国と同じ普及過程をたどるわけではないという点である。
日本のような先進国の場合、まず電話線や電線のようなインフラが整って有線電話が普及したあと、ここ 20 年ほどの間に携帯電話の基地局が設置され普及した。新興国の場合、有線電話のインフラが整備されてから携帯電話のインフラが整備されるとは限らない。いきなり携帯電話が普及するのである。

例えば、去年「世界で最も革新的な企業」の 50 社に選ばれたインドの VNL 社は太陽電池式の携帯電話基地局を販売している。太陽電池であるため、電線を引いたり発電機を設置する必要はない。当然電話線も要らない。インフラを整えなくても、携帯電話を普及させられるのである。
(ところで VNL の製品紹介がこちらにある。見るとなかなか面白い。)

また 2009 年 9 月にエコノミスト誌に「通信産業:モバイルマネーの威力」という記事が載った。ここではモバイルマネーを活用しているアフリカの例が挙げられている。インフラが整備される前にモバイルが普及し、先進国と遜色ないレベルで活用されているのである。

世界に英語でモバイル アプリを出すというメリットはここにもある。つまり、将来的に、巨大な人口を抱える新興国もターゲットにできる可能性が生まれるのである。


このように、英語でモバイル アプリを開発するメリットは非常に大きい。日本の開発者は国内だけではなく、巨大な海外市場にも目を向けるべきではないか。もし障壁があるとすれば、一番は言葉(たいてい英語)ではないかと感じる。しかし言葉が分からなければ、分かる人を雇えばいいだけのことである。結局、言葉なんて金で解決できる問題なのだ。利益が費用を上回るならばチャレンジを考えるべきだと思う。
★最新刊★
プログラミング英語教本 『プログラミング英語教本』
筆者について
西野 竜太郎
(Ryutaro Nishino)

翻訳者/著者/リンギスト。日本翻訳連盟・理事。
プロフィールや連絡先などについてはこちらをご覧ください。
Twitterアカウント
RSS フィード
著書/訳書
血と汗とピクセル
『血と汗とピクセル』


アプリ翻訳実践入門
『アプリ翻訳実践入門』


ソフトウェアグローバリゼーション入門
インプレス刊
『ソフトウェアグローバリゼーション入門』

達人出版会刊
『ソフトウェア・グローバリゼーション入門』


英語語源が魔術に変わる世界では
『英語語源が魔術に変わる世界では』


現場で困らない! ITエンジニアのための英語リーディング
『IT英語リーディング』


アプリケーションをつくる英語
紙版
『アプリケーションをつくる英語』

電子版
『アプリケーションをつくる英語』
第4回ブクログ大賞受賞】