9月 19

頭で考えたことを、出力(アウトプット)する。いつの時代も大事なことだ。しかし、このアウトプットすることは、なかなか難しく、時間のかかることだ。

「アウトプットする」というセンテンスには、頭の中で物事を整理して、どのように表現するのかを考えて、実際に媒体に記述し、体裁を整えるという作業やニュアンスが含まれていると思う。(人によって、若干定義が違うかもしれないが)

このプロセスを分類すると

<頭の中で行うこと>

  • 頭の中で物事を整理
  • どのように表現するのかを考えて

<手などを使って行う作業>

  • 媒体に記述
  • 体裁を整える

に分けることが出来るだろう。

この「アウトプットする」という作業の中で「媒体に記述」という作業の効率化が出来ると、アウトプットされるまでの平均時間は短くなる。

「媒体に記述」する作業の具体的内容は、ペンで紙に書く、PCなどの電子デバイスならキーボード入力や音声入力などの方法がある。

それぞれの特徴は

<紙に記述する(手書き)>

紙に記述する。これは、人間が文字を作って以来の伝統的な方法。なんと言っても、生まれて以降やっているから慣れているし、文字、図表などを思ったままを表現可能。

<電子デバイスに入力する>

電子デバイスに入力する。最近の生まれてきた人には、生まれた時からパソコン、携帯電話、スマートフォンがあるので、紙と同様に慣れていることだろう。

しかし、生まれた時にパソコンなどのキーボードが無かった世代からすると、手書きが早い場合もある。キーボード入力がいくら早くなっても、図などは手書きの方が早かったりもする。アウトプットするアプリケーションにも依存するかもしれないが。

さて、紙に記述する場合(手書き)とキーボード入力は、どちらが早いのか?というと、デバイスとアプリケーションに依存する傾向がある。僕が使うデバイスとアプリにわけて考えてみたい。

デバイス&アプリ別の入力区分

Mac or Linux or Windows

<文書系/表計算系アプリ>
断然キーボード入力の方が手書きよりも早くかける(打てる)

<Draw系アプリ(マウス利用が多いアプリ)>
ペン型の入力デバイスの方が早い&書きやすい

iPhone

これは断然、手書き入力の方が早い。テンキーでの入力は文字を打つ回数が多いこと、キーボードの場合は、キーボードが小さいので間違える確立が高い。

要するにiPhoneへの入力が面倒という状態だ。あと、Macなどのパソコンでマウスを利用することが多いアプリの場合は、手書きをした方が早いし、自由度も大きく書きやすい。

今回は移動時に利用することが多いiphoneの入力について検討。

7notes mini for iphone

iphoneで手書き系ソフトを試してみた。その中で最高だったものが「7notes mini for iphone」だ。

良い点
  • 手書き文字の認識率が予想以上に高い
  • 外部連携出来るアプリが多い
  • 保存するファイル形式が多い
不満点
  • いまのところない→これは凄い。アプリで不満なところがないなんて!
実際の画面

<入力画面(Convertモード)>

実際の入力画面(Convertモード)は、こんな感じ。緑のところに手書きすると文字認識後、テキスト変換される。

<入力画面(keyboardモード)>

iPhoneのキーボードが表示される。

<入力画面(strokeモード)>

入力領域がグレーっぽい色に変わる。手書きをそのまま記録する場合に利用ですね。

<文字変換(英数字)>

けこの程度の文字で認識してくれる。

<文字変換(ひらがな)>

認識率は、抜群に高いと思う。認識さえ出来れば、自動的に漢字変換も行われる。因みに、ひらがなを認識さえ出来れば、漢字変換してくれる。この当たりの変換は流石にATOKをやっていた人だけのことはある。

<文字変換(漢字)>

漢字も認識率が良い方だと思いますよ。当然、手書きの字は綺麗に書いた方が認識されやすいですよ。

<後から変換>

strokeモード(手書き)で入力した後から文字認識させることも出来る。急いでいる場合には、取り敢えず手書きでどんどん書いておいて、後からゆっくり変換していけるのは良い。会議やカンファレンスなどの時に便利に使える。

<外部連携>

メール、twitter、Facebookなどのコミュニケーションやソーシャルアプリと連携が可能。

<保存形式>

「アプリケーションに送る」を選択すると、保存するファイル形式が聞かれる。これだけ対応していれば大体問題はないだろう。

<対応アプリケーション>

送信できるアプリケーションは、EvernoteとDropboxだ。これまた、この2つがあれば大概OKだろう。僕の場合は、これだけあればOKです。

タッチペン(プリンストンテクノロジー PIP-TP2 Touch Pen)

手書きに拘れば、当然ペンが必要になる。ペンはプリンストンテクノロジーの「PIP-TP2 Touch Pen」を導入してみた。

PIP-TP2 Touch Pen

<良い点>

  • iphoneとの相性はバッチリ
  • スクリーン上での滑りが良い

<今ひとつな点>

  • ペン先のシリコンゴムが少々柔らかすぎる感じがする。これは個人差があるので、あくまでも僕の場合。

まとめ

  • 外出時のちょっとしたメモを作成するのは、これ以上の組合せは少ないと思う。
  • 7notes mini for iphone の手書き文字の認識率が意外と高い
  • 欲を言うと手書きの図を描けるといいかも。(これは別アプリですかね)
  • 入力する機能と変換する機能は最高!
  • タッチペンを使うと更に手書き感が高まり、スピードが速くなる。
  • まさに紙に書いている感覚に近い。

とまあ、こんな感じで電車などで移動している時のiPhoneへの入力作業が効率化されて非常に重宝していますよ!というお話でした。

9月 14

技術メモです。興味の人はスルーで。

Google Map Java Script Version 3 でルートマップを書く時のwaitpointsの使い方です。

Google のドキュメントには

DirectionsWaypoint オブジェクトの仕様

DirectionsWaypoint は、旅程の途中で立ち寄る出発地点と到着地点間の場所を示します。
プロパティ

プロパティ タイプ 説明
Location LatLng | string ウェイポイントの場所。住所文字列または LatLng を指定できます。省略可能です。
 stopover  boolean true の場合、このウェイポイントは出発地点と到着地点間の停止地点であることを示します。これにより、ルートが 2 つに分割されます。この値はデフォルトで true です。省略可能です。

とあります。

上記の「location」はLatLng と string が指定可能。

LatLngの実際の書き方は

new google.maps.LatLng(36.68579,138.774447)

のようになります。

string は、google map に登録されている名称なら解析をしてくれる。

具体的なコードは以下のようになる。

	var start = "横浜駅";
	var end = "横浜駅";
	var request = {
		origin:start,
		destination:end,
		waypoints: [
			{location:"中之条駅,日本", stopover:true},
			{location:new google.maps.LatLng(36.68579,138.774447),stopover:true},
			{location:"長岡駅,日本",stopover:true},
			{location:"新津駅,日本",stopover:true},
			{location:"喜多方駅,日本",stopover:true},
			{location:"米沢駅,日本",stopover:true}
		],
		travelMode: google.maps.DirectionsTravelMode.DRIVING
	};

	directionsService.route(request, function(result, status) {
		if (status == google.maps.DirectionsStatus.OK) {
			directionsDisplay.setDirections(result);
		}
  });

これを実際に表示すると

Google Maps JavaScript API v3 Example: Directions Simple_1315984275770

とまあ、こんな感じで waitpoints をふやせば、実際にドライブした経路を表示出来るようになりますな。

上記のコードだけでは動かないので実際に動くコードも書いておきます。

<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="initial-scale=1.0, user-scalable=no"/>
<meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
<title>Google Maps JavaScript API v3 Example: Directions Simple</title>
<link href="http://code.google.com/apis/maps/documentation/javascript/examples/default.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?sensor=false"></script>
<script type="text/javascript">

var directionDisplay;
var directionsService = new google.maps.DirectionsService();
var map;

function initialize() {
directionsDisplay = new google.maps.DirectionsRenderer();
var center_point = new google.maps.LatLng(36.416126, 139.405518);
var myOptions = {
zoom:7,
mapTypeId: google.maps.MapTypeId.ROADMAP,
center: center_point
}
map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
directionsDisplay.setMap(map);

var start = "横浜駅";
var end = "横浜駅";
var request = {
origin:start,
destination:end,
waypoints: [
{location:"中之条駅,日本", stopover:true},
{location:new google.maps.LatLng(36.68579,138.774447),stopover:true},
{location:"長岡駅,日本",stopover:true},
{location:"新津駅,日本",stopover:true},
{location:"喜多方駅,日本",stopover:true},
{location:"米沢駅,日本",stopover:true}
],
travelMode: google.maps.DirectionsTravelMode.DRIVING
};

directionsService.route(request, function(result, status) {
if (status == google.maps.DirectionsStatus.OK) {
directionsDisplay.setDirections(result);
}
});
}
</script>
</head>
<body onload="initialize()">
<div id="map_canvas" style="width:500px; height:380px"></div>
</body>
</html>

という感じです。

9月 01

技術メモなので、読み飛ばして下さいなと。

アプリケーションの日本語化する方法

コマンド(msgfmt)ベースで翻訳ファイルを作成する方法です。

環境

OS : Debian 6.0.2

gettextのインストール
# apt-get install gettext
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
以下の特別パッケージがインストールされます:
autopoint libunistring0
提案パッケージ:
gettext-doc
以下のパッケージが新たにインストールされます:
autopoint gettext libunistring0
アップグレード: 0 個、新規インストール: 3 個、削除: 0 個、保留: 2 個。
3,032 kB のアーカイブを取得する必要があります。
この操作後に追加で 8,892 kB のディスク容量が消費されます。
続行しますか [Y/n]? y
取得:1 http://ftp.riken.jp/Linux/debian/debian/ squeeze/main autopoint all 0.18.1.1-3 [627 kB]
取得:2 http://ftp.riken.jp/Linux/debian/debian/ squeeze/main libunistring0 i386 0.9.3-3 [433 kB]
取得:3 http://ftp.riken.jp/Linux/debian/debian/ squeeze/main gettext i386 0.18.1.1-3 [1,973 kB]
3,032 kB を 1秒 で取得しました (2,982 kB/s)
未選択パッケージ autopoint を選択しています。
(データベースを読み込んでいます ... 現在 131391 個のファイルとディレクトリがインストールされています。)
(.../autopoint_0.18.1.1-3_all.deb から) autopoint を展開しています...
未選択パッケージ libunistring0 を選択しています。
(.../libunistring0_0.9.3-3_i386.deb から) libunistring0 を展開しています...
未選択パッケージ gettext を選択しています。
(.../gettext_0.18.1.1-3_i386.deb から) gettext を展開しています...
man-db のトリガを処理しています ...
install-info のトリガを処理しています ...
autopoint (0.18.1.1-3) を設定しています ...
libunistring0 (0.9.3-3) を設定しています ...
gettext (0.18.1.1-3) を設定しています ...
#
msgfmtの実施
$ msgfmt -o 出力ファイル名 .mo 翻訳ファイル名.po
参照先

GUN gettext
Gettextによるウェブアプリケーションの国際化と地域化

Tagged with:
8月 25

WordPressをSNS化するPluginに「BuddyPress」があります。

BuddyPress

BuddyPress.org_1314260671264

普通(?)、WordPressをマルチサイトにしてBuddyPressをインストールすることが多いようです。
インターネットで検索するとマルチサイトのインストール方法の掲載記事は多いのですが、シングルサイトでのインストール方法がなかなか見つからない。

そんな訳で、WordPressのシングルサイトという条件でのBuddyPressのインストール方法です。

インストール環境

Debian : 6.0.2
Apache : 2.2
MySQL : 5.1.49
web root directory : /var/www/
WordPress : 3.2.1
BuddyPress : 1.2.9

mod_rewriteの有効化

apacheのmod_rewriteがインストールされている必要があります。

apache2でモジュールの状態を確認して下さい。

# apache2ctl -M
Loaded Modules:
rewrite_module (shared)
Syntax OK
#

rewrite_module(shared)が表示されていればOKです。

もしも上記が表示されない場合は

# /usr/sbin/a2enmod rewrite

で有効にして下さい。

WordPressのインストール

これは普通にWordPressをインストールして下さい。

BuddyPressのダウンロードと有効化

WordPressの管理画面よりBuddypressのダウンロードと有効化をします。

プラグインのインストール ‹ 旅プラン — WordPress_1314263357448

BuddyPress 1.2.9 をインストールです!

プラグインインストール ‹ 旅プラン — WordPress_1314263371017

プラグインを有効化して下さい。

日本語化モジュールのインストール

BuddyPress日本語
BuddyPress 日本語 → Home_1314261206966

の「BuddyPress日本語版作成チーム」の「Googleグループ」をクリックして日本語モジュールのダウンロードサイトへ。

(BuddyPress担当) WordPress 日本語版作成チーム | Google グループ_1314260546045

上記をクリックしてダウンロードして下さい。

buddypress-ja-files.zip というファイルがダウンロードされます。
このファイルを解凍すると

$ ls -l
合計 2848
-rw-r--r-- 1 hyamazak hyamazak   2307 2011-08-22 22:54 bp_logo s.gif
-rw-r--r-- 1 hyamazak hyamazak  88614 2011-08-22 22:54 buddypress-123-ja.mo
-rw-r--r-- 1 hyamazak hyamazak 236459 2011-08-22 22:54 buddypress-123-ja.po
-rw-r--r-- 1 hyamazak hyamazak  81880 2011-08-22 22:54 buddypress-1241-20106027-ja.mo
-rw-r--r-- 1 hyamazak hyamazak 146275 2011-08-22 22:54 buddypress-1241-20106027-ja.po
-rw-r--r-- 1 hyamazak hyamazak 141801 2011-08-22 22:54 buddypress-1260-20101104-ja.po
-rw-r--r-- 1 hyamazak hyamazak  89319 2011-08-22 22:54 buddypress100-ja-20090501.mo
-rw-r--r-- 1 hyamazak hyamazak 154052 2011-08-22 22:54 buddypress100-ja-20090501.po
-rw-r--r-- 1 hyamazak hyamazak 154674 2011-08-22 22:54 buddypress100-ja-orig.po
-rw-r--r-- 1 hyamazak hyamazak  89871 2011-08-22 22:54 buddypress100-ja.mo
-rw-r--r-- 1 hyamazak hyamazak 154517 2011-08-22 22:54 buddypress100-ja.po
-rw-r--r-- 1 hyamazak hyamazak  50321 2011-08-22 22:54 buddypress101-ja.tar.bz2
-rw-r--r-- 1 hyamazak hyamazak 154846 2011-08-22 22:54 buddypress10x-ja-orig.po
-rw-r--r-- 1 hyamazak hyamazak  89937 2011-08-22 22:54 buddypress10x-ja.mo
-rw-r--r-- 1 hyamazak hyamazak 154379 2011-08-22 22:54 buddypress10x-ja.po
-rw-r--r-- 1 hyamazak hyamazak 123593 2011-08-22 22:54 buddypress120-20100222-ja.mo
-rw-r--r-- 1 hyamazak hyamazak 307985 2011-08-22 22:54 buddypress120-20100222-ja.po
-rw-r--r-- 1 hyamazak hyamazak 171298 2011-08-22 22:54 buddypress120-ja.mo
-rw-r--r-- 1 hyamazak hyamazak 330021 2011-08-22 22:54 buddypress120-ja.po
$ ls -s

上記の中の一番数字が大きい mo のファイルを wp-content/plugins/buddypress/bp-languagesへ buddypress-ja.mo の名称でコピーします。

WordPress管理画面で日本語化されていることを確認して下さい。下のように日本語されていればOKです!
一般設定 ‹ 旅プラン — WordPress_1314262479403

パーマリンク構造の変更

一般設定 ‹ — WordPress_1314263522575

パーマリンクを変更しろ!とメッセージが出る。

パーマリンク設定 ‹ 旅プラン — WordPress_1314263539644

パーマリンク構造をデフォルト以外をチェックして「変更を保存」を押す!

.htaccessの設定

WordPressをインストールしたディレクトリの .htaccess の内容を以下のように変更して下さい。

# BEGIN WordPress
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# END WordPress

WordPressの一般設定

一般設定 ‹  — WordPress_1314262143921

メンバーシップをチェックして下さい。

確認

サイトのURLをたたいてサイトが表示されるのかを確認して下さい

ホーム_1314262846806

とまあ、こんな感じです。次は、どんなCommunityでどんな機能を提供するのかなどのSNS(BuddyPress)の設定です。
また、詳しく確認出来たときに、レポート書きたいと思います。

Tagged with:
8月 25

DebianのApache2.2でLoadしたモジュールの確認方法

どうも物忘れが激しいのでメモです。

apache2ctlのスクリプトに -M の引数です。

# apache2ctl -M
Loaded Modules:
 core_module (static)
 log_config_module (static)
 logio_module (static)
 mpm_prefork_module (static)
 http_module (static)
 so_module (static)
 alias_module (shared)
 auth_basic_module (shared)
 authn_file_module (shared)
 authz_default_module (shared)
 authz_groupfile_module (shared)
 authz_host_module (shared)
 authz_user_module (shared)
 autoindex_module (shared)
 cgi_module (shared)
 deflate_module (shared)
 dir_module (shared)
 env_module (shared)
 mime_module (shared)
 negotiation_module (shared)
 php5_module (shared)
 reqtimeout_module (shared)
 rewrite_module (shared)
 setenvif_module (shared)
 status_module (shared)
Syntax OK

因みに help を参照すると

# apache2ctl -h
Usage: /usr/sbin/apache2 [-D name] [-d directory] [-f file]
                         [-C "directive"] [-c "directive"]
                         [-k start|restart|graceful|graceful-stop|stop]
                         [-v] [-V] [-h] [-l] [-L] [-t] [-S] [-X]
Options:
  -D name            : define a name for use in <IfDefine name> directives
  -d directory       : specify an alternate initial ServerRoot
  -f file            : specify an alternate ServerConfigFile
  -C "directive"     : process directive before reading config files
  -c "directive"     : process directive after reading config files
  -e level           : show startup errors of level (see LogLevel)
  -E file            : log startup errors to file
  -v                 : show version number
  -V                 : show compile settings
  -h                 : list available command line options (this page)
  -l                 : list compiled in modules
  -L                 : list available configuration directives
  -t -D DUMP_VHOSTS  : show parsed settings (currently only vhost settings)
  -S                 : a synonym for -t -D DUMP_VHOSTS
  -t -D DUMP_MODULES : show all loaded modules
  -M                 : a synonym for -t -D DUMP_MODULES
  -t                 : run syntax check for config files
  -X                 : debug mode (only one worker, do not detach)
Action '-h' failed.
The Apache error log may have more information.
#

てな感じ。調べるのに30分も費やしてしまった・・・。

Tagged with:
8月 24

モバイル環境を更新です。

E-Mobile GP-02 #1

E-Mobile の GP-02 を導入しました。

これで、外出時のPCでの作業が捗ります。

因みに、ヨドバシの横浜マルチメディア館でE-Mobileに加入したのですが、あやうくいろんなモノを一緒に買わされそうになりました。

E-Mobileの携帯電話

データ通信を契約すると、E-Mobileの携帯電話機が付いてくると言われて、何の話だ???と途方にくれる。

よ〜く、話を聞くと、端末代金1円で、E-Mobileの携帯電話機が導入出来て、E-Mobile同士の通話料金は無料と。通話をしなければ通話料金、基本料金は無料だと。ただし、E-Mobile以外へ電話した場合は、通話料金が発生すると。

上記の内容から

  • 端末料金1円で携帯電話を導入させる
  • 携帯電話機を持っていれば、結局E-Mobile以外にも通話するはず
  • E-Mobile以外に通話をすれば、通話料金が発生する
  • 発生した通話料金の数%が代理店へのバックマージンとして支払われる

という仕組みと推測出来る。E-Mobileの代理店の収益向上のキャンペーンのようですね。

通話料金が定額

ついでに、定額料金を払うと通話料金が定額になると・・・。

どちらも、いらない!で断ってきましたが、携帯電話の代理店もいろいろ大変そうです。

8月 23

MySQLの日本語のエラーメッセージを表示するためには

/etc/mysql/my.cnf

[client]
port		= 3306
socket		= /var/run/mysqld/mysqld.sock
default-character-set=utf8

[mysqld]
default-character-set=utf8
# language    = /usr/share/mysql/english
language        = /usr/share/mysql/japanese <- ここを追加

[mysql]
default-character-set =utf8

で動作すると思うのだが、残念ながら、この設定では文字化けが発生する。

理由は
MySQLが提供しているエラーメッセージの文字コードにある。

/usr/share/mysql/errmsg.txt

japanese=jpn ujis
japanese-sjis=jps sjis

と書かれいる。要するに euc-jp と sjis しかサポートされていないからだ。なぜか utf-8 はサポートされていない。
もういい加減 utf-8 もサポートしてほしいものだが。。。

ということで、utf-8 でシステムを運用する場合は、エラーメッセージは英語にしておいたほうが良いです。

8月 21

週末に、LinkShareの勉強会に参加した。LinkShareは、みなさんご存知のアフェリエイトのASP。

その勉強会の中で、ドメイン取ってWordPressやMovableTypeなどのCMSでサイトを運営しましょう!という話が出てきた。

流石に簡単とまでは言っていないが、月数万円を稼ぐにはそれぐらの投資と気合いが必要だ!という感じだった。

勉強会に参加していた人でコンピュータ関係の仕事をしている人もいただろうが、そうでもなさそうな人がかなり多かった気がする。

WordPressはPHP、MovableTypeはPerlでベースが出来ている。いわゆるLL言語やCSSやHTMLなどの言語で構成されている。

もう、かなりの時間コンピュータ関係の仕事をして、開発もかなりの間してきた感覚からすると、仕事で開発やプログラミングをしている人以外も、プログラミングの知識がないとついて行けない時代がもうそこまで来ているのかな〜って感じを受けた。

最近のつきあいが広がっている若い世代ならば、生まれた時から身近にパソコンや携帯電話などのデジタルデバイスがあるという環境に育っているので、まだ、感覚的にプログラミングも理解出来るかもしれないが、30代以上で全くコンピュータには関係のない世界にいる人には、概念をつかんで実際の効果を出すのは相当厳しいような感じがしないでもない。

コンピュータの世界もかなり奥が深い。コンピュータ言語だけをおぼえれば、はい!それでおしまいとはいかない。Serverの知識、文字コードの知識、データベースの知識、通信の知識などなど、勉強をすればする程、山頂が遠くなる感じの世界だ。

アフェリエイトの世界は、広告主側は増加傾向で、アフェリエーターの数は、この2年ぐらいで低下傾向にあるそうだ。今がチャンス!とセミナーの講師の人は言っていた。確かに一理はあるが、ある一定の金額以上を稼ぐには、それなりの知識が要求されて来ていて、その知識を得てまでアフェリエイトに時間をかけていられないという理由でアフェリエーターの数が減少しているのではないだろうか。

趣味で稼げる時代は終わって、副業としてもかなり勉強と研究をしていかないとならない時代に入ってきたという感覚だろうか。

何かを表現する時や、今回のアフェリエイトでもそうだが、インターネット上で表現や稼ぐには、プログラミングの知識があると無いでは圧倒的に差が出るのも確か。

英語とプログラミングを始めとするコンピュータの知識は、これからの時代に必須の知識になっていくのだろうな〜と、講習を聞きながら思ったというお話でした。

Tagged with:
preload preload preload