サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
大そうじへの備え
shohu.hatenablog.com
特定サイトページの商品金額を抜き出してgoogle spreadsheetに書き込むために、スクリプトエディタの Google Script Api で Webサイトスクレイピング やることになったのでいろいろ Google Spreadsheetと連携できるGoogle Script Api で Webサイトスクレイピングできる方法をさぐってみた HTMLの一部分を抜き出せる Easy data scraping with Google Apps Script in 5 minutes ~ kutil.org これだと1ページで何箇所か金額部分だけ抜き出すときなど、苦労しそう。 正規表現でごりごりスクレイピング GoogleAppsScriptでWebスクレイピング 正規表現マスターしてると楽なんでしょうが、DOM操作できるようなライブラリが欲しいな、と。 XML Service Ser
参考URL import datetime now = datetime.datetime.now() print now.strftime("%Y%m%d%H%M%S.") + "%04d" % (now.microsecond // 1000) → '20081118003037.0479'
nginxでproxy_cacheさせようと思ったけど、どうも効かない。 nginxのlogに $upstream_cache_status を出力してみたけど MISS ばっかりで HIT にならなかった。 http://wiki.nginx.org/HttpUpstreamModule#.24upstream_cache_status 調べていると、abコマンドでアクセスするとHIT. ブラウザからアクセスすると必ずMISS。 abコマンドは HTTP1.0, ブラウザからアクセスするとHTTP1.1の違いがあるぞ、 このあたりの違いによって何か違うんかなぁと思って調べていたら -------- http://wiki.nginx.org/HttpProxyModule#proxy_cache The following response headers flag a response
gunicorn で graceful な再起動方法を探していたらマニュアルにのってるじゃ、ありませんか。 http://gunicorn.org/faq.html How do I reload my application in Gunicorn? You can gracefully reload by sending HUP signal to gunicorn: $ kill -HUP masterpid なんで masterpidもとめるのがすぐわからなかったので、pkill つかってリリース時に 実施する事でグレースフルな再起動になりますた。(なったはず pkill -HUP -f 'run_gunicorn' ファイルかえて pkill やったら更新が確認でけた。 追記 でも結局挙動が不安定(ソースが反映されたりされなかったり)だったので結局 pkill -f 'run_g
http://fumituki.jimdo.com/2012/02/24/clg-seminar/ 初めて東京大学にいくこともあり、どの入り口から入るのかなどなど彷徨っていたら19時頃会場についてしまった。。 元もじぴったんプロデューサー中村さんの話がすでにはじまってしまっていたので途中から聞いていた事をメモ書きとともに感想を自分の振り返りように記載しておこうと思う。 当日の内容を、NoahさんがTogetterでまとめてくれていたのでこちらもどうぞ。ほぼかぶってたりしてます。。 Toggetter 「もじぴったん」元プロデューサー中村隆之氏に聞く「ゲームデザイン」 アジェンダ 1.講演「優れたデザインが生み出すデジタルゲームの楽しさ」(60分) 中村隆之氏(中村遊び応用研究所 クリエイティブプロデューサー、元もじぴったんシリーズプロデューサー) 2.ディスカッション「ゲームデザインの社会
去年の秋くらいから、いろいろあって自分の中で何をやりたいか整理していくうちに何個か決めた事がある。 そのうちの一つが以下である。 ゲームをやった後の、虚無感(なんかもっと良い言葉があるかも)をなくしてずっとゲームしてたい まぁ、なんていうんでしょうか。ゲームやった後の俺なにやってたんだぁ、、、感をなくしたい。 自分は昔からゲームが好きで、小学校の頃など月に1本ファミコンのソフトをねだったものだ。 ※家は裕福でなくむしろ貧乏だったが、一人っ子ゆえ甘やかされて育った。 ただ、年齢を重ねていくうちにさすがにゲームをやる時間が少なくなってきた。それはゲームをやった後に 「俺こんな事してていいのだろうか。もっと他にやらなきゃいけない事あるんじゃないだろうか」 って思う事が、社会人になってからとても頻繁にあったのでゲームをやる事を控えていた。 でも、やってしまうんだよね。特にシミュレーションゲームを。
1つのアプリをインストールしていたのだが、なぜかアイコンが2個表示される不思議な現象が起きた。 調べていくと以下理由らしい。 AndroidManifest.xml に activity を複数記載していて、その2つ目のactivityに以下記載があったため。 ----- <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> -----MAINとLUNCHERは初めに表示する画面のActivityのみでよいということですね。
よく忘れるので記載しておく。 以下は深さ2まで、htmlファイルのリストを取得して表示しているだけ。 forループの中でいろいろ処理を行う。 #!/bin/bash # HTMLファイルを表示する find . -maxdepth 2 -name '*.html' | while read html; do echo $html done
参考URL 環境によっては、以下プロセス数1の箇所を2にする必要がある。 #!/usr/bin/bash if (( `ps -ef|grep $0|grep -v grep | wc -l` > 1 ));then echo "2重起動です" exit 1 fi 追記: t2y-1979 から素敵なご指摘を頂いた。今後はこっちを使うことにします! if [ -n "$(pidof $0)" ]; then echo "2重起動です" exit 1 fi
SatchmoというPython+Djangoで書かれたECサイト用?のオープンソースがある。 ショッピングカートや支払い機能もデフォルトでついていて、機能を把握して カスタマイズできるようになれば、かなり便利なソースだと思われる。 ※ただとにかく日本語の情報が少ない Satchmo http://www.satchmoproject.com/ 近いところでいうとdjango-cartなどあるようだけど http://stackoverflow.com/questions/490439/django-cart-or-satchmo 「django-cartよりもSatchmoがんばってつかったほうがいいぞ!」 など、Satchmoを勧める声は大きい。 インストール 以下を見てがんばる。 http://www.satchmoproject.com/docs/dev/quickstart.ht
環境 Python2.6 + Django1.2 + Ubuntu10 など 使うもの nose Pythonのunittestをもっと簡単にできるように拡張したもの。プラグインなど簡単に作成する事ができ拡張性も高い http://somethingaboutorange.com/mrl/projects/nose/1.0.0/ django-nose-selenium djangoとnoseとseleniumでテストやるためのもの。documentに書かれていない罠が結構ある https://github.com/weluse/django-nose-selenium cherrypy Pythonプログラミング言語を用いたオブジェクト指向のWebアプリケーションフレームワーク http://www.cherrypy.org/ Xvfb 仮想的な X を立ち上げることで、実際に X を起
共通ヘッダーなどでログイン状態で表示文字をかえたいときなどに便利です。 方法はdynamicHelpersというメソッドを使います。 ※ほかに方法があれば教えてください! これは、viewをrenderする際に動的な情報を埋め込む事ができます。 共通のテンプレートにrequest情報を渡すときに便利です。 以下例ではログインしていたら、true、を返すメソッドを作成してテンプレート側でそのメソッドを使用して、ログインしている場合とログインしていない場合で表示を切り替えています。 以下では req.session.user にログインした際に、user情報を保持しているものとします。 vi app.js ----- : : app.dynamicHelpers({ // check login state is_logined: function(req, res){ return req.
新規事業のシステムで、node.jsを使うことになったので (まぁ、技術全般はまかされてるので、勝手にnode.js使うかぁ、的なのりで使ってるんだけどね) node.js + express とかでぐぐっていろいろ調査してサイト作ってみている。 node.jsのFWではexpressがメジャーそうなのでとりあえずexpressを使ってみる事に。 expressではテンプレートエンジンがいろいろ種類あるらしいのだけど Jadeがデフォルトでは(expressコマンドで何も指定しないとJadeになる)使われてしまうがよりHTMLの形に近いejsを使ってみる事に。 その際に、ejsのpartialを使う方法があまりWEBに情報が乗っていなかったのでメモしておく。 手順 ubuntu10.4上で試した。 node.js, express のインスコはこのあたりを参考にした。 $ mkdir sa
環境設定等 ・Ubuntu+nginxでnode.js+npmのインストールからデプロイまで Ubuntuで構築しているので参考になった。 本記事のコメント欄も興味深いコメントが nodejs1プロセスだとブロッキングすると終わるのでfugueなどを使う方がいい。websocket使うならhaproxy使うこと ・node.js のホスティングサービスまとめ node.js + Express テンプレート ・request情報をテンプレートに渡す デバッグ ・node.jsデバッグ方法 バリデーション ・node-validator ・Live form-validation with Node.js ログイン認証 ・Node.js+Express+Mongoose(MongoDB)でログイン認証 簡単なユーザー認証の仕方のサンプルソース有り ・expressの本家サイト, Passin
Androidで連射測定アプリなるものを作成している。 その際に連射する際のボタンの画像を、 ボタンを押してから離すまでの間 のみ「押された状態のボタンの画像」に変更する方法がわからなかったのでメモっておく。 ※キーテルの人に教わりました。 ソース ImageButton(Buttonでもよい?)のオブジェクトをfindViewByIdで取得して、OnTouchListenerを設定してやる。 OnTouchListenerの中では、onTouchメソッドを実装して、MotionEvent.ACTION_DOWN(ボタンが押された時)に「押された時の画像」に変えて、MotionEvent.ACTION_UP(ボタンが離された時)に「通常の時の画像」に変えればOK public class Sample extends Activity { : private static Drawable
djangoでモデル変更する時に、DB定義も変更したかったのでいろいろ探してみると以下があるらしい。 South django-evolution dmigrations id:nullpobug に聞いてみたところSouthがよさそうとのことで、South使ってみる 以下でもSouthがよいとかいってるな。 http://stackoverflow.com/questions/853248/how-can-you-migrate-django-models-similar-to-ruby-on-rails-migrations install easy_install South Southのテーブルを作成 models.pyにモデルを書いた後syncdbを行うとmigrateするテーブルも事前に作られてしまいmigrateできなくなる。 このためstartapp前(正確にはmodels
[iphone] iPhoneのOSを再インストール DFUモードとか iPhoneOS3にアップデートした後に、ゲームをしていると突然 「iTunesにつなげ」 のような紫の画面がでて、電話しかできなくなった。。。 家に帰ってiTunesにつないで復元を心みたり、再度アップデートしようとしてもエラーメッセージがでてしまい全く操作ができない。 電源を落として再起動してみたりしてみたが、まったく無駄なようだ。 softbankの店に持ってこうとおもったが、もう少し調べてみると iPhone完全初期化からの復活を実況してみる。 のページがみつかってDFUモードなるものがある事がわかった。 ただ、このページに記載されているDFUモードの仕方はわかりにくいので、 こちら のページを参照してDFUモードにしてみる。 1. iPhone/iPod Touchをパソコンに接続 2. iPhone/iPo
Androidでキーボードの開閉や画面の向きを変えると、Activityが初期化してしまう。 アプリ上でスコア登録のための名前をキーボードを入力する際などに、キーボードの開閉を行う事がある。そんな時にActivityを初期化させたくない事もある(スコアを保持したいなどのため。) 方法としては2つありそう。 static領域に変数を保存しておく スクリーンが回転した時に新たにActivityが再生成されるのを防ぐ こちらは初期化はされるが、オブジェクトの状態をstaticに保持しておいて初期化されてもstaticに保持しておいたオブジェクトを使用して対応するという方法 android:configChanges="orientation|keyboardHidden"をAndroidManifest.xmlに設定 画面の縦横切替とキーボードの開閉 本設定を行うと画面の変更やキーボード開閉して
以下方法だともっと簡単にできる事が判明。cycleを使う。便利〜。 {% for msg in latest_list %} <tr class="{% cycle "odd" "even" %}"> Django0.97_pre では、テンプレートforタグで奇数、偶数を判断することができない。 このためテーブルの行を繰り返す時に、class指定を変えて行変更するときに不便だ。 以下のようにDjangoソースを直すと、簡単に奇数、偶数を判断できて便利。 本家のMLに、追加要望だしてみようか。。 修正箇所 Django-0.97-pre/trunk/django/template/defaulttags.py 131 for i, item in enumerate(values): 132 # Shortcuts for current loop iteration number. 13
参考URL http://www.nurs.or.jp/~sug/html/chap84.htm <?php $Agent = getenv( "HTTP_USER_AGENT" ); /* 環境変数 HTTP_USER_AGENT を見て、正規表現のマッチングをする(ereg)。*/ if( ereg( "MSIE", $Agent ) ){ print "MSID desu"; } elseif( ereg( "Firefox", $Agent ) ) { print "Firefox desu"; } elseif( ereg( "Safari", $Agent ) ) { print "Safari desu"; } else { print "Other desu"; } ?>
趣味で、似たようなFlashの動作するのだけど、ストーリーや キャラクターがまったく異なるアプリを大量に生成する事になった。 とても一つ一つ手作業で作っていくには一苦労しそう。 という事で、以下手順で大量生産できないか検討中 1. flashで普通にフレーム等を使って、flaファイルを作成する。 ※ストーリーの部分を1カ所のフレームスクリプトにまとめておく。 2. swfmillを使用して、1で作成したswfをxmlに変換 3. 2で作成したxmlのストーリー部分の文字列を各々のストーリーごとに変換 4. 3で文字列置換したxmlをswfに戻す。 上記のような仕組みをつくってしまえば、大量生産が可能となりそう。 Debianにswfmillインスコ 参考URL 事前準備 swfmillのconfigure時にいろいろエラーがでたので、予め必要なライブラリ等いれておく。 0.pkgconfi
複数ファイルをfindで取得してtarで解凍しようとおもったらうまくいかない find . -name "*.gz" | xargs tar xfどうやらtarは複数ファイルを受け付けないため、上記ではうまくいかない。 以下のようにすると複数ファイルが解凍できるようになった。 find . -name "*.tar.gz" -print0 | xargs -0 -n1 tar xfちなみにオプションの意味 find -print0 真を返す。ファイル名をフルパスで標準出力に表示し、各ファイル名に ヌル文字を付加する。このオプションを用いれば、 find の出力を処理 するプログラムにおいて改行文字を含んだファイル名を正しく解釈でき るようになる。 xargs --null, -0 標準入力からの文字列の区切りに、空白ではなくヌル文字が使われてい るとみなす。また引用符やバックスラッシュに特
iPhone SDKを使っていてよくOutletが表示されなくて困る事がある。 以下ではその主な原因について記載しておく。 IBOutlet識別子をそもそも記載していない Outletを表示する際にヘッダファイルに @interface MyViewController : UIViewController { IBOutlet UIScrollView *scrollView1;のように、IBOutletの識別子を記載する事によってInterface BuilderのOutletsの箇所にオブジェクトが表示されるようになるのだが、この識別子を記載していない。 ヘッダファイルの保存し忘れ IBOutletを記載したヘッダファイルを保存していない xibファイルの「File's Owner」とヘッダファイルに記載したインタフェースを紐づかない 今日、ずっとこれにハマっていたので忘れないように
最近djangoでデータ件数が多いテーブルから hoge = Hoge.objects.all() のように取得しようとすると、本ケースのようにデータが多い場合メモリ不足で処理が落ちる事がある。 なんとか他の方法でデータ取得できないかと以下のようにこころみたが"killed"で同じように落ちてしまた。 from django.db import connection, transaction cursor = connection.cursor() cursor.execute("select * from hoge") killed知り合いの方がJavaで同じような現象にはまったことを聞いて、どうやって解決したかを聞いてみると JDBCのドライバ設定をかえて1行1行とるようにしたそうな。 ※具体的なパラメータ名までは聞かなかった。。。 「Pythonにもあるんじゃないの?」というアドバイ
MySQLでMyISAMのエンジンを使うメリットほぼないような気がするのだが、 絶対MyISAMじゃなきゃだめ! みたいな人いるのだろうか。。 MyISAMとInnoDBを簡単にだが比較してみた。 MyISAMとくらべ、InnoDBのメリット ・InnoDBはMyISAMと比較して安全(OSクラッシュや電源断が発生してもテーブルが壊れない) ・トランザクション制御がInnoDBは可能 ・テーブルロックではなく行ロック ・InnoDBは外部キー制約がある ・InnoDBはトランザクション制御ができる などなど MyISAMに比べInnoDBのデメリット ・MyISAMに比べ書き込みが遅い。 →ただしパラメータ設定により、書込み速度を上げることもできる http://d.hatena.ne.jp/kazuhooku/20091029/1256775791 ・1つの巨大ファイルができてしまう。
BPで話題になっているdjango-debug-toolbar. 簡単にSQLやHTTPリクエストの情報を見れるようになるとのこと。 早速インスコした http://robhudson.github.com/django-debug-toolbar/ ちなみに mac os X 10.5.8 に入れるだけ入れてみた。 インストール eazy_install $ sudo easy_install-2.5 django-debug-toolbar パス設定 自分の環境ではeasy_installしてもパスには追加されなかった(デフォでは追加されない?)ので、 PAYTHONPATHにdjango-debug-toolbarのディレクトリを追加 $ vi ~/.zshrc --- # Python export PYTHONPATH=/opt/local/lib/python2.5/site-
Djangoのdjango-command-extensions で manage.py のコマンドを色々拡張することができる。 その中でも気にいっているのがgraph_models。 モデルをER図のような画像で出力してくれる。 さっそく画像出力までを試してみた。 準備 Graphviz グラフ表現を GIF や PNG などのファイルフォーマットに変換してくれるライブラリをインスコ $ wget http://www.graphviz.org/graphviz-rhel.repo $ cp graphviz-rhel.repo /etc/yum.repos.d/ $ sudo yum install graphviz $ sudo yum install graphviz-devel graphviz-doc pygraphviz pythonからGraphvizを使うためのもの $
apache インストール $ sudo apt-get install apache2 → 起動まで自動で行ってくれる mod_pythonインストール djangoと連携用にインスコ sudo apt-get install libapache2-mod-python apache設定 以下はdefaultファイル修正してしまっている。 もっとましな方法があると思うので後で探す。 sudo vi /etc/apache2/conf.d/comeclose.conf ----- <Location "/cc/"> SetHandler python-program PythonHandler django.core.handlers.modpython SetEnv DJANGO_SETTINGS_MODULE comeclose.settings PythonOption django
カンブリア宮殿でおもしろい会社の話をしていたので、チャットでtsudaってみた内容をさらしてみる。 ※結構間違えているかも。指摘歓迎。 社名:眼鏡の21 21創業者は、平本 清 社内結婚率が7割らしい monjudoh 弊社では脳内結婚率7割を目指します!(キリッ) どんな高級ブランド品も4割引き 販売ノルマが無し 社内は脇愛愛。転職者殺到。 ボーナス450万の時も 結局月収がいくらなのかよくわからんかった。 内部留保について 内部留保を21は蓄えていない http://ja.wikipedia.org/wiki/%E5%86%85%E9%83%A8%E7%95%99%E4%BF%9D 内部留保 = 企業の売上 - 経費 <- まちがっているかも 内部留保は、普通の会社だと蓄えるのだけど、 21は、社員の給料と、値下げに全部つかっている 事業でお金が足りないぶんは、社員に出資してもらう
次のページ
このページを最初にブックマークしてみませんか?
『shohu33's diary』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く