2012年8月31日金曜日

macでmakeを使えるようにする方法

node.jsでnpmコマンドを使って、モジュールをインストールしようとしたときに、makeがないと怒られたので、macでmakeを使えるようにする手順をメモ

1.XcodeをAppStoreからインストール
2.AppleのMac Dev Centerへアクセス(ログインが必要)
3.DownloadsのAdditional Downloadsにある「View all downloads」を選択
4.Command Line Tools for Xcodeをダウンロードしてインストール

以上で、makeができるようになった。。

XcodeをDev Centerからダウンロードしてインストールすると、Xcodeのpreferencesからインストールできるらしい。。。

2012年8月4日土曜日

bloggerのモバイルテンプレート

bloggerのモバイルテンプレート機能がレスポンシブ・デザインに合うかを調査
公式な情報はうまく見つけられなかったが、どうもブラウザのユーザ・エージェントでPC/モバイルのどちらのテンプレートを利用するかを決めているよう

Safariのデフォルトのユーザ・エージェントでアクセスした場合、
Safariのユーザ・エージェントを「Safari iOS 5.1 - iPhone」に変更した場合、
モバイルテンプレートを適用する場合は、URLに「?m=1」という文字列が自動的に追加された。また、URLに「?m=1」をつけたままSafariのデフォルトのユーザ・エージェントに切り替えても、モバイルテンプレートが適用された。iPadのユーザ・エージェントでは、モバイルテンプレートは適用されず、PCのテンプレートが適用された。

結論としては、表示画面の幅に応じて、デザインを切り替えるレスポンシブ・デザインでは、ユーザ・エージェントによってテンプレートを切り替える方法は適切ではない。
そのため、今回、モバイルテンプレート機能はオフにした。

Safariでユーザ・エージェントを切り替える方法:

・「開発」メニュー > 「ユーザエージェント」から、切り替えたいユーザ・エージェントを選択
・「開発」メニューが表示されない場合、「Safari」メニュー > 「環境設定」を開き、「詳細」タブで「メニューバーに”開発”メニューを表示」にチェックが入っていることを確認する

モバイルテンプレートを無効にする方法:

・bloggerのメニューにある「テンプレート」タブを選択し、表示される画面にある歯車マークを選択して、「いいえ。携帯端末でPCテンプレートを表示する」を選択する

2012年8月2日木曜日

レスポンシブデザインの勉強

最近、Web UIデザインの勉強を始めました。
流行のWeb UIデザインは、Responsive Designというらしく、これを試しに作成してみるため、オトなか れすぽんしぶというbloggerを新しく作成しました。

最新の作成状況は、そちらのサイトで確認できます。

2012年1月4日水曜日

DjangoでDateTimeを月や年でリスト取得する方法

DjangoでDateTimeを月や年でリストとして取得する方法
たとえば、blogなどで投稿がある月のみをリスト化したいときに、年・月のリストを取得するときに利用する方法

Entryというテーブルのpub_dateというカラムをリスト取得する場合、
Entry.objects.dates('pub_date', 'year') -> 年でリスト取得
Entry.objects.dates('pub_date', 'month') -> 年・月でリスト取得
昇順でリストを取得したい場合、order='DESC'を引数に追加する

参考サイト
QuerySet API

DjangoでDateTime型をテンプレート内でフォーマッティングする方法

DjangoでDateTime型のパラメータをテンプレート内で、所望のフォーマットで表示する方法

1.views.pyでは、他の型のパラメータと同じように、Dictionary型をContext型にフォーマッティングして、テンプレートに読み込ませる
import datetime
from django.template import loader, Context
from django.http import HttpResponse

def index(request):
    param1 = 'test'
    param2 = datetime.datetime.now()
    template = loader.get_template('test.html')
    contexts = Context({'param1':param1,
                        'param2':param2,})
    return template.render(contexts)

テンプレート内では、次のようにフォーマッティングする
{{ param2|date:"Y/n/d g:i A" }}
上のように指定すると、「2012/1/4 5:12 PM」と表示される

参考サイト
Built in template tags and filters

2012年1月1日日曜日

DjangoでSTATIC_URLをテンプレートで使う方法

STATIC_URLをテンプレートで参照できるようにする方法

1.settings.pyに割り当てたいURLを記述する
STATIC_URL = 'http://localhost/static'

2.views.pyでテンプレートを呼び出す時にRequestContextを利用する
from django.template import RequestContext, loader
from django.http import HttpResponse

def show(request):
    template = loader.get_template('show.html')
    contexts = RequestContext({})
    return HttpResponse(template.lender(contexts))

3.テンプレートファイル(show.html)でSTATIC_URLを使う
{{STATIC_URL}}と指定すると、settings.pyで定義した値を表示できる

2011年12月29日木曜日

SpringFrameworkでWebアプリ作成

今までは、Python(Django)でWebアプリを作成していたが、これからはJavaで作らなければならなくなった

いろいろとJavaのWebフレームワークを比較して、Spring MVC 3.1.0 Releaseで作成することにした

DI (Dependency Injection)など、慣れない考え方で苦戦中だが、詰まったところを記録に残していく

2011年10月30日日曜日

Google App EngineでDjango

Google App Engineのサイト構築にDjangoフレームワークを利用する方法
詳細はここに書かれている
とりあえず、ヘルパーをダウンロードしてきて、後はデータストア周り以外は普通にDjangoでプログラムを書けばよいみたい?

2011年9月19日月曜日

MacへのOpenCVインストール

MacへOpenCVをインストール
Pythonから呼び出すため、Python 2.7とともにインストール

今回は、ソースコードからではなく、MacPortsを利用してインストール
(依存モジュールが多いため)

1.MacPortsのインストール
http://www.macports.org/からインストーラをダウンロードして、簡単にインストールできる
2.MacPortsでOpenCVをインストール
ターミナルを起動し、次のコマンドを実行すれば、インストールが開始する
# sudo port install opencv +python27

・MacPortsでインストール中にPerlがエラーを起こした
Error: Target org.macports.activate returned: Image error: /opt/local/bin/a2p is being used by the active perl5.8 port.  Please deactivate this port first, or use 'port -f activate perl5' to force the activation.
エラー内にあるport -f activate perl5を実行しても、うまくいかなかった
対策としては、activeなperl5.8をアンインストールして、最新のPerlだけにすればよい

手順は次の通り
1.インストールされているPerlを表示
# sudo port installed | grep perl
 perl5 @5.8.9_0
 perl5 @5.12.3_0+perl5_12
 perl5.8 @5.8.9_3 (active)
 perl5.12 @5.12.3_1 (active)
2.インストールされているPerlの中から、古いバージョンのものをアンインストール
# sudo port uninstall perl5 @5.8.9_0
# sudo port uninstall perl5.8

これで、OpenCVのインストールを再会すればインストールできる
(インストールが完了するまでに、2時間ほどかかった・・・)

2011年8月7日日曜日

HTTPレスポンスコードの取得

Pythonのurllib2を利用してWebサイトへアクセスしたときのHTTPレスポンスコードを利用するために、保存しておく方法
urllib2では、200以外はHTTPExceptionとなってしまうため、例外時の処理として書かなければならない
import urllib2

# HTTPレスポンスコードを格納する変数
http_code = 0
# アクセスするwebサイトのURL
url = 'http://www.yahoo.co.jp'

try:
    # webサイトへアクセス
    web = urllib2.urlopen(url)
    # 成功した場合、この行以下も実行されるのでhttp_codeは200
    http_code = 200
except: HTTPError, e:
    http_code = e.code

print http_code
これで、正しくWebサイトにアクセスできたかを確認できる

参考サイト: