2011年12月23日 星期五
2011年12月22日 星期四
當Jquery用ajax遇到中文與特殊符號&
需要用
javascript 的 encodeURIComponent 來解決。說明於此
function save(data){ var agree=confirm('Confirm to save !'); if (agree) { var escapeData = encodeURIComponent(data); $.ajax({ type: "POST", dataType: "text", url: "ticker.do", data: "m=save&data="+escapeData }); } else { return ; } }
2011年12月21日 星期三
CoffeeScript 資源整理
Introduction to CoffeeScript on YouTube
網頁 教學、IBM
CoffeeScript and JQuery
CoffeeScript and JQuery plugin
高見龍的CoffeeScript介紹 第一篇有三個英文網頁教學的連結
Note :
read-evaluate-print-loop (REPL)
- 英文
網頁 教學、IBM
CoffeeScript and JQuery
CoffeeScript and JQuery plugin
- 中文
高見龍的CoffeeScript介紹 第一篇有三個英文網頁教學的連結
Note :
read-evaluate-print-loop (REPL)
2011年12月18日 星期日
又是雲端
最近才知道cloud foundry是另一個以PAAS(Platform as a Service)為架構的雲端平台(GAE and Windows Azure 也是PAAS類型)! 它就是VMware這個大廠的產品,VMware當時買下Spring framework (Spring Source)的原因應該就是這了吧,有了虛擬化的技術搭配這個cloud foundry可說是除了硬體層啥都吃下了!
2011年12月16日 星期五
[簡單法]在Linux 開機執行tomcat 及特定jar檔
前提JAVA_HOME等環境變數都設好在/etc/profile
- /etc/rc.local 加入以下內容
#如果沒有下面這行,tomcat會因沒有環境變數等設定無法啟動 source /etc/profile #x.x.x depends on your version /usr/local/apache-tomcat-x.x.x/bin/startup.sh #make sure that you had input "chmod 755 run.sh" /usr/local/myjar/run.sh
- run.sh的內容
#!/bin/sh cd /usr/local/myjar java -jar main.jar > /dev/null &
2011年11月29日 星期二
Default value between Hibernate and Mysql
Data type of Mysql is Integer
Hibernate :
Data type of Mysql is Varchar(1)
Hibernate :
Please focus on default=" 'a' " ! If you use default="a" , it will create failure on Hibernate and also Mysql !
Hibernate :
Data type of Mysql is Varchar(1)
Hibernate :
Please focus on default=" 'a' " ! If you use default="a" , it will create failure on Hibernate and also Mysql !
2011年11月15日 星期二
符號的英文
- ~ Tilde
- ! Exclamation mark(驚歎號)
- @ At sign, 所以一般在告訴他人E - mail (ex : joseph@blogger.com)時可以說 joseph at blogger dot com ,請不要再用joseph 小老鼠 blogger dot com 了 =.=
- # Pound sign
- $ Dollar sign
- % Percent, percent sign
- ^ Caret
- & Ampersand
- * Asterisk (星號)
- { Open brace (左大括號)
- } Close brace (右大括號)
- [ Open bracket (左方括弧,左中括號)
- ] Close bracket (右方括弧,右中括號)
- ( Open parenthesis (左圓括號,左小括號)
- ) Close parenthesis (右圓括號,右小括號)
- : Colon (冒號)
- , Comma (逗號)
- -- Double dash
- ... Ellipsis (省略符號)
- ' Single quote (單引號)
- " Quote (引號)
- = Equals (等號)
- + Plus, plus sign (加號)
- > Greater than (大於)
- < Less than (小於)
- ? Question mark (問號)
- . Period, dot (句號,點)
- ; Semicolon (分號)
- - Hyphen (連字號)。注意這與下面的差別
- — Dash (破折號)
- _ Underscore (底線) ,underline通常是動詞,在..下面劃線的意思,但也有人說成underline = =
- | Vertical bar
- / Slash (斜線)
- // Double slash (雙斜線)
- \ Backslash (反斜線)
2011年11月9日 星期三
Python3 應用
- Java有Quartz這個強大的排程套件,Python當然也有=>Advanced Python Scheduler (APScheduler)
- 簡單的http client (Python3以前是httplib)
''' Created on 2011/11/10 這個程式可以簡單的測試網頁伺服器是否運作正常 @author: Joseph ''' import http.client conn = http.client.HTTPConnection("www.google.com.tw") conn.request('GET', '/') r1 = conn.getresponse() print(r1.status, r1.reason) #正常的話會印出 200 OK conn.close()
3. 加密 hash
''' Created on 2011/11/10 @author: Joseph ''' import hashlib md5 = hashlib.md5() #官網 Note : Feeding string objects is to update() is not supported, as hashes work on bytes, not on characters. md5.update(b"This is a book")#因為上述,所以字串前多加一個b print(md5.digest()) #加密後用二進位表示 print(md5.hexdigest()) #加密後用十六進位表示 #第7,9,11合在一起成下列寫法 print(hashlib.new("md5", b"This is a book").hexdigest())
2011年11月1日 星期二
Python 資源整理 2012/01/20
最近開始有閒可以玩玩傳說中非玩不可的動態語言-Python (英文本意為:蟒蛇 , 仔細看一下Logo ! 你有發現什麼有趣的嗎 ? <答案在最後一行>)
整理一些相關的資源
教學面
應用面
閒聊面
剛閒晃google的"python 應用"中發現,Google把Python的發明者也找進公司,難怪GAE一開始就只支援Python,Java還是在Python之後才支援的呢 !
Answer : Logo是兩隻蛇 XD ~一上一下! The designer is really funny and creative !
整理一些相關的資源
教學面
- Victor教學
- 良葛格之Python
- Python與Django的Blog教學
- 多種程式語言的教學之Python
- 英文Python教學
- 英文Python教學2
- 官網 - 寫Python的樣式規則
- fcamel的Blog介紹所用的工具和開發環境 及學習方向
- Dive Into Python 3
- 國外文章建議由淺入深的書籍
- Think Python
應用面
- 用Python寫game : pygame
- 用Python寫網頁、web application的framework : Django
- 寫一些管Unix server的工具
- 看看有什麼新技巧 DZone for Python
- Django book
- Dzone for Python(教學與應用、新知)
- Python Hello World ,for a web application
閒聊面
剛閒晃google的"python 應用"中發現,Google把Python的發明者也找進公司,難怪GAE一開始就只支援Python,Java還是在Python之後才支援的呢 !
Answer : Logo是兩隻蛇 XD ~一上一下! The designer is really funny and creative !
2011年10月11日 星期二
My toolkit note
Photoshop :
Ctrl + ALT + Z 恢復多次
遠端桌面 是用 port 3389
My NB is ASUS F8SA .
vi x.xml有中文會有問題!
UltraEditor :
^p開頭斷行
$尾巴
Maximum columns before line warps這個可以設定在顯示超過多少字元後自動斷行
Ctrl + ALT + Z 恢復多次
遠端桌面 是用 port 3389
My NB is ASUS F8SA .
vi x.xml有中文會有問題!
UltraEditor :
^p開頭斷行
$尾巴
Maximum columns before line warps這個可以設定在顯示超過多少字元後自動斷行
2011年9月19日 星期一
我的IT書櫃
20110913於博客來購入
大話資料結構
Mac OS X 10.6 Missing Manual國際中文版
以下是之前買的:
Servlet & JSP教學手冊(第二版)
JAVA加密與解密的藝術
Java 網路程式設計 第三版
Java Threads
if與else的思考術:程式設計邏輯腦的養成講座


Mac OS X 10.6 Missing Manual國際中文版

Servlet & JSP教學手冊(第二版)




深入淺出-設計模式
深入淺出物件導向分析與設計
2011年8月28日 星期日
Java 序列化(Serialization)
序列化的意思就是把物件儲存後(file or database),在從中取出還會是原物件狀況,包含屬性等。
首先必須實作 Serializable interface,這個介面沒有任何method。
該物件的屬性如果是 primitive type會自動被序列化。
如果非primitive type沒有實作Serializable就會丟出 Runtime Exception
或者我們不想讓這個非primitive type不被序列化,就在這屬性加上transient
如果兩個物件共同指向相同非privitive type的A物件,且儲存時使用相同ObjectOutputStream,此時只會存一份A物件。如果儲存時分別使用不同ObjectOutputStream,當然就會有各自一份不同的A物件。
細節說明和範例可參考這
首先必須實作 Serializable interface,這個介面沒有任何method。
該物件的屬性如果是 primitive type會自動被序列化。
如果非primitive type沒有實作Serializable就會丟出 Runtime Exception
或者我們不想讓這個非primitive type不被序列化,就在這屬性加上transient
如果兩個物件共同指向相同非privitive type的A物件,且儲存時使用相同ObjectOutputStream,此時只會存一份A物件。如果儲存時分別使用不同ObjectOutputStream,當然就會有各自一份不同的A物件。
細節說明和範例可參考這
2011年8月12日 星期五
Got an UiBinder useSafeHtmlTemplates warning on GWT compiling
When I was running a sample MVP application of GWT , show an error
Solution is add one line in Contacts.gwt.xml
[WARN] [helloMVP] Configuration property UiBinder.useSafeHtmlTemplates is false! UiBinder SafeHtml integration is off, leaving your users more vulnerable to cross-site scripting attacks. This property will default to true in future releases of GWT
Solution is add one line in Contacts.gwt.xml
2011年8月10日 星期三
To decorate java code in google blogger with SyntaxHighlighter
- Go to SyntaxHighlighter and download ( I used 3.0.83 release )
- Unzip the file you download and upload
to your web space ( On-line ) or https://sites.google.com/site/yours/
I upload these files to my google site
change the template in your blogger
add some html code as below
save the setting!
So , now you can decorate your code in blogger !
In editor of blogger , as following
<pre class="brush:java" name="code" > java code </pre >
It is easy to use for html and javaScript and so on as above . See the configuration of
SyntaxHighlighter for more advanced feature.
2011年8月8日 星期一
GWT Note 2
Event and Event handler
有四種方式來實作UI介面與事件觸發處理的關係
1.handler獨立成一個class,這樣會多很多class file不好review code和維護。
2.直接實作handler
3. (Named)Inner class
有四種方式來實作UI介面與事件觸發處理的關係
1.handler獨立成一個class,這樣會多很多class file不好review code和維護。
public class GwtEvents implements EntryPoint { ... public void onModuleLoad() { textfield = new TextBox(); textfield.addKeyUpHandler(new MyHandler(this)); ... }//end onModuleLoad }//end class public class MyHandler implements KeyUpHandler { ... public void onKeyUp(KeyUpEvent event) { ... } }//end class
2.直接實作handler
public class GwtEvents implements EntryPoint, KeyUpHandler { ... public void onModuleLoad() { textfield = new TextBox(); textfield.addKeyUpHandler(this); ... } public void onKeyUp(KeyUpEvent event) { ... } }//end class
3. (Named)Inner class
public class GwtEvents implements EntryPoint { public void onModuleLoad() { textfield = new TextBox(); textfield.addKeyUpHandler(new MyHandler()); private class MyHandler implements KeyUpHandler { public void onKeyUp(KeyUpEvent event) { ... } }//end onModuleLoad }//end class4.Anonymous inner classes
public class GwtEvents implements EntryPoint { ... public void onModuleLoad() { textfield = new TextBox(); textfield.addKeyUpHandler(new KeyUpHandler() { @Override public void onKeyUp(KeyUpEvent event) { ... } }); }//end onModuleLoad }//end class請依情況選擇2、3的作法,避免用方法4。
GWT Note 1
今天遇到一個很怪的情況,怎麼加xxx.gwt.xml在已含有*.gwt.xml的project內就是會跑不起來,訊息如下:
[ERROR] [gwtevents1] - Unable to find 'gwtevents1.gwt.xml' on your classpath; could be a typo, or maybe you forgot to include a classpath entry for source?
...
[ERROR] [gwtevents4] - Unable to find 'gwtevents4.gwt.xml' on your classpath; could be a typo, or maybe you forgot to include a classpath entry for source?
這四個新加入的都出現一樣的錯誤,後來才找到問題:就是不要跑原先存留在eclipse內的執行設定,也就是刪除舊的執行設定 Run => Run Configurations => delete old configuration 或對project按右鍵=>Run As => Web Application
這種問題的解決挺難找的= = ,如果習慣用ant或maven來build,不要仰賴eclipse就不會遇到這種鳥事。
[ERROR] [gwtevents1] - Unable to find 'gwtevents1.gwt.xml' on your classpath; could be a typo, or maybe you forgot to include a classpath entry for source?
...
[ERROR] [gwtevents4] - Unable to find 'gwtevents4.gwt.xml' on your classpath; could be a typo, or maybe you forgot to include a classpath entry for source?
這四個新加入的都出現一樣的錯誤,後來才找到問題:就是不要跑原先存留在eclipse內的執行設定,也就是刪除舊的執行設定 Run => Run Configurations => delete old configuration 或對project按右鍵=>Run As => Web Application
這種問題的解決挺難找的= = ,如果習慣用ant或maven來build,不要仰賴eclipse就不會遇到這種鳥事。
2011年8月5日 星期五
GWT Note
最近開始進入GWT的開發模式,所以一定會有不熟悉的地方,也就容易產生錯誤。
這邊就來把遇到的問題記起來吧!
在eclipse建立一個練習的GWT專案後,想要在這個專案跑一個以上的entry http://www.blogger.com/img/blank.gifpoint,http://www.blogger.com/img/blank.gif所以就會有一個以上的xxx.gwt.xml,那不想讓這兩個module(GWT是定義一個module一個entry point,討論1、2)包到彼此的client code,很簡單的方式就是切不同的path(或說package)
for example :
gwtapp1.gwt.xml
...
<module rename-to='gwtapp1'>
<source path='client/app1'/>
</module>
gwtapp2.gwt.xml
...
<module rename-to='gwtapp2'>
<source path='client/app2'/>
</module>
就是path不同,這樣就不會把gwtapp1的clinet code也被compile成gwtapp2的code了!
注意rename-to的值就是war內的一個目錄專放java to javaScipt的地方,還有就是path是用 / 斜線(slash or forward slash。 \ 反斜線是叫 backslash),我一開始是用"點" 所以會被google plugin的compiler說 "GWT compilation failed" 。= =;;;
這邊就來把遇到的問題記起來吧!
在eclipse建立一個練習的GWT專案後,想要在這個專案跑一個以上的entry http://www.blogger.com/img/blank.gifpoint,http://www.blogger.com/img/blank.gif所以就會有一個以上的xxx.gwt.xml,那不想讓這兩個module(GWT是定義一個module一個entry point,討論1、2)包到彼此的client code,很簡單的方式就是切不同的path(或說package)
for example :
gwtapp1.gwt.xml
...
<module rename-to='gwtapp1'>
<source path='client/app1'/>
</module>
gwtapp2.gwt.xml
...
<module rename-to='gwtapp2'>
<source path='client/app2'/>
</module>
就是path不同,這樣就不會把gwtapp1的clinet code也被compile成gwtapp2的code了!
注意rename-to的值就是war內的一個目錄專放java to javaScipt的地方,還有就是path是用 / 斜線(slash or forward slash。 \ 反斜線是叫 backslash),我一開始是用"點" 所以會被google plugin的compiler說 "GWT compilation failed" 。= =;;;
2011年7月15日 星期五
Linux 換個power supply開不了機
/var 快塞爆了
今天發現server上/var快爆滿了
去查了一下到底是誰
du -s /var/* |sort -rn | head -5
才發現是/var/spool/clientmqueue 內有太多信因為sendmail沒啟動導致一些信沒寄出給root
加上似乎ssh被hacker瘋狂嘗試登入,然後一堆告警的訊息產生並通知給root。
用ls | xargs rm -rf 可以清除裡面龐大數量的檔案。除了這種訊息當然也可以去確保你的crontab的排程是否有加到> /dev/null 2>&1就不會有一些資料進到這個queue目錄內。
最後還是可以做個擋不正當的行為IP的人進入系統。
去查了一下到底是誰
du -s /var/* |sort -rn | head -5
才發現是/var/spool/clientmqueue 內有太多信因為sendmail沒啟動導致一些信沒寄出給root
加上似乎ssh被hacker瘋狂嘗試登入,然後一堆告警的訊息產生並通知給root。
用ls | xargs rm -rf 可以清除裡面龐大數量的檔案。除了這種訊息當然也可以去確保你的crontab的排程是否有加到> /dev/null 2>&1就不會有一些資料進到這個queue目錄內。
最後還是可以做個擋不正當的行為IP的人進入系統。
2011年5月9日 星期一
JSON memo
JSON 就是JavaScript Object Notation的縮寫名稱,是一個通用的資料交換格式。
用它比XML的好處就是快,因為冗餘的東西少(XML太多多餘的tag),encode與decode就變的快,
相對的client and server用的記憶體少,處理資料變快,也就讓資料在傳輸之間需要的頻寬變得少且傳達速度快。
規則:
object是一個無序的name/value pairs,開始於左大括號( { ),結束於右大括號( } ),name與value是以分號( : )做分割,每個name/value pairs是以逗號做區隔( , )。
array是一個有序的values集合,開始於左中括號( [ ),結束於右中括號( ] ),values是以逗號做區隔( , )。
value 可以是包在雙引號( " )內的string,number, 或 true or false or null, or an object or an array
number只可以是10進位與16進位
還有一些內容可以看這或官網
一個討論用什麼工具來處理JSON的LINK
用它比XML的好處就是快,因為冗餘的東西少(XML太多多餘的tag),encode與decode就變的快,
相對的client and server用的記憶體少,處理資料變快,也就讓資料在傳輸之間需要的頻寬變得少且傳達速度快。
規則:
object是一個無序的name/value pairs,開始於左大括號( { ),結束於右大括號( } ),name與value是以分號( : )做分割,每個name/value pairs是以逗號做區隔( , )。
array是一個有序的values集合,開始於左中括號( [ ),結束於右中括號( ] ),values是以逗號做區隔( , )。
value 可以是包在雙引號( " )內的string,number, 或 true or false or null, or an object or an array
number只可以是10進位與16進位
還有一些內容可以看這或官網
一個討論用什麼工具來處理JSON的LINK
2011年4月20日 星期三
Jmesa TableWithoutPagination assigns total amount of items
In Jsp , about TableWithoutPagination ,please refer to Jmesa's Wiki
<jmesa:tableFacade id="tag" items="${appList}" var="appList" view="com.Joseph.TableWithoutPagination" maxRows="${fn:length(appList)}" >
The important thing is assigning total amount of item ,so I use jstl to tell Jmesa
how many objects there are in the item (Collection).
Your Jsp should include
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
<jmesa:tableFacade id="tag" items="${appList}" var="appList" view="com.Joseph.TableWithoutPagination" maxRows="${fn:length(appList)}" >
The important thing is assigning total amount of item ,so I use jstl to tell Jmesa
how many objects there are in the item (Collection).
Your Jsp should include
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
Linux default gateway setup/configure
vi /etc/sysconfig/network
如果不想等重開後才生效
就用route
>route add default gw 172.16.29.126
如果要移除不要的gw
>route delete default gw 172.16.29.254
如果不想等重開後才生效
就用route
>route add default gw 172.16.29.126
如果要移除不要的gw
>route delete default gw 172.16.29.254
2011年3月30日 星期三
HttpClient傳中文
在兩個系統間用Http方式傳資料,當需要傳中文時對方會收到亂碼,這時就是加入編碼
PostMethod post =...;
post.addRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=utf-8");
就可順利接收中文了
PostMethod post =...;
post.addRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=utf-8");
就可順利接收中文了
2011年3月23日 星期三
script tag 的 end tag 一定要寫
寫了快八年的web application現在才知道script end tag的重要性
以前都認為跟xml的觀念是一樣的:
<mytag /> 是等同 <mytag > </mytag>
但事實上並非如此,在script tag就不同了
如果寫成下列這行是不會work的
< script type="text/javascript" src="calendar-en.js"/>
要寫成
< script type="text/javascript" src="calendar-en.js"></script>
以前都認為跟xml的觀念是一樣的:
<mytag /> 是等同 <mytag > </mytag>
但事實上並非如此,在script tag就不同了
如果寫成下列這行是不會work的
< script type="text/javascript" src="calendar-en.js"/>
要寫成
< script type="text/javascript" src="calendar-en.js"></script>
2011年3月8日 星期二
Oracle RMAN出現 rman: can't open target
$ rman target /
rman: can't open target
這是因為呼叫了非ORACLE的RMAN
$ which rman
/usr/X11R6/bin/rman
解決方法-修改環境變數
修改.bash_profile
把oracle的放到最前面,修改成
export PATH=$ORACLE_HOME/bin:${PATH}:/usr/bin:/bin:/usr/bin/X11:/usr/local/bin
登出後再登入,就會用到oracle的RMAN
$ which rman
~/product/10.2.0/db/bin/rman
rman: can't open target
這是因為呼叫了非ORACLE的RMAN
$ which rman
/usr/X11R6/bin/rman
解決方法-修改環境變數
修改.bash_profile
把oracle的放到最前面,修改成
export PATH=$ORACLE_HOME/bin:${PATH}:/usr/bin:/bin:/usr/bin/X11:/usr/local/bin
登出後再登入,就會用到oracle的RMAN
$ which rman
~/product/10.2.0/db/bin/rman
2011年2月23日 星期三
Oracle RMAN restore&recover
一開始使用RMAN的store and recover總以為會把資料回復到RMAN BACKUP時的資料狀態,
也就是說BACKUP後所作的操作都會失效,但卻不盡然,如果在BACKUP後有刪除一些資料或改動某些欄位,因為在REDOLOG內會把這些動作都保留,我們在做
RMAN>restore database;
RMAN>recover database;
RMAN>sql 'alter database open';
這時後的資料並不是回到backup時的資料,會連同把redo log內的動作一起做進來。如果真的想回到當時的狀態,必須改成
RMAN>restore database;
RMAN>recover database noredo;
RMAN>sql 'alter database open resetlogs';
(如果執行失敗,出現ora-01139) RESETLOGS選項只有在不完整的資料庫復原作業後才有效
回到SQL
SQL>recover database using backup controlfile until cancel;
(打cancel)
再打alter database open resetlogs;
PS.如果有用到增量備份(incremental backup)restore 會取level 0,recover會取level 1及之後的
也就是說BACKUP後所作的操作都會失效,但卻不盡然,如果在BACKUP後有刪除一些資料或改動某些欄位,因為在REDOLOG內會把這些動作都保留,我們在做
RMAN>restore database;
RMAN>recover database;
RMAN>sql 'alter database open';
這時後的資料並不是回到backup時的資料,會連同把redo log內的動作一起做進來。如果真的想回到當時的狀態,必須改成
RMAN>restore database;
RMAN>recover database noredo;
RMAN>sql 'alter database open resetlogs';
(如果執行失敗,出現ora-01139) RESETLOGS選項只有在不完整的資料庫復原作業後才有效
回到SQL
SQL>recover database using backup controlfile until cancel;
(打cancel)
再打alter database open resetlogs;
PS.如果有用到增量備份(incremental backup)restore 會取level 0,recover會取level 1及之後的
訂閱:
意見 (Atom)
COVID-19 確診經歷紀實
原本以為真的是天選之人,就算先前家裡兩個小孩都確診都逃過了(可能有中獎但無症狀吧),不過就在2023年六月18日破解自認為天選之人的"心態",為什麼可以確認就是這天中獎的呢?因為在前都是居家上班,到人多的室內場所都會戴口罩,就剛好這天傍晚原本只想說要去附近的國...
-
在過一段時間後會出現如上錯誤訊息,這是因為MySQL已經切斷閒置的連線,所以可以利用connection pool的配置來處理這個問題。 Mysql服務器預設的「wait_timeout」是8小時(待查證), 所以mysql配置中my.ini 的wait_timeout值一定要大...
-
public class ClientTest { private static final int PORT = 8009; private static final int TIMEOUT = 2000; Server server; ...
-
當物件的屬性是null時預設是會顯示null,如下 {"status":"1","singers":["Jolin","Jolinnnnn"], "songs...