為了在 Ubuntu 上裝這個 3G 網卡, 找了一天資料. 總算通了 大致上是這樣.
有很多人都說要轉換模式, 所以裝了 libusb-dev, usb_switchmode,.....etc.
1. 但是後來我只做了 touch /media/CONNMGR/wcdma.cfg 注意! 這邊的 CONNMGR 就是你 media中 mount 上來的資料夾... 然後等個15 sec 他就轉成 modem , /etc/ttyUSB* 可見.
2. 然後就是找撥接軟體, 我用 wvdial, 所以要裝一下 sudo apt-get install wvdial
然後 設定這樣 vim /etc/wvdial.conf
[Dialer Defaults]
Phone = *99#
Username = username
Password = passwd
Stupid Mode = 1
Dial Command = ATDT
Check Def Route = on
Dial Attempts = 3
Modem = /dev/ttyUSB0
Baud = 460800
Init2 = ATZ
Init3 = ATQ0 V1 E0 S0=0 &C1 &D2 +FCLASS=0
Init4 = AT+CGDCONT=1, "IP","Internet"
ISDN = 0
Modem Type = Analog Modem
New PPPD = yes
3. 接著就可以寫一個 ppp.sh 要用 root 執行!
vim ppp.sh
sudo touch /media/CONNMGR/wcdma.cfg
sleep 15
sudo wvdial
4. 開著 Terminal 你就會發現....拿到IP了...KO!
ref. http://plog.longwin.com.tw/my_note-unix/2009/07/31/ubuntu-904-3g-q101-driver-2009
緊接著! 「系統」> 「偏好設定」>「始動應用程式」裡把 Network Manager 的啟動取消, 這樣系統才會透過 3G 去上網~
2010年12月22日 星期三
2010年12月13日 星期一
2010年12月8日 星期三
更動UBUNTU預設資料夾(TW->EN)
export LANG=en_US
xdg-user-dirs-gtk-update
同意翻譯後,
export LANG=zh_TW
重登, 點選不同意翻譯 and 不再問我. KO~
2010年12月7日 星期二
UBUNTU 10.10 Firefox/Chromium Browser Sun JAVA Plug-in replacement method
sudo apt-get install sun-java6-jre sun-java6-plugin
# Find the new style java plugin: me@mybox:~$ locate libnpjp2 /usr/lib/jvm/java-6-sun-1.6.0.16/jre/lib/i386/libnpjp2.so # symlink it to the chromium plugins directory sudo ln -sf /usr/local/jre1.6.0_16/lib/i386/libnpjp2.so /usr/lib/chromium-browser/plugins/ # remove the old style plugin because it didn't work sudo rm -rf /usr/lib/chromium-browser/plugins/libjavaplugin_oji.so
接著用,
update-alternatives --config java
update-alternatives --config javac
變更 java 使用的版本.
Ref.
http://jamesmcdonald.id.au/it-tips/java-on-chromium-browser-ubuntu-9-04
2010年12月6日 星期一
都太難用了!!!!!!!! VNC..echoVNC..logmein..
準備寫個跨平台remote desktop JAVA base. + JMF. NAT-to-NAT. Browser viewer! 大概是這樣! GO!
2010年11月27日 星期六
2010年11月11日 星期四
JQUERY + JSON + TOMCAT ServerLet 解決!
JQUERY 端 -- 記得加上 ?callback=?
$.getJSON("http://140.96.29.65:8080/SnakeEyes/SnakeEyesServlet?callback=?",{
sname: "[{session_id:1, pid:1, fid:15201, lat1:24.634535, lng1:120.918274, lat2:24.877716, lng2:120.923767, lat3:24.878962, lng3:121.216278, lat4:24.624548, lng4:121.213531}]"
},
function(data){
alert(data[0].location);
});
ServerLet 端! 很重要 要從 request中取 callback 以及 在 JSON String兩側加上小跨號 (), 會變成一個字串長成 "abc(json)" 然後 Client 收到後就會自動去 call 這個 abc() Function!
HttpServletResponse response;
HttpServletRequest request;
response.setContentType("application/x-javascript; charset=utf-8");
PrintWriter out = response.getWriter();
out.print(request.getParameter("callback") + "({\"value\":\"");
out.print("\"})");
out.flush();
out.close();
弄了兩天, 總算完工了. p.s. JQUERY 可以下 "callback=?" or "callback=abc". 前者會直接呼叫 success Function, 後者會去呼叫自訂的 abc()!
$.getJSON("http://140.96.29.65:8080/SnakeEyes/SnakeEyesServlet?callback=?",{
sname: "[{session_id:1, pid:1, fid:15201, lat1:24.634535, lng1:120.918274, lat2:24.877716, lng2:120.923767, lat3:24.878962, lng3:121.216278, lat4:24.624548, lng4:121.213531}]"
},
function(data){
alert(data[0].location);
});
ServerLet 端! 很重要 要從 request中取 callback 以及 在 JSON String兩側加上小跨號 (), 會變成一個字串長成 "abc(json)" 然後 Client 收到後就會自動去 call 這個 abc() Function!
HttpServletResponse response;
HttpServletRequest request;
response.setContentType("application/x-javascript; charset=utf-8");
PrintWriter out = response.getWriter();
out.print(request.getParameter("callback") + "({\"value\":\"");
out.print("\"})");
out.flush();
out.close();
弄了兩天, 總算完工了. p.s. JQUERY 可以下 "callback=?" or "callback=abc". 前者會直接呼叫 success Function, 後者會去呼叫自訂的 abc()!
JQUERY
getJSON 並不支援跨網段....需要另外找 jquery.jsonp-2.1.3.min.js 處理
EX.
$.jsonp({
"url": "http://140.96.29.65:8080/SnakeEyes/SnakeEyesServlet",
"data": {
sname: "[{session_id:1, pid:1, fid:15201, lat1:24.634535, lng1:120.918274, lat2:24.877716, lng2:120.923767, lat3:24.878962, lng3:121.216278, lat4:24.624548, lng4:121.213531}]"
},
"success": function(userProfile) {
// handle user profile here
alert("123");
},
"error": function(d,msg) {
alert("Could not find user");
}
});
EX.
$.jsonp({
"url": "http://140.96.29.65:8080/SnakeEyes/SnakeEyesServlet",
"data": {
sname: "[{session_id:1, pid:1, fid:15201, lat1:24.634535, lng1:120.918274, lat2:24.877716, lng2:120.923767, lat3:24.878962, lng3:121.216278, lat4:24.624548, lng4:121.213531}]"
},
"success": function(userProfile) {
// handle user profile here
alert("123");
},
"error": function(d,msg) {
alert("Could not find user");
}
});
2010年11月1日 星期一
Ibatis "Insert" return val! and PostgreSQL auto inc.
For returning insert ID.
JAVA Side
Long insertID = Long.parseLong(sqlMap.insert("scope.ibatorgenerated_insert", scopeRecord).toString())
Ibatis Side
AUTO inc.
JAVA Side
Long insertID = Long.parseLong(sqlMap.insert("scope.ibatorgenerated_insert", scopeRecord).toString())
Ibatis Side
<selectKey resultClass="java.lang.Long" keyProperty="scopeId" >
SELECT nextval('scope_scope_id_seq')
</selectKey>
SELECT nextval('scope_scope_id_seq')
</selectKey>
AUTO inc.
CREATE TABLE tablename ( colname SERIAL );
實際上是這樣實作
CREATE SEQUENCE tablename_colname_seq; CREATE TABLE tablename ( colname integer DEFAULT nextval('tablename_colname_seq') NOT NULL );
Reference:http://www.postgresql.org/docs/8.1/interactive/datatype.html
2010年10月21日 星期四
2010年10月8日 星期五
2010年10月7日 星期四
MySQL Cluster
最近開始看這個東西, 有不少限制, 但是也有不少好功能! 開始深入看看. 基本的 Evnet, Trigger 都可以用, 另外,建 Table 時記得 ENGINE=NDBCLUSTER, 才會啟動複製功能~
2010年10月6日 星期三
Mysql-Event, Trigger, Store Procedure
Event 用來處理週期性發生事件
Trigger 處理即時事件
Store Procedure 可以用來寫一串動作, 弄成 Function 給外面Call.
before update and before insert 可以同時存在於一個table.
count(*) 可以用來發現本欄存不存在 then 決定insert or update.
Trigger 處理即時事件
Store Procedure 可以用來寫一串動作, 弄成 Function 給外面Call.
before update and before insert 可以同時存在於一個table.
count(*) 可以用來發現本欄存不存在 then 決定insert or update.
2010年4月20日 星期二
訂閱:
文章 (Atom)