こぶたのラッパ » Blog Archives

Author Archives: smilkobuta

ソフトウェアidea

idea#9: 日付と位置で写真検索

Published by:

これもちょっと前に途中まで取り組んでいて放り投げたプログラムです。
デジカメで撮影した写真には撮影日時などの情報(EXIF)が含まれており、プログラムでそれを解析することが出来ます。
また、GPSつきの携帯やデジカメで撮影した写真では、位置情報(緯度経度だけではなく、カメラの向きまでも!)も含まれており、これもプログラムで解析可能です。

なので、インターネット上のそれらの写真データをすべて解析し、「6月のパリ」とか、「クリスマスの全世界の様子」などを検索できるようにすれば面白いなと。
例えば、旅行代理店サイトでそれらの写真を一緒に表示できれば、旅行時期の現地の様子も分かって面白かろうと。

  1. インターネット上の画像を収集
  2. 写真のEXIFを取り込む
  3. インデックス化
  4. Web API作成
  5. 検索インターフェースも作成

上記2、3を作り、1で収集ロボットを作るところで時間がなくなり・・・今に至っています。

ソフトウェア名称・・・タイムアルバム(仮)
工数見積もり・・・1.5人月

ソフトウェアidea

idea#8: ガラス越しのタッチパネル操作

Published by:

touchwall

タッチパネルのPCやタブレットではなくても、後付けでタッチパネル化出来る製品が幾つかあります。
透明なシート状になっており、ディスプレイに貼るような製品です。

↓こういうの

今日見たニュースでは、

普通の液晶モニターがマルチタッチディスプレイになるパネルが登場、マウス無しで操作可能に(via Gigazine)

ディスプレイをタッチするだけで操作できる機能がスマートフォンやタブレット端末などを中心に人気を博していますが、「普通の液晶モニターがマルチタッチディスプレイになる」というパネルが登場しました。

画面にタッチするだけでマウスを使わずとも操作できるようになるため、より直感的な操作が可能となるかもしれません。

もちろん普通のPCにこれをつけても良いとは思いますが、商店などでの店頭設置PC用にも使えるのかなと思いました。
例えば、不動産屋さんが不動産情報検索ができるパソコンを店頭に設置した場合、PCはお店の中に置いたまま、シートだけをガラスの外に貼り付けることが出来れば、PCを外に設置することのリスクをかけずに、見込み客が自由にパソコンを操作できるかもしれません。

タッチパネル・ディスプレイ(amazonの商品一覧)

CMS プログラミング

WordPressなどのソース一式をzip圧縮してダウンロードする方法

Published by:

レンタルサーバーでWordPressなどのCMSを動かしている方は数多くいるかと思いますが、sshやtelnetアクセスができないサーバーも意外に多くあります。
その場合、FTPで時間をかけて何百、何千というファイルをアップロード、ダウンロードしなければいけません。

アップロードについてはすでに「unzip.zip」という素晴らしいツールがありますので、みなさまそちらを使いましょう。

今回ここで紹介するのは、zipで圧縮してまとめてダウンロードする方法です。

zipdownload.zip

上のプログラムをGET&解凍して出て来るzipdownload.phpを、まとめてダウンロードしたいディレクトリの中にアップロードします。
WordPressの場合は、wp-contentとか、wp-config.phpなどのファイルがあるところにアップすればよいかと思います。

ここまで出来れば、後はブラウザで http://xxx/zipdownload.php のようにリクエストしてください!
download.zipという名前でダウンロードが開始されます。

ダウンロードが終わった後に zipdownload.php を必ず削除してくださいねー

ソフトウェアidea

idea#7: イラストの3D化アプリ

Published by:

すでにありそうですが・・・。特にマンガを対象とした3D化アプリ。
構成としてはコアツールと、作者(もしくは画風)ごとに用意したプラグイン形式。ジョジョプラグインとか、こち亀プラグインとか。

ソフトウェア名称・・・Manga-Raising
工数見積もり・・・2.0人月

ソフトウェアidea

idea#6: FamLinesの機能追加2

Published by:

まだ基本の機能ばかりのFamLinesですが、これ作んないとというものを書いておきます。
要するにTODOリストです・・・ってそういえば一回書いたなこれ。

  • ゲストモード・・・誰でもログインなしにフル機能を使えるモード。ゲストアカウントは好きにつくって、みんなで共有できる。
  • スクロールバーを左に切り替えスイッチ・・・マウスがないときに便利。

ソフトウェア名称・・・FamLines
工数見積もり・・・1.5人日

プログラミング

「PHP使いはもう正規表現をblogに書くな」のメールアドレスチェック用正規表現をPHP用に書きなおす

Published by:

メールアドレスをチェックする機能を作るときに、これまで2度「PHP使いはもう正規表現をblogに書くな」と言わせないでくれ / 404 Blog Not Foundを参考にさせていただきましたが、何故か(よっぽどお怒りだったのか?)PHPでは直接使えない記述になっていましたので、毎回自分で修正して使っていました。
今後も使いたい正規表現ですので、PHPでの実装コードと、JavaScript版の実装コードをメモします。

小飼 弾さんの作られたオリジナル正規表現

/^(?:(?:(?:(?:[a-zA-Z0-9_!#\$\%&'*+/=?\^`{}~|\-]+)(?:\.(?:[a-zA-Z0-9_!#\$\%&'*+/=?\^`{}~|\-]+))*)|(?:"(?:\\[^\r\n]|[^\\"])*")))\@(?:(?:(?:(?:[a-zA-Z0-9_!#\$\%&'*+/=?\^`{}~|\-]+)(?:\.(?:[a-zA-Z0-9_!#\$\%&'*+/=?\^`{}~|\-]+))*)|(?:\[(?:\\\S|[\x21-\x5a\x5e-\x7e])*\])))$/

PHP用の実装コード

if (!preg_match('/^(?:(?:(?:(?:[a-zA-Z0-9_!#\$\%&\'*+\/=?\^`{}~|\-]+)(?:\.(?:[a-zA-Z0-9_!#\$\%&\'*+\/=?\^`{}~|\-]+))*)|(?:"(?:\\[^\r\n]|[^\\"])*")))\@(?:(?:(?:(?:[a-zA-Z0-9_!#\$\%&\'*+\/=?\^`{}~|\-]+)(?:\.(?:[a-zA-Z0-9_!#\$\%&\'*+\/=?\^`{}~|\-]+))*)|(?:\[(?:\\\S|[\x21-\x5a\x5e-\x7e])*\])))$/', $email)) {
    $error = '正しいメールアドレスを入力してください。';
}

ereg関数を使えばオリジナル正規表現のままでよいのですが、preg*の方が一般的だと思います。
ここでは「’」と「/」をエスケープしています。

JavaScript用の実装コード

if (!email.match(/^(?:(?:(?:(?:[a-zA-Z0-9_!#\$\%&'*+\/=?\^`{}~|\-]+)(?:\.(?:[a-zA-Z0-9_!#\$\%&'*+\/=?\^`{}~|\-]+))*)|(?:"(?:\\[^\r\n]|[^\\"])*")))\@(?:(?:(?:(?:[a-zA-Z0-9_!#\$\%&'*+\/=?\^`{}~|\-]+)(?:\.(?:[a-zA-Z0-9_!#\$\%&'*+\/=?\^`{}~|\-]+))*)|(?:\[(?:\\\S|[\x21-\x5a\x5e-\x7e])*\])))$/)) {
    error = "正しいメールアドレスを入力してください。";
}

JavaScriptは正規表現リテラルが使えますので、「/」のみをエスケープしています。

ただ、この正規表現では「da.me..@docomo.ne.jp」といったRF2822非準拠の携帯メールアドレスがエラーで弾かれるんですよね。
これをdocomoの変メールへの対応バージョンは・・・次の人にまかせた!

CMS

Contact Form 7で確認用メールアドレスの入力フォームを加える方法

Published by:

Contact Form 7はお問い合わせフォームを用意するのに、非常に便利なWordPressプラグインです。これまでWordPressを使ったサイトで、このプラグインを入れなかったことは一回もありません。

今回確認用メールアドレスを入力欄として設けなくてはならなくて調べたのですが、意外にいい方法が見つからなかったので、自分で作ってみました。

functions.phpに下記コードを追加(UTF-8で保存すること!)

<?php
add_filter( 'wpcf7_validate_email', 'wpcf7_text_validation_filter_extend', 11, 2 );
add_filter( 'wpcf7_validate_email*', 'wpcf7_text_validation_filter_extend', 11, 2 );
function wpcf7_text_validation_filter_extend( $result, $tag ) {
    $type = $tag['type'];
    $name = $tag['name'];
    $_POST[$name] = trim( strtr( (string) $_POST[$name], "\n", " " ) );
    if ( 'email' == $type || 'email*' == $type ) {
        if (preg_match('/(.*)_confirm$/', $name, $matches)){
            $target_name = $matches[1];
            if ($_POST[$name] != $_POST[$target_name]) {
                if (method_exists($result, 'invalidate')) {
                    $result->invalidate( $tag,"確認用のメールアドレスが一致していません");
                } else {
                    $result['valid'] = false;
                    $result['reason'][$name] = '確認用のメールアドレスが一致していません';
                }
            }
        }
    }
    return $result;
}
?>

※2015/3/4に修正しました。まつしたさん、情報ありがとうございます!

Contact Form 7の設定画面では次のようなフォームを記述

<p>メールアドレス<br />
[email* your-email] </p>

<p>メールアドレス (確認用)<br />
[email* your-email_confirm] </p>

これで確認用メールアドレスが実現できますよ~

ソフトウェアidea

idea#5: ブラウザを使ったテレビ電話

Published by:

famtalk

実家と「簡単に」テレビ電話ができたらいいなあとふと考えていろいろ調べたところ、jQuery webcam pluginというウェブカム制御ができるjQueryプラグインがありました。
これとred5(オープンソースのストリーミングサーバー)を組み合わせれば意外に簡単にできるかも?と思い、レンタルVPNサーバーにred5をインストールしてみたのですが、メモリ不足(?)で起動しない。

でここで頓挫したわけですが、多分red5を動かすために使うJVM(OpenJava)の設定の見直しでうまくいきそう・・・というところです。

ビデオチャットそのものはGmailにもついているし、Facebookでもサービス提供されそうだということらしいですが、実家の母親に使ってもらうには敷居が高すぎるんですよね。。

Skypeでいいじゃんという人もいるでしょうが、私はブラウザが好きなので、是非ともブラウザでやりたいわけです。

ソフトウェア名・・・famtalk(仮)
工数見積もり・・・10人日

ソフトウェアidea

idea#4: デジカメ撮影後、既存のシステムへ自動取り込み

Published by:

WirePhoto

クライアントさんからの要望でこういうの欲しいと言われていたのですが、ハードウェア面と画像解析部分で頓挫。いつか作りたいと思っています。

デジカメというよりは、クロネコヤマトの人が持っている端末のイメージで、まず該当する商品を選び、それから撮影し、最後にシステムに取り込むという流れで使いたいのです。

単にデジカメ撮影して取り込むだけだと、自分で写真をより分けないとだめですよね?
そこを効率化したいのです。

一応クライアントさんへの提案として、事前に商品のQRコード一覧を印刷しておいて、まず該当商品のQRコードを印刷してもらい、続いて商品を印刷すれば、システムへの取り込みができますということを伝えてみたのですが、最初のQRコードの印刷が面倒だと。確かにそうかも知れない。

ドラゴンレーダー作成でLCDを多少扱えるようになったので、「Arduino+LCD+CMOSセンサ+無線LANシールド+SDカード」でいけるのでは・・・?と企んでいますが、まだ構想段階です。

そういえばこれ、ソフトウェアじゃないぞ。まあいいや。

ソフトウェア名・・・WirePhoto(仮)
工数見積もり・・・20人日

ソフトウェアidea

idea#3: FamLinesの機能追加

Published by:

rss

先日公開したFamLines
Bloglinesがサービス終了するというので、良い移行先を見つけられなかったのであわてて作成したソフトウェアです。
・・・が!、なんとBloglinesはマーチャンサークルという会社で引き続き運用されることが決定し、あわてて作る必要もなかったということに・・・

ただ、今では(多少の不便はありますが)Bloglinesにはない機能もあり、今後もFamLinesを使い続けるつもりです。
追加したい機能はとりあえず

  1. フィード取得間隔の再調整
  2. いつでもフィード配信先へのリンクを表示
  3. フィード未読フラグの更新を、ページリクエストのタイミングではなく、画面に表示されたタイミングで行うようにする
  4. 戻るボタンで戻ると、一つ前に見たフィード内容が既読のために見えなくなってしまう問題の改善
  5. フィードの編集のAjaxなしバージョン対応

ソフトウェア名称・・・FamLines
工数見積もり・・・2.0人日