- Dec 16 Wed 2009 08:18
第一個Google App Engine應用程式
- Oct 25 Sun 2009 16:47
Using Python to implement Simpson's Rule
from time import localtime, strftime
def SimpsonRule(a, b, n):
sum = 0
for i in range(1,n,1):
Xi = a + ((b - a) / n) * i
if (i%2 == 0):
sum += 2 * f(Xi)
else:
sum += 4 * f(Xi)
sum += f(a) + f(b)
sum = sum * (b -a) / (3 * n)
return sum
def f(Xi):
return 1 / (Xi * Xi)
a = 1.0
b = 2.0
n = 60000000
print strftime("%H:%M:%S", localtime())
print SimpsonRule(a, b, n)
print strftime("%H:%M:%S", localtime())
- Oct 19 Mon 2009 19:33
aspx不要PostBack
window.event.returnValue = false;
- Oct 14 Wed 2009 08:52
使用XmlNamespaceManager
where m.MapId == MapId
select new { XmlData = m.TWSMPMetadata }).First();
XmlDocument xml = new XmlDocument();
xml.LoadXml(doc.XmlData);
XmlNamespaceManager mgr = new XmlNamespaceManager(xml.NameTable);
mgr.AddNamespace("gco", "http://www.isotc211.org/2005/gco");
XmlNodeList nodes = xml.SelectNodes("//gco:CharacterString", mgr);
foreach (var node in nodes)
{
var n = ((XmlNode)node);
switch (n.ParentNode.Name)
{
case "organisationName":
fUnitName.InnerText = n.InnerText;
break;
case "individualName":
fUserName.InnerText = n.InnerText;
break;
case "positionName":
fUserTitle.InnerText = n.InnerText;
break;
case "voice":
fUserPhone.InnerText = n.InnerText;
break;
case "facsimile":
fUserFax.InnerText = n.InnerText;
break;
case "deliveryPoint":
fUserAddress.InnerText = n.InnerText;
break;
case "electronicMailAddress":
fUserEmail.InnerText = n.InnerText;
break;
};
}
- Oct 14 Wed 2009 08:48
Entity Framework內多對多表格的選取
var result = (
from m in db.TblApplyTicket
from t in m.TblMapMetadata
where m.TblUser.UId == "N125134438"
select new
{
UseRestrict = m.ApplyId.Substring(0, 1),
ApplyId = m.ApplyId,
Status = m.Status,
ApplyDate = m.ApplyDate,
MapId = t.MapId
})
.OrderByDescending(m => m.ApplyDate)
.Take(10)
.ToArray();
- Oct 06 Tue 2009 10:33
log4net 快速設定
1. using
using log4net;
using log4net.Config;
2.
#region "LogSetting"
private static readonly log4net.ILog log = log4net.LogManager.GetLogger(typeof(WMSProxy));
private void _LogSetting()
{
log4net.Config.XmlConfigurator.ConfigureAndWatch(new System.IO.FileInfo(AppDomain.CurrentDomain.BaseDirectory + "LogConfig.xml"));
}
#endregion
3. LogConfig.xml
<log4net>
<appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
<file value="C:/tmp/log4net.log" />
<appendToFile value="true" />
<rollingStyle value="Size" />
<maximumFileSize value="2048KB" />
<maxSizeRollBackups value="5" />
<datePattern value="yyyyMMdd-HHmm" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="[%date] [%level] [%logger:%line] %message%newline" />
</layout>
</appender>
<root>
<level value="DEBUG" />
<appender-ref ref="RollingFileAppender" />
</root>
</log4net>
- Oct 05 Mon 2009 15:21
使用ajaxfileupload.js來實現ajax檔案上傳功能
http://www.phpletter.com/download_project_version.php?version_id=6
官網範例
http://www.phpletter.com/Our-Projects/AjaxFileUpload/
Server端:
1. 準備一支可以接收檔案的程式, 然後透過System.Web.HttpFileCollection物件來將程式存檔
Client端:
1. 呼叫 $.ajaxFileUpload() 來上傳檔案(參考官網範例)
參數:
url - Server端程式名稱
fileElementId - input id (type='file')
dataType - 'json'
success - 成功時所執行的function
error - 失敗時所執行的function
附註
web.config內可限制檔案上傳的限制
- Sep 22 Tue 2009 14:38
Proj4js 座標轉換程式的幾個開發重點
1. 載入proj4js.js, 例如:
2. 定義自定座標檔案(座標檔案的自定方法有多種, 可用檔案的方式, 或者在程式內自行宣告, 或者直接給定EPSG名稱, proj4js會自己抓取), 以下採用自己定義的方式, 幾個台灣常用的座標系統如下:
Proj4js.defs["EPSG:3821"] = "+title=經緯度:TWD67 +proj=longlat +towgs84=-752,-358,-179,-.0000011698,.0000018398,.0000009822,.00002329 +ellps=aust_SA +units=度 +no_defs";
Proj4js.defs["EPSG:3825"] = "+title=二度分帶:TWD97 TM2 澎湖 +proj=tmerc +lat_0=0 +lon_0=119 +k=0.9999 +x_0=250000 +y_0=0 +ellps=GRS80 +units=公尺 +no_defs";
Proj4js.defs["EPSG:3826"] = "+title=TWD97 TM2+proj=tmerc +lat_0=0 +lon_0=121 +k=0.9999 +x_0=250000 +y_0=0 +ellps=GRS80 +units=公尺 +no_defs";
3. 宣告要使用的投影系統, 這邊Proj()的方法有點類似 loading 的方式會把程式加載到proj4js內, 例如
var EPSG3826 = new Proj4js.Proj('EPSG:3826');
var EPSG4326 = new Proj4js.Proj('EPSG:4326');
4. 自定轉換函式
function TransCoord(x, y) {
var result;
if (Proj4js) {
var p = new Proj4js.Point(parseFloat(x), parseFloat(y));
Proj4js.transform(EPSG3826, EPSG4326, p);
result = {x: p.x, y: p.y};
}
return result;
}
再來就可用
var c = TransCoord(217400, 2672400);
來取得轉換過的座標 (c.x, c.y)
- Sep 15 Tue 2009 01:51
Apache Derby的幾個注意事項
C:\Java\db-derby-10.5.3.0-bin\bin>startNetworkServer -h 192.168.1.10 -p 1527
參考: http://topic.csdn.net/u/20090221/12/4e4fc491-4fd4-4965-b57b-dc52bfe099c6.html
2. ALTER TABLE的用法
ALTER TABLE
ALTER SET DATA TYPE VARCHAR(integer)
參考: http://db.apache.org/derby/docs/10.2/ref/rrefsqlj81859.html#rrefsqlj81859__rrefsqlj37860
3. 建立DB (使用ij)
CONNECT 'jdbc:derby:firstdb;create=true';
參考: http://db.apache.org/derby/docs/dev/getstart/twwdactivity1.html
- Sep 02 Wed 2009 09:09
將Table A的欄位複製到Table B的欄位
SET dbo.Table2.ColB = dbo.Table2.ColB + dbo.Table1.ColB
FROM dbo.Table2
INNER JOIN dbo.Table1
ON (dbo.Table2.ColA = dbo.Table1.ColA)