投稿

8月, 2010の投稿を表示しています

【GAE】別のマシンから動作確認するためのコマンド

Google App Engineの開発で、GAE自体はMac Serverで動いているけどもコーディングは共有フォルダ経由でWindowsから行っているので、ブラウザでの動作確認もWindowsから行うために調査したメモ。 環境はGoogle App Engine SDK 1.3.6, Mac OS X Server GoogleAppEngineLauncherから起動した場合はlocalhost:8080のアドレスのみでしか動作しない。localhost以外のアドレスでもアクセスを許可するためにはコマンドを実行して起動する必要があるみたい。 詳しくは 公式サイトのリファレンス で。 インストールの方法は 前の記事 を参考に。 $ dev_appserver.py --address=192.168.0.62 gbook で、他のマシンから http://192.168.0.62:8080/ のアドレスでアクセスできるはず。 ファイヤーウォールを設定している場合は空けてあげる必要がある。Mac OS X Serverの場合は、サーバ環境設定 → セキュリティ からポートを追加する。 これでSSHを使って、コマンドを叩けばいいので、コーディングから動作確認までMacのコンソールを使わずに済む。 開発しやすい環境が整ったので、いろいろ作ってみますかな。   <関連記事> Mac環境にGAEの環境(Python)を整えてGAEOをインストール Mac Snow Leopard ServerにTera TermでSSHログインする

Mac環境にGAEの環境(Python)を整えてGAEOをインストール

Google App Engine(GAE)の開発をしようと思って、フレームワークのGoogle App Engine Oil(GAEO)をインストールしてみたけど、パスの関係でWindows環境では動作しないと分かったので、Macで開発することにした。 GAEのWindows環境へのインストール方法は こちら 。 環境はMac OS X Server 10.6.4 MacにはPython 2.5が既にインストールされているので、Googleの GAE公式サイト からApp Engine SDK for Pythonをダウンロードする。 GoogleAppEngineLauncherをアプリケーションにコピーして終了。 次はGAEOのインストール。 公式サイト から最新ソースをダウンロードするかMercurialを使ってクローンする。Mercurialについては 前の記事 を参考に。 適当なディレクトリに配置して、google-app-engine-oil/binにPATHを通す。 $ vi .bash_profile   export PATH=$PATH:/Users/suganuma/GAE/google-app-engine-oil/bin $ source .bash_profile PATHの設定は 前の記事 も参考に。 これで環境周りは終了。 実際に試してみる。GAEOの マニュアル も参考に。 $ cd /Users/suganuma/GAE $ gaeo gaeo.py gbook これでGoogleAppEngineLauncherを起動して、File → Add Existing Applicationからさっき作ったgbookを選択。 Run後、しばらくするとBrowseが有効になるのでクリックして表示してみると 「It works!!」 が表示されれば成功。   <関連記事> MacのPATHを設定(追加)する Macにバージョン管理ソフト「Mercurial」をインストール Windows環境にGoogle App Engineの環境を整える(Python)

MacのPATHを設定(追加)する

Linuxと同じなので分かりやすい。 ホームディレクトリの.bash_profileを編集。なければ作る $ vi .bash_profile export PATH=$PATH:/Users/suganuma/GAE/bin これを保存して反映 $ source .bash_profile PATHの確認 $ printenv PATH

Macにバージョン管理ソフト「Mercurial」をインストール

MacでGoogle App Engine(GAE)の開発をしようと思って、バージョン管理ソフトウェアの「 Mercurial (マーキュリアル)」をインストールしたときのメモ。 詳しくは Wikipedia を参照。 なぜMercurialが必要になったかというと、GAEの開発で「 Google App Engine Oil (GAEO)」というフレームワークを使ってみようと思ったから。 Mercurialのダウンロードは こちら から。 インストール後はコマンドラインで使えるようになる。GUIで使えるようにするためには別途ツールをインストールする必要がある。 MacMercurial というのを見つけた。 いまのところはコマンドでやるつもり。コマンドを確認するときは $ hg help で。 ・・・というかメインがWindowsなので、MercurialのWindows用クライアントをインストールして共有フォルダ経由で作業しているけど。   <関連記事> Windows環境にGoogle App Engineの環境を整える(Python) Mac mini(snow leopard server) + VMware fusion 3を買った

GoogleのAPIを使って日本地図を表示するためには

最初に日本地図を表示させておいて、県→地区→詳細とドリルダウンしながらデータベースの内容を表示するような要件はたまにある。 それを自前に全部作成するのではなくて、Googleが提供してくれているAPIを使えば比較的簡単に実現できるのではないかと調査したメモ。 パッと思いついたのが Google Visualization API(Google Chart Tools) を使う方法と Google Map を使う方法。 Google Visualization APIはJavaScriptを使って棒グラフ、円グラフ、統計グラフ、組織図などを簡単に表示できる。 サンプル を見れば分かりやすい。 クライアントサイドのアプリケーションでなければ商用でも利用できるみたい。詳細は FAQ を参照。 Google Map APIを利用する場合に、県だけ表示するとか、色を変えてプロットするとかも可能みたい。詳細は 公式ブログ で。 地区まで表示したら、onclickイベントで別のページに遷移できるかは別途調査が必要。

ドコモでiPhoneがついに実現する

iPhone4をNTTドコモのネットワークで利用できるmicroSIMが8/26から発売される。 コンセプトは“思いきり快適に”--ドコモ網でiPhone 4を利用できるmicroSIM Docomoユーザーとしては大歓迎なのだけど、注意点もいくつかある。 SIMフリー版のiPhone4をどこかで手に入れる必要がある キャリアメール(docomo.ne.jp)は使えない さらに心配事は 回線速度が十分か ファミリー割引などの割引サービスを組み合わせられるか(無理?) まだ様子見。 個人的にiPod touchで満足しているので、AndroidがUIを刷新して、iPhoneなみのヌルヌル感を実現してくれるのを希望。

PostgreSQLにCSVデータをファイルから取り込む

旧システムから新システムへデータ移行を行ったときのメモ。 CSVを取り込む前に対応するテーブルがないと始まらないので、create tableのsqlをゲットするか、csvの1行目を見てテーブルを作成するプログラムを作ったりする。 対応するテーブルがあれば、 COPY コマンドを使えば簡単にできる。 # su postgres $ psql test-db test-db=# \copy table1 from /opt/csv/table1.csv WITH CSV HEADER 「WITH CSV」を付けるとCSVファイルと認識して、カンマ区切りのデータとして扱ってくれる。 「HEADER」を付けると1行目を無視する。 csvファイルは取り込むDBに合わせて、エンコーディングする必要があるみたい。 ちなみに私が愛用しているエディタ xyzzy では ここ にあるスクリプトを使えば、フォルダ内のファイルを一括で文字コード変換ができる。 一括でやる場合は\copy文をファイルに記述して test-db=# \i /opt/csv/copy.sql を実行するば出来る。   <2010/08/23 追記> コメントで指摘があったので、追記。エンコーディングもコマンドで指定すればできる。 こちらの記事 を参考に。

TCPDFとFPDIでPDFを読み込んだときにエラー

イメージ
TCPDF と FPDI で既存PDFを読み込んだときにエラーとなって困ったときのメモ。 エラーは TCPDF ERROR: This document (/opt/test.pdf) probably uses a compression technique which is not supported by the free parser shipped with FPDI. 「PDFが圧縮されているからフリー版のFPDIでは扱えない」らしい。 このとき使ったツールたちのバージョンは MS Excel 2003 Adobe Acrobat 9.0 (PDF Maker) TCPDF 5.8.002 FPDI 1.3.3 (FPDF_TPL 1.1.5) TCPDFとFPDIのインストールに関しては 前の記事 を参考に。 Excelで作成した帳票を印刷するときに、Acrobatをインストールすると出てくる「Adobe PDF」をプリンタとして選んで印刷。 エラーを回避するためには、「Adobe PDF」を選んでプロパティ → Adobe PDF 設定 → 編集で 「オブジェクトレベルの圧縮」をオフ にすれば大丈夫   <関連記事> 【PHP】TCPDF 4.5.xxx+FPDIで既存PDFの読み込みと編集 【PHP】Webで帳票を作成するのにPDF変換を利用する方法

三十路になりました。

さよなら20代。こんにちは30代。 あっという間に30まで来てしまった。これで人生の半分ぐらい? 単純に肉体の衰えを感じつつも、周りからは「ガクンとくるよ」と言われているので、毎日のメンテナンスをしっかりと行いたい。 まだ学生には負けたくない。(←空手の話) そういえば学生から電話があって、夏の合宿の日程が決まったみたい。 今年は千葉で行うらしい。千葉県での合宿は初めてじゃないか?暑そう・・・ もちろん行くつもりだったけど、ちょうどTOEICの試験と重なっているので難しそう。 今英語を本気で話せるように勉強中なのですよ。 20代は技術力向上に努めて、それなりに自信はついた。30代は英語をマスターして、この技術力を活かしつつ、さらなる展開をしていくつもり。

運転免許証の更新で平針まで行ってきました

免許書更新の通知が来たので、お盆の休みを利用して、 平針 まで行ってきました。153号線を使って約45分。 一番怖かったのが目の検査。明らかに悪くなっているのが自分でも分かる。前は右0.3で左0.7ぐらいだった。今度は 右0.5 左0.5 両目0.7以上だったので一応セーフ。次回はメガネがないと通りそうにない・・・。毎日、朝から晩までPCとにらめっこしているので視力を保っていたのが不思議なくらい。 年には勝てないね。 最近は免許証にもICチップを使うようになって、暗証番号を設定しないといけない。しかも2つも。一度設定すると変更が効かない。詳しくは下記リンクから。 ICカード免許証 :警視庁 運転免許証 - Wikipedia さらに法律が変わって、普通と大型の間に 中型 ができた。トラックを運転する予定はないので関係ないかな。 wikipedia 。 私は日頃の行いが悪いので2時間の講習を受けて終了。講師の先生の話がうまかったので退屈しなくて済んだ。

iPhoneアプリのDDRで高得点を出すための持ち方(指の位置)

イメージ
昔懐かしのDance Dance Revolution(ダンスダンスレボリューション)のiPhoneアプリ版を暇な時に楽しんでましたが、expertが尋常ではない速度と矢印の配置で流れてくるので、他の人はどうやっているか調べたメモ。 私の場合、iPod touchを片方で持ち、片手でタッチするやり方でやっていた。 しばらくやっていると右手がツリそうになる・・・。 YouTubeで見つけたexpertをクリアする人々は両手で持ち、親指でタップするやり方みたいなので、こっちの方がやりやすいみたい。 それにしても恐ろしい指の動き。 まだモードが一つ隠れているので、これを出すぐらいは頑張らないと。

【JavaScript】先月、今月、先週、今週の日付を計算

JavaScriptで日付計算をしたときのメモ。 日付の表示は jQuery UI の datepicker を使用。 コードサンプル var objBase = j$("#<?php echo $sId;?>"); var objOption = { numberOfMonths : 3, defaultDate : "-1m", showAnim : "", changeYear : true, showButtonPanel : true }; var objBegin = objBase.find("[name$=_begin]").datepicker(objOption); var objEnd = objBase.find("[name$=_end]").datepicker(objOption); //先月、今月、先週、今週をセット var objToday = new Date(); //先月 objBase.find("[name=last-month]").click(function(){ objBegin.datepicker("setDate", new Date(objToday.getFullYear(), objToday.getMonth() - 1, 1)); objEnd.datepicker("setDate", new Date(objToday.getFullYear(), objToday.getMonth(), 0)); }); //今月 objBase.find("[name=this-month]").click(function(){ objBegin.datepicker("setDate", new Date(objToday.getFullYear(), objToday.getMonth(), 1)); objEnd.datepicker("setDate", new Da...

【JavaScript】jQueryで検索条件を一括でクリアする

webシステムの検索画面で「クリア」ボタンをクリックしたときに jQuery を使って簡単にクリアする方法 コードサンプル $(function() { $("#button-clear").click(function(){ $(".search-area input, .search-area select").each(function(){ if (this.type == "checkbox" || this.type == "radio") { this.checked = false; } else { $(this).val(""); } }); }); }); ポイントはラジオボタンとチェックボックスのときだけ処理を分岐することぐらい。

G-SHOCKのタフソーラーが充電できないので修理を依頼

メンテナンス(電池交換)がいらないと思っていたG-SHOCKを修理に出した時のメモ。 使っていたのは G-ms MSG-900 。6,7年前に買った気がする。 3年ぐらい前にライトが付かなくなって、そのまま放置していたら完全に表示されなくなった。腕時計がなくても生活に全く支障はなかったけど、TOEICの試験を受けるときに時計を持参しないといけないようなので、この機会に修理することにした。 Webからは カシオテクノショップ から依頼する。 MSG-900の場合は「 ウォッチ修理 」から。生活防水レベルのものは「ウォッチ電池交換」からでも大丈夫みたい。この辺は入力時にある「時計の型番検索」で確認 必要事項を記入して送信すると確認メールが送られてくる。ちなみに値段は 修理料金合計: ¥8,400 往復宅配料金(引取り+配送料):¥1,260 請求合計: ¥9,660 新品のG-Shockが買える値段。 「 g shock 電池交換 タフソーラー 」で検索すると自分でも電池交換できるみたいなので、防水機能を諦める場合はそっちの方が安上がり。 登録後、回収キットが送られてくるので、それに時計を挟んで送り返す。必要なものは全て回収キットに同封されているので、本当に挟んでコンビニとかに出しに行くだけ。 謳い文句にあるように、せめて10年ぐらいは頑張ってほしい。

[XCode]gdata-objectivec-clientを使ってGoogle APIを利用する

イメージ
iPhone/iPod touchアプリを開発する際に Google data APIs を利用するのにobjective-c用のライブラリがオープンソースで開発されているので、ダウンロードして設定するまでの手順をメモ。 gdata-objectivec-clientは ここ からダウンロード、もしくはチェックアウト。 ちなみにMacでsubversionを利用する場合は SvnX というフリーのソフトがある。 SourceのGData.xcodeprojを開いて、ターゲットのGDataTouchStaticLibをダブルクリックで開いて、Releaseのビルドオプションを設定 「その他のCフラグ(OTHER_CFLAGS)」に「-DGDATA_INCLUDE_PHOTOS_SERVICE=1 -DGDATA_INCLUDE_OAUTH=1」を修正、追加 ベースSDKを最新バージョンに Device×Simulator, Releaseでビルド。 これでライブラリの準備が完了。 今度は利用するプロジェクトをXcodeで開く。プロジェクト → プロジェクトに追加からさっきのGData.xcodeprojを選択。 libGDataTouchStaticLib.aが黒くなっているはずなので、横のターゲットのチェックを付ける。 ターゲットのアプリをダブルクリックで設定を開いて、「一般」タブの「直接依存関係」にGDataTouchStaticLibを選択。次に「ビルド」タブで下記設定。 「他のリンカフラグ」に「-lxm2」 「ヘッダ検索パス」に「/usr/include/libxml2」 「ユーザヘッダ検索パス」にヘッダーファイルの置き場所を指定。 これでソースに #import "GData.h" と書いてビルドできれば成功。 サンプルが結構よく出来ているので、イメージがつかみやすいかも。↓Picasaの写真を取得するサンプル <参考サイト> BuildingTheLibrary Google Data APIs Objective-C Client LibraryをiOS SDKで使用するための準備 Google Data API...

Google Book Search APIsをZend Gdata経由でPHPから使う

イメージ
Googleの書籍検索 をPHPから利用するwordpressのプラグインを開発したときのメモ。 さくっと参照するだけなら Google Codeのサイト を参考にしながら直接リクエストを投げた方が早い。でも取得できる情報が少ない。↓こんな感じ 要約などの詳細情報したり、レビューや評価を投稿したり、ユーザーライブラリを使用する場合は Zend Gdata ライブラリを使うと簡単。参考となるサイトは下記をみればサンプルもあり分かりやすい。 Google ブック検索を PHP アプリケーションに統合する [Google Code]Google Book Search API や [Zend]Programmers Reference Guide も参考に。   <関連記事> 【PHP】Google AJAX Search APIを使ってニュース記事を取得 Google ニュースのAPIを商用利用できるかとYahooとの比較 【PHP】WordpressでPicasaの写真を表示(非公開のも)

Web(オンライン)で画像編集できる機能を組み込むAPIを調査

Wordpress で構築しているブログに投稿した画像をWeb上で編集、加工できるツール(プラグイン)はないものかと調査したときのメモ。 できれば素人でも使えるようにアメブロやJUGEMなども採用している マジカルメーカー を利用できれば一番いい。 マジカルメーカーの利用は無料なので、アカウントがあれば作成したHTMLをwordpressに貼りつければいいけど、やりたいのはwordpress上で編集したい。 (利用料は分からないが)マジカルメーカーを組み込むのも一つの方法。 無料で利用できそうなのが、オンラインサービスの「 Pixlr 」や「 Picnik 」を利用する方法。 これらのサービスは外部から利用するためのAPIを公開しているので、頑張って作りこめば思った通りのことが実現できそう。 ちなみに Picasa はPicnikを使って編集、加工できる。 PicnikのAPIの利用方法は下記記事が参考になりそう。 Flickr のような画像編集機能を実現する「Picnik API」 でも、「素人でも直感的に使える」という点ではマジカルメーカーかな。

プリンタ「エプソンEP-901A」が特定の用紙だと給紙してくれない

知人に頼まれて、 EP-901A を使って印刷するときに、「給紙(排紙)エラー」で困ったときメモ。 EP-901Aはエプソンの多機能モデルの最新シリーズ。背面給紙がなく、前面給紙のみになった。気をつけないといけないのが、純正の用紙以外を使用する場合に給紙できないトラブルが起きる可能性がある。 私が使った用紙はこれ。 ELECOM 両面半光沢の光沢紙 EJK-GRSA420 EP901Aの前に使っていたブラザーの MFC-620CLN でも、給紙できない場合があったが、トレイに入れる枚数を減らしたりすれば、ほとんど問題なかった。 でも今回は、90%の確率で給紙できない。数百枚の単位で印刷しなければならないので、これだけのために背面給紙のあるプリンタを買い換えようかと本当に思った。 ・・・で、困ってGoogle先生に助けを求めてみると、解決できそうな情報を見つけた。 [EPSONサポートQA]ハガキの給紙がうまくいかない場合の給紙ローラーのクリーニング方法<PM/PX用クリーニングシート> EP-901Aの場合は普通用紙をセットして、 (スキャナ部分に何も置かない状態で)コピー→枚数入力→スタートを繰り返す で給紙ローラーのクリーニングができるらしい。 30枚ぐらい一気にコピーしてクリーニングすると、20部ぐらいまでは給紙できるようになった。(それでも確率が上がるだけで、給紙できない場合はもう一回繰り返す。) 20部を超えると給紙できる確率が下がるので、同じように給紙ローラーのクリーニングが必要。 一応最後まで印刷できたけど、次プリンタを買うときは背面給紙ができるのを選ぶようにしよう・・・。   <関連記事> 自宅のネットワーク構成を一新・・・するために