mixiアプリ2

Standard
mixiアプリ2

いい加減スーツで出社という謎のしばりをどうにかしてほしい10月神無月。スーツと革靴とネクタイを新調する10万円があったらどんなに気持ちいいことができると思っているんだまったく。
 
 
前回完全に失敗に終わったmixiアプリ。懲りもせず第2弾を作ってみました。信じられないぐらいやることなくて職場で作ったりしてないですよ。
 
 http://mixi.jp/view_appli.pl?id=9386
 
わきげさんのAmazonRiderのパクリだと言われればそれまでですが、Amazonで本を検索して、プロフィールページにオススメの1冊を表示できるアプリです。Google App Engine でホスティングしています。”グロブ”の「mixi アプリから GAE経由でAmazon Web サービスを呼び出す」というエントリーをかなり参考にさせていただきました。ありがとうございました。
ソースをgithubにのせました。興味のあるかたは↓からどうぞ。たくさん文句つけてください。
 
 http://github.com/bugcloud/your-recommend
 
 
レスポンスがあまりにもひどすぎて待ってる間にりんごが剥けそうです。
あと、↓は早めに改善してバージョンアップしたいと思ってます。

  • レスポンスとデザインをどうにかする。
  • レスポンスを待ってるときに、処理中の画像か文言を表示する。
  • AmazonアソシエイトIDはユーザ毎に設定できるようにする。
  • Amazonへのリンクがクリックされた時の情報をGoogle Datastoreに保存する。

 
 

Cover image is not found
amazon.co.jpで詳細情報を見る



 

Technorati Tags:

Google App Engine で select distinct

Standard
Google App Engine で select distinct

Python のSet クラスに感動したのでメモ。
Google App Engine でアプリケーションを開発するとき、データはGoogle Data Store 上に保存する。保存したデータを参照するときはGQLのクエリーを発行するんだけど、GQLにはSQLでいうところのdistinct関数がない。で、distinct使いたいときはアプリ側で処理する必要があるんだけど、Python には Set クラスっていうイケメンなやつがいた。
 

>>> a = [1,1,1,2,2,3,4,5,6,6,6,7,8,9,9,9]
>>> b = set(a)
>>> b
set([1, 2, 3, 4, 5, 6, 7, 8, 9])

 
 
しかもSet 先輩は in っていうしゃかりきな舎弟を連れてる。
たとえば、↓みたいなStreetFighterモデルが保存されてたとして、
ID | name | from
——————
1000 | Ryu | Japan
1001 | Ken | USA
1002 | EHonda | Japan
1003 | Chun-Li | China
1004 | Blanka | Brasil
2001 | Zangief | Russia
2002 | Guile | USA
2003 | Dhalsim | India
 
この中から出身地の一覧を取得したいときは↓みたいな感じに書く。
 

fighters = StreetFighters.all()
fighters_from = []
for f in fighters:
  fighters_from.append(f.from)
results_fighters_from = []
for result in fighters_from:
  if result not in results_fighters_from:
    results_fighters_from.append(result)

 
これで、
results_fighters_from = ['Japan','USA','China','Brasil','Russia','India']
になる。んー、かっこいい。オレが女ならとりあえず同じ部活にマネージャーで入部しとく。

六本木には男を狩るという女ハンターが現れるらしい

Standard
六本木には男を狩るという女ハンターが現れるらしい

というフライデーだかフラッシュだかの記事を検証しに、こないだ六本木のクラブに行きました。結果、黒人ハンターばっかりアホほどいました。ちゃんと書いといてくれなきゃ。次行くときは日サロに通ってからにしよっと。This is a journalism.
 
 
うちの会社で嫌だなーと思うところのひとつは”IT企業”を名乗ってるのに社内にあるドキュメントの9割がエクセルとワードなことです。平社員のボクに身近なところだと勤怠管理とか作業報告書とか、あと健康診断のお知らせとかもわざわざワードで作ってメールに添付されてきたりします。エクセルはそうでもないけど、ワードで勝手にインデントつけられたときなんかは虫唾が走る。ていうかウチにMS Officeなんてないし。これじゃ在宅勤務なんてまったくできないじゃないかー。そんな嘆きングだった矢先に、社長が”クラウドコンピューティング”っていうバズワードにすっかり魅入られてくれました。さらに運良くクラウド先遣隊のメンバーに選ばれました。まー先遣隊を派遣するのがあまりにも遅いんだけど。いま送り込むなら全会一致でAndroidらしいよ。
 
 
ということで、職場で堂々とGoogleAppEngine上にアプリを作れるようになったわけです。Pythonで開発しようってことと、手始めにWEBアプリ作って社内のエクセル・ワードのメール送信をなくしてみようってことが決定して先週からPythonはじめました。冷やし中華ははじめてません。ファンデーションは使ってません。
 
 
なんかいい感じのサンプルないかなーと思って探したらGAE上で動くblogっつーのがありました。フレームワークはDjango。
 
Benjamin Golub
 
シンプルだし、かなりとっつきやすかった。で、少しいじったやつをGAE上にあげてみたのが↓
 
http://bugcloudisco.appspot.com/
 
オリジナルからほとんど変更してないんだけど、Googleアカウント持ってる人なら誰でも投稿できるようにして、Googleアカウント持ってない人は見れないようにしました。あと、Links の”Attendance“に勤怠アプリを作ってこうと思います。いまうちの会社にはタイムカードとかなくて、毎日の出勤時間と退勤時間4桁をエクセルに入力していって、合計勤務時間とかを計算式でださせてます。で、月末にそのエクセルファイルを社長と副社長宛てにメールで送信してます。これを何とかしてもっと楽にしたい。テーマは”基本ワンクリックで” いまんとこ考えてるのを並べると↓な感じ。

 ・朝、出勤したらブラウザから出勤ボタンをポッチング
 ・仕事終わったら退勤ボタンをポンチング
 ・ユーザごとに出勤/退勤時間をデータストアに保存
 ・月末に送信ボタンをチンポングしたら偉い人に「今月分提出したよっていう」メールを送信 + データを集計(合計拘束時間,合計休憩時間,定時間外労働時間,,,,and more)
 
 ※集計したデータをどうな感じで出力したらいいか悩む。
  画面?テキスト?メール?Googleスプレットシート????
 
 
ほんでまー、今週出来たのが http://bugcloudisco.appspot.com/attendance な感じのやつ。
 
 ・”IN”を押すと出勤時間が記録される。
 ・”IN”を押せるのは1日1回。
 ・”OUT”を押すと退勤時間が記録される。
 ・”OUT”はその日の最後の1回が記録される。
 ・今月分の出勤/退勤時間リストを表示する。
 ・リストの日付をクリックすると出勤/退勤時間を更新できる。
 ・”csv”をクリックすると、今月分の出勤/退勤時リストをtsv(タブ区切り)で出力する。
  今使ってるエクセル用。出力されたファイルを丸ごとコピペすれば今月分を反映できる。
 
ぐらいかな。”IN”と”OUT”押した後に画像を表示します。最初、社長の画像にしてたんだけど、「朝からこの写真はげんなりだ!」っていう苦情が殺到しそうなので時の人に変更しました。
 
バグがあったらコメントください!
 
 
 
P.S.
GAEでスタイルシートの反映にめちゃくちゃムラがあって驚いた。ブラウザキャッシュとかが絡んでるんだと思うけど1日たっても前のスタイルシートが適用されたりして何回もCSS書き直しちゃったよ。
 
 
P.S.2.
超えている。アヴリル・ラヴィーンを超えている。
 

 
 

Technorati Tags: