ツイッターユーザーのためのシンプルなメモ帳『weemo*』を作ったよ!

さてプログラミングのリハビリでIDEA*PADをツイッター対応させたサービスを作ってみました。まだ荒削りですが、一応動いているようなので見切り発車的に公開してみます(リリースしてからが本当の仕事だ、というポール・グレアムの言葉は偉大ですね!)。 名前は「weemo*(ウィーモ!)」です。今までの****padシリーズではないですが、語感がかわいいのでこれに決めちゃいました!(決まるまでの経緯は後述) 使い方は簡単で、ツイッターで認証したあとにメモを作って共有するだけです。共有する際には参加者のツイッターIDを追加した後に、URLを共有してください。 ↑ こんな感じに編集していきます。シンプルにテキストだけね。 ↑ 右側メニュー。こちらもきわめてシンプル。共有用のURL、@展開に加え、最新版を誰がいつ編集したか、共有している人がいつアクセスしたかがわかります。 ↑ ホーム画面ではメモの一覧を見ることができます。 ↑ ちなみに共有された人がアクセスするとこういう画面が出ます。 なお、基本的に性善説に基づいた設計になっており、参加者は誰もが追加・削除できるという鬼仕様ですw。迷ったのですが、そちらの方が便利かな、と思いますので仲良く使ってみてくださいね。 というわけでご利用は以下からどうぞ! » weemo* – ツイッターユーザーのためのシンプルなメモ帳 ■ weemoができるまで(裏話&謝辞) ここからは裏話。 weemo開発のきっかけは昨年末。なんとなく「ツイッター認証のサービス作りたいなぁ」と思い始めOAuthを勉強しつつ、ツイッターの認証レベルざっくりすぎだなぁ、と思ったりしながら、まぁ、IDEA*PADのツイッター版でもつくるか、ということで着手しました。 ちなみにそうなると先発のMeityと思いっきりかぶるなぁ、と苦笑しつつ、でも作者も知っているし、なんとか許してもらおうとざっくりと組み始めます。コードはIDEA*PADからほぼ流用し、さくらのVPSを借りて放置していたものをひっぱりだして、github.comにコードを出し入れしながら開発開始です。 ただこのときにドメイン名がまったく決まっていませんでした。「やはりここは…pad.jpかなぁ」と思いつついろいろなドメインを試したのですが、なんともしっくりこない。しかもサービスの特性上、URLが短い方がいいに決まっている(ツイッターで共有されることを考えると)。 そこで「いやー、まいったよね−」なんてことをチャット友達のstarmix(スタミ)に打ち明けると「ちょっと考えて差し上げよう、うん」ということで数日後「weemoってどう?we+memoでweemo。wをひっくり返すとmになるのもポイント高いよね!」とかデザイナーっぽいことをいうので、その場でドメイン取得。 そこからは「ドメイン決めたのは君だからやはりロゴは君が作るべきだろう」「ついでにFaviconも作ってよ」「デザイナーだからこのページの色合いについてフィードバックをくれたまえ」とリクエストを投げまくりでなんとか完成に至ることができました。ありがとうございます。 ちなみに感謝を込めて彼女のブログなんかも紹介しておきまする。お見知りおきを。 » スタミフィルタァ しかし今回はじめてデザイナーさんと一緒に何かを作りましたが、ゆるやかなプレッシャーがかかっていいですね。「もう出来たのですか?」「いつ出来るのですか?」「リリースはまだですか?」とオンラインになるたびに聞かれるので「オンライン状態を隠す」というスキルが高まりました。本当にありがとうございます。 それからMeity作者のF.Ko-jiにも一応許可をもらいました。Meityの方がなにかと高機能なのでweemo*がいまいち・・・という方は是非そちらをご利用ください。 » Meity.jp (メイティ) – TwitterのIDやリストで公開先を指定するメッセージ作成サービス 最後になりますが、クローズドベータ版をテストしてくれた皆様、ありがとうございました。 というわけでもしかしたらバグなんかが潜んでいるかもしれませんが、ご興味がある方はいじってみてくださいな。しばらくしたら技術的な背景やらなんやらもまとめてみたいと思います。 » weemo* – ツイッターユーザーのためのシンプルなメモ帳

【業務連絡】 IDEA*PAD、トップページリニューアル&サーバー移行

さてちと業務連絡ですよ。シンプルなメモツール『IDEA*PAD』のトップページをわかりやすくリニューアル&サーバー移行しました。 ↑ 今まで何のツールかわからんかったのでリニューアル。すっきり。 パスワードとURLだけで共有できるので会員登録不要です。みんなでよってたかって編集できるので呑み会やイベントの計画なんかに使われているようですね。編集履歴が全部残るし、ケータイからも見れるのでわりと便利じゃないですかね。 というわけでご利用はこちらからどうぞ。 » IDEA*PAD ~ あんまり大事じゃないデータのためのシンプルなメモ共有ツール ~ ちなみにリニューアルしてくれたのはthink-Lさんです。良い仕事します。フリーなので小回りも利きますな。モバイルサイトも得意なんでそっち系のお仕事あればお気軽に問い合わせてみてくださいな。 » think-L | PC・モバイルサイトのコーディング承ります

ACTION*PADの一般公開&無料化のお知らせ・・・

さて長らくベータテスト中だったACTION*PADについてお知らせですよ・・・。 結論からいうと、「課金サービス化を断念」ということになりました・・・。利用状況を見ていたのですが、あまり使われていない&(これが一番大事なのですが)自分で使わなくなってしまった・・・、という理由からこういう結論に至りました。 WISH2009で賞をいただいたこともあり、そのまま突っ走りたかったのですが、変に無理するよりも新しいサービスを作るほうに気持ちを切り替えていきたいと思います。もちろん懲りずに課金サービスにも挑戦していきます。 応援していただいた皆様、ありがとうございました!&力が及ばず申し訳ありません・・・。 ACTION*PADは一般公開してしばらく様子を見つつ、今後どうするかを決めたいと思います。どなたでも無料で自由に使えますのでご興味のある方はどうぞ。 » 会議で使える超シンプルな約束管理システム – ACTION*PAD さて、気持ちの整理がついたので次に行きますかね・・・まずはCheck*padのもろもろを・・・。

【課金サービス開発日誌】 1回の取引では1,000円以上をめざしましょう

さて引き続き課金サービスを研究しておりますよ。今回はコラム的に豆知識を。 個人的に知らなかったのですが、課金サービスでクレジットカードを使いたい場合に覚えておきたいのは次の点。 それは、1回の取引で1,000円以上ないと審査が格段に厳しくなる、ということです。 理由はこれ以下だとクレジットカード会社の方で採算がとれなくなるということらしいです(すごくざっくり言うとね)。 これは厳密に1000円が閾(しきい)値らしく、980円であってもがくんと審査が難しくなるらしいですよ。 なお、これは月額料金が1000円以上、ということではなくて、1回の決済での金額なので「月々300円だけど支払いは4ヶ月単位なので1200円ずつ払ってね」だったらOKです。 ただ、こうすると月額継続課金と違って定期的にユーザーに決済処理をさせることになるのでいろいろと処理が煩雑になります。 よくソーシャルアプリなんかで最初にざくっとポイントを購入させるのもこの理由ですね。たとえアイテムが100円であっても、100円ずつでの決済は難しいので、架空の通貨であるポイントで購入させているという仕組みです(なお、ポイント制にするとそれはそれでちょっとした問題があるのですが・・・これはまた後日)。 こうしたポイントを頭にいれつつ、どういう価格設定にするのか考えたほうが良いですね。 決済をどのタイミングで行うのがユーザーにとっていいのか、決済にかかわる業務の煩雑さをどこまで我慢できるのか、などとあわせて検討してみてください。 ご参考までに。

【課金サービス開発日誌】 決済システムへの接続テストをやってみる

さて前回の続き。今回はいよいよ決済システムに実際につないでみますよ。 なお、イプシロンさんのシステムを使うと、ユーザーから見た決済の手順は以下のようになります。 ↑ こんな感じね。 カード番号やらを入力する画面はいったんイプシロンさんに飛んで戻ってくる、というフローです。こちら側でカード番号とかを持たないので安心ですよね。 では、決済システムへ接続するプログラム(上図のpay.phpとfinish.php)を作り、実際に接続してみましょう。 具体的な手順は以下のとおりです。なお、今回は全体像をざっくりつかみ、とりあえず接続してみるということでエラー処理とかははしょりまくっています。 イプシロンの管理画面で各種設定。 pay.phpを作りこむ。 finish.phpを作りこむ。 テスト環境に接続し、カード番号とかを入力してみる。 データがきちんと入っているか管理画面からデータ確認。 ちょっと長くなりますが、順番にいきますよー。 ■ まずは各種設定 まずはイプシロンの管理画面から各種設定を行っておきます。 ↑ テスト環境を使うのでこちらから。 ↑ こんな画面になるのでがしがし入力します。 ま、特に迷うところはないですよね。ファイル名は自分がわかりやすいように適宜変えてください。 ■ pay.phpを作りこむ 次に支払い画面(pay.php)を作りこんでいきます。なお、イプシロンさんでもサンプルプログラムを用意してくれているのですが・・・PerlなんでPHPで似たようなものを作ってみます。 → PHPのサンプルプログラムが追加されたようです。 面倒なんでソース全貼り付けの術!どんな処理をしているかはコメントを読んでくださいな。 <?php // イプシロンテスト環境への接続用プログラム(注文画面) // created by Gen Taguchi on 2009/11/04 // // POSTだったら以下を処理 if ($_SERVER[‘REQUEST_METHOD’]=="POST") { // 通信にPEARを使います。「pear install HTTP_Request」などでインストールしておいてください。 require_once "HTTP/Request.php"; // 通信データを組み立てていきます。 // テスト環境接続用のURLはイプシロンさんからもらってください。 $req =& new HTTP_Request("http://…………"); $req->setMethod(HTTP_REQUEST_METHOD_POST); // イプシロンさんからもらう契約コード。XXXXXは適当に置き換えてください。 $req->addPostData("contract_code", "XXXXX"); // 結果をXMLでもらいます。 $req->addPostData("xml", 1); // 以下はFormから。 $req->addPostData("user_id", $_POST[‘user_id’]); $req->addPostData("user_name", $_POST[‘user_name’]); $req->addPostData("user_mail_add", $_POST[‘user_mail_add’]); $req->addPostData("item_code", $_POST[‘item_code’]); $req->addPostData("item_name", $_POST[‘item_name’]); $req->addPostData("order_number", $_POST[‘order_number’]); $req->addPostData("st_code", $_POST[‘st_code’]); $req->addPostData("mission_code", $_POST[‘mission_code’]); $req->addPostData("item_price", $_POST[‘item_price’]); $req->addPostData("process_code", $_POST[‘process_code’]); $req->addPostData("memo1", $_POST[‘memo1’]); $req->addPostData("memo2", $_POST[‘memo2’]); // 接続して結果を取得します。結果はXMLで返ってきます。 if (!PEAR::isError($req->sendRequest())) { $xml = $req->getResponseBody(); } // 結果を取り出すための正規表現パターン。 $p_result = ‘!<result result="(0|1)" \/>!i’; $p_redirect = …

【課金サービス開発日誌】 クレジットカード課金、審査OKまでの流れ

さてACTION*PADでなんとか課金サービスを開始するまでの日誌を再開しますよ・・・。思ったより審査もろもろに時間がかかったのでgdgdになってしまい申し訳ありません・・・。無事審査を通ったようなので今までの流れをまとめておきますね。 ■ 今回の狙い 今回は「(個人や零細企業が)Webサービスでクレジットカード課金」が目的です。 他の決済手段の方がビジネス的にいいんじゃね?というご意見もあるでしょうが、ともかくシステム的&業務的にクレジットカード課金に関するノウハウを蓄積&共有したかったので、ここはつっこみなしの方向でお願いします・・・。 ■ カード決済代行会社をどこにするか? さていざクレジットカード課金をする際にはやはりカード決済代行会社を選ばなくてはいけません。一瞬PayPalなども検討しましたが、現時点では日本語システムの問題もあり、やはり国内の業者さんに頼むことにします。 で、いろいろ参考にさせてもらったのが以下のサイト。ここらへんの情報はやたらあるので個人的に参考になったのをピックアップ。 安くて契約が簡易なクレジットカード決済サービス一覧 :: Drk7jp drkさんがまとめているのでなんとなく安心w。ちょっと前の情報ですが。 クレジットカード決済・コンビニ決済代行の比較 表と結論がわかりやすいです。 クレジット決済比較 | ショッピングカート比較大辞典 表が見やすくて便利。 さて、これらを見ていると大量の情報がありすぎて心がくじけそうになりますが、根気よく読みといていきます。自分に必要なものだけに注目していきましょう。なお、今回は次の基準で見ていきます。 儲かるかなんてわからないから初期費用、月額費用はなるべく低コストで(最優先!) PCからの決済のみでOK。モバイル決済も流行ですが、Webサービス的にはいまのところいいかな、と。 カードだけ対応していればOK。 よく見ると料金に関してはWeb上に明記してあるものと、「お問い合わせください」というものの2つあります。問い合わせのやりとりはなんか時間かかりそうなので前者で。 で、結論からいうと今回はイプシロンさんにお願いすることにしました。「初期費用無料」「月額費用も格安」「Web上でのレビューも良い」の3点から選びました。 ちなみにGMOグループなので知り合いを通じて社長さんも紹介していただきました。電話でお話しただけですが、かなり好感の持てる人で、それで決めた、という経緯もあります。 » クレジットカード決済代行イプシロン株式会社 また、彼と話していて印象に残ったのは「うちは例えると『かけそば』のようなサービスです。そばだけだったらすごく安い、オプションは追加で注文してね、というシステムです。僕自身が使わないと思っているものは全部最初からはずしてあります」という言葉。いいですよね。 また「今回の経緯をブログに書いてもいいですか?スクリーンショットとかも出していいですか?」と聞くと「どうぞ、どうぞ」とのことだったのでガンガンいきますw(正直にいきますので記事広告とかじゃないですよ)。 ■ カード会社審査OKまでの流れ さてでは実際どうしたらいいのか、ということですが、ざっくりまとめると以下のような流れです(全体像を把握してもらうためにあえて細かいところを省いていますよ)。 課金したいサービスのWebを作る(当たり前ですが)。このサイトを見ながらクレジットカード会社は審査をします。重要なのは次の3点。これらを整備しておきましょう。 サービスの内容は何か? 料金はいくらか? 「特定商取引法に基づく表記」 イプシロンのサイトから申し込み。いろいろ入力しないといけませんが、特に迷うところはないかと。 申し込み完了と同時に会員ページへのID&パスワードがもらえます。ログインしてざっと内容を見ておきましょう。 ↑ 会員ページはこんな感じ。 ここからイプシロン側では一次審査が始まります。一次審査はクレジットカード会社に審査してもらう前にイプシロン側でやってくれる事前チェックです。カード会社の審査は一発勝負なので事前チェックをしてくれるのはありがたいです。 また一次審査と同時にこちらではテスト環境を使って接続テストをします。Webサービス側でプログラムを書いて、決済情報がちゃんとイプシロン側にわたるかのチェックですね。こちらについてはちょっと細かいので別記事にします。 しばらくすると一次審査の結果がきます。問題があればさっと直しましょう。ここらへんはメール&フォーム問い合わせでやります。なお、イプシロンさんの対応は迅速かつ的確でかなり好感が持てます。ただ、コストを抑えるためにネットのみでの対応になります。 一次審査がOKになったら次は二次審査ですよ。審査に落ちたら再審査はできないそうなのでドキドキです。ちょっと時間がかかるのでしばらく待ちます。 しばらくすると結果が通達されます。OKだったら連絡が来ます。 ↑ ちょっと生々しいけど審査の様子をそのままあげちゃいましょう。9月29日から始めて、10月21日までかかりましたね。 審査OKだったら申し込み書、登記簿謄本、印鑑証明書を郵送して利用開始です。 ↑ 送った! 以上、審査OKまでの流れを紹介してみました。はしょったところもありますが、全体像をつかんでいただけたらと思います。 システムテストに関しては別記事にしますね。ぶっちゃけここからが大変ですが、どんな経験も最初が大変ですよね(昔はサーバーたてるのも大変だと思っていたなぁ)。ここらへんで経験を積んでどんどん課金サービスを作っていきたいところです。 できるだけノウハウ共有していきたいと思いますので、みんなで課金サービスつくりましょうよ・・・と思ったりする今日この頃です。

CentOS+ApacheにSSLを組み込む方法

さてACTION*PADがらみでSSLに挑戦中。以下、作業ログ。SSLを自分で仕込むのは初めてなので突っ込みどころがあればコメント欄にて・・・。 ■ このエントリーの目的 セキュリティ関連は細かい点が非常に大事ですが、ざっくり概要を知らないと手もつけられないので今回はなるべく簡潔に。 なお、対象は大企業ではなくて、個人や零細企業がコストを抑えて導入したい場合を想定しています。 ■ 作業の全体像 作業の手順は以下のとおりです。 SSLについて理解する SSLの認証局を選びます サーバ側で秘密鍵とCSR(Certificate Signing Request)ファイルを作ります CSRを認証局に渡してCRT(Certificate)ファイルをもらいます Apacheの設定&再起動 テストして完了 ではそれぞれの手順について以下に詳しく。 ■ SSLについて理解する SSLって何?という人はここらへんからどうぞ。もうわかっている方は次のステップへ。 @IT:運用:個人情報保護法時代のIISセキュリティ対策(前編) 個人情報保護法時代のIISセキュリティ対策(後編) - @IT ■ SSLの認証局を選びます SSLの認証局はいろいろあって、価格や手続きもいろいろです。有名なのはベリサイン、ジオトラストでしょうか。 なお、よく選ぶ基準として、価格、期間の他に、(1)ケータイにどこまで対応すべきか?、(2)企業の実在証明までやるか?があがってきますが、ここでは「ある程度新しいケータイしか視野にいれない」「実在証明は大事だけどお金かかるから・・・」ということで安いところを選びます。以下は参考です。 » SSL証明書はプロバイダーによって何が違いますか?|ホームページに関するQ&A|ホームページ制作マッチング というわけでジオトラストのRapidSSLをえいや!で選びます。 » SSL 証明書|ジオトラスト RapidSSL事業部 いまだとRapidSSLで1年31ドルですね。円高なのですでにいい感じですが、ここでは実験なんでさらに安いFreeSSLを選びます。安いというか無料です。ただ、30日間限定のトライアル用です。 » FreeSSL | トライアル SSL 証明書 ■ サーバ側で秘密鍵とCSR(Certificate Signing Request)ファイルを作ります 認証局も決まったのでサーバー側の設定に移ります。参考にしたのは次のサイト。 apache+mod_sslでSSL — server-memo.net CentOS Server セットアップ備忘録 (5) – Apache2 に SSL 導入 – kamicupの備忘録 最近のCentOSだとmod_sslもopensslも最初から入っているのでざっくり次のコマンドを実行しまくります。 # cd /etc/httpd/conf/ssl.key (ない場合は作る) # openssl genrsa -des3 -out server.key 1024(パスワードは覚えておく) # chmod 400 server.key # openssl req -new -key server.key -out server.csr (いろいろ聞かれるので適切に入力) # chmod 400 server.csr なお、csrを作るときの「Common Name」はSSLにしたいドメイン名を入れます。僕の場合、「actionpad.jp」にしています。「www.actionpad.jp」と「actionpad.jp」は別物なので注意です。ちなみにactionpad.jpの場合はwww.actionpad.jpに来たアクセスは全部actionpad.jpに転送することで一つにまとめています。 これで完了です。なお、CSRを作ったときの情報はあとで必要になるのでメモっておきましょう。 ■ CSRを認証局に渡してCRT(Certificate)ファイルをもらいます ここまで来たらRapidSSLから証明書をもらえるように申請します。お申込みは以下のページの右下、「お申し込みフォームへ」から。 » FreeSSL | トライアル SSL 証明書 特に迷うところはないかと思いますが、プラン選択では「FreeeSSL」を、CSRはserver.csrの中身を(点線部分もちゃんとね)入力します。またここで「admin@(コモンネーム)」のメールアドレスが必要になりますのでちゃんとメールが届くように設定しておきましょう。僕の場合は「admin@actionpad.jp」です。 申請してちょっと待てば(1日~2日)、メールでCRTが送られてきます。 ■ Apacheに秘密鍵とCRTを組み込みます もらったCRTは/etc/httpd/conf/ssl.crt/server.crtにコピーして「chmod 400 server.crt」しておきます。 次に/etc/httpd/conf.d/ssl.confを編集して以下のように設定します。 …