小人閑居して・・・

Posted on : 24-02-2010 | By : sino | In : Hacking, プログラム道, 地域社会

ここのところ仕事やらJCやらで超絶的に忙しかったのですが、こうしてブログを書いていることからもお分かりの通り、少し落ち着ける時間ができてきました。まあ普段きっちり予定立てて動いているわけでもないんで、半分自分の責任もあります。

さて、「小人閑居して不善を為す」という言葉がありますが、この「閑居」って「一人でいること(他人の目がないこと)」という意味で「暇をしている」という意味ではないんだそうです。要は「つまらない人間は人の目がないと悪いことをする」ということらしいです。

私は聖人君子からは程遠い小人の見本のような人間ですので、やっぱり暇になるとむくむくと妄想が浮かんできてしまいます。思いついたアイデアはWikiにまとめていますが、後で読み返してみると暇なときにはロクなこと考えてないですね。w

現実的なところで今のところ頭の中にあるのはこんなアイデア妄想です。

鴨川市立図書館レビューサイト

そもそも借りた本が自動でどこかにリストにあると面白くね?というところから発展しています。要は「最近借りた本」をブログに張り付けたかったのでした。しかも自動で。
前に「公の図書館では個人の貸出記録を3ヶ月(?)で破棄している」ということを聞いたことがあります。借りた人がどういう思想を持っているかを調べる材料にならないように、ということらしいんですが、その真逆を行く発想です。

で、一覧だけじゃ面白くないので、レビュー(感想)なんかもつけられるといいな、と。他の人が見て参考にもなるでしょうし。

自動化するには、インターネット利用時のパスワードをお預かりする必要があるので、その辺がアレなんですけどねー。

Twitter, Remember the Milk のクライアントを Titanium Desktop で作りたい

先日、disったとまでは言わなくても、「何が面白いんだかわからない」的発言をしたTwitter ですが、前言撤回します。知ってる人がいればそこそこ、いや、結構面白いです。普通のチャットと違って、すぐ相手から反応があるわけではありませんので、基本会話ではなく「つぶやき」になるんですが、それに慣れてしまえば、それなりのつぶやき方もあります。20日に近所の稲荷様の縁日(?)があって青年で手伝ったとき、いろいろな方面で先輩のS藤さんがやっている、しかもハマっていると聞いて「ほほぉ、Twitterもここまで普及したか」と思い直しました。ま、Twitter についてはまた別の機会に。

今まで不思議というか「なんでWeb上のサービスはWebブラウザでしか使えないんだろう」と思ってました。当たり前だろ、と言う声が聞こえそうですが、例えば郵便番号から住所を検索する(2995503 →千葉県鴨川市天津)なんてのは大抵のWebフォームでやっていることですが、これ、例えば顧客管理ソフトとか住所録ソフトで使えればかなり便利だと思うのです。悲しいかなその手のソフトはパソコンのハードディスクにあるデータを元にしていますから、「先月合併して市長村名が変わった」なんてケースに対応できません。だからデータはネット上に置き、それを必要に応じてアクセスする、というのが望ましいわけです。

で、 その手のアプリケーション開発環境といえばAdobe Airが有名ですが、ActionScript覚えなければなりません。その実JavaScriptみたいなもんなのでまあ敷居は低いっちゃ低いんですけれども、Rubyラヴな私としてはRubyでデスクトップアプリ作りたいとつねづね思っていました。ActiveScriptRuby はそれができる候補の一つで、ご好評いただいている(コメントに反応しなくてごめんなさい orz)「NHKラジオ語学番組キャプチャツール」もそれで作っていますが、悲しいかなWindowsでしか動きません。

そこへもってきてこのTitanium Desktop(前置き長っ)。Rubyはおろか PHP, Python, そしてもちろんJavaScriptなど各種LLでデスクトップアプリが作れるというスグレモノ。そして実行環境もWindows, Mac, そしてLinuxと、どんだけユニバーサルなんだって感じになっています。

画面はHTMLで記述でき、ロジックを各種言語で書くようになっているので、 Web屋がデスクトップアプリ作るにはうってつけのツールです。Twitter, RTMに限らず、Web上には便利なサービスのAPIが公開これでもかってほどあるので、いろいろ遊んでみたいと思います。

メールお預かり&IMAPで読めますよ(ウィルス、スパムフィルタ付き)サービス

地元で仕事をしていて案外多いのが「複数のパソコンで一つのメールアドレス(正確にはメールボックス)を共有したい」 というリクエスト。もちろん複数人で読む場合もありますが、宿泊施設ではメインユースのPCが使えなくなったときに予備のPCで読みたい、という需要もあります。

で、それをするにはPOP3ではなくIMAPというプロトコルが便利で、現に私も使っています。が、普通のプロバイダでIMAPに対応しているところは少なく、POPで「サーバにメールを残す」に頼らざるをえません。しかもロクにフィルタしてないので迷惑メールがバンバン入ります。

そこで思いついたのが、できれば直接転送(MXレコード変更 or .forward転送)していただき、それが不可ならPOPで現行サーバからメールを取り出し、弊社のサーバでお預かりする、というサービス。転送あるいは取り出した時点でフィルタにかけ、不要なメールを篩にかけます。付加的に、Webメールとか携帯での読み書きができるといいな、と。

真に具合のいい、すぐにもできそうなサービスですが、ただこれ全部Googleがすでにやってることなんですよね。w しかもロハで。どうやってgmailと差別化するかが課題です。

コンビニプリントサービスとQRコードを活用した地域ミニコミ誌

「そういうものは自腹で印刷しろ」という声が聞こえて来そうですが、ご存じの通り世界一小さな規模を誇る弊社には、市内の皆様に紙媒体でまとまった量の情報をご提供できるだけの資本力はありません。それに完全に紙ベースのものならすでにKamoZineでやっています。(まあKamoZineの内容は外向きのものですが)

そこで、記事のタイトル、本文冒頭(あるいは要約)、サムネイル写真を載せた紙をネットプリントなど各種コンビに印刷サービスで取り出せるようにしておき、欲しい方はコンビニで紙に印刷していただくという形をとったらどうだろうと思っています。記事全文や写真は紙上のQRコードで携帯からアクセスしていただき、より詳しい情報を得られるようにしておく。弊社は印刷にかかるコストを全く負担せずに済み 、欲しい方だけ小額の印刷代をご負担いただくだけなので、まあフェアなのでは、と。

副次的な効果としては、携帯を使える若年層が、そうでない高齢世代に内容を読んであげたりなんかすると、世代間の交流が深まっていいかもなぁなんて考えています。

またも長々と妄想をぶちまけてしまいました。orz 上に挙げたのはアイデアにすぎないので、私に代わってどなたかやっていただいても全く構いません。できれば事後報告していただけるとありがたいですが。

弊社発 地域SNSの立ち上げが遅れている理由

Posted on : 24-11-2009 | By : sino | In : プログラム道, 地域社会

ことあるごとに実生活のエクスキューズを垂れ流している本ブログですが、関係者各位には大変お世話になっております、地域SNS「Zeego.org」の正式稼働が遅れている事情などをご説明したいと思います。

SNSじゃないよね

学校関係者の方からいろいろ機能の削除要請を受けておりまして

  • 日記機能
  • コメント機能
  • コミュニティ管理者だけが一斉配信できるように

などなど、機能追加ではなく「機能削除」しなければならないという点がまず一つ。そして、そうした要請に応えてできたものがはたしてSNSと呼べるのか、という内部的な葛藤があります。実のところ、私も日記機能なんかいらんよな、とは思っていて、もっと面白いアプリが載せられるといいと思っております。例えば手渡しすることが前提のオークションとか、オークションにせずともフリーマーケットみたいなものがあれば、バザーを通年できることになりますし、エコロジーかつエコノミー。

ただ、そうしたアプリを自由度の高い形で載せるには土台の方もかなり手をいれなくてはならなくて、それならイチから作り直した方がいいんじゃないかと模索しているところです。

地元の学校でも新型インフルエンザでバザーが中止になったり、休学になっていたりするので、今が一番求められているところではありますが、より受け入れられやすい形にすべく、頭をひねっています。

それでも登録しない人対策

人間というのは誠に不思議なもので、相手が人間なら個人情報を教えるのに何の抵抗がなくとも、「お手持ちの携帯から入力してください」となったとたん、抵抗を示す傾向があるようです。私個人に教えるのも、私が作ったシステムに入力するのも結局は同じ事なんですが。

そこに働いている心理というのはどういうものなんだろうと考え続けています。そして、そういう人にも抵抗なく登録してもらうにはどうすればいいのだろうと。既存SNSは自己登録が当たり前ですが、代理登録できるようにするといいのかもなーと思っています。

広告掲載に代わる資金調達

最初は広告メールを配信することで、広告主から運営資金を調達することを考えていました。でも、それにはある程度登録者数が集まらないと説得力ないですし、携帯電話では広告の表現力にも限りがあります。

よって、もっと直接的で受益者負担的な資金調達方法を模索しています。

幸いなことに田舎の時間は可塑性を持っているので、ある程度遅れても看過いただけるのですが、さすがにそろそろ何らかの形にしなくてはいけないと思っております。もしかしたら既に遅いのかも。(汗

やっぱりmatzはわかってるよね。

Posted on : 12-04-2009 | By : sino | In : プログラム道

「ソフトウェアは工業製品ではない」、Rubyのまつもと氏が講演 - @IT という記事を読みました。

前にも書きましたが、ソフトウェアやシステムの見積もりを出すときに「人月」または「人日」という用語を使います。一人の人間が何ヶ月/何日かかってそれを作るか、という数字で、「これだけ手間がかかるんですから、お金をくださいね。」とアピールするために使います。

でも、これってよく考えればおかしい話ですよね。この考えで言えば、優秀な技術者が3日で作ってしまったものよりも、私のようなスパゲティコードジェネレータが1ヶ月かかって作ったものの方が高くなってしまいます。

というわけで私自身は「コードは文学作品である」と思っていたのですが、プログラミング言語作者の matz こと まつもとゆきひろ氏も似たような考えをしていることを知り、ますますファンになりました。 まつもとさんは「コーディングとは設計である」と言っているのですが、高度に知的な作業であることを強調している点が私と通ずるものを感じました。

まあブラックな会社ではうつ病寸前、ギリギリまで追い込まれたプログラマが、睡眠時間もろくに取らずコーディングしている(それを「デスマーチ」と言います)事態なんてのがありがちなんですが、あれも、ひとつの人月計算が招いた結果でしょうね。

私は、というと、コーディングを普段から趣味でやっているおかげで、結構速攻が効きます。そのせいで仕事を溜めてしまうのは悪い癖ですが。(笑

小説家でも遅筆の人とささっと原稿をあげてしまう人といるように、プログラマも個人差がやっぱりあるんです。決して機械化して大量生産できるようなものではありません。 その辺りを普通のお客様にわかってもらうのは至難の技なんですけどね。

DNSBLサービス「スパム鯛めし」を公開

Posted on : 22-11-2008 | By : sino | In : Hacking, プログラム道, 未分類

ライブドアの「スパムちゃんぷるー(β)」に対抗し、弊社でもコメントスパム・トラックバックスパム用DNSBLサービス「スパム鯛めし(β)」を公開することにしました。

ライブドアはそれなりの人手とアルゴリズムを駆使していますが、弊社は最小コストでほぼメンテナンスフリーの仕組みを使っています。

手元のスパムIPを調べたところ、ユニークIPベースで 92.8%、延べIPベースで 99.4%の高確率でスパムを検出できました。スパムちゃんぷるーやniku.2ch.netに比べ、遜色ない成績となっています。

プログラマブルでRFCクリア(たぶん ^^;)なDNSの実装にはかなり手こずりましたが、良い勉強になりました。

ご利用は商用・非商用を問わず無料です。ブログ、掲示板などでご利用いただければ幸いです。

ご使用後の感想、ご意見などぜひお寄せください。

ITの本質は「一騎当千」になれることだと思う

Posted on : 14-11-2008 | By : sino | In : プログラム道, 経営道

ご存じの通り、弊社ではいわゆる従業員というものを雇っておりません。まあ人を雇うほど仕事がないというのもありますが(笑)、その前に「その仕事はコンピュータに任せられないか」と考え、実践しているから、というのもあります。幸いなことに、たいていの事務仕事はコンピュータに任せられるので、人を雇う必要性をあまり感じないのです。

もし弊社で人を雇うとしたら、本当に人間にしかできないこと、例えば営業活動などを担当してもらいたいと思っています。よく、録音音声で営業電話がかかってきますが、あれは味気ないというよりも怒りを感じますね。電話営業くらい人間を使ってやれ、と。

ITのよいところは、人間を冗長で繰り返しの多い仕事から解放し、より人間らしい仕事、例えば人と交渉したり、新しい商品・サービスを開発したりといった創造的な仕事に割り当てられることだと思います。つまらない仕事はコンピュータ(機械)に任せて、人間はもっと楽しい仕事をすればいい。

例えばホームページとか電子メールとか、もはやありきたりとなった技術にだって、そういう面はあります。今までは宿泊施設の情報は、電話で問い合わせてパンフレットを送ってもらって、初めて入手できました。ところが今やパンフレットよりも綺麗で詳しい情報がホームページを見れば一目でわかります。電子メールにしても、郵便配達にかかる人的コストをちょっと考えただけでも革命的に効率化されています。

とはいえ、ホームページで伝えきれない宿の良さ、肉筆でなければ出せない味わいも当然ありますよね。そういったものを切り捨てるのではなく、メール一本で済むところをあえて肉筆で郵送するほうが、より人間らしい、心のこもったメッセージングであり、この時代にはもっと見直されていいと思います。弊社の企業理念にある

単なる「情報処理」「効率改善」に留まらず、その先にある快適で豊かなコミュニケーションを実現し、人々の生活の質を向上させたい。高度な技術力に奢ることなく、「人に優しい情報技術」を提供したい。それが高梨IT製作所の願いです。

とはそうしたことを踏まえての記述です。

今、機械に人が使われているケースがどれだけあることか。あるいはシステムの補助部品として人間が使われているケースがどれだけあることか。コンビニのPOS端末なんて、私はバイトした経験があるからわかるのですが、まさにそんな感じです。あれでは店員に商品知識なんて持たせようがない。もっと人間らしい店舗経営のしかたがあるはずだと思って、その形を模索していますが、そこへ行くとうちの両親はなかなか参考になります。いや、うちだけではなく、この辺の老舗はどこもそうです。ただ物を売ればいいというだけでなく、人の温もりを感じられるからこそひいきにしてもらえるんでしょうね。この辺りはなかなかITでは解決できないところです。

旧来の手法と最新の技術をうまく融合したソリューションができればなぁと思っていますが、なかなか思いつきません。どなたか案があったら知らせてください。(w

まだまだだなぁ・・・。(自分のこと)

Posted on : 13-07-2008 | By : sino | In : プログラム道, 経営道

最近、ありがたいことにいろいろな方から仕事のお話をいただきます。が、自分の不得手な分野ばかりなので申し訳なくもお断りしていたりします。

今まで我流で学んできたので、得意・不得意にすごく偏りがあるんですよね。仕事の幅を広げるためにも、もっと勉強せにゃと思うのですが、なかなかその気になれません。時間と脳エネルギーの先行投資と思えばいいんでしょうが。

Ruby のおかげでオブジェクト指向の考え方はわかったので、特に Java 周辺の知識は身に着けたいなぁと思っています。昔、アプレットの開発で挫折したことがあるせいでちょっとしたトラウマになっていますが、市場的には案件多いですし。

google suggest を JSONP で取得

Posted on : 19-05-2008 | By : sino | In : Hacking, プログラム道

もう一つ Google ネタ。こちらはたぶん undocumented なものです。

http://suggestqueries.google.com/complete/search?hl=ja&qu=%E9%AB%98%E6%A2%A8&json=t&jsonp=foo

↑こんなリクエストを投げると、JSONPでサジェスト候補を返してくれます。 パラメータの解説は不要ですよね。

Google Ajax Search が RESTful な JSON(P) に対応してる件

Posted on : 19-05-2008 | By : sino | In : Hacking, プログラム道

Google Operating System のエントリより。

More than one year after Google discontinued the SOAP Search API, it finally got a proper replacement. The AJAX Search API can now be used from any Web application, not just in JavaScript. The other two Google AJAX APIs for feeds and translations were updated for non-AJAX use, as well.

Ajax Search は知ってたんですが、あんまり食指が動かなかったという人も多いはず。こんなのしか作れなかったし。

でも、RESTでクエリを投げると JSONP で結果を返してくれる API が公開されました。サンプルリクエストはこんな感じ↓。

http://ajax.googleapis.com/ajax/services/search/web?v=1.0&q=%E9%AB%98%E6%A2%A8&callback=foo&context=bar&rsz=large&start=8

リクエストパラメータはこちらを参照してください。

ただし、制約もあります。

  • 正しい HTTPリファラを送ること。
  • 一度に取得できる件数は最大で8件。また、32件目以降の結果を取得することはできません。

あと、なるべくAPIキーをつけることが推奨されています。ざっと見た感じでは1日に何クエリーまでという制限はなさそうでした。

元ネタページの追記によると、ほぼ2年前から使えるようになってはいたものの、正式に公開されたのは最近になってからのようです。orz

人月計算がプログラマを腐らせる

Posted on : 01-02-2007 | By : sino | In : プログラム道, 未分類, 経営道

この業界の用語で「人月」あるいは「人日」という単位があります。システム構築などの見積りをするとき、「3人月で120万円」と言ったりする。これはどういうことかというと「3人のプログラマが協力しあって1ヶ月かかって作るくらいの規模」ということです。

でも、これってよく考えてみれば変でしょう?同じものを1人の腕の立つプログラマなら半月で作ってしまうかもしれない。そうしたら、値段は6分の1でいいということになってしまいます。普通の人が1ヶ月かかって作るものを半月で作る人のほうが当然能力が高いはずなのに、値段は下ってしまうわけです。これではプログラマは腐って当たり前です。

プログラミングというのは言うまでもなく高度に創造的な作業です。センス・知識・確実性が求められ、何人がかりで何日と見積れるような作業ではありません。本来なら、お客様のご要望を聞き、締切りまでの期間を考慮し、「このシステムはざっくり○○万円です」と勇気を持って言えば済む話なんですよね。

とはいいつつも、弊社で見積りを出すときは人月・人日という単位をさりげなく使います(笑)。ひとつには見積りに説得力が生まれるからで、もうひとつの理由は、開発期間を長く取れる可能性があるからです。どうしても短納期で仕上げなければならない仕事を除き、「うーん、これは2人月くらいになりますねぇ」などと、ぼそっとつぶやくと、たいていお客様は納得してくれます。作業する側にしてみれば、1ヶ月かけてやる仕事を2ヶ月取れた方が精神的にも大変楽に進められるわけです。人月・人日は見積りを出すときの特別な言葉と割りきって、腹の中では「このお客様にとっての価値」を見積っています。当然、見積りを出す相手によって値段も違ってくることになりますが、それでいいのです。

「競馬を成り立たせているのは意見の相違である」という言葉がありますが、人によって価値観なんて様々なのです。たかが炭素の立体結晶に数億円の値段がついているではないですか。たまたま生れた国が違うだけで、同じ労働をしても払われる賃金が数倍も違うではないですか。不均衡は常にあり、それが価値と呼ばれています。良いか悪いかはさておき、それが世の中というものと割りきらないと、やっていけません

システムは構想3ヶ月実装は3日であるべし

Posted on : 07-11-2006 | By : sino | In : プログラム道, 未分類

能力が低いことの言い訳っぽいですが、プログラムやシステムというのは、3日やれば3日分書けるかというとそうではなく、書けないところでつまづくといいアイデアが浮ぶかいい解決案が見つかるまで時間がかかることもあります。できるっちゃできるけど、もっとスマートな方法はないか、と考え始めるともっと時間がかかります。

構想は前からあったものの、実装に手間を取っていたものが、今日ふとしたきっかけで別の非常にスマートな方法があることに気づき、ほぼ8割方を1日で書き上げることができてしまいました。

こういうのが気持いいんですよね〜。「俺、実は頭いいんじゃね?」と3分だけ自己満足に浸れます。でも、その後今まで思いつかなかった自分がいたことに気づき、「俺、実はアホなんじゃね?」と1日鬱になります。(苦笑