昨日、Google Social Developers 忘年会 2011に参加しましたが、その時に、ちょっと便利だなーっと思ったところが。
Google Project Hostingのページ上で、ソースの作成と編集ができるようになりました。
これで、わざわざjs.do itなどでアカウントを作らなくても、ブラウザ上でいじれるようになったので、いいですね。
後、欲を言えば、削除もできるとうれしいなーっと思いました。
2011/12/11
[GoogleCodeProjectHosting]ブラウザ上でソースの編集と作成
2009/12/17
[coldfusion-addon]google group終了のお知らせ
オープンソースコミュニティーであるcoldfusion-addonのgoogle groupですが、このたび、突然ですが、終了することにしました。
理由としては、ものすごいスパムが起きたことです。
コミュニティー自体は、まだ残しています。
2008/07/14
[coldfusion]cfparam関数完成
だいぶ前に、RequestVarという関数を作成したのですが、拡張したIterVarファンクションを作成しました。
このファンクションは、宣言されていない変数に対してRequestVarを使うと空を返すのに対して、IterVarは第二引数を返すファンクションです。
ちょうど、cfparamタグに相当するものです。
わざわざ、毎度、毎度、cfparamを宣言する必要がないのが特徴的かなと。
こちらからダウンロードできます。
さらに詳しい使い方はこちらからどうぞ
2008/05/15
2008/05/11
[coldfusion]バグレポート日本語版作成
前回、研修用のドキュメントを日本語化したので、バグレポートの日本語版を作成しました。
こちらから見ることができます。
研修用のシステムでまだ、バグが発見できてないので、何も書いてないけど。
何か発見した際には、書き込んでいただけたら幸いです。
2008/05/10
[coldfusion]新人研修-トレーニングシステムリリース
先日、会社からColdFusionの研修を頼まれました。
で、どーしようかなーと悩んだ結果、何かアプリを作ってもらうのが一番いいかなーと思い、研修用のトレーニングシステムを作成しました。
そこで、自社だけ使われるのはいやだなーと思ったので、今回、ColdFusion-addonにオープンソースとして公開しました。
もちろん、特許のことを考え、趣味の一環として土日に作成しました。
ここに仕様とテーブル定義などを書きましたので、ColdFusionの新人研修等でお困りの方がいっらしゃったら、是非、使っていただけたらと思っております。
さらに、今回、初の日本語ドキュメントにしました。
後々、ドキュメントは英語にしたいなー。
模範解答として、DownLoadsにソースも公開しましたので、答えあわせ時に使っていただけたらと思います。
2008/04/11
[online powerpoint template]新しいシート追加
会社で資料を作る機会があったので、どうせならと思い、エクセルではなくhtmlで作成。
そして、ただのhtmlではなく、プレゼン用として使えないかと思い、プレゼンシート用のテンプレートを作り、google codeにアップロードしました。
こちらから参照することができます。
ちなみにシートですが、下のようなデザインにしました。
クリックするとフルスクリーンでみることができます。
2008/03/12
[coldfusion]RequestVar function作成
object browserを作っていて、よく、IsDefined関数を使うのですが、毎回、毎回、
<CFIF IsDeined("test")> <CFSET hoge = test> </CFIF> |
と書いていくのが、メンドイので、簡単な評価関数を作って、手間を省くようにしました。
評価関数は、下のように実装。
<CFFUNCTION name="RequestVar"> <CFARGUMENT name="aVar" type="variableName" required="yes"> <CFSCRIPT> var cfv_var = ""; </CFSCRIPT> <CFIF IsDefined("#aVar#")> <CFSET cfv_var = Evaluate("#aVar#")> </CFIF> <CFRETURN cfv_var> </CFFUNCTION> |
この関数を使うことによって、変数が定義されていようがなかろうが、心配する必要がなくなりました。
丁度、ASPでいうところの、Request.Form()に相当する関数で、変数が定義されていれば、その値を返し、定義されていない場合は、空を返すというもの。
変数に値がある場合と、ない場合で簡単な例を書いてみました。
まずは、値がある場合。
<!--- tmpは、3を返す ---> <CFSET Form.test = "3"> <CFSET tmp = RequestVar("Form.test")> <CFOUTPUT>#tmp#</CFOUTPUT> |
次は、変数が宣言されていない場合
<!--- 定義していないsample変数 ---> <CFSET tmp = RequestVar("sample")> <!--- ""を返す ---> <CFOUTPUT>#tmp#</CFOUTPUT> |
今回、作ったファンクションを、RelatedwithVariables.cfmで、coldfusion-addonにアップロードしました。
勢いよくリファレンスもwikiのHomeRelatedwithVariablesに書いちゃった。
これを使って、ドンドンobject browserを作っていきたいと思います。
2008/03/09
ニュープロジェクト誕生!!
会社説明会のプレゼン資料をhtml、jsで作ったのですが、そもそも、会社説明会の資料にとどめず、他のプレゼン(会社以外)にも今後利用していきたいと思ったので、今回、google codeで新しいプロジェクトを立ち上げました。
その名も、online-powerpoint-templateです。
で、プロジェクトの内容ですが、作ったプレゼン資料の雛形をアップロードしていきます。
wikiのhomeに、thumbnailを紹介しています。
フルスクリーンは、photobucketのpowerpoint-template-fullscreenでも、見ることができます。
2008/02/27
また、XMLHTTPRequestにバグが。。。
ホント最悪。。。orz
IEで、ファイルをオープンする時に、ファンクションのパラメータ問わず、trueで通信しちゃっていました。
問題箇所
httpObj.open(httpMethod,url,true); |
を
httpObj.open(httpMethod,url,asynch); |
に修正しました。
すでに、opensourceにバグ修正後の1.0.2をアップロードしました。
うぎゃ~~~~
2008/02/25
XMLHttpRequestのドキュメントが完成!!
前回、リリースしたXMLHttpRequestの設計書を一気に仕上げたいと思い、本日、一日かけて仕上げました。
こちらにあります。
うーん、徐々に慣れてきたような。
でも、設計書として、まだ完璧とは、いえないので、これからももっと、もっと、わかりやすい設計書をかけるように心がけていきたいです。
2008/02/24
XMLHttpRequestにバグが。。。
うわー、またやっちゃった( ̄-  ̄ )
昨日、アップロードしたXMLHTTPRequest.1.0.cfmですが、firefoxで、XMLHttpRequestオブジェクトを作成した後、送信方法が「GET」のままでした。。。
orz
修正箇所は、
httpObj = new XMLHttpRequest(); httpObj.open("GET",url,asynch); |
というところを、
httpObj = new XMLHttpRequest(); httpObj.open(httpMethod,url,asynch); |
に修正をかけました。
で、coldfusion-addonの方に1.0.1として再アップロードしました。
また、ボンミスをおかしてしまった。。。
2008/02/23
XMLHttpRequest_1.0をリリース
coldfusion 8から、coldfusion.ajax.submitFormという新しい関数が追加されて、同じような機能をもった関数を7でも実装できないかなーって思い、なんとなく作ってみました。
<CFFUNCTION name="XMLHTTPRequest"> <CFOUTPUT> <SCRIPT type="text/javascript"> function js_XMLHttpRequest(url,func,ahttpMethod,aasynch) { var httpObj = ""; var ret = ""; var httpMethod = "GET"; var asynch = true; /* quoted Prototype JavaScript framework, version 1.5.1.1 */ var Prototype = { Browser: { IE: !!(window.attachEvent && !window.opera), Opera: !!window.opera, WebKit: navigator.userAgent.indexOf('AppleWebKit/') > -1, Gecko: navigator.userAgent.indexOf('Gecko') > -1 && navigator.userAgent.indexOf('KHTML') == -1 } }; if(ahttpMethod != null){ if(ahttpMethod.toUpperCase() == "POST"){ httpMethod = "POST"; } } if(aasynch != null){ if(aasynch == false){ asynch = false; } } if(Prototype.Browser.IE){ httpObj = new ActiveXObject("Msxml2.XMLHTTP"); httpObj.open(httpMethod,url,true); httpObj.onreadystatechange = function (){ if(httpObj.readyState == 4 && httpObj.status == 200){ ret = httpObj.responseText; func(ret); } }; }else{ httpObj = new XMLHttpRequest(); httpObj.open("GET",url,asynch); httpObj.onload = function(){ ret = httpObj.responseText; func(ret); }; } httpObj.send(null); } </SCRIPT> </CFOUTPUT> <CFSETTING SHOWDEBUGOUTPUT="no"> </CFFUNCTION> |
とまぁー、このような形で作成しました。
この関数をcfsetで関数を作り出し、後は、javascriptで関数を呼び出せば、オッケー♪
ちなみに、javascriptで呼び出すときは、こんな感じ。
<SCRIPT type="text/javascript"> var hoge = function(text){ ... } </SCRIPT> <A href="javascript:js_XMLHttpRequest('test.cfm',hoge)">Ajax呼び出し</A> |
js_XMLHttpRequestに関して、後二つ引数を追加することができて、一つ目は、送信方法。POSTかGETを選択することができて、デフォルトでは、GETになっています。
二つ目は、非同期か同期かを選択する変数で、デフォルトでは、非同期になっています。
うーん、8と比べて忠実に再現できなかったのは、最後、コールバック関数を呼び出すときに、ローカルでは無名関数を定義しないといけないところ。
8では、名前の入った関数を定義すれば、そこに値を返してくれたのですが。
まぁー、そこまででかい差ではないのですが。。。
この関数を使うことで、わざわざ、xmlHttpリクエストを投げるオブジェクトを作成しなくても、urlと関数名さえ指定すれば自動的に非同期でデータを取得できるところ。
せっかく作ったので、coldfusion-addonにもXMLHttpRequest_1.0.cfmとして、アップロードしました。
次は、設計書を作っていきたいと思います。
2008/02/20
RelatedwithDate.cfmのドキュメント完成!!
やっと、RelatedwithDate.cfmのドキュメントが完成したぁー^-^v
完璧とは言えないけど、とりあえず完成はしたので、ホッとしました。
ドキュメントはこちらにあります。
今回までで、2つのファイルに対するドキュメントを書いたのですが、やっぱり英語で書くことにものすごく苦痛を感じてしまう。
もっと楽しく作業を進めていくにはどうすればいいのだろうか??
そして、もっと、きちんとした英語で書くにはどうすればいいのだろうか??
それに、設計書としてきちんと構成が成り立っているのか??
色々、課題がありますが、量をこなしていかないとクリアーできないのかなーと疑問に思ってしまう今日この頃。。。
2008/02/19
設計書のテンプレートを考えてみる
前回に引き続き、リファレンスを書いているのですが、仕事でオリジナルの設計書を書いたことがないので、どうやって書いていいのか悩んでいます。
そこで、何か参考にしながら書けばいいのではないか、と思い、いつもお世話になっているgoogle codeのAPI仕様書を参考にしながら、テンプレートを作ってみたいと思います。
まずはじめに、APIの全体像を紹介するためのHomeがあって、次にDocumentに入ります。Documentでは、いくつかの構成にわけてさらに詳しい説明を展開しています。
で、いくつかのサンプルソースが紹介されていて、その後は、関数やメソッドのリファレンスが展開されていました。
以上から、下のような構成になっている感じです。
・Home APIの概要を説明する(大まかに説明する) ・Document いくつかのテーマに分かれて開設がされている ・Example サンプルソースの紹介 ・Reference 関数、メソッド、オブジェクトについての詳細 |
完全に同じではないと思いますが、だいたいこんな感じなのではと。
で、coldfusion-addonに関しては、関数系の説明を多くしたいので、リファレンスの部分に下のテーブルを追加するような形を考えました。
argument | type | required | default | explain |
と引数をより詳しく書いたテーブルにすることでわかりやすくなるのではないかと思いました。
少しでもオリジナリ感を出したいと思ったので、google codeのようなリファレンスの返り値と詳細説明に加え、引数、型、デフォルト値、requiered区の列を追加しました。
これで読んでいる方が少しでも直感的に理解してくれるとうれしいなと思いました。
2008/02/09
RelatedwithDate ver 1.0 リリース
toDateファンクションが完成したので、DateAddtoString内に組み込んでみます。
下の部分を変更します。
<CFSET cf_Ret_Date = CreateDate(cf_YYYY,cf_MM,cf_DD)> |
この部分を、次のように変更しました。
<CFSET cf_Ret_Date = toDate(aStr)> |
これで、日付チェックを経て、日付に日数を追加することができます。
以上から、変更したDateAddtoStringはこのようになりました。
<CFFUNCTION name="DateAddtoString"> <CFARGUMENT name="aStr" type="String" required="yes"> <CFARGUMENT name="aNum" type="numeric" required="no" default=1> <CFARGUMENT name="aType" type="String" required="no" default="d"> <CFSCRIPT> var cf_Ret_Date = ""; </CFSCRIPT> <CFSET cf_Ret_Date = toDate(aStr)> <!--- when function returned false ---> <CFIF cf_Ret_Date eq false> <CFRETURN false> </CFIF> <!--- forms date add ---> <CFSET cf_Ret_Date = DateAdd(aType,aNum,cf_Ret_Date)> <CFRETURN cf_Ret_Date> </CFFUNCTION> |
そして、coldfusion-addに今回の日付に関するファンクションをRelatedwithDate.cfmとして、アップロードしました。
よーし、次は、ドキュメントに挑戦だぁー♪
2008/02/07
coldfusion-addonのwikiにErrorRepotを追加
昨日の記事で、最後に「googlecodeのcoldfusion-addonに履歴記録を残そうかな~~」と書いて、実際に書こうかどうか、ものすごく悩みましたが、残さないとなんだか、気持ち悪く感じてきたので、coldFusion add-onのwikiにErrorRepotというページを作りました。
このページでは 主に、toJSONに関するバグ、不具合の報告をしたいと思います。また、修正した後の報告も同じページで書いていきたいと思います。文法があっているか不安ですが、履歴を残すことができたので、なんだかスッキリした気分です。
toJSON.cfmのバグ発見と修正
バグみつかっちゃったよぉー。
今日、toJSON_1.0.cfmで遊んでいたら、引数に入れる配列の要素に文字列が入っていた場合、JavaScriptエラーが走っちゃった><。。。
<CFSET cf_Array[1] = "apple">
<CFSET cf_Array[2] = "lemon">
<CFSET cf_Array[3] = "orange">
と入れると、「オブジェクトがありません」というようなJavaScriptエラーが発生しちゃいました。
なんてことだー。。。きちんと動作確認を行ったのに。。。
初歩の初歩的なところでバグってしまうなんて。。。
しかも、toJSON_1.25.2.cfmでは、配列の要素がnullだった場合、本当なら、JSONの中のデータをnullって返したいんだけど、"null"って文字列で返しちゃっているよ。。
<CFSET cf_Array[1] = "apple">
<CFSET cf_Array[2] = "">
<CFSET cf_Array[3] = "lemon">
結果が、
var data = {
"1":"apple"
, "2":"null"
, "3":"lemon"
}
となってしまうのです。(T_T)
全然だめぇだぁ~
ということでさっそく修正を行い、それぞれ、toJSON_1.0.1.cfm、toJSON_1.25.3.cfmとして、再アップロードを行いました。
すみません。。。
もっとしっかりしないとな~。。。
orz
googlecodeのcoldfusion-addonに履歴記録を残そうかな~~
2008/02/06
toJSON.cfmのドキュメント完成!!
わーい、わーい、やっとtoJSON.cfmのドキュメントが完成しました。
coldfusion-addonのwikiのHomeというページに作りました。
とりあえず、できたので、ほっとしました~♪
2008/01/31
toJSONにパッチを当てました。
今、ちょっとtoJSONを触っていたら、配列の2番目の要素が、配列だった場合、この時返すJSONが、
var data = {
・・・
,"1":[{"2_1":"Hoge1","2_2":"Hoge2","2_3":"Hoge3"}]
・・・
}
と配列の指数に対してネストされている配列の数字がそろっていなかったので、修正を加えました。
バージョンをどうしようかと悩んだのですが、とりあえず、ver1.25.2としてver1.25を削除して、アップロードしました。