2010年12月31日金曜日

Google App Engine+Pythonで問い合わせフォーム作成(完成)

Google App Engine+Pythonで問い合わせフォーム完成しました。
いやーいろいろありましたが、年内にどうにか間に合いました。
問い合わせ確認画面で他のinput項目と同じように、問い合わせ内容を表示用に"{{contentchar|escape }}"で引き渡し、さらに <input type="hidden" name="content"・・・で戻った場合の引き渡し用としていたのを、残っていた問題も師匠にアドバイスもらい、<textarea>でreadonlyとして、<input type="hidden" name="content"・・・を止めたら、うまくいきました。


この問い合わせフォームの作成で、以下のことを習得しました。
①Google App Engine環境
   →PC側へのインストール、local側での実行、サーバー側へのアップロード、サーバー側での実行
②Pythonプログラミング
   →Pythonの仕組み、構成、デバッグ、画面遷移
③PythonとHTMLの関係
   →HTMLの分離、PythonからHTMLへのデータ引渡し、HTMLからPythonへのデータ引渡し
④Javascriptでの入力必須チェック
   →Javascriptの分離、Javascriptからのフォーム呼び出し制御
⑤スプレッドシートへの書き出し
   →セルの制御、データ書き出し
⑥メール送信
   →メールメッセージの編集、bccでの送付

技術的にHTMLを少しやっただけだったので、最初はうまくいかないことの連続でした。
わかったこと(教訓)は、欲張らないことですね。ロジックの変更やHTMLの変更を欲張ると、どこが悪いのかわからなくなってしまうので、少しずつ着実に進めて行くことが、結局は早道であることを実感した、半月でした。

今、紅白でSMAPがとりを歌っています。2010年ももうすく終わりです。
来年もよろしくお願いします。

それではみなさん、よいお年を。

Google App Engine+Pythonで問い合わせフォーム作成(その後2)

問い合わせフォーム作成ですが、やっと一通りの処理ができるようになりました。

①問い合わせ入力画面 ・・・ Javascriptでの必須入力チェック
                                      [確認]ボタンで②の確認画面を表示
        ↓
②問い合わせ確認画面 ・・・ 入力されたデータの引継ぎ
                                      [修正]ボタンで①の入力画面を再表示
        ↓                           [送信]ボタンで確認メールを送信後、③の確認画面を表示
③完了画面

ひっかかったところは、[修正]ボタンで①の入力画面を再表示するところ。ロジックがどこを流れるかわからなかったところと、データの引渡し方法に苦労しました。
Pythonではprint文、JavascriptではAlertを入れて流れを確認しつつ、トライ&エラーで進めて、ようやくここまで辿り着いたという感じです。

一つだけうまくいっていないところがあり、問い合わせ内容に"Textarea"を使っているんですが、②→①の入力画面を再表示する際に、この"Textarea"だけデータが引き継げないのです。
①→②でHTMLの <input type="hidden" name="XXXXXX" value="{{ XXXXXX|escape }}にデータを渡しているんですが、このデータを①を再表示する際Getしているんですが、内容が表示されません。"Textarea"のデータの引継ぎはJavascriptでやるしかないのかなぁ。

2010年12月19日日曜日

Google App Engine+Pythonで問い合わせフォーム作成(その後)

さて、Pythonで問い合わせフォーム作成ですが、師匠のアドバイスを受け、問い合わせフォーム画面と確認フォーム画面の遷移をGoogle App Engineのデータストアに保存することなく、コードをシンプル化することまでできました。


コードは以下の通り。
 'template/contact.html'と 'template/confirm.html'はFrontPageで作成しました。



# -*- coding:utf-8 -*-


import cgi
import wsgiref.handlers
import os
from google.appengine.ext.webapp import template
from google.appengine.ext import webapp


class ContactForm(webapp.RequestHandler):
  def get(self):
    template_values ={}


    path = os.path.join(os.path.dirname(__file__), 'template/contact.html')
    self.response.out.write(template.render(path, template_values))


class ConfirmForm(webapp.RequestHandler):
  def get(self):

    template_values = {
       'company' : self.request.get('company'),
       'division' : self.request.get('division'),
       'yourname' : self.request.get('yourname'),
       'furigana' : self.request.get('furigana'),
       'mailaddress' : self.request.get('mailaddress'),
       'tel' : self.request.get('tel'),
       'R1' : self.request.get('R1'),
       'content' : self.request.get('content'),
       'agree' : self.request.get('agree') ,
      }


    path = os.path.join(os.path.dirname(__file__), 'template/confirm.html')
    self.response.out.write(template.render(path, template_values))


def main():
    application = webapp.WSGIApplication(
                                     [('/', ContactForm),
                                      ('/confirm', ConfirmForm),
                                      ],
                                     debug=True)
    wsgiref.handlers.CGIHandler().run(application)


if __name__ == "__main__":
  main()


今、確認フォームの「送信」ボタンで、スプレッドシートに書き込む機能を追加しようとしていますが、gdataのモジュールがうまく認識されなくて、またまた苦戦してます。Googleのヘルプは英語が多いということもありよくわからないし・・・
うまくいったらまたブログにアップします。





2010年12月14日火曜日

Google App Engine+Pythonで問い合わせフォーム作成(経過)

いやー。やっぱり苦戦しました。
Pythonはなんとなくわかるものの、HTMLファイルとの関連がよくわからなかったのと、日本語の文字化けを解消するのに時間がかかりました。

pyファイルの文字化けは、ネットで調べたら先頭に # -*- coding:utf-8 -*- を入れれば解消されることがすぐにわかったが、HTMLファイル側の文字化けは、ネットではunixやLinux環境の事例が多く、utf-8形式でにすればいいことはわかったが、Windowsでどうするのかわからなかった。
HTMLファイルをFrontPageで開いて試行錯誤してるうちに、Web設定でutf-8に変更できることがわかり、ようやく解消しました。それと昔ホームページをFrontPageで作っていたことが役に立ち、表作成や背景色の入力フィールドの作成等が簡単にできるようになりました。
これで問い合わせ画面からの入力で、Google App Engineのデータストアに保存できるとこまではできたので、後は確認画面への切替と必須項目チェック、スプレッドシート連携、メール自動までやりたいので、まだまだ先は長いです。明日、近くのGoogle App Engine+Pythonの師匠にお会いしてレクチャーしてもらうので、何とか目処を付けたいです。

作成した問い合わせフォーム

問い合わせ確認フォーム

FrontPageのWeb設定画面

2010年12月12日日曜日

Apps Scriptでフォーム送信時に自動返信する機能を作成

昨日、試行錯誤しながらも、自動送信までいけたので、今日はホームページの問い合わせフォームとか、セミナー申し込みフォーム等への実装を完了。久しぶりのScript作成だったので、苦労したところもありますが、思ったより簡単でした。

せっかくなので、テストしたコンパクト版を公開します。

①Google Apps Scriptの Script Editorを開く












②スプレッドシートで名前付けされた範囲を設定
















③Scriptを作成













scriptの内容は以下の通り。
項目名で取得する方法もありますが、セル番号取得しています。
プログラミングは久しぶりなのでスマートではないかも。
※もし、おかしいところがあればコメントください。

function responsemail() {
  try{    
  sh = SpreadsheetApp.getActiveSpreadsheet();
  r = sh.getRangeByName("sheetRange");
  var s = r.getRowIndex();
  var e = r.getLastRow();
  var l = r.getColumnIndex();
  //設定した範囲の行数を定義(タイトル行含む)
  var j = 40 ;

  Logger.log([s,e,l]);
    for(var i=1; i< e-1 ; i++){
      Logger.log([i,r.getCell(i, 1).getValue(),r.getCell(i, 2).getValue()]);
      if(r.getCell(i, 1).getValue() == "")  break;
      if(r.getCell(i, 3).getValue() != "SENT"){ 
         MailApp.sendEmail(r.getCell(i,1).getValue(), "XXXXXXXXXXからの自動返信", "この度はお問い合わせを頂きまして、誠にありがとうございます。\n本メールはXXXXXXXXX株式会社にWebサイトでお問い合わせを頂いた方に自動返信で送信しております。\n\n\n------------  ご送信内容の確認  ------------\n以下の内容が送信されました。"+"\nメールアドレス : "+r.getCell(i, 1).getValue()+"\n電話番号 : "+r.getCell(i, 2).getValue() , 
         {cc : "xxxxxxxxx@xxxxxxxx.com"});
         r.getCell(i, 3).setValue("SENT");
    }
    if(e > j-2 ){
      //設定した範囲の行数に達したら管理者にメールを送信する 
      MailApp.sendEmail("xxxxxxxxx@xxxxxxxx.com", "***error*** Range overflow", "スプレッドシートの名前付けされた範囲の行数に達しました。行を拡張してください。 getLastRow="+e);
    }

  }
  }catch(e){
     //エラーが発生した場合に管理者にメールを送信する
       MailApp.sendEmail("xxxxxxxxx@xxxxxxxx.com", "***error*** Auto Mail Send", "予期しないエラーが発生しました。 message="+e);
  }
}

※自動返信が正常実行されると、メール送信ステータスに"SENT"が格納されます。
※ログ確認も組み込んでます。


④メニューTrigger > Current Script's triggers ...を選択







⑤Runに対象scriptを、Eventsに from Spredsheet - On form submitを選択







⑥フォームから入力して送信

















⑦スプレッドシートで確認



⑧自動返答メールを確認











※スプレッドシート更新時のメール通知(共有-メール通知の設定)は、解除しました。

2010年12月11日土曜日

恵比寿はクリスマスムードいっぱいだった

今日は、久しぶりに恵比寿に行ったが、どこもクリスマスムードでいっぱいでした。
12月も中旬なので、当然といえば当然か。

入力フォームに自動メール送信機能を付けたくて、Apps Scriptを作成し始めたが、なかなかうまくいかなかった。やっとセルの内容をメール送信することができたので、何とかなりそう。



2010年12月10日金曜日

Google App Engine+Pythonでチュートリアルを実行

Google App EngineのPython版チュートリアルをやってみた。

Google App EngineのサイトにあるPython用のチュートリアル


まず、以下の2つをダウンロード
・Python の Web サイトから Python 2.7をダウンロード
・Google App EngineのサイトからApp Engine SDK をダウンロード

最初、PC側の環境がよくわからなかったが、やっと解明した。

PC側の環境はコマンドプロンプトから
①cd C:\Program Files\Google\google_appengineでApp Engineのフォルダに移動
②任意のアプリのID名(mksite-app)でフォルダ作成
③フォルダ配下にチュートリアルの指示通りファイルを作成
④google_appengine/dev_appserver.py mksite-app/でWebサーバーを起動

チュートリアルの内容
このチュートリアルでは以下を習得します。

  • Python を使用して App Engine アプリケーションを構築する方法
  • Web アプリケーション フレームワーク「webapp」を使用する方法
  • Python 用のデータ モデリング API で App Engine データストアを使用する方法
  • App Engine アプリケーションに Google アカウントを統合してユーザーを認証する方法
  • アプリケーションで Django テンプレートを使用する方法
  • 作成したアプリケーションを App Engine にアップロードする方法
このチュートリアルでは、ユーザーが公開メッセージ ボードにメッセージを投稿できる簡単なゲストブック アプリケーションを作成し、実装する方法を習得します。
結果は以下の通り。 チュートリアルの説明内容が難解だったけど、なんとか感じは掴めたかな。




2010年12月9日木曜日

サンヨーの折りたたみ自転車eneloop

最近、Google Apps関連の技術ネタばかりだったので、今日は違う話題を。
この8月に前の自転車がパンクしたので、サンヨーの折りたたみ式電動ハイブリッド自転車"eneloop"を購入した。
その目的は、毎週日曜日の朝に仲間とテニスをやっているのだが、カミさんが車を使うことがあるので、テニスコートまで自転車行くためである。
テニスコートまで車で15分ほどだが、自転車だと行きはずっと上り坂のため、普通の自転車だと5段変則でもそうとう疲れる。最初は原付バイクにしようかとも思ったが、白バイやパトカーに捕まりそうなので考え付いたのが、いわゆる電動アシスト自転車なのである。
この"eneloop"、かなりの坂でもスイスイと登り、折りたたんで車にものるしで、いいところもあるのだが、欠点はバッテリーの持ちが予想したよりも悪いこと。下り坂などで減速する際モーターが発電機に切り替わり「ループチャージ機能」搭載だし、リフレッシュすればリチウムイオンでなくニッケル水素電池でもいいかと思っていたのだが、テニスコートまでの往復でギリギリなのである。せめて電源OFF時は普通の自転車となればいいのだが、電源OFFの状態でもモーターの影響でペダルが重い。冬場は往復持たないかもしれない。運転のコツもありそうなので冬場もトライしてみよう。

2010年12月8日水曜日

Google AppsのドメインをVALUE-DOMAINで取得

今まで自分のドメインは"DynDNS"というUSのドメイン管理ベンダーを利用していたが、やはり日本のベンダーが何かといいだろうと思って、"VALUE-DOMAIN"と"お名前.COM"どちらにするか悩んだが、VALUE-DOMAINのほうがよさそうだったので、早速ドメインを取得して、Google Appsの無償版をセッティングしてみた。DNSの設定の仕方が微妙に違っていて、Google AppsのヘルプのVALUE-DOMAINページを見ても実際の画面設定での入力方法が記載されていないため、最初うまくいかなかった。


【"DynDNS"と"VALUE-DOMAIN"のDNS設定の違い


"DynDNS"のDNS設定画面

"VALUE-DOMAIN"のDNS設定画面




サーバー数の違いもあるが、ホスト名の設定方法が異なる。”@”のみ設定なんてGoogle AppsのヘルプのVALUE-DOMAINページにはどこにも載っていない!
結局、ネットで実際の画面設定例を見つけてやっと導入完了した。

2010年12月6日月曜日

Google App Engine+Pythonで問い合わせフォーム作成に挑戦

Google サイトの標準フォームはノンプログラミングで簡単に作成できるので社内向けのちょっとした入力フォームには便利だが、以下のことができない。

・入力フィールドの幅が固定
・入力フィールドのレイアウトが固定
・入力チェックができない
・入力後の確認画面が表示されない
・送信後に確認メールの送信機能がない

これらを実現するには、やはりGoogle App Engine+Pythonで開発するしかない。
ということで、無謀にも挑戦してみようと思います。
しかし・・・Python初めてだし、そもそもプログラミング自体何年もやってないし・・・
どうなることやら。

問い合わせフォームがうまく開発できたら、この場で報告します。←自らにプレッシャー

八王子Tweetup!に参加した

はじめて、八王子のツイッターのオフ会「八王子Tweetup!」に参加した。
今まで、ツイッターの使い道や目的が今ひとつピンとこない部分があったが、ツイッターを使いこなしている方々の話を実際に聞くと、なるほどこういう風に使うのかということが、少しはわかってきた。
いろいろな職業の方がいて、今後仕事でコラボしたらおもしろそうな話もあり、行ってよかった。

Ustreamでのライブ配信もやっていて、先に帰宅したので、まだ盛り上がっているところを、ライブ配信を見ると、まだ参加しているような気分だった。今日も新しい発見だ。

参加の皆様、ありがとうございました。


2010年12月5日日曜日

iPadのアプリに悩む

タブレットPCは来年かなり流行りそうだが、AndroidのタブレットPCも販売開始されたものの、現状ではiPadが人気がある。クラウドサービスを利用して店頭でのお客様接客用に業務アプリを開発する場合、以下の方式がある。( 自分は開発はやらないので聞いたり調べた限りであるが)

①iPad用のアプリをObjective-Cとかで開発してIaas上のデータベースにアクセスする。
②Paas/Iaas上でHTML5+CSS+JavascriptでWebアプリとしデータベースにアクセスして開発する。Safari上で動作させるがiPad用アプリ同じような画面にできる。
③Saas上のツール(Google Appsがそう)に開発したガジェットを組み込んで作成し、Safariで表示させる。
④Paas/Iaas上での何らかの開発プラットフォームを利用してWebアプリを開発し、Safariで表示させる。

今後を考えると、AndroidのタブレットPCにも対応させたいし、PCのブラウザにも対応したいので、①は除外、④は費用がかかるので厳しい。②か③になるが②も費用がかかりそうなので、まずは③で対応して、②に移行していくのが現実的か。②の技術がSaas上で提供されるのは、いつぐらいだろう。
ん~頭が痛くなってきた。

2010年12月4日土曜日

Web屋さんにGoogle Appsの紹介を行った

今日は、多摩地区のWeb屋さんの方々に、Google Appsの紹介を行った。
現実は、電話やFAXでのやり取りで業務をしている会社が多いとの事なので、売上・利益に直結した見える付加価値がないと、コラボレーションツール導入には壁がありそうだが、やはりGoogle Appsのようなツールは使ってみないと、なかなかそのよさがわからないところがあるので、まずは自分で使ってみたいという方もいて、嬉しい限りです。
また、今後のビジネスに参役立つ話も聞けて、とても参考になりました。
参加された皆様お疲れ様でした。
ありがとうございました。

2010年12月3日金曜日

YouTubeはアカウントが別に必要だった

11月18日にGoogleサービスのアカウントがGoogle Appsに統合されて、BloggerやPicasaではGoogle Appsのアカウントでそのまま利用でき、非常に便利になった。(URL参照)
http://www.itmedia.co.jp/news/articles/1011/19/news024.html


当然、YouTubeもGoogle Appsのアカウントが使えると思っていたら、どうもYouTubeは専用のアカウントを別に登録してそれをGoogle Appsの自分のドメインで管理するということらしい。
現状、あまり動画を利用していないので、仕組みがよくわからないが、テニスの動画でも撮っていろいろやってみよう。



2010年12月2日木曜日

iPhoneにcoolirisをインストールしてPicasaに接続

coolirisは、Coolな3Dフォトアルバムであるが、Google用のガジェットもあったので、Googleサイトに組み込んでまた。
ところが、ブラウザ(Chrome/Firefox共)がクラッシュした。
Chromeにcoolirisプラグインをインストールしても、クラッシュしてしまうので、使い物になりそうにない。

このcoolirisアプリをiPhoneにインストールして、Picasaに接続してみた。
iPhoneのcoolirisアプリは問題なし。画面インターフェーイスは素晴らしい。




2010年12月1日水曜日

Googleサイトの可能性

Google Appsの可能性について考えてみた。
ある程度の会社の規模であれば、サーバ管理や人件費のコスト削減でメリットがあるが、SMBではそもそもそれほどコストをかけていない訳で、もっと違うメリットがあるはずである。
Google Appsは、メール、カレンダー、ファイル管理、スケジュール管理、情報共有等、安くて便利に使えて機能も豊富であるが、もっと違うメリットは何かということである。
Googleサイトは、HTMLの知識がなくても設定と標準部品やガジェットの組み込みでサイトの作成ができるが、それだけでは、ホームページビルダー等のソフトと変わらない。では何が違うかを考えてみたが、一つはデータの管理ができるということである。データの管理をWebでやるとなると専門的な知識や技術が必要となるが、そのような知識や技術がなくても作成できるというところである。もう一つは公開されたガジェットが使えるということである。
ノンプログラミングで専門的な知識や技術なくても、利用者自身の手でがいろんなデータ(テキスト、画像、動画)の管理ができ、それを共有できることが、SMBビジネスにおけるメリット(売り)ではないかということを感じている。

2010年11月29日月曜日

Google AppsのメールをPostini経由に変更

Postiniには、大きく2つの機能がある。一つはメールセキュリティで、もう一つはメールアーカイブである。Postiniは有料ということを聞いていたが、メールセキュリティは、Google Apps for Businessに標準で含まれるという情報を、Google Appsのヘルプフォーラム(以下URL)で見つけた。

http://www.google.com/support/forum/p/apps/thread?tid=23f4c6cb488c1b99&hl=ja

しかし、GoogleのPostiniサービス紹介(以下URL)には、12 ドル/ユーザー/年となっている。



むむ・・・どうなってるるんだ?


ということで、本当にGoogle Apps for Businessで利用可能かを確かめてみた。

Postiniを利用するには、Postiniサービス登録後、DNSのメール配信(MXレコード)をPostini経由に変更する必要がある。DNSはDynDNSを使っているのだが、ウイザードで表示されたPostini用のMXレコードに変更して、とりあえず問題なくメールは疎通した。

Postiniの管理コンソール(以下画面)でフィルタ等の設定の仕方がまだよくわからない。
スパムメールで困っているユーザがいるので、設定方法を調べてみるか。

2010年11月28日日曜日

Googleサイトのリストアイテムの列幅

今日は、昼からあるパーティに出席するため町田へ。
昼間からビールとウーロンハイを結構飲んで、酔っ払ってしまった。

ここ最近Googleサイトでサンプルサイトを作成しているのだが、Lotus Notesを長年やってきた身としては、表の制御やリスト表示はまだまだ機能が足りないところがある。
Google のことだから、来年には改善されていくのだろう。

例えば、Googleサイトにリストアイテムとのがある。連絡先や顧客一覧などを簡単に作れる機能だが、設定で列幅が変えれないのが残念である。以下の画面は学習塾のサンプルサイトの連絡先一覧の例であるが、列幅は均等になってしまうので、設定で列幅を変えたいのだが現状ではできない。


学習塾のサンプルサイトはこちら↓
https://sites.google.com/a/demo.mksite.co.jp/gakushu/

2010年11月27日土曜日

Googleサイト上でPicasaのガジェットと連携

またまたPicasaネタとなるが、Googleサイト上で公開されているPicasaのフォト検索ガジェットを組み込んでみた。Googleサイト標準の機能だとスライドショーしかできないしでイマイチだったので、iPhone/iPadアプリから見たほうがいいかなと思ったけど、このガジェットだとなかなかいい感じ。

しかし、このガジェットFlashを使っているらしく、iPhoneで表示されない。
あと、タグ検索が日本語(2バイト)を認識してくれない。
Flash使わないでタグ検索が日本語対応のガジェットがあればなぁ・・・

詳細はネイルサロンのサンプルサイトを見てみてください。
(ネイルサロンといっても画像はフラワーアレンジですが・・・  しかも解像度が悪いです)
この際、フラワーアレンジのサンプルサイトも作るか。

https://sites.google.com/a/demo.mksite.co.jp/nailgallery/


2010年11月26日金曜日

iPhoneからPicasaの画像を見る

昨日の続きになるが、GoogleサイトのページにPicasaのスライドショーを組み込めたので、これをiPadなどのタブレットPCで見れば使えそうかなと思ったんだけど、iPhoneのSafariでは表示されなかった。
何かアドオンをインストールすれば見れるのかと考え調べたら、Picasaの画像を見れる無料のiPhoneアプリPhotoAlbumsを見つけたので、早速インストールして見た。SafariでGoogleサイトのページを見るよりこっちの方が早い。これビジネスに使えるかも。(レビューでは、よくエラーになるとなっているが・・・)

それから、iPhoneの画面キャプチャーアプリないかと思って調べたら、標準でできた。(ホームボタン”□”を押しながら上部の電源ボタンを押すだけ。

いやー日々発見ですな。

画像はカミさんのフラワーアレンジのもの。かなり前のデジカメ画像なのでレトロ調になってる。



Picasaを使ってみた

Picasaクライアント Ver3.8をインストールした。PC内の画像をあっという間にアルバム化してくれる。
2000年~2006年ぐらいまで、ファミリーキャンプにハマっていた頃の画像を、懐かしく見ました。
PCの中にあった画像をPicasaで共有して、Googleサイトで作成したネールサロンのサンプルサイトに組み込んで見た。iPadとかでお客に見せれば、いけそう。複数店舗あるところは、画像の共有ができるし。


2010年11月24日水曜日

IEのセキュリティ警告ダイアログが消せた

Google サイトでは、Google Appsのカレンダーやドキュメントでのhttpsとyahooピンポイント天気予報等のhttpが、同じページに混在することがよくある。
この場合、IEだとセキュリティ警告ダイアログがいちいち表示されてうざいのだが、やっとこの警告ダイアログを消す方法がわかった。


①Internet Explorer で、[ツール] -[インターネット オプション] をクリック。
②[セキュリティ] タブ-[レベルのカスタマイズ] をクリック。
③[セキュリティの設定] ダイアログ ボックスで、[その他] 領域の [混在したコンテンツを表示する] 設定までスクロールし、[有効にする] をクリック。
④[セキュリティの設定] ダイアログ ボックスで [OK] をクリックし、もう一度 [OK] をクリックして [インターネット オプション] を終了。
【注意】このオプションを有効にすると鍵マークは表示されないとのこと。

2010年11月23日火曜日

十数年ぶりのズーラシア

十数年ぶりに横浜にあるズーラシアに行った。
昨日は暖かかったので、あまく見てましたが、風が冷たくて寒かった・・・
この前行ったのは、オープンしたての頃で、人が多かったが、今日はガラガラ。
おかげで、十分楽しめました。



ブログ始めました。

BloggerのGoogle Appsアカウント利用可能となったのに伴い、ブログをはじめました。
Google Appsネタが多いと思いますが、よろしくお願いします。