フタなしカンヅメ

徒然なるままに @happytar0

類似画像を検索する方法を調べみた その1

Google画像検索のような類似画像を検索する方法を調べてみた。 そんなにいいサーバが用意できるわけではないので、VPS1台で100万件の画像を数秒で処理できる程度と考えた。 サーバを増やしてもスケールできるような仕組みが理想的だ。 ライブラリを探す 画像…

激ニコぷんぷん丸のソースコード公開

先日リリースしたiPhoneアプリ「激ニコぷんぷん丸」のソースコードをGitHubにアップした。 特にいいアイデアも浮かばなかったので、多少インパクトがあって実績になりそうなものを作った。 が…色々迷走した挙句、よく分からないアプリが完成した。 使い道が…

iOS7対応

面倒くさがりなのでブログを書く頻度が少なかったのだが、なるべく細かい記事でも書くことにした。 iOS7がリリースしてしばらく経つのだが、ようやくひと通りiOS7対応が終わった。 後手後手の対応で、アップデートが遅くなってしまいスミマセン。 今回はメジ…

PHPからCOMを使う

PHP

WindowsでIEを制御するためにCOMを使ってみた。 PHPからCOMを使うのは簡単で、「php.ini」からCOMを読み込むように設定すればいいみたいだ。 PHP 5.3.15 / 5.4.5 以前は、デフォルトで読み込まれるらしい。PHP: インストール手順 - Manual # php.ini [COM_DO…

タクトスイッチを使う

温度計にモード切り替え(最高温度、最低温度)を付けたかったので、タクトスイッチの使い方を調べることにした。 まずは、マイコンを使わずにタクトスイッチを使って、LEDを点灯・消灯させる。 かなり苦戦したのだけど、いろいろな人に教えてもらって何とか…

トランジスタアレイを使う

トランジスタや抵抗の数を減らすためにトランジスタアレイを使うことにした。 トランジスタアレイは、TD62064APGというNPN型の4chのものを使用した。 7セグ3桁のトランジスタ・抵抗を置き換える 7セグで使っていたトランジスタと抵抗を置き換えることにした…

USBシリアル変換モジュールを使う

またもや電子工作をサボってしまった…。 プライベートもプログラミングをバリバリやってる人はすごいと思う。この間マイコン先生から電子工作用の部品を色々いただいた。 ジャンパー線やLCDなど便利なものばかり…感謝感謝。どうやら半年くらいご無沙汰だった…

CoreDataのFetchRequestテンプレートで配列を指定

クライアントアプリのコード内にSQL分を書くのがどうもしっくりこないので、FetchRequestのテンプレを使うようにしている。 単純なデータを格納することが多いせいか、テンプレだけで問題になったことはない。fetchRequestFromTemplateWithNameメソッドでテ…

PSCollectionViewでハマる

Pinterest風の表示にしたいと思って色々ライブラリをあさって見たところ、PSCollectionViewという便利そうなライブラリを発見した。 iOS6以上であれば、UICollectionViewというそのものズバリのものがあるようだ。heightForRowAtIndexメソッドの戻り値に個々…

温度センサーとA/D変換

7セグも使うことが出来たので、次は温度センサーを使っていくことに。 これで無事に温度が表示出来れば、ほぼ完成したようなものだ。温度センサーはLM60というものを使う。 このセンサーには3つの足が付いていて、それぞれVs、Vout、GNDとなる。 Vs(VCC)は…

7セグLEDの3桁表示に挑戦

前回の記事で1桁の7セグ表示することができたので、今回は3桁点灯させてみることにした。 3桁点灯させるにはトランジスタが必要ということで、いよいよトランジスタを使うことになる。ここでトランジスタやダイナミックドライブについて調べていくと、 ATMEG…

7セグLEDを使う

いよいよ7セグLEDを使う時がきた。 7セグLEDを使えば、0から9までの数字(あとドット)を表示させることができるのだ! 温度計には無くなてはならないものと言っていい。購入した7セグLEDは、赤色で3桁表示するもので、C-533SRという型のものだ。 7セグメン…

ATMEGA328Pを使う

LED点灯を試すためにATTINY2313を一番最初に買ったのだけど、 7セグLEDを使うためには少しポート数が足りなくなってきた。 思い切ってATMEGA328Pを買うことにした。ただ単純にATTINYと置き換えればいいと思っていたがそうは問屋が卸さない。 割り当てられて…

12VのACアダプタから5Vに変換

温度計作りを構想してからどのくらい経っただろうか… なかなか手を付けるタイミングがなく今年が終わろうとしていたのだけど、 意を決してマイコンいじってみることにした。まずは、今まで電池ボックスを利用していた箇所をACアダプタから電源を確保すること…

アセンブリでLEDを点灯させる【後編】

後編ということで、前回の続きをだらだらと書きたいと思う。 2つのLEDを交互に点灯させたい、ということなので一定間隔で点灯させるために、ディレイ処理を行う必要がある。 C言語であれば_delay_ms関数が使えるのでかなり簡単に実装できるが、アセンブリと…

アセンブリでLEDを点灯させる【前編】

前回の記事で無事にLEDを点灯させることができた。 コードは全てC言語で書いたが、もう一つの方法としてアセンブリで書いてみることにした。 アセンブリなんてコードを見ただけでウンザリしてしまう。でもやってみる前から諦めてもしょうがない。 この機会に…

AVRで温度計を作るために考える

作りたいと思ってから1ヶ月ほどが経過した。 時間を空けすぎるのはよくないので、作るのに何が必要か、どうやって作るのかを調べることにした。温度を測るには温度計センサー(LM60BIZ)なるものがあるようで、 こいつを使えば温度によって電圧を返してくれ…

AVRでLEDを点滅させるプログラム

前回の記事で無事にマイコンを経由してLEDを点灯させる事ができた。 その時に利用したプログラムはサンプルをコピペしただけだったので、2つ接続したLEDを交互にランダム点灯させるプログラムに変更したいと思う。最初にサンプルコードで意味が分からない変…

AVRでLEDを点滅させてみた

前回LEDを点灯させる所まで何とかできた。と言っても、電池ボックスとLEDを接続しただけ…。 今回はいよいよマイコン(AVR)を使って、LEDをコントロールしてみようと思う。まず、ライターであるAVRISPmkIIとマイコンを接続しなくてはいけない。パソコンとの接…

電子工作はじめました

ついに電子工作に手を出してみた。やるやる詐欺をすること1年…はじめるまで長かったです。 三日坊主にならないようにコツコツやっていきたいと思う。電子工作やらマイコンなんてまったく知らない人間なので、まずはLEDを点灯させてみようという事で以下の部…

OpenCVをいじってみた【後編】

前回の記事ではサンプル画像を集めるところまで書いた。 ポジティブサンプルをコツコツ処理するのは面倒なので、opencv_createsamplesコマンドを使って大量のサンプル画像を作ってみた。 opencv_createsamplesを使う opencv_createsamplesコマンドの使い方は…

OpenCVをいじってみた【前編】

しばらくぶりの更新となってしまった…少しずつでも書いていかなきゃだめですね。 物体認識を試してみたかったので有名なOpenCVを使ってみた記録。 OpenCVのインストール Mac環境なのでMacPortsを利用して、OpenCVとObjectMakerをインストールした。ObjectMar…

MT4iのDoS攻撃されるセキュリティホール

MT4iのベータ版である3.1系をのぞく全てのバージョンで、DoS攻撃されうるセキュリティーホールがあるようです。細工されたリクエストを送信するか、もしくは特定の状況下で無限ループしてしまう事が原因で、HTTPプロセスが常駐し続けてしまいます。 原因 記…

ひかりoneギガ得プランのHGW(BL190HW)の性能とその後

ひかりoneのギガ得プランを使い始めて1年が経ちました。実質固定IPという噂でしたが、まさにその通りで一度も変わったことはありません。一つ問題が出てきたのはルータの性能についてです。ルータについては、このブログに記載してあるようにBL190HWというル…

HyperMacのバッテリーセルを交換してみた

先日バッテリーリフレッシュさんにお願いしたHyperMacのMBP-060が戻ってきました。15日に注文して、17日には作業完了のメールが着ていました。到着したのが18日という事を考えるとかなり早いです。 かかった金額は11890円と送料の740円だけでしたので、海外…

Mac専用バッテリーHyperMacを復活させる

HyperMacの寿命はどのくらいなのか 1年ほど前に購入したHyperMacですが、フル充電しているにも関わらず1分くらいでバッテリーが無くなってしまうようになりました。 そんなに使用回数は多くなかった気がします。少なくとも1000回は使っていないでしょう。 使…

tarボールソースからインストールしたソフトを管理する「Graft」を使ってみる

ソースインストールした物を管理するツール「Graft」をインストールして使ってみたので、記録として残しておきます。インストールと言っても簡単で、配布元サイトのドキュメント通りに実行すれば問題ありません。 配布元サイト graft.html - peters $ wget -…

tarボールからインストールしたものを管理

最近はほとんどのものがパッケージで提供されており、ソースからわざわざインストールする機会もずいぶん減った気がします。 しかし、中にはソースからインストールしないといけない場合もあるかと思います。 自分はApacheやPHPなど主要なソフトは、ソースか…

RPMのDBがぶっ壊れた

いつものようにyumでパッケージを更新しようとしたらハングしてしまう。 # yum update Loaded plugins: fastestmirror ## ここで止まってしまう再起動して、またアップデートを実行してみたら、今度は次のようなエラーが表示された。 # yum update error: rp…

iptablesのセッション管理テーブルの上限を上げる

下記のようなログが出るようになったので、調べてみるとiptablesのセッション管理テーブルを使い果たすと出てくるエラーみたいです。 Jul 24 19:25:44 www-02 kernel: printk: 39 messages suppressed. Jul 24 19:25:44 www-02 kernel: ip_conntrack: table …

fon2405EルータにDD-WRTを入れる

iPadを買った時にfonという無線ルータをもらいました。どうせなので、色々いじってみたいと思い、改造ファームウェアを入れてみることにしました。ファームウェアを書き換えるには、シリアルケーブルで接続する必要があるようで、fonの基盤に直接ケーブルを…

mixiアプリでRESTful APIを使う

今さらながらmixiアプリでRESTful APIが使えることに気づいたわけで、早速試してみました。mixiのデベロッパー向けサイトに、サンプルコードも付いて詳しく説明されているので、これを参考にして書いていけば問題なさそうです。 実際のリクエストには、「Con…

PHP版Shindigが上手く動かない

PHP

オープンソーシャルのアプリを開発する上で、必須といえるShindig。Shindigでコンテナを構築すればローカルでオープンソーシャルの開発をすることが出来ます。 そこでちょっとハマったことを記録として残しておきます。まずShindigには、色々なバージョンが…

ブラウザでP2P通信、ファイル転送が出来るのか

P2Pと聞くとマイナスのイメージを持ってしまいますが、P2P技術が使われているプロダクトは意外に多いのではないかと思います。もちろん、P2Pを利用する上での長所・短所はあります。 長所は、通信帯域を多く使うアプリケーションの場合、サーバを介さずに通…

ひかりone(BL190HW)でYAMAHAのルータ(RTX1200)を使う

ひかりoneで他のルータを使う方法をまとめてみます。付属のルータ(HGW)は「BL190HW」というもので、ひかりone自体はDHCPによってグローバルIPアドレスを割り振っているようです。この時にHGWのMACアドレスを参照しているため、他のルータなどに置き換えた場…

海外VPSや専用サーバの比較

ずいぶん更新していなかったので久しぶりに記事を・・・。 海外のサーバをいくつか借りてみたので詳細をまとめてみます。 金額やスペック 種類 名前 金額 CPU HDD メモリ OS 備考 専用サーバ The Planet $89 Celeron2.0GHz 80GB 512MB Linux全般、FreeBSD、W…

lsyncdがおかしい

lsyncdをしばらく使っていて妙なエラーが出るようになった。 Mon Nov 23 07:51:34 2009: ERROR: Cannot add watch /home/www/hogehoge (28:No space left on device)どうやらinotifyの監視対象ファイルが多くなったせいで、上限に引っかかってエラーになって…

PHPにPOSTでBase64の文字列を渡すときは注意

RubyのZlibで圧縮したデータをBase64にして、PHPのスクリプトにPOSTで渡すってことをやっていたのですが、圧縮データを展開できる時と、できない時があって悩んでしまった。よくよく調べると、そもそもBase64をデコード出来ていなかった。それで調べてみると…

VistaのIEではDNSラウンドロビンはしてくれない

2本の回線を使って色々トラフィックを分散していたのですが、結局の所、画像ファイルをリダイレクトして別のホスト(ドメイン)に投げてしまうと表示されないことが判明(IEだけ?)・・・。 あれこれどうしようか検討して、結局一番シンプルなDNSラウンドロビン…

debianでMySQL with sennaのパッケージを作ってみる

debian lennyをインストールしてみました。debianは過去に一度触ったことがあってそれ以来です。まだsargeも出ていなかった頃だったと思います。 FreeBSDとなんとなく似てる所もあるのですが、最小構成でインストールするとほんとにスッキリしてていいですね…

lighttpdで直リンク対策を簡単にする

前回に引き続き直リンク対策をlighttpdでおこなってみたいと思います。Apacheと同じようにrewriteで・・・と行きたい所ですが、lighttpdのmod_rewriteは、Apacheほどの機能は持っていないようです。 設定ファイルにずらずらと書いて行ってもいいのですが、そ…

mod_rewriteで直リンク対策を簡単にする

外部から勝手にリンクされて困ってしまう場合、特に画像や動画ファイルなど比較的重たいファイルを勝手にリンクされてしまうと帯域を無駄に使ってしまい、困ってしまうことがあると思います。 そこでリファラを使って、直リンクされている場合に403を返すよ…

LighttpdのFD_SETSIZE【続】

以前の記事で以下のようなエラーがでるということを書きましたが、ちょっと嘘ついてたみたいというか、適当すぎたのでよく調べてみました。 2009-08-31 14:05:37: (server.c.1337) [note] sockets enabled again 2009-08-31 14:07:16: (server.c.1383) [note…

JavaScriptのラジオボタンでのOnChangeイベントの挙動

Railsでは簡単にAjaxを使えるような仕組みとして、RJSなど便利ものがたくさんあるので、最近よく使ってみたりしています。ちょっとアレ?と思ったのは、ラジオボタンのOnChangeイベントの挙動についてです。IEとFireFoxでどうやら違うみたい。IEの場合は、フ…

Railsでmixiアプリを作ってみました

mixiアプリってなんじゃろ・・・と思いつつ、調べてみたらOpenSocialというコンテナを使って、mixiの中で自分の作ったアプリが動くらしい。 何やら面白そうだったので、Railsの勉強がてらに作ってみました。あしあとプラス ソーシャル・ネットワーキング サ…

携帯開発環境をMoxyからSSBに

今までの開発環境はMoxyを利用させて頂いていたのですが、OSを入れ直したついでにMoxyを新しくしようとしたところ、どうしてもうまく動かすことができませんでした。古いのでいいかと思ったのですが、SSBというのが目につきました。どうやらこいつは、Rubyで…

LighttpdのFD_SETSIZE

Lighttpdを利用していて、エラーログに以下のようなエラーメッセージが表示されるようになりました。 2009-08-31 14:05:37: (server.c.1337) [note] sockets enabled again 2009-08-31 14:07:16: (server.c.1383) [note] sockets disabled, connection limit…

Apache2でPassengerを使ってみる

Apache2のモジュールでお手軽にRailsを動かせるというPassengerをインストールしてみることにしました。そこでちょっとハマった。Apacheは最初からインストール済みで、まずはRubyGemsを入れるところから始めました。yumで入るかと思ったのですが、初期の設…

CentOSでyum update

yum updateでパッケージを更新しようとしたところ、ドバドバっと色々表示されて、挙げ句にエラーが出ました。こんなに更新してないはずは・・・。 --> Processing Dependency: /usr/lib/python2.4 for package: gamin-python --> Processing Dependency: /us…

Awstatsでlogresolvemerge.plを使う

Awstatsで複数のログファイルをマージするために、付属のlogresolvemerge.plを使っていましたが、ある時を境にエラーが出るようになりました。 記録するのを忘れてしまったのですが、以下のようなエラーだったと思います。 Error Command for pipe logresolv…