2010年3月26日金曜日

Windowsに Google App Engine開発環境 + Django 1.1をセットアップする

WindowsにDjango1.1をインストールする方法



Google App EngineでDjango1.1を使う設定
  • "Google AppEngine で Django 1.1 を使う | METAREAL"の通りにすればOK。
  • templateのimportはuse_library()をセットした後でないとエラーになる。
    • 間違えると、AppEngineを再起動するまでエラーが解消されない(?)

2010年3月20日土曜日

CSSも JavaScriptも使わずに HTMLだけで角丸を実現する方法

シンプルな方法

<input type="button" value="角丸だよ" disabled="disabled" />




改行とか画像を入れる場合はbutton要素で。
<button disabled="disabled">
改行も<br />
できるし<br />
画像も入れられるよ<img src="hoge.jpg" alt="角丸の中の画像だよ" />
</button>

文字色はstyle="color:black"とかで変えられるけど、背景色や枠線のスタイルは変えられない。(角丸でなくなってしまう。)

Webブラウザで DBを参照・更新・管理できるツールいろいろ

クラウドの時代ですから。

個人的にお薦めなのはAdminer。一般受けしそうなのはSQL Buddy。


MySQL用(上の方が使いやすい)

  • Adminer
    • PHP1ファイルのみ(無理に1ファイルにすることないと思うけど)。設置すれば設定不要ですぐ使える
    • シンプルだが普段使う機能は一通り揃ってる。シンプルだからこそ使いやすい
    • SQLをガリガリ書きたい人にお薦め
    • データのclone(コピー)ができるのが何気に便利
    • 見た目は少々無骨。CSSファイルをダウンロードすればSkinを変えられる
    • 昔はphpMinAdminという名前だったが改名した
    • 通常版より"English only"の方が少しファイルサイズが小さい。そんなに変わらないか
    • ライセンスはApache License
  • Adminer Editor
    • Adminerの簡易版。データの参照・登録・更新・削除だけしかできない
    • 別途Extensionsを用意しないと動かないようだ
    • データをいじるだけならこれでいいかも。逆に、データをいじる以上のこと(テーブルの変更とか、DBのDROPとか)をさせたくないユーザー向けに渡すのにちょうどいい(それを意識して作ったんだと思う)
  • SQL Buddy
  • phpMyAdmin
  • MySQL Quick Admin
    • 見た目はわりと良い。Ajaxでサクサク動く
    • 最初にconfig.phpを編集する必要があるみたい(ログイン機能がうまく動かなかったので)
    • SELECTのSQLを自分で書けない?実用するには辛いかも
    • 最後のUpdateは2007年6月。PHP5.3で動かすとDeprecatedが出る
    • ライセンスは明記されていないが、フォーラムにこんなやり取りが書いてあった
  • PHP Mini Admin for MySQL
  • Webadmin-mysql
    • あまり使われていない?


PostgreSQL用


これらのツールのようにPHPでつくっちゃえば、DB側がバージョンアップしてもphp-pdo/php-mysqlが対応してくれるので、ツール側での対応は特にいらないというのはクライアントアプリのツールには無い利点だと気付いた。

Postfixでメール受信時に PHP等のプログラムを実行する方法

空メールを受け取った時の自動メール返信などに。


  1. Postfixの設定ファイル(/etc/postfix/main.cf)にvirtualファイルのパスを書く(hogeのところは任意の名前)

    virtual_alias_maps = pcre:/etc/postfix/virtual.hoge
  2. 上記で書いたパス(/etc/postfix/virtual.hoge)にテキストファイルを作成し、正規表現等で振り分けを設定する
    左側の条件にマッチした場合のみ、右側のaliasに渡される(詳細はpostfix virtualで調べれば色々出てくる)

    /^[0-9]+@/ hoge-request
  3. /etc/aliasesに上記で書いたaliasを追加
    左側にalias名、右側にクォーテーションで括って実行するファイル(php)とそれに渡すパラメータを書く
    この場合、/var/php/hoge.phpが実行される

    hoge-request: "|/usr/bin/php /var/php/hoge.php"
  4. Postfixを再起動

    newaliases
    /usr/sbin/postfix restart
  5. PHP内では標準入力からメールの生データを受け取れる
    PEAR::Mail_mimeDecodeを使うと便利だと思う

    $raw_mail = file_get_contents("php://stdin");


参考:SEメモ 受信したメールをPHPにパイプさせる方法

2010年3月14日日曜日

代表的なクラウドサービスの比較(IaaS, PaaS and SaaS)

「クラウドとは何か?」についてはとあるコンサルタントのつぶやき : Part 1. マイクロソフトのクラウドコンピューティング "S+S" 概要 その1が分かりやすい。
特にこの図


以下は代表的なサービスにつていの調査メモ。

IaaS
(Infrastructure as a Service)

PaaS (Platform as a Service)

SaaS (Software as a Service)


全部まとめてXaaS (Xxxx as a Service)。
広義では、インターネットの向う側にあるものは全部クラウドだ。

これは便利というフリーソフトを洗い出してみた

以下のものは除外

  • ブラウザのアドオン
  • サーバサイドのソフト


これは便利
  1. Firefox
  2. Google Chrome
  3. サクラエディタ
  4. Dropbox
  5. Google 日本語入力
  6. Microsoft Security Essentials
  7. BunBackup
  8. VFolder
  9. Skype
  10. FolderSize

場合によっては使う
  1. +Lhaca デラックス版
  2. アタッシュケース
  3. iTunes
  4. QuickTime
  5. 窓の手

必要に迫られて使う
  1. Excel Viewer
  2. Adobe Reader

開発用
  1. Ginnie Free Edition
  2. TortoiseSVN
  3. Poderosa
  4. MySQL Query Browser
  5. pgAdmin Ⅲ
  6. VMware Server
  7. WinMerge
  8. DF
  9. IETester
  10. Poedit
  11. xdocdiff
  12. Safari
  13. Opera

Windowsに付いてくるもの
  1. リモートデスクトップ
  2. IE
  3. ペイント

有償なら
  1. NOD32
  2. Excel

Googleの便利なサービス+アプリを洗い出してみた

Googleのサービス&製品で重宝するものをリストアップしてみた。
※携帯向けサービスは入れてない

一般向けサービス

  1. Gmail
  2. Google Search
  3. Google Docs
  4. Google Reader
  5. Google Calendar
  6. iGoogle
  7. Google Maps
  8. Google Public DNS
  9. YouTube
  10. Picasa Web Albums

サイト運営者向けサービス
  1. APIいろいろ
  2. Google Analytics
  3. Google App Engine
  4. Google AdSense
  5. Blogger
  6. Google Code
  7. Google Webmaster Tools
  8. FeedBurner

デスクトップアプリケーション(ダウンロードして使うソフト)
  1. Google 日本語入力
  2. Google Chrome
  3. Picasa


こうして見ると、Googleの名を冠してないのはGmail, YouTube, Picasa, Blogger, FeedBurner。
Gmailは昔からあるのでGoogle Mailの略称がそのまま正式名になった例外ケースで、その他はその道の最大手(Picasaはそうでもないが)を買収したのでネームバリューのある名前を変えづらいというケース。
また、YouTubeとBloggerはgoogle.tldのサブドメインになっていない。YouTubeとBloggerは一般ユーザーの目に触れやすいのでドメインも変えがたいのかも。


(おまけ)
Microsoftの場合
  1. Microsoft Security Essentials
  2. Excel Viewer

Railsのバージョンを調べる方法

Railsアプリのルートディレクトリで、

ruby script/about

Windowsをインストールしたらまずやる設定と入れるツールのリスト

なんとなくメモ。

(2011/1/12 細かいところをいろいろ追記・変更した。)


初めに

  1. ドライバのインストール
    • ネットワークドライバ等、必要に応じて。
  2. Windows Update
    • インストールするものが無くなるまで何度でも。


基本設定
  1. XPの場合、Cドライブの直下に新しいフォルダを作ってマイドキュメントの場所に設定する
    • 深いところは嫌。
    • Vista ならC:\Usersの下なので許せる。
  2. DNSをGoogle Public DNSにする
    • Active Deirectoryとか使ってなければ。
    • (2010/4/16 取消線&追記)DHCPならDNSは設定しない方が楽。問題なければプロバイダのDNSが無難か。8.8.8.8の方が覚えやすいけど。
  3. ユーザーを最小限にする
    • ログイン用のユーザーをきちんと設定し、他のユーザーは(必要なもの以外は)全て不可にする。
  4. MSN Messengerを自動起動しないようにする
  5. XPの場合、タスクと例の時間にマウスカーソルを当てるとポップアップで表示される日付に曜日を追加する
    • コントロールパネル → 地域と言語のオプション → 地域オプションの標準と形式の「カスタマイズ」ボタンをクリック → 日付タブ → 長い形式を「yyyy'年'M'月'd'日' dddd」にする(ddddの部分が曜日になる)
  6. XPの場合、メイリオをインストールする
    • WindowsUpdateでインストールできた?
    • Firefox等でも綺麗に見えるように、フォントのClearTypeを有効にする。
      • デスクトップを右クリック → プロパティ → デザインタブ → 「効果(E)...」ボタンをクリック → 「次の方法でスクリーン フォントの縁を滑らかにする」にチェックを付け、ClearTypeを選ぶ。
  7. エクスプローラでコンテキスト(右クリック)メニューからコマンドプロンプトを呼び出せるようにする
  8. 必要に応じて、他のPCからの リモートデスクトップ接続を可能にしておく
    • マイコンピュータ > プロパティ > リモート
    • ファイアウォールの設定も。(自動でなったかな?)


ソフトウェアのインストール
  1. ウィルス対策ソフトのインストール
    • インストールしたら、定義ファイルを最新にしてから検索実行。
    • なければMicrosoft Security Essentials(いわゆるMSSE)で。(ただし軽くはないので注意。)
    • スキャンがスケジュールされていることを確認する
  2. IMEをGoogle 日本語入力にする
    • サジェストが便利。
    • 「入力補助」の全角半角は使いやすいように変更する。
    • たまに(あるいはしばしば)バグるのはご愛嬌。
    • 非力なPCならデフォルトのMS IMEを使った方が無難。
    • MSとGoogle双方の監視下におかれる(可能性がある)のは気持ち悪地といえば気持ち悪い。
  3. WebブラウザをFirefoxかGoogle Chromeにする
    • Web開発用でメモリが潤沢なら便利なアドオンが多いFirefox、そうでないなら軽快なChrome。
    • Firefoxの場合、プロファイルのフォルダへのショートカットを作りマイドキュメント等の分かりやすい場所に置いておく。
    • アドオンとかExtensionとか拡張とかその他の設定は割愛。
  4. Flash Playerの更新&設定
  5. テキストエディタとしてサクラエディタをインストール
    • ファイルの排他制御はしないようにする。
    • スクリプト系(PHP等)の開発をするならGinnieも。
  6. MyJVN バージョンチェッカのためにJavaもインストール
    • Updateチェックは コントロールパネル → Java → Updateタブ
      • 通知はインストール前。
      • 詳細ボタンをクリックして、頻度は毎日に。
  7. その他、必要に応じて
    • MS Office
      • Upadteする。何回でもUpdateする。
    • Adobeリーダー
      • 最新化&JavaScriptをオフにする。
      • でもPDFは基本的にGoogle Docsで開く。
      • (2010/04/16 追記)アップデーターの設定はすぐにアップデートするようにする
    • Dropbox
    • Skype
    • +Lhaca デラックス版
    • などなど
    • (2010/04/16 追記)iTunesやQuickTime等のApple製品を入れた場合、念のためにタスクにあるApple Updateの実行頻度を毎日とかにする。


定期的に
  1. MyJVN バージョンチェッカでAdobeリーダー、Flash Palyer、JRE等のバージョンをチェックする
    • 要 Java。これだけのためにJREをインストールする場合は本末転倒気味だが。
    • IEとFirefox/Chromeの両方のFlash Playerのバージョンを調べられるのが便利。
  2. Windows Updateの履歴を削除



書き出してみると意外に多い。
XPのこととVistaのことがごちゃまぜになってもう判別できないけどまあいいか。
ムーバブル、あるいはポケッタブル(あるいはシンクロナス)にできないのかなあ。

2010年3月3日水曜日

電車の乗り換え案内のWebサービス API

あまりはやらないんだろうねえ。

SELinuxコマンドメモ

SELinuxの状態を確認する

/usr/sbin/getenforce
  • "Enforcing"なら有効
  • "Permissive"なら無効


SELinuxを一時的に無効/有効にする
無効
/usr/sbin/setenforce 0
有効
/usr/sbin/setenforce 1


SELinuxにアクセス拒否された結果のログを見る

/sbin/ausearch -m avc
  • ログは /var/log/messages に出力されるという説明をよく見かけるが、手元の環境では /var/log/audit/audit.log に出力されている。
  • "scontext"がアクセスしてきたプロセスの情報で、"tcontext"がアクセス対象のセキュリティコンテキストみたい。
  • 参考:selinux - xField Wiki


各ディレクトリ・ファイルのセキュリティコンテキスト(ラベル)を見る
ls -aZ [パス]


セキュリティコンテキストを変更する
chcon -t <セキュリティコンテキスト> <パス> [-R]


セキュリティコンテキストを規定の値に戻す
/sbin/restorecon -R <パス>
  • 手元の環境では想定通りに動かなかった。使い方が違うのかな?



booleanを一覧表示する
/usr/sbin/getsebool -a


audit2allowでポリシーを変更
/usr/sbin/setenforce 0
audit2allow -M local -i <抜き出したログ>
/usr/sbin/semodule -i local.pp
/usr/sbin/setenforce 1



時間があるなら、第一人者がやさしく教える新SELinux入門---目次 - 第一人者がやさしく教える新SELinux入門:ITproを一読したい。
ボリュームが多いけど、基礎から駆け足で学ぶのによさそう。

VMware上の Linux (CentOS)のシステム時刻が狂うのを防ぐ

詳しくはVMwareの時刻あわせ 2008年冬版 - SH2の日記にまとまっている。(本当に詳しい。)
これ以外だと古いやり方を説明しているサイトが多い。


とりあえずある程度それらしい時間になってればOKなら、下記だけでもOKみたい。

  1. /boot/grub/grub.conf を編集し、下記の箇所にパラメータを追加する。

    title CentOS (2.6.18-164.11.1.el5)
    root (hd0,0)
    kernel /vmlinuz-(中略) quiet divider=10 clocksource=acpi_pm
    initrd /initrd-2.6.18-164.11.1.el5.img
    これでLinuxを再起動するとシステム時刻のズレがかなり小さくなる。
    (参考:VMwareの時刻あわせ 2008年冬版 - SH2の日記の「4. CentOS 5.2のカーネルパラメータを変更する」)
  2. /etc/ntp.conf を編集し、同期するサーバを日本のntpサーバに変更する。

    #server 0.centos.pool.ntp.org
    #server 1.centos.pool.ntp.org
    #server 2.centos.pool.ntp.org
    server ntp.nict.jp
    centos.pool.ntp.orgの3つはコメントアウトし、ntp.nict.jpとかインターネットマルチフィード(MFEED) 時刻情報提供サービス for Publicにする。
  3. ntpdが起動していない場合は起動する。

    /etc/init.d/ntpd start
    ブート時に起動するようになっていない場合はブート時に起動するようにする。

    /sbin/chkconfig ntpd on

PostGISを使って平面直角座標系から世界測地系に変換する方法

こんな感じ。

SELECT AsText(Transform(GeomFromText('POINT(1 -1)', 2443), 4326))

"2443"のところは、平面直角座標系として日本のどこの座標原点を使っているかによって変わってくる。
それぞれのSRIDについてはYaskey GIS基礎知識を参照。

計算結果がの答え合わせは、緯度、経度への換算と比べる?(「度・分・秒」形式なので換算が必要)

ブログ アーカイブ

tags