2011-01-01から1年間の記事一覧

Chrome拡張のバックグラウンドのDOMを取得する方法

chrome.extension.getBackgroundPage().document これでバックグラウンドページのDOMを取得できる。またバックグランド内で定義された変数hogeも取得できる <script> // background.html var hoge = null; </script> <script> // NOT_backgroud.html chrome.extension.getBackgroundPa</script>…

Google Chrome 拡張機能でOAuthを利用する方法

記事について GoogleカレンダーAPIを使って拡張機能を作りたかったけど、OAuthでの認証が必要と分かった。色々調べていると認証が通ったので、そのメモ書き。 拡張機能でOAuthを利用する際に問題になること CONSUMER_KEYやCONSUMER_SECRETを公開してしまうこ…

Chrome拡張機能「ニコ生を見る予定」を作りました

公開場所 ニコ生を見る予定 - Chrome Web Store この拡張について ニコ生の放送予定をGoogleカレンダーに書く込むのがすごく面倒、そんな面倒を解決するのがこの拡張機能です。 2クリックでGoogleカレンダーの予定を作成します。 操作方法は簡単!放送予定で…

Visual C++を使っていてスタックオーバーフローが起こった

問題 Visual C++プログラムを書き、デバッグしていたら、スタックオーバーフローが起こった。 原因 参考資料スタックオーバーフロー - Wikipedia どうや大量に変数を宣言したのが原因かもしれない。 関数を呼び出しすぎて問題が起こったのではなさそうだ。な…

Binary Hacks 0x00

O'Reilly Japan - Binary Hacksを読んでみた。 動機 読もうとした同期は、低レイヤに対するコンプレックスがあるから。PythonとかPerlとか色んな高級言語を使用してきたけど、なかでどんな事が起きているのかしりたかったから。C言語を勉強し始めたのもBasic…

HTMLParserを使ってページのタイトルを取得

発端 ページのタイトルタグを取る必要があったので、正規表現で書こうかと思ったけど諦めた。理由はtitleタグには改行とかコメントアウトされている可能性があるから。 <title> タイトルだよー </title> --------------------------------------------- <title>こっちが本物のタイ</title>…

gitで特定のファイルの履歴を消す方法

$ git filter-branch --index-filter 'git rm --cached --ignore-unmatch targetfile' HEAD これで、特定のファイルtargetfileの履歴を消去できる。 特定のディレクトリは $ git filter-branch --index-filter 'git rm -r --cached --ignore-unmatch dir' HE…

fluxflexでunzipしたい。

なんと、fluxflexにはunzipコマンドがない。 $ unzip filename.zip なんてしても。そんなコマンドはないから、しても意味が無い。そこで、pythonにはzipfileモジュールという、zipファイルのアッシュや解凍をしてくれる便利なモジュールがある。しかも、シス…

web2py for fluxflex パッケージを公開

fluxflex用にweb2pyパッケージを公開しました。 http://www.fluxflex.com/library/47https://www.fluxflex.com/は、Web開発者のためのクラウド・ホスティング・プラットフォーム」です。このサービスは、数クリックでRedmineやWordPressをインストールできま…

web2pyをバックグラウンドで実行

web2pyを実行するのに、ターミナルウィンドウをもう1つ起動し、 $ python web2py.pyとして実行するのは面倒である。そこで、web2pyをバックグラウンドで起動する方法がわかったので、メモ。 バックグラウンドでの実行方法 $ python web2py.py > /dev/null &…

「OpenCL入門」を読んだ

動機 前々から、GPUで計算をさせてみたいと考えていた。書店で「OpenCL入門 GPU&マルチコアCPU 並列プログラミング - 秀和システム あなたの学びをサポート」を見かけ、読んでみることにした。 感想 OpenCLで扱う概念を図と併用して説明されていたので、分か…

web2pyでTwitterのOAuth認証

今回作ったもの http://dougwarren.org/2010/06/oauth-and-web2py-part-1/ ↑のサイトに書いてあるプログラムがTwitterのOAuth認証でユーザのタイムラインを表示するwebアプリ。PerlでCGIプログラムは以前に書いたことがあるけど、Pythonでは初めて。 動機 Tw…

boost::arrayの勉強

boost::arrayは配列をイテレータで操作できる事を知ったので、勉強してみた。題材はウェイポイントを管理するオブジェクトについて。 ソースコード https://gist.github.com/a321013519a4f98197c7 #include <iostream> #include <boost/array.hpp> class Point { public: Point(double _</boost/array.hpp></iostream>…

「達人プログラマー システム開発の職人から名匠への道」を読んだ

覚えているキーワードだけを書きだしてみた。 テストの自動化 直交性 std::auto_ptrの使いどろ ドキュメント プレイン・テキスト テストの自動化 テストを手作業で行うことで、多くの時間が奪われる。 そこで、テストを自動化しよう。そうすれば、コードを新…

iptablesで特定のIPアドレスを弾く方法

対象OSはUbuntu。 設定ファイル : /etc/network/if-pre-up.d/iptables めんどうだから /etc/iptablesにシンボリックリンクを張っている設定ファイルの編集 # vim /etc/iptables 特定のIPアドレスを弾く iptables -A INPUT -s 127.0.0.1 -j DROP設定の反映 # …

SCons on Windows リソースファイルの指定方法

WindowsのSConsでリソースファイルを指定する方法のメモ。 方法 リソースファイルのコンパイル リンク時にコンパイル済みのリソースファイルを追加 1. リソースファイルのコンパイル import sys env = Enviroment() RESOURCES = ['resource.rc'] # リソース…

ファイルの圧縮

mac

tarコマンドを使った圧縮コマンド $ tar czvf out.tar.gz target-dir

Boost C++でSleep sort

元ネタ 常識を覆すソートアルゴリズム!その名も"sleep sort"! http://dis.4chan.org/read/prog/1295544154 Sleep sortについて ソートしたい対象 t = [8, 2, 4, 5] があるとする。 tにおけるi番目のt[i]だけsleepさせた後にt[i]を出力するとソートしたこと…

Macの数式入力ソフト

mac

Macのkeynoteを使っていて数式を入力したいと思ったがそんな機能はなかった。 そこで、数式入力ソフトを探してみたら、LaTeXiTというソフトが見つかった。 LaTeXiT LaTeX書式で数式入力ができるソフトウェアインストールする際に参考にしたページ Pirates of…

mac ports のコマンド集メモ

mac

メモ 参考ページ http://doruby.kbmj.com/tmatsuzawa_on_rails/20090521/MacPorts_ MacPortsでステキなUNIXツールをインストール - はこべにっき ♨ パッケージのインストール $ sudo port install <package> アンインストール 経験上、うまくアンインストールできたこ</package>…

「 MSVCP100.dllが見つから・・・」というエラーが出たときの対処方法

問題 Visual C++でプログラムをReleaseモードでビルドしたけど、 「MSVCP100.dll が見つからなかったため、このアプリケーションを開始できませんでした。」 というエラーが出たときの対処方法。 事の発端は ニコニコ生放送用のコメントビュアー For Google …

Chromeで動くニコ生コメントビュアーを作りました

Google Chromeで動作するニコニコ生放送用のコメントビュアーを作りました。 ブラウザのプラグインのためインストールが簡単です。起動も速いです。 配布場所 https://github.com/nus/CommentViewerForGoogleChrome/wiki 機能 コメントをキーワードによる抽…

VRMLのブラウザ

わけあって、OpenHRP3を使うことになった。なぜなら、CADデータを物理シミュレータに取り込めたらいいなぁと思ったからだ。 OpenHRP3で扱っているデータフォーマットはVRMLで記述することができる。http://www.openrtp.jp/openhrp3/3.1.0.beta4/jp/create_mo…

音声入力APIを試してみた

音声入力APIでいろいろ試した過程をメモした。 本題 Google Chrome 11の正式リリースには音声入力APIが標準で使用できる。 音声入力APIとは 音声で文字をコンピュータに入力するためのAPI。 携帯電話にはすでに実装されていたが、パソコンのWebブラウザには…

Apacheで仮想ホストの設定するまでの道のり

HTTPサーバApacheで仮想ホストを実現するために3時間ぐらいかかった。 戸惑ったこと。ServerNameで仮想ホストを指定しても反応を返してくれない。 <VitualHost *:80> ServerName vh.example.com ... </VirtualHost>上記の設定を書いてもvh.example.comにアクセスしても、Apacheは反応を返し…

configureの結果を表示

$ ./configure した後にconfigureの結果を見たかったら、config.logを見れば良い。 参考./configureのログ -./configureが失敗しました。configureにエラーロ- UNIX・Linux | 教えて!goo $ less config.log でも本当に見たかったのは $ ./configure > log lo…

GoogleChromeの拡張機能を自前サーバで配布したい場合

拡張機能の配布方法は2つある。1つは、Chrome Web Storeでの配布、 2つ目は自前のサーバで配布かである。この記事では、2つ目の方法を記述する。 とりあえず参考資料。 この記事「Web Store Hosting and Updating - Google Chrome」 とこの記事「Loading...…

GoogleChrome拡張機能の自動更新の実装方法

GoogleChromeで拡張機能を作ったはいいけど、自動更新させるにはどうすればよいだろう? きになったから、調べてみた。個人てきに自動更新の実装はしていないけど、まとめておく。Google グループ manifest.jsonファイルにupdate_urlでアップデート情報が書…

メンバ関数を関数ポインタに代入

きっかけ この記事を見て、以前自分も手こずってそのまま放置していたことを思い出したからコードを書いてみた。 問題 メンバ関数のポインタを関数ポインタに代入できない class myclass { public: int foo(); }; int main() { myclass c; void (*func)() = …

気になったドキュメント記述フォーマット

reStructuredText - Wikipedia Markdown - Wikipedia reStructuredText記法 ドキュメントツールであるSphinxで用いられる記法 Markdown記法 reStructuredTextとそっくり。 GithubのREADME.mdファイルで使える。 例 mona/README.md at master · higepon/mona …