プログラミング

Arduinoでシリアル通信する際の注意点

Arduinoとシリアル通信をするには、起動時間のために1.5秒ほど待たなくてはならない。 でないとうまくプログラムが動かなくて、唸ることになる。 検証 検証プログラムとして、Arduino側でシリアル通信で何かの文字列を受け取ったら13番ピンに刺さっているLED…

Mac OSXにlibnfcをインストールしてICタグを読み込む

インストール 準備物 Mac Ports gcc libusb ICカードリーダー(RC-S370) Mac Portsとgccが入っているものとして話を進めます。 まず、libusbをインストール $ sudo port install libusb $ sudo port install libusb-compat 次にlibnfcのソースコードをダウン…

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

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

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

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

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

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

web2py for fluxflex パッケージを公開

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

「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>…

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

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

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]を出力するとソートしたこと…

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

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

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

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

音声入力APIを試してみた

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

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 …

Javascriptのsleep関数

C言語でよく使うsleep関数がJavascriptには無い。 この関数は指定秒だけ処理を止めることができる。ググルと、様々な実装があったが、このURLにある実装がシンプルだったからこの実装を拝借した。 http://chaichan.web.infoseek.co.jp/qa3500/qa3644.htm ソ…

JavascriptでHTMLのDOMを生成

動機 このHTMLのテキストファイルからDOMを生成させたい場合に、DOMParserのparseFromStringメソッドを使うと上手く生成されない。 どうすれば、HTMLテキストからDOMオブジェクトを生成できるのかと、思ったのが動機。 問題を起こしてみる 下記のテキストか…

jQueryのDataTablesプラグインを使ってみた

DataTablesプラグインとは tableタグを装飾してくれるjQueryプラグイン。 http://www.datatables.net/ 他のtableタグを装飾してくれるプラグイン 「Flexigrid」 http://flexigrid.info/ 「Ingrid」 http://www.reconstrukt.com/ingrid/index.html ちなみに、…

JavascriptでTableを操作

内容 タイトル通りJavascriptでTableを操作してみた。 ソースコード https://gist.github.com/892316 <html> <head> <title>javascript table</title> <script type="text/javascript"> function onload() { var table = document.getElementById("t"); for(var i = 0; i < 20; i++ ) { var row = table.insertRow(-1); </head></html>…

Boost::asioでニコ生のコメントを取得

行ったこと タイトル通り、Boost::asioでニコ生のコメントを取得してみた。 ソースコード https://gist.github.com/872110 コメント取得手順 ブラウザでニコニコ動画にログイン ブラウザでhttp://watch.live.nicovideo.jp/api/getplayerstatus?v=放送ID を開…

C++でGoogle Chromeのプラグインを書いてみた

はじめに Google Chromeでプラグインを書くには、NPAPIを使用する必要があるあるけど、サンプルプログラムが少ないから勉強するのに敷居が高い。そこで、Nixysaを使うと簡単にプラグインを作成できる。 今回作ったコード https://github.com/nus/NPAPISample…

Windowsでnixysaのサンプルプラグインをビルド

nixysaとは、Google ChromeやFirefoxで独自のプログインをつくるのに必要なNPAPIをラップしたライブラリ。 これを使用することで、複雑なNPAPIプラグインの製作を楽にしてくれる。 nixysaの準備 まず、C++の開発環境であるVisual C++とPython製のビルドツー…

Chromeの拡張でソケット通信がしたかった

結論から言うと、できなかった。 背景 ニコ生のコメントビュワーをGoogle Chromeの拡張で作りたかったけど、どうしてもソケット通信が必要だと分かった。 そこで、ソケット通信を行う方法を模索した。 ソケット通信の方法 NPAPIを使用しソケット通信を肩代わ…

JavascriptとCSSを使ってCSS3の動きを再現

動機 CSS3のアニメーションをJavascriptで実現するのにどれだけ面倒か気になったから。 コード 題材として文字を上下に動かす Only CSS3 : https://gist.github.com/835920 Javascirp with CSS : https://gist.github.com/835919 結論 CSS3だと専用のアニメ…

node.js

この記事を見てnode.jsすげーと思った。 http://d.hatena.ne.jp/mojimojikun/20110219/1298096557 何がって、デバッグ画面が。Chromeのデバッガまんまじゃん。

CSS3 アニメーション - ポインポイン

CSS3について 従来のCSSは配色とか形をデザインしかできなかったが、 新しく加わったCSS3は動きをデザインできる。(例:変形、移動、変色) サンプル 文字が上下に動くサンプル <html> <head> <title>Hello PoinPoin!</title> <style type="text/css"> @-webkit-keyframes PoinPoin { 50% {-webkit-transform: tr</head></html>…

HTML5のキャンバスにお絵かき

HTML5のcanvasに絵を描いた。 筆にはJavascriptを使用。参考サイト http://kachibito.net/web-design/html5-canvas.html 勉強したこと <canvas id="canvas" width="640" height="480"></canvas> というタグを埋めこむと幅640[px]高さ480[px]のキャンバスができる。 絵を貼り付けるには onload = function() { // 画…