サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
アメリカ大統領選
humming.via-kitchen.com
面白そうなtwitter botをPythonでやってみたよ。 まめこ さんの「 ロックンロールニュースの今日のつぶやきをポストするtwitter bot 」が面白そうだったので、 Pythonで100%パクりもんを作ってみたよ。 やりたいってホザいてから、だいぶ時間経っちゃったけども気にしない。 まずはルールをおさらいから。 今日のつぶやき/ロックンロールニュース を取ってくる。 そこから div.txt なテキストだけ取りだす。 twitter に放り込む。 とりあえずは動くところまでやってみる。 まずは一通り使うものをインストール。って言っても easy_install 経由なんだけども。 BeautifulSoup とか python-twitter とか。 #!/usr/bin/env python # vim: fileencoding=utf-8 : import urlli
結構前に Ubuntu の方には MySQL + Senna を入れていたものの、 Mac は make か何かでコケてしまったまま放ったらかしになってた。 で、どうやら MacPorts の PrivatePortfile の中に MySQL + Senna があるらしい事をちょっと前に知って、 時間があったので試してみる事にした。 とりあえず、 LocalPortfile 自体やった事が無かったので、そっちの環境作りからスタート。どこにディレクトリを作れば良いか分からなかったので、とりあえず /usr/local/src に localports というディレクトリを作って、そこで作業する事にした。後は書いてある通りにやって行く。 $ cd /usr/local/src $ mkdir localports $ cd ./localports $ mkdir `ls -F1 /opt/
検索 検索 homeabout metrac 追記: ココに書かれているバグは r176 - bulk-loader - Google Code でクローズされています。 巷でウワサ?の BulkLoader がバージョンアップしたみたいなので触ってみたよ。 複数の種類の複数のファイルを同じインターフェイスで扱える。 ってライブラリらしく、使い勝手はかなり良い感じ。 // 名前を付けてインスタンスを生成 var loader = new BulkLoader('default'); // 取得するURLを指定 // typeを指定しないと自動判別になるらしいよ loader.add('http://twitter.com/statuses/user_timeline/7372692.atom', { id: 'twitter-soundkitchen', type: BulkLoader.
Django でリクエストをPUTとかDELETEで投げる時に、 ちょろっとハマったのでメモ。 jQuery や Flash からPUTやDELETEでリクエストすると、 メソッド自体はちゃんと解釈されるものの、 なぜか渡したデータが取れなかった。 Pylons ではハマらなかったのになぁ。 で、そもそもデータが渡されてるのかを確かめるために、 Requestのraw_post_dataをプリントしてみると、 そこにはちゃんと入ってた。 データの受け渡し自体はちゃんと出来てるらしい。 じゃあ、次はどこでパースしてるか?って事で、 django.core.handlers.wsgi.py を追いかけてみる。 どうやら111行目あたり、 WSGIRequest のメソッドの _load_post_and_files がパースしてるみたいなのですが、 ここで原因を発見。 def _load_po
なんとなく nginx をUbuntu 8.0.4にインストールしてみたメモ。 pcreが必要らしいので先にインスコ。 これが無いとhttp_write_moduleが使えないらしい。 $ sudo aptitude install libpcre3-dev とりあえずは普通にコンパイルしてみる。 コンパイルのオプションは NginxInstallOptions - Nginx Wiki を見れば良いと思うよ。 $ wget http://sysoev.ru/nginx/nginx-0.7.6.tar.gz $ tar zxf ./nginx-0.7.6.tar.gz $ cd nginx-0.7.6 $ ./configure $ make $ sudo make install 起動してみる。 $ sudo /usr/local/nginx/sbin/nginx ブラウザからアクセスし
Mac でパスワード付きzipを作りたいと思って、 色々探しまわってみたら、 Zip Tools for Mac OSX なんてモノを見つけた。 これの中に入ってる zipcloak ってコマンドでパスワードを設定出来るらしい。 で、入れる前になんとなくwhichしてみたら、 10.5にデフォルトで入ってたよ。
AS3 で、あるクラスが特定のクラスやインターフェイスを継承してるか?(インプリメンツしてるか?)を調べるメモ。 インスタンスに対してなら、 is を使えば良いから簡単。 var mc:MovieClip = new MovieClip(); trace(mc is MovieClip); // <- true trace(mc is Sprite); // <- true
AS3でのコーディングスタイルが全然定まらないで、 かなりヤキモキしている訳なのですが、 BeInteractive! さんの スレッドによる非同期処理はこんな感じ にインスパイアされて 早速 AS3Thread を試してみたよ! 使い方は至って簡単。 Snippets - Spark project の サンプル を見れば分かると思うのですが、 Thread なクラスを継承して、 以下のメソッドを必要に応じてオーバーライドしていく。 initialize ... 初期化時に一度だけ呼ばれる。 execute ... ロジックを実行する。 catchError ... エラーがあった場合に呼ばれる。 finalize ... 後片付け。terminateした後に一度だけ呼ばれる。 toString ... 誰か分かるように。オーバーライドしないと親の名前になる。 なので、基本形はこんな感じ
まめこ さんの「 ロックンロールニュースの今日のつぶやきをポストするtwitter bot 」が面白そうだったので、 Pythonで100%パクりもんを作ってみたよ。 やりたいってホザいてから、だいぶ時間経っちゃったけども気にしない。 まずはルールをおさらいから。 今日のつぶやき/ロックンロールニュース を取ってくる。 そこから div.txt なテキストだけ取りだす。 twitter に放り込む。 とりあえずは動くところまでやってみる。 まずは一通り使うものをインストール。って言っても easy_install 経由なんだけども。 BeautifulSoup とか python-twitter とか。 $ sudo easy_install -UZ BeautifulSoup $ sudo easy_install -UZ python-twitter で、出来たのがコチラ。 #!/us
<?xml version="1.0" encoding="UTF-8"?> <items> <item> <id>1</id> <name>hoge</name> <type>word</type> </item> <item> <id>2</id> <name>hige</name> <type>word</type> </item> <item> <id>3</id> <name>hage</name> <type>image</type> </item> </items> >>> from lxml import etree >>> xml = etree.parse(open('test.xml', 'r'), parser=etree.XMLParser()) >>> xml <etree._ElementTree object at 0x7406c0> >>> # ルートノー
Progression Framework の PreLoader メモ。 今まで全く気にしてなかったんだけども、 deploy なディレクトリの中に preloader.swf ってファイルがある。 どうやらデプロイ環境では、最初にコレを読み込んでおいて、 そこから index.swf を読み込むようになってるみたい。 この方法だと index.swf がフォントの埋め込みとかサウンドの埋め込みとかで大きくなっても、 preloader.swf でローディング処理を入れておいてあげれば、 1フレーム目がなかなか読み込まれくてローディングが表示されない。 って問題も回避出来るね。 どうやってローディングしてるのかな?って、 ちょっと気になって Preloader.as を覗いてみた。 が、それらしい処理は書いてない。 なので、親クラスの jp.nium.display.ExPreloade
とりあえずインストールは上手くいってる模様なので、 ドキュメントを読み進めていく。 ココから復習・勉強スタート。 まずは engine 作って MetaData 作って。 ここらへんはインタープリタでやって誤字・脱字すると過激にやる気無くすので、 ファイルに書いてインポートする事に。 0.4からは ORM に関連する部分が sqlalchemy.orm に分かれたらしく、 基盤部分?とは別々にインポートする形になっているみたい。 # vim: fileencoding=utf-8 : from datetime import datetime from sqlalchemy import * from sqlalchemy.orm import * # 実行されたSQLを確認するためにecho=Trueにしておく。 engine = create_engine('sqlite:///tut
lxml で XPath 使ってる時に namespace でハマったのでメモ。 ありがちなところでハマった。 恥さらしの為にもメモりますです。 どんなところでハマったかと言うと、 例えばこんな感じの test.xml なXMLがありまして、 <?xml version="1.0" encoding="UTF-8"?> <root xmlns="http://example.com/hoge/1.0"> <child> <type>1</type> <name>hoge</name> </child> <child> <type>1</type> <name>hige</name> </child> <child> <type>0</type> <name>hage</name> </child> </root> >>> from lxml import etree >>> xml = e
Progression Framework のレクチャー@ nium さんメモ。 とりあえずな定義として、一般的なコンテンツでの表示パターンは大まかにはこんな感じ。 常に表示される 例)グローバルナビゲーション等 特定階層以下で表示される 例)ローカルナビゲーション等 特定のページのみで表示される 例)各ページの内容 その他、特定の条件下で表示される 4はどう考えても汎用化は無理なので、ココでは無視する。 例えばゲーム的なコンテンツを作るとして、 1は、最初に表示させてそのまま放置すればOK 2は、例えば product ページに行ったら詳しい製品情報が出る感じで それ以下でずっと表示、それより上の階層に戻った場合は消去 という感じなので、n 階層のページ以上・以下で分岐する処理 3は、該当ページに移動してきた場合のみ処理すればOK で、ココからが本題。2のパターンを実装したい場合、 特定
vim の設定で久々にぐっとくるのを、 sh1.2 pyblosxom さんの コチラのエントリー にて発見。 特にファイル名補完の設定は、個人的にかなり嬉しい。 って書いておくと、 :e でファイル移動する際の補完機能がいい感じ。 好みはあるものの、個人的にはこっちの方が好き。 ちゃんと下に候補を出してくれるのとか素敵過ぎます。 普段は vi Complete Key Binding List とか Vimの全オプション を参考にさせてもらってるのですが、 ヒマな時にもうちょっと眺めてみて、良い設定とか探してみよう。
今までMacの vim でバックスペースが効かなかった。もうちょっと言うと前回入力した値がバックスペースで消せなかった。 Ubuntuだとちゃんと動くのでなんか気持ち悪いものの、何となく放ったらかしてた。 けど、最近はMacでも vim を使う事が増えて来たので、ちゃんと調べて解決する事に。参考にしたのはいつも vim の事ではお世話になっている Vimの全オプション さん。 で、速攻発見。以下の1行で解決。
Vimpi launched!! yoshuki さんが作ったサービスの Vimpi がスタートしたよ! 自分が使ってる vim のプラグインとか登録しておけば、 Feedで更新が分かるっす。 他の人が使ってる .vimrc とかプラグインも見れたりするので、 参考にするってのも出来ちゃうよ。 vimmer な人は是非ともお試しあれ snippetsEmu.vimメモ snippetsEmu.vim が更新されてたので入れ直したよ。 そのせいで自分で書き換えた部分が全部ぶっ飛んでしまったのは秘密です。 結構使い勝手が良くて使い続けているものの、キーバインドを <TAB> のまま使っていたので、 普通にタブを入れたいときでも反応してしまいイライラする事もしばしば。 良いタイミングなので、キーバインドも変えてしまおうと思って色々調べてみた。
t-matsuda 氏と AS3.0 MouseWheel on Mac OS X を触る必要があったんだけども、 なぜかwindowsでエラー吐くので調べてみたよ。 エラー内容を見てみると、 どうやら SWFMacMouseWheel に registerObject ってメソッドが無いらしい。 それはさすがにアリエナイだろ。って思ってソースを見てみたら、 swfmacmousewheel_src.js の20行目あたりに、ものっすごいのが書いてあった! var swfmacmousewheel = function() { if( !swfobject ) return null; var u = navigator.userAgent.toLowerCase(); var p = navigator.platform.toLowerCase(); var mac = p ? /mac
jQuery.sizeは地味に便利 jQuery でコードをガリガリ書いてると、 ごく稀に凡ミスしてる事に気付かずに、しょーもないバグに悩まされたりする。 そういう時に意外と効果を発揮してくれるのが size メソッド。 動いてるんだかどうなんだか分からない部分は、 だいたいの場合は要素を取得し損ねてるので、 size で確認する事でトラバーシングの見直しをしていく。 $(function () { $('#form-list') .find('ul') .children('li:has(input:submit)') .hide(); });
ココらへんのエントリーから続いて Progression Framework を触っております。 Progressionをインストールしてみたメモ Progressionのチュートリアルやってみたよ。 今回はコマンドを試してみたのでメモメモ。 version 2.0.13 で試しております。 MovieClip や Button などのキャストクラスを、 ステージに配置したり、逆に消したりする時に、 _onInit とか _onGoto とかでやる訳なのですが、 ノーマルにやるとこんな感じになる。 override protected function _onInit():void { // childはCastScpriteとかのインスタンス progression.container.addChild(child); } override protected function _onG
/** * show element(s) as thumbnail * * @author Takanobu Izukawa * @version 0.0.1 */ jQuery.fn.extend({ /** * asThumbnail * * @param options Object that contains some parameter. * width: specified element width. * default value is 170px. * height: specified element height. * default value is 170px. * pattern: specified retrievable regex pattern. * default value is `abdeluxe` custom. * replacement:
jQuery を使って Ajax する時のお話。 GETの時には $.get とか $.getJSON とかレスポンスの種類によってメソッドも色々種類があるのに、POSTの時には $.post 以外にそういうの無いの?と思ってちょっと調べてみた。 結論、メソッド自体は無い。 メソッド自体は用意されてないものの、 $.get も $.post も内部で動いてるのは $.ajax 。 なので、 $.ajax のオプションに dataType を指定出来れば良い。で、 $.post を見てみると4つ目の引数で dataType を指定出来るみたい。 // 4つ目の引数がdataType post: function( url, data, callback, type ) { if ( jQuery.isFunction( data ) ) { callback = data; data = {
easy_install の勉強しようと思ってた時に、 Pylons 触ってた時に使ってた Paste ってどうなんだろ?って思って、 分からないままにちょっと試してみたよ。 とりあえず Paste のインストール。 今回は PasteScript も必要なので、一緒にインストールする。 PasteScript をインストールした時に、 一緒に PasteDeploy も入ったけれども気にしない。 インストールが終ると paster なスクリプトが一緒にインストールされるので、 これを使って作業する。 まずは適当なディレクトリに移動して、 プロジェクトを作る。 paster に create オプションを付けて実行すると、 新規作成の為に色々聞いてくるので、 流れにそって答えていく。 $ paster create Selected and implied templates: Paste
ActionScript3 でのコネタ。 Sprite や MovieClip を BitmapData に変換出来るみたいなので試してみたよ。 とりあえず、確認も含めて普通に表示させてみる。 // Application.as public function Application() { // Stageの設定。 stage.align = StageAlign.TOP_LEFT; stage.scaleMode = StageScaleMode.NO_SCALE; stage.quality = StageQuality.BEST; // 表示用のSpriteを作成。 var s:Sprite = new Sprite(); s.graphics.beginFill(0x000000, 1.0); s.graphics.drawRect(0, 0, 50, 50); s.graphi
TODOリスト の4回目。 今回は駆け足で登録・更新・削除を作っていく。 コレが出来れば一通り必要な機能は全部実装。 ではでは早速。まずは urls.py を編集してリクエストからのパスを通してあげる。以下、 todo/urls.py from django.conf.urls.defaults import * # create, update, deleteを追加。 urlpatterns = patterns('', (r'^create/$', 'hige.todo.views.create'), (r'^update/(?P<object_id>\d+)/$', 'hige.todo.views.update'), (r'^delete/(?P<object_id>\d+)/$', 'hige.todo.views.delete'), (r'^list/$', 'hige.tod
またまた TODOリスト の続き。 やっとこさリクエストのルーティングとかテンプレートとか。今回は汎用ビューは使わずに、出来るだけベタで書いていこうと思う。 ではさっそく、下ごしらえから。まずはプロジェクトディレクトリにある urls.py を編集する。 from django.conf.urls.defaults import * # ^todo/の行を追加。 urlpatterns = patterns('', (r'^todo/', include('hige.todo.urls')), (r'^admin/', include('django.contrib.admin.urls')), ) これでリクエストURIが /todo/ で始まるものが来たら、 todo なアプリケーションの中にある urls.py を見るようになる。が、 todo なアプリケーションの中を見ても、 ur
次はモデルの作成に入る。今回はテーブル1個で済ませてしまおうかと思ったものの、 「 JOIN とかどうやるんだよ!?」 な声が聞こえそうなので2個使ってやってみる。1つ目は todo の内容を保存するテーブル。もう1つは優先度を定義するテーブル。どうってことはないものの、まぁ楽しさは結構上がると思う。 ではさっそくアプリケーション作った時に出来た models.py を編集していく。 from django.db import models # 日付を扱うのでインポート import datetime # 優先度のテーブル(モデル) class Priority(models.Model): label = models.CharField(maxlength=20) class Meta: pass class Admin: pass def __str__(self): return
Django に興味を持ってくれた職場仲間の為にTODOリストの作り方メモとか。 手練の方からのツッコミとかもお待ちしております! 始める前に今回は以下を使用。(某 endless 氏対応) Django -0.96 MySQL -5.0.x jQuery -1.1.2 (使わないかも?) ではでは早速プロジェクト作りから。テキトーなディレクトリに移動してプロジェクトを作る。こういう時って名前に一番迷う。が、 test って名前のプロジェクトは通らないから気をつけて。
jQuery のプラグイン jquery.hotkeys.js を試してみたよ。 ダウンロードは js-hotkeys - Google Code から。 落としてきたものを展開するんだけれども、 カレントディレクトリに散乱してしまうのでディレクトリを掘った方が良いと思う。 展開した中に入っている jquery.hotkeys.js がそれ。 一緒に入ってる jQuery は 1.1.4なものの、 1.2.1もサポートされているみたいなので気にせず1.2.1で動かす。 サンプル的な動きは Live Demo を見るのが良いと思う。 インターフェイスはこうなってるらしい。 // イベント設定。 $.hotkeys.add(KEY, OPTIONS, CALLBACK); // イベント削除。 $.hotkey.remove(KEY, OPTIONS);
次のページ
このページを最初にブックマークしてみませんか?
『1ヶ月激痩せチャレンジ!【炭水化物ダイエットで何キロ痩せれるか】』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く