ページのスクロール位置を自動で保存/復元するgreasemonkeyスクリプト

俺がタブを数百枚とか、時にfirefoxが1.5GBにも達するほど開くのはタブを閉じると以前のスクロール位置が失われるからで、要するにどこまで読んだかを保存しておきたかった。 grasemonekey+gearsでやってみよう、と今日の午後に始めたが、 http://code.googl…

pythonでWEBカメラを使ってバーコードを読み取る

ウェブカメラでぴぴっとAmazon中古価格相場とか調べることができたら不要本の処分がはかどりそうだということで適当に実装してみた。 を読み取ると、 ↓ left side character(1) not found: 1111111 left side character(1) not found: 1111111 left side cha…

データストアのoffsetは1000以上では使えない

そういえばそういう制限もあった。 offset may not be above 1000 とかエラーを返してくれる。 制約に合わせて上のアプリを修正。 重要なのは statuses = Status.gql('ORDER BY id DESC').fetch(limit, (page - 1) * limit) ↑だとoffsetが1000以上になってし…

twitterのログを自動的にバックアップするGAEアプリ(cronを使ってみる)

twitterのログを長期間残しておいて、いつでもアクセス可能にしたいな―と思ったので丁度GAEがcronに対応したことだし、とアプリにしてみた。 http://rubyu-twitterlog.appspot.com/ 実際に動いてるところ。 cronで10分ごとに http://twitter.com/statuses/us…

ATOKを簡易なtwitterクライアントとして使えるようにする

twitterでいろいろ作業ログを残そうと思うんだが、専用クライアントを使うんではどうしても一手間余分に掛かってたぶんそのうち飽きる。 これもATOKでやれればメモ帳でもブラウザの検索バーでもテキストを打てるところがあればPOSTできるよなーということで…

色の名前で検索してプレビューしつつカラーコードに変換する

自分が使いそうな機能をあれこれプラグインにしてるが、あんまりニーズはなさそうだ。 これは色の名前で辞書を引き、 その色をプレビュー 〜色などで末尾の不足があるとそれを補える カラーコードに変換 みたいな機能を提供する。 #ここから上はcolors.pyの…

日本語WordNetのデータベースを使ったATOKプラグイン(シソーラスもどき)

ATOKが半角カナの呪いでとても悲しいことになったので、ATOK2009を買った。 そしたらなんとPythonでプラグインを書けるとか。 http://www.atok.com/useful/developer/api/plugin.html どう見ても簡単そうだったので、同じくちょうど見つけたところの日本語 Wor…

app engineでよく使いそうなコード片をメモ(rsserのソースから)

いったんwebapp.RequestHandlerを継承したクラスを作ってバリデーション処理を共通させる 別にバリデーションに限らないが class AbstractHandler(webapp.RequestHandler): def v_url(self, url): if not url: logging.warning('url is blank.') return url …

動画再生のハードウェア支援を使わないとどうしようもない地デジ

TS再生は結構な処理で、ffdshowなんかにやらせるとcore2のコア一個ぐらいはほとんど使い切ってしまう。 一個占有されたらcore2duoはもうなんかcoresoloになっちゃうわけで。firefox君とかaptana君とかが全然軽快に動いてくれない。 core2quadにしようかとも…

rsserを使って、はてなアンテナからlivedoor Readerへ移行してみた

はてなアンテナの「管理」→「データの管理」からOPMLをダウンロードする OPMLをfirefoxなどで開いてデータが正常なXMLか確認する 正規表現で置換ができるテキストエディタでOPMLを開いて編集する bodyの子、outlineがそれぞれのアイテム type="link"になって…

どんなページでも更新情報をRSSで取得できるようにするプロキシっぽいものを書いた

http://rss-er.appspot.com/ アンテナを作ろうかと思ったんだが、cron的な仕事とapp engineは相性が悪いので諦めた データを拾ってきて変更無いかチェック、ってのを数百件ずーっとやらせるのは大変 プロセス10秒も生きてないしね んで、考えたのがラッパー…

firefoxでタブを大量に開くためのstylishスタイル

な感じになる tab mix plusを入れて、タブ多段表示にして、タブを数百枚開くシーンを想定 @namespace url(http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul); .tabbrowser-tabs{ background-image:none !important; } /* アクティブタブの文…

数年探していたベルガモットオレンジがやっと手に入りそう

柑橘類が好きでよく食べる。 あんまり味にこだわりは無かったんだが、去年それができた。 農家が直販というウリで柑橘を扱ってるページのプレゼントキャンペーンに当たった。 送られてきたのはレモン。 そんなに期待はしてなかった。だってレモンとか。あん…

VirtualServerにcentOSを入れてtrac用サーバにしたときのメモ

イメージは「CentOS-5.2-i386-bin-DVD.iso」 メモリが少ないとCUIでセットアップになるので、多めに設定しておく(今回は512MB) 終わったら減らしていい linux vesa i8042.noloop psmouse.proto=imps clock=pitといれてセットアップを起動(vpcでもvirtualse…

tracを導入

google codeで知ったレポジトリブラウザがローカルで使えるなんて!と喜び勇んでサーバを立てた VertualServerのインスタンスがまた一つ増えた 特に躓くところもなく、coreserverのローカル開発用環境を流用してさくっと完了 netbiosで名前問い合わせしてる…

文章投稿サイトはじめました

http://sorr.biz/ 以前作ったパーサがようやくまともな用途に使えた もう少し作り込もうかとも思ったが、いい加減飽きてきたこともあり、ひとまず完了 古くからある location.hashを使ったセッション復元 http://la.ma.la/blog/diary_200502270128.htm とい…

文字列の挿入を多用する場合のパフォーマンスについて

モジュロ演算は便利だが from timeit import Timer ins = 'ins' def through(): return ins def modulo1(): return """%s""" % ins def modulo2(): return """%s0123456789""" % ins def modulo3(): return """0123456789%s""" % ins print Timer('through()…

mod_rewriteを使ってCGI環境で超高速にキャッシュを返す

キャッシュしてもいいHTMLを返すCGIであれば、以下のようにすることでレスポンスがとても高速になる coreserverとかcoreserverとか、fastcgiが使えないので考えた苦し紛れではあるが用途によってはかなり効果がありそう mod_rewriteでキャッシュがあるかを判…

google analyticsのメールレポートでサイトの一部を動的に

analyticsネタをもう一つ analyticsにはレポートをメールで送信する機能がある そして一定以上のレンタルホストなら.forwardなりなんなりでメール受信の際にスクリプトに渡すことが可能 だから、メール送信→受信→スクリプト起動→処理→出力 まで自動処理とす…

google analyticsをデータベースとして使う

静的なhtmlにクエリを渡して、javascriptでそのクエリを取得して処理を行う、以下のようなテクニック var qHash = {}; var ls = location.search; if(1 < ls.length){ var arr = ls.substring(1).split("&"); for(var i = 0, i_n = arr.length; i < i_n; ++i…

javascriptからpythonへ移植したときのメモ

サーバサイドでパーサを動かしたいのでjavascriptで書いたパーサを移植した 去年までならperlで書いたところだが、appEngineが出て自分の中でのpythonの重要度がとても高くなったのでpythonモジュールに http://code.google.com/p/sorrex/source/browse/trun…

正しいパスワードが入力されているかを色で明瞭にする

colors.jsをアップデートして、 カラーコードからRGBへの変換 RGBからカラーコードへの変換 RGBからHSVへの変換 HSVからRGBへの変換 ができるようになったので、その機能を使ってデモを作った inputに適当な文字を入れると反応する 上のinputはbackground-co…

kmyaccのパーサのテンプレートのバグ?じゃないかと疑ってる点(勘違いでした)

kmyacc version4.1.4を使ってjavascriptで動くパーサを書いてて、それについての話です http://sorrex.googlecode.com/svn-history/r48/trunk/js/parse.html に 。水平。 :背景 青 。左 ここも青で表示されてしまう を食わせると <div id="root"> <hr style="background-color:#0095d9;" /> <div style="background-color:#0095d9;" align="left"> <span class="line" id="5">ここも青で表…</span></div></hr></div>

ソフトウェア開発技術者 平成20年 秋 合格

午前試験のスコアは,705 点です。 午後I試験のスコアは,605 点です。 午後II試験のスコアは,655 点です。 だった 申込締め切り日の前日に友人から誘われて受けたので、勉強したのは一ヶ月弱ほど 対策本は3冊買ったポケットスタディ ソフトウェア開発技術…

もういっちょiGoogleガジェットを書いてみた(カラーピッカ)

適当に選んでクリックするとカラー名とカラーコードが取得できる http://d.hatena.ne.jp/ruby-U/20081129/1227885989 で書いたものをガジェットにしただけ 作業時間は一時間半ぐらい これはわりとニーズがありそうな気もする しかしiGoogleガジェットってほ…

igoogleガジェットを書いてみた

作ったものは、例によって独自タグからHTMLを生成するやつ関係 。表、 ああ、いい うう、ええ 。 とか入力して簡単にHTMLを得られる パーサの実装はあらかた終わったのでちょっと遊んでみた ガジェットは楽しいな iGoogleのトップに置いてみたりするとすっげ…

firefox3.1 beta2をさわってみた(適当なベンチ)

めちゃくちゃ適当だが、 http://sorrex.googlecode.com/svn-history/r63/trunk/js/parse.html に 4万文字の適当なプレーンテキストを食わせると Chrome 10ms firefox3.0 30ms firefox3.1 beta2 23ms IE6 80ms http://sorrex.googlecode.com/svn-history/r63/…

クラスの継承、オーバーライド

継承したい オーバーライドしたい 親のコンストラクタは暗黙に実行したい という用途でいろいろと試してみたがいいものがなかったので適当に書いた var C1 = newClass({ initialize: function(){ this.value1 = "foo"; }, getValue1: function(){ return thi…

colors.jsを使ったデモを追加(HSVそれぞれでセルをグラデーションするテーブル)

http://sorrex.googlecode.com/svn/colors.js.demo2.html何か有意義な使い方ができそうだと思ったのでとりあえず書いてみた テーブルのセルが500msごとに一行ずつ書き換わります 一行はHかSかVのグラデーションで、それぞれランダムに範囲(1/24)の中から一…

この間書いたパーサをgooglecodeでMITライセンスで公開することにした

前から使ってみたいと思ってたのでいい機会かも、と昨日登録してふにふにした http://code.google.com/p/sorrex/ googlecodeのホスティングはかなり使いやすくてSubversionに慣れた人なら何も考えることなく作業できると思う 私はブランチ分けたりってのをや…