2009年7月31日金曜日

お引っ越ししました。

結局自分でCMS作ってます。お引っ越し。

サイトはこちら。EHACO.net

Google App Engineというサーバー上にPythonで作ってます。

暇見つけつつ作ってますが、ある程度完成したらソースも公開しようかと。

2009年6月26日金曜日

WindowsとMacでイメージを崩さないフォントの対応表

フォントの話。

今まであんまり気にしてなかったんですが。
…社内向けのサイトが多かったかr(言い訳

サイトで使われるフォントは、大きく分けて以下のものがあります。
  • serif
  • sans-serif
  • cursive
  • fantasy
  • monospace
大体の感覚では、serifがゴシック、sans-serifが明朝、cursiveが筆記体、fantasyが飾り文字、monospaceが等幅。
ただ、あくまでこれは分類で、実際にはものすごい量のフォントがあります。

問題は、フォントはサイズがでかくて、OSによってインストールされているものが違う、ということ。

OSやソフト構成によって数や種類が違うのは、フォントは「値段が高いソフトウェア」だからです。
特に無料で配布されているLinuxはかなりひどいです。種類も数も少ない。

とりあえず、WindowsとMac OS Xでくらいは同じような雰囲気で表示したいので。
ちょっと対応表を作ってみました。

ただしあくまで主観なので、ご利用は自己判断で。
英文、和文混在ですので、CSSでは両方指定しとくと吉。


Serif(明朝体)


WindowsMac OS X
MS P明朝ヒラギノ明朝 Pro W3
Times New RomanTimes
GeorgiaGeorgia


Sans-serif(ゴシック)


WindowsMac OS X
MS PゴシックOsaka
MS Pゴシックヒラギノ角ゴ Pro W3
ArialArial
VerdanaVerdana
Trebuchet MSTrebuchet MS
Andale MonoAndale Mono


Fantasy(飾り文字)


WindowsMac OS X
ImpactImpact
Comic Sans MSComic Sans MS


他にも気づいたら追加しようかな。

ちなみに、以下のものはWindowsとMac OS Xの両方に添付されるフォントです。
  • Andale Mono
  • Arial
  • Comic Sans MS
  • Courier New
  • Georgia
  • Impact
  • Times New Roman
  • Trebuchet MS
  • Verdana
  • Webdings
コアフォントと呼ばれ、AppleとMicrosoftがフォントに関するライセンスを結んで実現したものだそうです。
…まあ、全部英文フォントですが。


参考資料。
http://support.apple.com/kb/HT1538?viewlocale=ja_JP
http://support.microsoft.com/kb/837463/ja
http://www.aboutfont.com/trouble/osfont.html

2009年6月19日金曜日

[ Linux/Windows/Mac ] vimのバックアップ(~)ファイルとスワップ(swp)ファイルの設定方法

備忘録。

vimはデフォルトで、編集ファイルと同じ場所に2つのファイルを作成します。
swpファイルと~ファイル。どちらもファイルと同じ名前がつきます。
それぞれの役割と、その設定方法。

一つは拡張子が.swpのファイル。これはスワップファイル。
これはファイルの編集が終わると消えるファイルで、vimがクラッシュした時の復元機能を担います。

これの設定。
"スワップを有効
set swapfile

"スワップファイルの生成フォルダ指定
set directory=C:\tmp

"スワップファイルを作成しない
set noswapfile



次がファイル名~というファイル。これはバックアップです。
ファイルを保存するときに1世代前のファイルをバックアップします。

設定はこれ。
"バックアップを有効
set backup

"バックアップファイルの生成フォルダ指定
set backupdir=C:\tmp

"バックアップファイルを作成しない
set nobackup


こんなもんかな。ちなみに私の設定は、
set directory=C:\tmp
set nobackup
になってます。参考までに。

2009年6月17日水曜日

[ GAE ] GAEのテンプレート機能をテンプレートファイル無しで使う方法

GAEのテンプレート機能を、テンプレートファイル無しで使う方法。

普通はこんな感じ。
from google.appengine.ext.webapp import template
# -- 省略 --

tmp_val = {
'my_name' : 'Yumitsuka Sakito',
'my_site' : 'http://www.ehaco.net'
}
path = os.path.join(os.path.dirname(__file__), 'tmp/template.html')
self.response.out.write(template.render(path, tmp_val))


Pythonには辞書型配列という機能があって、「 名前 : 内容 」形式で宣言します。
まあ詳しくは他のサイトを見てください。

これをテンプレートに送り込めば、自動的に名前を探して画面に取り込んでくれます。

ただ、このtemplate.render()関数、ファイルパスを指定するので、ファイルしか使えません。
文字列をテンプレートに使用したい場合は、以下のようにします。

from django.template import Context, Template

# -- 省略 --

tmp_val = {
'my_name' : 'Yumitsuka Sakito',
'my_site' : 'http://www.ehaco.net'
}
t = Template('Hello. My name is {{ my_name }}. My site is {{ my_site }}!!')
self.response.out.write( t.render( Context(tmp_val) ) )



…別に変なことはしていません。
Djangoのクラスをインポートして使っているだけです。

つまり、その他にも使えるものがありそうだ、ということ。
色々使いこなす余地が出てきますね。

2009年6月10日水曜日

au新機種。

自分がauだから、KDDIの新機種情報しか(あまり)見ないのですが。

どっかで今年の夏にauのAndroid携帯出るって言ってなかったっけ?
まあウソだとしても、せめて正式発表くらいほしかったなぁ。

docomoはもう出してるし、SoftBankもiPhoneがあるし。
いまさらWindows Mobile携帯出されても、何の面白みもないっすよKDDI。


また先越されるじゃん、ばかー。


どうせがんばるなら話題性のあるもの出してくれないと。注目度は大事。
話題性とハッタリだけで純増数1位キープしてる(失礼)どこかと同じようにとは思わないけど。

せっかくブランド力あるんだから、そのブランド力生かして尖った製品出して欲しいよね。

とりあえず早くアンドロイド携帯を出してくれ。そしたらおいらもがんばる。(何

2009年6月3日水曜日

新技術「Google Wave」のコンセプトが発表に。

まだアルファ版ですらないコンセプト状態ですが。


Google版「Outlook + MSN + Messenger」が発表されました。「Google Wave」。
平たすぎるけど、平たく言うとそんな感じ。


あまりに出来ることが多すぎて、色々資料見ても把握しづらい。


とりあえずやれそうなこと一覧をまとめてみました。
  • 多言語チャット。(リアルタイム翻訳機能付き。現在40言語対応)
  • メールの代わりに使えるお絵かきチャット。(ワープロ機能付き)
  • Mixi上の友人と、Waveを使ってリアルタイムにチャット。
  • Waveを使って個人ブログに投稿。コメントのチェックや返信。

…で、これの何がうれしいのか。無い頭をひねってみました。


1つ目。お絵かきチャット+ワープロ機能。

一般的なワープロ形式で入出力できるなら、設計書を「レビュー」せず、「みんなで書く」事が出来る。
誰かがある程度枠組みを作っておいて、みんなをチャットに呼んだら、あとはみんなでガリガリ書く。
指摘はボイスチャットで言いながら自分で書けばいい。仲のいいプロジェクトなら設計書を書く効率が上がる。

まあ控えめに見ても、頭の柔らかい上司なら「レビューお願いします」って言いに行かなくて良くなる。
本格的なワープロ機能を搭載してくれれば、MS Officeがいらなくなるという時点ですごくいいな。
Open Officeと融合したりしたらめちゃくちゃ便利だな。


次。メール+チャット。

Waveのメールは限りなくチャットに近い。というかチャットです。
が、ワープロ並みの表現力を持つ上に、その内容はサーバーに保存されるので、いつでもどこでも読めるし書ける。
チャットの利点とメールの利点を両方持てるということ。容量的にサーバ負荷は高いけど。まあGoogleだし。
ただサーバがダウンすると怖いかも。ビジネス用ではローカルバックアップが欲しいところ。ちなみにWaveサーバはオープンソースなので、自社のサーバで運用してもOKらしい。


最後。「何でもあり」の拡張機能。
Googleは「ロボット」と「ガジェット」という二つの拡張分野を示している。

ガジェットは最近流行りの小物アプリ。
Waveもガジェット実行環境を持つ。通信機能を生かして対戦ゲームみたいなものも作れるらしい。
実用的なものなら、Mixi投稿ガジェットとか、GMailクライアントも作れるだろう。

ロボットは、Wave用のWeb API。これはサイト運営者が用意するもの。
例えば全く別のサイトで行なわれているディスカッションやブログの更新を、「サイトが発言しました」としてチャットに表示できる。チャットのユーザーとして「ロボット君」を登録できる、というわけ。
まあ例えばTwitterや2ちゃんねるとかのサイトの更新を見ながら、個人的な会話が出来る感覚。



…とか色々書いたけど。

Googleいわく「Waveの発展は、開発者である皆さんにかかっています」らしい。
こんな仕組み作るから、その上で面白いもの作ってよ、って感覚かな。

私から見ると、MicrosoftがMSNで大失敗したものを、もっと洗練して送り出しているようなイメージを受けます。
MSNよりずっと柔軟に、もっと色々と取り込める仕組みとして。
まだ実物もないし、いくつかのデモだけだけど、技術的にはすごいです。マネと言わせないくらいの柔軟性。

まあ私は開発者としてはもっとリッチなアプリが作りたいから、まだFlashとHTMLに居座るけど。
利用者としてはちょっと使ってみたい気はします。便利に使えるならなんでもいい。キラーアプリが出るといいですね。

2009年4月22日水曜日

[ Linux/Windows/Mac ] vimを使いやすくする方法(キーバインド)

vimは使えば使うほど手になじむらしい。

ただしこの場合、「使えば」というのは、「使いこなせば」という意味。
設定を極めないと、使いやすくはなりません。

で、設定の中では初歩的なキーバインドの方法。

環境変数HOMEの場所にある以下のファイルをテキストエディタで開いて書き込みます。

コンソール版の場合
_vimrcまたは.vimrc

gVim(アプリ版)の場合
_gvimrcまたは.gvimrc


例として、キーバインドの設定方法をあげておきます。

Ctrl+Sでファイルの保存を行なうキーバインドです。
map <C-S> :w<Enter>


邪道といわれますが、導入当初は結構苦しむことになるので。

例は今後増やす、かも。

2009年4月13日月曜日

[ HTML ] HTML特殊文字一覧

これも基礎。他にもいっぱいありますが、一応。
HTMLでそのまま書けない文字を表示したい時に使うコードです。
&&amp;
"&quot;
<&lt;
>&gt;
 (スペース)&nbsp;
©&copy;
»&raquo;
«&laquo;

[ CSS ] CSSをIEとその他で分けて適用する

割と普通に使われているハックなので、いまさらなんですが。

こんな風に書くと楽に出来ます。
#menu {
  background:#300;
  color:#fff;
}
*html #menu {
  background:#003;
}

2番目のブロックの、「*html」というのがIE専用部分です。
CSSは「後に指定した方が優先」して適用されるので、IE用のハックを後に書けばOK。

position:fixedとかIE6だけ対応してないCSS使うときにどうぞ。

Javascriptでの判別は、こちら

2009年2月9日月曜日

[ Ubuntu/Linux ] Ubuntu 8.10にtelnetdをインストールする

これは、取り合えずなんでもいいから遠隔でログインしたいときの方法です。

セキュリティとかあったもんじゃないので、LAN内での接続とかだけで使ってください。
まあ気にしてたらtelnet使わないか。そういう場合はsshかtelnet-sslで。


レシピ。

まずパッケージマネージャを起動します。
メニュー「システム」>「システム管理」>「Synapticパッケージマネージャ」


次に、「検索」ボタンを押して、検索ウィンドウを表示。
「telentd」と入力して検索すると、何種類かtelnetdソフトウェアが表示されます。

リストの中から、「inetutils-telnetd」というのをダブルクリック。
「適用」ボタンをクリックすると、確認メッセージが出るので全部「次へ」を選択します。

これでインストールは完了です。次に設定をします。

まずは端末を起動します。
アプリケーション>アクセサリ>端末


以下を入力。
sudo gedit /etc/inetd.conf

1行目の先頭にある#disable#を削除してtelnetdを有効にします。保存してファイルを閉じます。

端末に戻って、以下を入力。
sudo gedit /etc/hosts.allow

これはアクセス許可リスト。最後の行に、
ALL:ALL

と入力し、保存してファイルを閉じます。つまりアクセス全開。

端末で、
sudo gedit /etc/hosts.deny

と入力。denyはアクセス拒否リスト。
通常ではすべての行がコメントアウトされてると思いますので、そのままで。

これで設定は終わりです。最後にinetdを再起動します。
sudo /etc/init.d/inetutils-inetd restart


これで終わりです。

端末から、
telnet localhost

とかやれば、ログインが要求されて、telnetdサーバの動作を確認できますよ。

[ Ubuntu/Linux ] DNSサーバを立てずに名前解決する(hostsファイルの設定)

Web開発用サーバーなど、DNS(ホスト名解決サーバー)に載せずに、簡易的に名前解決する方法。


…てかLinuxもhostsファイルあったんだー。(無知


考えたら当たり前ですね。

Windowsでは日常的に使ってたんですけど。

場所はここ。
/etc/hosts

なので、
$ sudo vi /etc/hosts

とかで編集できます。

文法はWindowsと同じで「IPアドレス、スペース(タブでもOK、複数可)、解決したいホスト名」を一行に書きます。

例えば、
192.123.456.78 example.test.ne.jp

みたいな感じです。

2009年2月4日水曜日

[ WindowsXP ] スタートアップ時に実行されるソフトウェアを設定する (msconfig)

ちょっとアンインストールがまともに出来ないソフトに遭遇したもので。


WindowsXPの起動時に実行されるソフトウェアは、ほとんどがレジストリに設定されています。
「スタートアップ」にあるソフトはごく一部。


これを設定するには、Microsoft謹製のmsconfigというソフトを使います。


レシピ。

まず、
スタート>ファイル名を指定して実行


ファイル名を指定して実行画面に、
msconfig


と入力してください。
主に「スタートアップ」タブにある設定がそれです。

左側のチェックを外してOKを選択。再起動すれば反映されますよ。

[ Ubuntu/Linux ] Ubuntuのmanコマンド(端末用ヘルプ)を日本語化する

Ubuntu 8.10 Japaneseでは、端末用の日本語ヘルプがインストールされていません。

例えば、
man man

とかやると、英語でずらずらとマニュアルが表示されます。

頑張りゃ読めても日本人には辛いので、日本語ヘルプをインストールしましょう。


レシピ。

アプリケーション>アクセサリ>端末

で端末を起動します。

次にインストール用のコマンド。
sudo apt-get update
sudo apt-get install manpages-ja


を入力するだけ。簡単ですね。

端末を再起動すると、ほとんどのヘルプが日本語で表示されるようになります。

2009年1月28日水曜日

[ Ubuntu/Linux ] Ubuntu8.10にOpenOffice 3.0をインストールする

OpenOffice 3.0は、まだapt-getでインストールできません。
パッケージに不具合があるらしくて、まだダウンロードしての手動インストールが必要です。


てことでレシピ。

まず、下から「OOo_3.0.0_LinuxIntel_install_ja_deb.tar.gz」(DEB版)をダウンロードします。
ftp://ftp.jaist.ac.jp/pub/openoffice/localized/ja/3.0.0/


ダウンロードしたら解凍しましょう。私はホームのworkフォルダ内に解凍しました。
「OOO300_m9_native_packed-1_ja.9358」というフォルダができます。


次にコマンドラインから、
cd ~/work/OOO300_m9_native_packed-1_ja.9358/DEBS/

で、コマンドラインから解凍されたフォルダ内のDEBSフォルダに移動します。解凍したフォルダによってパスが変わります。


次に、プリインストールされているOpenOffice 2.xをアンインストールします。
$ sudo apt-get remove openoffice.org-core
$ sudo apt-get remove openoffice.org-base-core
$ sudo apt-get remove openoffice.org-l10n-ja


何回かアンインストールするか聞かれるので、「Y」を入力してEnterを押します。
だーっとログが流れて、OpenOfficeがアンインストールされます。


次。いよいよ3.0のインストールです。以下を順番に入力していきます。
$ sudo dpkg -i ooobasis*deb
$ sudo dpkg -i openoffice*deb

$ sudo apt-get install ubuntu-desktop-ja
$ sudo apt-get install language-support-en

$ cd desktop-integration/
$ sudo dpkg -i openoffice.org3.0-debian-menus_3.0-9354_all.deb


まだしっかりは使い込んでないけど、一応ちゃんと動いてるっぽいです。

---
このエントリは、Ubuntu 8.04にOpenOffice 3.0をインストールを参考にしたものです。

iGoogleの新バージョンを(一足先に)試してみる方法

iGoogleの開発者向け(ベータ)版が使えるコマンドを書いておきます。

ちなみにこれは、今後iGoogleのバージョンアップで利用できるようになる(予定の)ものです。



まずiGoogleを表示します。

で、アドレスバーに以下のスクリプトをコピペして、Enterを押すだけ。



体裁が変わりましたか?

小さなウィンドウで無理やり動いていたり、別ウィンドウで使っていた機能が、最大化状態で使えます。
かなり便利ですね。


ちなみに、元に戻す時は下を入力。

2009年1月26日月曜日

[ Ubuntu/Linux ] Synaptic(GUI版apt-get)で、認証付きプロキシを使用する

GUI版apt-getの「Synaptic」の方は、コマンドラインとは独立してプロキシ設定が必要です。

まず、

システム>システム管理>Synapticパッケージマネージャ

でパッケージマネージャを起動。


次に、「設定」メニューから「設定」を起動。

設定画面の「ネットワーク」タブにあるプロキシを入力すればOKです。


ちなみにSynapticを使ってるソフトは、

  • アプリケーション>追加と削除
  • システム>システム管理>アップデートマネージャ
  • システム>システム管理>Synapticパッケージマネージャ



この辺は上の設定で全部行けるはず。


あちこちプロキシ設定が散らばっててややこしいです。

[ Ubuntu/Linux ] コマンドライン端末で、認証付きプロキシを使用する

うーん。ちょっと腑に落ちないんだけど。
ちなみにUbuntu8.10 Japanese版を使ってます。

Ubuntuは、
システム>設定>ネットワークのプロキシ
にある設定から、認証付きプロキシサーバの設定ができる。


…はずなんですが。


プロキシサーバにはアクセスしているんですが、なぜか認証は通らない。

色々試行錯誤して調べたら、「ネットワークのプロキシ」が設定してくれるのは環境変数。
環境変数でのプロキシ設定は、
http://username:password@server.com/
の書式が弾かれたので、認証を越えられないような気がする。

詳細設定の「認証」での設定がどういう風に効いてるのかよく分からないし。


仕方がないので、ネットワークのプロキシのほうは「直接接続する」に設定。

で、「アプリケーション>アクセサリ>端末」で端末を起動して、
sudo gedit /etc/apt/apt.conf

のコマンドで、管理者権限でGEditからapt.confを開きます。


開いたファイルに、
Acquire {
http::Proxy "http://USERNAME:PASSWORD@servername.co.jp:8080/";
ftp::Proxy "ftp://USERNAME:PASSWORD@servername.co.jp:8080/";
}

みたいな感じで設定。保存して閉じます。


端末を再起動して、
sudo apt-get update

でapt-get(コマンドラインapt-get)を実行してみると、407エラーが消えました。
ログを見ても、正常に取得できているみたいです。


うーん。まあよかったんだけどちょっと微妙。