Home > Tags > programming

programming

C#でBitmapの比較

一定時間毎にWebブラウザのウィンドウをキャプチャして,変更の有無を検出するコードを書いていたんだけど,ちょっと引っかかってしまったのでメモ.

最初,BitmapクラスにはGetHashCodeというメンバ関数があるから,ハッシュを取得してそれを比較すれば良いだろう,と簡単に考えていた.ところが,GetHashCodeというのはオブジェクトのハッシュを返す関数であり,画像データのハッシュを返すわけではない.つまり,この関数の返り値を比較しても,画像の内容が等しいか否かを判断することが出来ない.

じゃぁ,1pixelごと比較すれば良いのかと考えたのだけれども,BitmapクラスのGetPixelメソッドって,メチャクチャ遅い.そこで,Bitmapの中身をbyte配列に代入して,そのMD5をとることでハッシュ値を取得し,それを比較することで画像の変更の有無を検出することにした.

以下,具体的なコード.これだけの事なんだけど,思ったよりも時間を取ってしまった・・・.

続きを読む

“人生を書き換える者すらいた。”の迷路問題を解いてみた

今更感はあるのだけれど,気分転換に下記のブログで紹介されてた問題を解いてみた.

人生を書き換える者すらいた。 人材獲得作戦・4 試験問題ほか

かかった時間はたぶん60分ぐらい.アルゴリズム的にはA*アルゴリズムを使えば良いらしいけど,正直なところ,よく知らないので,適当に自分で考えてみた.

基本的な考え方としては,距離1で行ける場所,距離2で行ける場所,距離nで行ける場所を順にピックアップしていき,距離nでゴールまで行けるようになったら,そこから逆に最短となる経路を探す,といった感じ.

コメント欄を見てると30分とかで解いてる人も居るっぽいので,私はまだまだだなぁという感じですね.せっかくなので,ソースコードを公開してみます.あんまり綺麗なコードじゃないので,参考にはしないほうがよいと思うけど.

 

続きを読む

TwitterネイティブWebアクセス解析 LogTwitを作りました.

LogTwit.com という新しいサービスを作ったのでちょっと宣伝.

image

以下,本サービスについて説明します.

続きを読む

PHPからTwitterに投稿する

今さら出遅れた感も満載なんですが,Twitter連携のサービスを作ってみたくなったので,どうやったらTwitterAPIを使えるのか調べてみた.

TwitterからPHPに投稿するためには,色々な方法があるみたいなんだけど,とりあえず手っ取り早い方法として,PEARパッケージのServices_Twitterを利用することにしてみた.

続きを読む

仮想シリアルポートを用いた快適デバッグ環境の構築

PCと他のデバイスを連携させて動作するアプリを開発するのって,実は結構面倒なんです.なので,いかにして効率よく開発するかが至上命題なわけです.

あまりにも不便なので,こんな感じでUSB2シリアルケーブル2本と,クロスのメスーメスシリアルケーブルを使って,簡単な動作確認に使おうかなぁとか思っていました,

image

で,これができるならパソコンの中に仮想的にCOMポートを作ってやって,それ同士で通信させれば良いんじゃないの?ということで,それっぽいソフトがないか探してみたところ,Null-Modem emulator(com0com)というソフトの存在を知りました.

続きを読む

MySQLでAuto Increment利用による速度低下

Webアプリを開発する時に切っても切れない関係にあるのがMySQLなどのRBBMSです.これらをいかに上手に扱うかが,エンジニアリングの面白いところでもあり,難しいところでもあります.

私は今までデータベースでテーブルの設計をするときには,各テーブルに通し番号を記憶するためのフィールドを作成して,Auto Incrementで番号を振っていました.

こうしておくと,私が何も考えなくても(Insert文でNULLを指定しておけば),各レコードに連番が付与されるので,非常に便利です.

ただ,知ってる人からすると当たり前じゃんと思われるかもしれませんが,Auto Increment属性を指定すると,Insertの速度が遅くなってしまうんですよね.というわけで,どれぐらい速度が遅くなるのか,実際に調べてみました.

続きを読む

mixiアプリ開発の落とし穴

mixiアプリが流行しているようです.

参考:mixiアプリ効果 PC版mixi、9月のPV・滞在時間が急拡大

この機会に,mixiアプリでも作ってみようかなという方も居るのではないでしょうか.

そこで,Webアプリの開発に慣れていない人がmixiアプリを開発するにあたって,見落としがちなポイントについて紹介します.

続きを読む

XULからローカルファイルの読み込み・書き込みを行う

XULからローカルのファイルを読み書きする必要があったので,その方法を調べていた.

Mozilla developer centerを見ているとFIle I/Oについてのページがあって,これによるとXPCOMを利用することによって,ローカルファイルにアクセスすることが可能になるようです.ただし,このページに従うと,結構コードが複雑になってしまいそうなので,ラッパーライブラリを利用することに.

今回利用したのは,Io.jsというライブラリです.めんどくさい部分が見えないようになってるし,わかりやすいサンプルコードがついているので,非常に利用しやすいです.

続きを読む

OSDE(Open Social Development Environment)が便利すぎる

通常,mixiアプリを開発するためには,以下の手順を踏む必要があります.

  1. ローカル環境で,mixiアプリを構成するためのxmlファイルを記述する.
  2. xmlファイルをサーバに転送する.
  3. mixiアプリの設定画面を開き,キャッシュを消去する.
  4. mixiのページにアクセスする.

で,実際には一気にxmlファイルを書いてしまえるわけでは無いので,1~4の手順を無数に繰り返すことになるのですが,これが非常にめんどくさい.

そこで,mixiアプリの開発を簡単にしてくれるという噂のOSDE(Open Social Development Environment)を使ってみることにしました.

続きを読む

mixiアプリ「LoveCoke」を作ってみた

mixiアプリの作り方がだいたい分かってきたので,さっそく実際にアプリとして作ってみることにしました.

何を作ろうかなぁ,最初だし簡単に作れそうな奴がいいなぁとか思ってたら,目の前にコカコーラがあったので,コーラに関連するアプリと言うことで作ってみました.

このアプリの基本コンセプトは,「コカコーラ社への愛社精神を数値で表現する」ということで,実際に使用した感じは下記の画像のようになります.

自分が飲んだコカコーラの種類を選択すると,これまでに飲んだ総量がわかります.便利です.

coke1 coke2

それにしても私,デザインのセンスないなぁ.

以下では,技術的なこととか書いてみます.

続きを読む

Home > Tags > programming

Search
Feeds
Meta


Return to page top