2011年4月26日 星期二

轉貼- 免費小圖示

上google 找 其實可以找到很多 免費的小圖示,不過大部分先會找到 non - commercial use 的 ,也就是非營利使用的, 要放在一些公開的地方可能不太好用,

不過其實在 關鍵字上多加了一個 commercial 就可以 幫助我們找到 可以用的資訊

我用的關鍵字是 "free icon commercial use"

以下是我找到的一個網站
http://esdev.net/2880-icons-for-free-and-commercial-use/

http://www.iconfinder.com/free_icons

ICON Finder: 可以搜尋
http://www.iconfinder.com/

個人使用的
http://www.freeiconsdownload.info/tw/

2011年4月25日 星期一

轉貼 Jquery JSON 匯入 table

還蠻好用的小 plugin

jQuery.Table.js

2011年4月21日 星期四

小心得 16位元字串轉2位元字串

因為有需求所以查了一下 code 改寫出了一個function 來達成這個功能,不過載本機上可以執行,帶放在 google app engine 上 就會出現 "java.lang.NumberFormatException" 的錯誤,
估計是toBinaryString 或 parseInt 出錯


輸入像 '12AF' 的字串

就會轉出像 '0001001010101111' 的字串


CODE:

public static String GetHexString(String _str){
String _string = "";

char[] _c = _str.toCharArray();

for(int i=0; i < _c.length ; i++){
String _tempString = Integer.toBinaryString(
Integer.parseInt(String.valueOf(_c[i]), 16));

/// 0
for(int j=_tempString.length();j< 4 ;j++){
_tempString = "0"+_tempString;
}

_string += _tempString;
}

return _string;
}




之後只好改成另一種簡單的寫法



public static String GetHEXFormatString(String _str){

String _string = "";


for(int i =0 ; i <_str.length() ; i++ ){
String _tempStr = "";

char x = _str.charAt(i);

switch (x){
case '0':
_tempStr ="0000";
break;
case '1':
_tempStr ="0001";
break;
case '2':
_tempStr ="0010";
break;
case '3':
_tempStr ="0011";
break;
case '4':
_tempStr ="0100";
break;
case '5':
_tempStr ="0101";
break;
case '6':
_tempStr ="0110";
break;
case '7':
_tempStr ="0111";
break;
case '8':
_tempStr ="1000";
break;
case '9':
_tempStr ="1001";
break;
case 'A':
_tempStr ="1010";
break;
case 'B':
_tempStr ="1011";
break;
case 'C':
_tempStr ="1100";
break;
case 'D':
_tempStr ="1101";
break;
case 'E':
_tempStr ="1110";
break;
case 'F':
_tempStr ="1111";
break;
default:
_tempStr ="0000";
}

_string += _tempStr;
}

return _string;
}

轉貼 Javascript JSON

在 javascript 中 若要 接收轉換JSON物件的話,保險起見可以 引用
json2.js

主要有兩個function



JSON.stringify: 將物件轉為JSON 的 string


JSON. parse: 將JSON string 轉成javascript 物件


參考


[1] JSON in JavaScript
[2] JavaScript Essence: 傳送與接收 JSON

2011年4月19日 星期二

轉貼 Google Map API 本地化

Google Map API version 3 中,本地化有兩種功能

1. 顯示語言

只要將 language=XX 加入 scrpit 中, XX 表示語言代碼




<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false&language=xx">



語言代碼可以 到這裡查詢

2. 區域本地化,以設定的區域為優先搜尋

只要將 &region=00 加入 scrpit 中, 00 表示地區代碼

這方面設定資訊比較少,範例上都是兩碼, 地區代碼的話可以參考 List of Culture Codes

參考

Google Map API v3

2011年4月14日 星期四

paypal IPN test

Paypal 線上付費有提供一個 IPN (Instant Payment Notification)的服務,簡單的說當交易完成之後,可以設定一個網址來處理客戶付費的訊息。

詳細步驟可以參考[1].

可以到 paypal 的網頁下載範例程式,支援包含ASP.Net(C#),ASP.Net(VB),JSP,PHP等語言



若要單純的試IPN,可以到 paypal 提供的 測試平台 sandbox, 利用 Test tool 來簡單的確認IPN ,步驟如下, (記得要將API 的url 從 https://www.paypal.com/cgi-bin/webscr 換成 https://www.sandbox.paypal.com/cgi-bin/webscr )


步驟1. 進入snadbox 網頁 選擇 Test tool

步驟2. 填入處理交易完成回報的URL

步驟3. 按下 Send IPN


--------------------------------
實際使用的步驟如下
步驟1. 登入後選擇我的 paypal


步驟2. 交易紀錄,即時付款通知紀錄


步驟3. 設定URL










參考[1]: IPNGuide.pdf

Google App engine 啟用SSL

若要使用SSL 的服務在Google App Engine 的話 要在

\war\WEB-INF\appengine-generated.xml 加入以下的敘述

<ssl-enabled>true</ssl-enabled>



參考:
Configuring Secure URLs (SSL)

2011年4月13日 星期三

轉貼 JQuery Plugin dynamic field

在網頁製作 動態的欄位 在 JQuery 中 找到兩個 plugin


1. jquery-dynamic-form

這個是 GPL2 授權的code

2. dynamicField - A jQuery Plugin

這個是 MIT 或 GPL 授權的code

2011年4月11日 星期一

轉貼 Visual SVN 簡單架SVN server

以前不知道有這個軟體,所以SVN 只能慢慢架 不過現在可以利用 Visual SVN 來簡單的架設


參考:
[1] visual svn

[2] 無腦安裝 SVN 過程,使用 Visual SVN

2011年4月8日 星期五

使用 google ClientLocation 取得使用者IP的位置

在引用 google api 後, 就可以使用以下的函數取得 所在 IP的 地理位置,

如範例


var _clientLocation= google.loader.ClientLocation;
/// 緯度
var lat = _clientLocation.latitude;
/// 經度
var lng = _clientLocation.longitude;
///城市名稱
var city = _clientLocation.address.city;
/// 國家
var country = _clientLocation.address.country
/// 國家簡碼
var countryCode = _clientLocation.address.country_code;



此外還有一種更精確的定位API
Geolocation [3] , 不過測試下 只有 FF 可以執行,CHROME 和 IE8 都支援有問題??



參考

[1] Gmap samples

[2] Google Map IP定位 - 自動載入使用者位置

[3] Google Maps JavaScript API 第 3 版

小心得 Google map api key

雖然是同一個domain name , 不過 Http 和 Https 的 網頁要使用不同的 google api key

不過
Google Map API V3 就不需要 Key 了

2011年4月6日 星期三

JDO 日期 範圍搜尋

JDO 在查詢日期範圍的方法,比 標準 SQL 麻煩一點 ,可以參考以下的語法,有兩種寫法

Declarative JDOQLSingle-String JDOQL, my_date_limit 就是要比較的日期




Declarative JDOQL :

Query query = pm.newQuery(domain.Product.class,
"endDate > best_before_limit");
query.declareImports("import java.util.Date");
query.declareParameters("Date best_before_limit");
query.setOrdering("endDate descending");
Collection results = (Collection)query.execute(my_date_limit);


Single-String JDOQL :

Query query = pm.newQuery("SELECT FROM mydomain.Product " +
"WHERE endDate > best_before_limit " +
"PARAMETERS Date best_before_limit " +
"import java.util.Date ORDER BY endDate DESC");
List results = (List)query.execute(my_date_limit);



日期的宣告如下

/*
宣告 2011 年 4 月 1 號
*/
Date my_date_limit = new Date(111,3,1); /// 年(1900+)、月(0=1月)、日



參考

[1] Java Data Objects

[2] JavaTM 2 Platform, Standard Edition, v 1.4.2
API Specification - java.util.Date

2011年4月1日 星期五

小心得, 在 Goole Site 使用自己的Flash

1 上傳 swf 檔案到 協作平台上, 這裡以 sample 中的雪花場景為例上傳




2 點選view 檢視 網址 並將網址複製下來



3 編輯頁面



4 選擇修改 html




5 在 html 加入 embed tag 把 步驟2複製的網址填入src 屬性






6. 編輯完記得按儲存










網頁嵌入Flash

最近 研究了一下 在網頁 嵌入Falsh的方法

1. 預設(用CS5 匯出的預設選項)


會產生一個 FlashContent 的 div tag, 下面的例子使引用 FlashSample.swf, 寬 320 , 高 240


<div id="flashContent">
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="320" height="240" id="FalshTT" align="middle">
<param name="movie" value="FalshSample.swf" />
<param name="quality" value="high" />
<param name="bgcolor" value="#333333" />
<param name="play" value="true" />
<param name="loop" value="true" />
<param name="wmode" value="window" />
<param name="scale" value="showall" />
<param name="menu" value="true" />
<param name="devicefont" value="false" />
<param name="salign" value="" />
<param name="allowScriptAccess" value="sameDomain" />
<!--[if !IE]>-->
<object type="application/x-shockwave-flash" data="FalshSample.swf" width="320" height="240">
<param name="movie" value="FalshSample.swf" />
<param name="quality" value="high" />
<param name="bgcolor" value="#333333" />
<param name="play" value="true" />
<param name="loop" value="true" />
<param name="wmode" value="window" />
<param name="scale" value="showall" />
<param name="menu" value="true" />
<param name="devicefont" value="false" />
<param name="salign" value="" />
<param name="allowScriptAccess" value="sameDomain" />
<!--<![endif]-->
<a href="http://www.adobe.com/go/getflash">
<img src="http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif" alt="取得 Adobe Flash 播放程式" />
</a>
<!--[if !IE]>-->
</object>
<!--<![endif]-->
</object>
</div>




2. 使用 SWFObject


a. 要先下載 SWFObject
在 html 插入以下的code
b. 或使用 Google AJAX load


<script type="text/javascript" src="swfobject.js"></script>

<div id="flashContent">
This text is replaced by the Flash movie.
</div>

<script type="text/javascript">
var so = new SWFObject("FlashSample.swf", "mymovie", "200", "300", "7", "#336699");
so.addParam("quality", "low");
so.addParam("wmode", "transparent");
so.addParam("salign", "t");
so.write("flashContent");
</script>



3. 直接 embed



<embed SRC="FlashSample.swf" width="320" height="240">



目前使用起來 SWF Object 比較好,搭配 css 等其他設定 沒有出現干擾的現象


參考

[1] 使用 SWFObject 來做 Flash 的漸進增強

[2] SWFObject: 基于Javascript的Flash媒体版本检测与嵌入模块

[3] W3cSchools