めもめも
LDD'11/Fall in KUSHIRO | 【LOCAL DEVELOPER DAY】 2011/9/17 今年も釧路で開催します!!
ブログなんて書いてもいないのにね。
しかしながら、
ブログ(サイト)の名刺を作ってみた。デコカで。 | RouxRil Culture
↑これみたらおしゃれじゃないですかー!
ほしくなるじゃないですかー!
というわけで作ってみました。
昨日、U-16旭川プログラミングコンテスト | 思考と達成が未来へ!!が旭川市科学館サイパルで行われました。
正直なところ盛り上がりにかけるのではないかと思っていたのですが、予想に反して会場は歓声や笑いが飛び交っていてみんな楽しそうでした。
優勝したのは中学1年の女の子でした。プログラミング自体は今回が初めてのようなことを言っていましたが、良い経験になったのではないでしょうか。是非とも旭川・北海道を代表するようなプログラマーになってほしいですね。
最近、wordpressのネタが異常に溢れ出てる感じがして、みんなすげーーー!、と感心してはいるものの、自身のブログに投稿すらしていないのでどうでもいいですよね。
でも、無い時間を工面して仕入れた情報をevernoteにぶっっこんでるんですが、
溜めっぱなしで出力しないのでゴミ箱と変わりません。
そこで、
evernoteに書きためたメモを勝手にきれいに清書してくれて、
きゃっちーなタイトルとか
タグとかカテゴリーとかつけて
wordpressに投稿してくれる
そんなwordpressノウハウが出回るのを心待ちにしています。
まぁ、そのノウハウもevernoteにいれるんですけどね。
ひろゆき日記@オープンSNS。 のコメントだったと思うけど、UIに関するリンクがいくつか書いてあったので読んでみた。
単純に面白いっちゃー面白いのだけど、自分が作るシステムのことを考えると笑えない。
楽しいBADUIの世界
使いやすさ日記: 街でみかける、いろいろなモノの使いやすさをレポート。
山中俊治の「デザインの骨格」 » あらためてSuicaの話でもしようか その1
先週の話ですが、旭川オープンソースコミュニティの勉強会で「google map」について話がありました。
その中で、iphoneから緯度経度を取得する方法について聞いてみたのですが、わからないとのことでしたので調べてみました。
まぁ、調べたと言うか、検索しただけですが。
サンプルが転がってるだろう、ということで、Google Maps API Referenceのデモギャラリーを探してみたところ、案の定あっさりでてきました。
-> Where Am I?
デモのソースを見てみると、下記コードで緯度経度を取得していそうです。
抜粋
[javascript]
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(positionSuccess, positionError);
} else {
positionError(-1);
}
[/javascript]
上記コードで使われている「navigator.geolocation」はHTML5のGeolocation APIです。
-> Geolocation API Specification
HTML5なので、ブラウザが実装していなければ動作しませんが、主要ブラウザは実装済みのようです。
-> 位置情報をブラウザで活用! Geolocationを使いこなそう - @IT
スマートフォンではない携帯では、「位置情報・GPS情報の取得方法 – [携帯 + 携帯] ぺんたん info」に書かれている方法で取得できるようです。
簡単なサンプルをGAEで作ってみました。
位置を取得してマーカーを追加していくだけのものです。
GAEにデプロイしてiphoneでアクセスすると、マーカーがどんどん追加されることが確認できました。
ちなみにGAEで作った意味はとくにありません。普通にサーバーに置いてよいと思います。
-> google map sample
-> source:planset/google_map_sample – GitHub
index.html
[html]
<!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 map sample</title>
<script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?sensor=true"></script>
<script type="text/javascript">
var gmap = null;
function createMap() {
var myOptions = {
zoom: 15,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
return new google.maps.Map(document.getElementById("map_canvas"), myOptions);
}
function updateLocation(pos) {
var latlng = new google.maps.LatLng(pos.coords.latitude, pos.coords.longitude);
if (gmap == null){
gmap = createMap(latlng);
} else {
var marker = new google.maps.Marker({
position: latlng
});
marker.setMap(gmap);
gmap.setCenter(latlng);
}
}
function handleError(a) {
alert("error: " + a.code + "");
}
window.onload = function(){
if (navigator.geolocation) {
var options = {
timeout: 10000
};
navigator.geolocation.watchPosition(updateLocation, handleError, options);
}
};
</script>
<style type="text/css">
html, body { height: 100%; margin: 0; padding: 0; }
#map_canvas { width: 100%; height:100%; }
</style>
</head>
<body>
<div id="map_canvas"></div>
</body>
</html>
[/html]
cherokeeってのを見かけたのでメモ。
nginxよりも高速だとかなんとか。
ubuntuあたりだとPPAリポジトリ追加すると簡単にインストールできるみたいです。
ソースからインストールする場合は、ここのSource code archiveからダウンロードします。
ここをみると、MacOSX用のdmgもあるけど試してません。
ソースからコンパイルしてインストール
デフォルトだと/usr/local/以下にインストール
/usr/local/sbin/cherokee
設定ファイルは /usr/local/etc/cherokee/cherokee.conf
ポート80が他で使われている場合は、以下を適当なポートに変更する。
server!bind!1!port = 80
これが便利
/usr/local/sbin/cherokee-admin
起動すると、admin用のサーバーが起動されワンタイムパスワードが発行される。
cherokee-adminに指定されたアドレスにアクセスすると管理画面が表示される。
appsからwordpressなどメジャーなのを管理画面からインストールできちゃう。
レンタルサーバーみたい。
pythonでできてる。
久しぶりに楽しそうなのがあったので更新です。
dotcloudというherokuの色々な言語版みたいなもんです。DBまで色々使えます。
private beta中みたいです。登録しとけばそのうちメールくると思います。
[bash]
mkvirtualenv –python=/opt/local/bin/python2.7 py27dev
pip install dotcloud
dotcloud
# (API Key入力)
dotcloud create plansettest
dotcloud deploy -t python plansettest.www
# flaskでお試し作成
mkdir plansettest
cd plansettest
pip install flask
vi wsgi.py
pip freeze > requirements.txt
dotcloud push plansettest.www .
[/bash]
wsgi.py
[python]
from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello():
return "Hello World!"
if __name__ == "__main__":
app.run()
application = app
[/python]
これで http://www.plansettest.dotcloud.com/ デプロイ完了。動いてくれます。
らくちんー!
[bash]
dotcloud deploy -t mongodb plansettest.mongo
dotcloud info plansettest.mongo
# config: mongodb_password: のパスワードをコピる。
# あと、サーバー名とポートもあるのでメモっとく。mongodb://root:なんちゃら〜の方ね。
dotcloud run plansettest.mongo mongo
# 3回くらい失敗?した。シェルになるまでがんばる。
> use test
> db.getSisterDB("admin").auth("root", "コピったパスワード");
> db.message.save({"message":"uho"});
> db.message.find()
> db.addUser("username","password");
> exit
pip install pymongo
pip freeze > requirements.txt
vi wsgi.py
[/bash]
wsgi.py
[python]
from flask import Flask, g, abort, redirect, url_for
app = Flask(__name__)
from pymongo import Connection
def connect_db():
try:
connection = Connection("mongo.plansettest.dotcloud.com", 6477)
return connection["test"]
except:
return None
@app.before_request
def before_request():
g.db = connect_db() or abort(500)
g.db.authenticate("username", "password")
@app.route("/")
def hello():
messages = ""
for item in g.db.message.find(limit=10):
messages += item["message"] + "n"
return "Hello World!" + "n" + messages
@app.route("/say/<message>")
def say(message=""):
g.db.message.save({"message": message})
return redirect(url_for("hello"))
if __name__ == "__main__":
app.run()
application = app
[/python]
これでmongodbを使って簡単にデプロイー!
(´ぅω・`)
instagramのタグ検索とjquery-mobileで作ってみました。
・これ
・pcからjquery-mobileのレイアウト見るときはこっち
・そ〜す
とりあえず、忘れないうちにってことで。
・pythonでflaskを使ってみた。
・nginx、gunicornを利用して動かしてみた。
よくわからないけど、meinheldも使ってみた。
・jquery-mobileを使ってiphoneから見れるように。
・pythonでアプリを作って実稼働させるときってどうすりゃいいんだろ。
nginx+gunicornで動かしてみたけど、これでよいのかなぁ。
・必要なライブラリなんかは、開発でvirtualenv使って、pip freezeとかで揃えるのかな。
・jquery-mobileは適用するとさっそくおしゃれになってくれるけど、iphoneのブラウザでページ遷移するときに、(ロードしなきゃいけないときに?、)上からメニューが降ってきたりして邪魔臭いし、動きがきもい。