2009年5月24日 星期日

一起加入Android的世界吧

最近一兩個月開始真正的投入Android懷抱中,其實Android不太難涉入,老實說比學一個Flex還要快呢!想學的人可以聽聽我的建議嚕
1.首先呢你必須先將Android開發環境裝好,其實在這裡部分我想第一次安裝就會遇上問題,所以我這邊的建議呢,建議你直接新安裝Ecplise 3.4版本
Ecplise 3.4下載
接著就去下載最新版的Android 1.5 SDK
Window 版
Linux 版
都下載且解壓縮完後接著就是安裝ADT(Android Developer Tool),接著按照官方的做法加入ADT

  1. Start Eclipse, then select Help > Software Updates....
  2. In the dialog that appears, click the Available Software tab.
  3. Click Add Site...
  4. Enter the Location:
    https://dl-ssl.google.com/android/eclipse/

    If you have trouble aqcuiring the plugin, try using "http" in the Location URL, instead of "https" (https is preferred for security reasons).

    Click OK.

  5. Back in the Available Software view, you should see the plugin listed by the URL, with "Developer Tools" nested within it. Select the checkbox next to Developer Tools and click Install...
  6. On the subsequent Install window, "Android DDMS" and "Android Development Tools" should both be checked. Click Next.
  7. Read and accept the license agreement, then click Finish.
  8. Restart Eclipse.
以上都弄完後,記得你的java JDK 一定要1.6版本以上喔!!,Ecplise內complier一定也要選1.6以上喔!!

這樣你就算把基本環境架設完嚕

2009年3月12日 星期四

Flex 與 Java servlet 串在一起(傳參數篇)

今天我要介紹如何透過HttpService的方式將Flex製作的會員註冊表單資料送出至Servlet,最後再將資料存至db

1.首先我們先用Flex拉一個表單如下圖,接著編輯MXML加入HttpService與將物件標上id

以下是code的部分,看的方法用顏色一樣的表示有關聯~~紅色部分表示您要傳資料至url的設定,其他就對照顏色看嚕


-------------------------------MXML---------------------------------

//基本上這個httpEncoding是為了傳網頁中文參數所以需先encoding
private function httpEncoding(param:String):String{
return encodeURIComponent(param);
}

private function insert_data():void{

var params:URLVariables = new URLVariables();
//塞你要傳的值給params變數
params.member_name = httpEncoding(this.member_name.text);
params.member_sex= httpEncoding(this.member_sex.selectedValue.toString());
params.member_birthday= httpEncoding(this.member_birthday.text);
//post至servlet
add_to_servlet.send(params);
}


-------------------------------MXML---------------------------------


2.撰寫Servlet端


---------------------------------------------JAVA Servlet-----------------------------------------
public class FlexServlet extends HttpServlet{

private static final long serialVersionUID = 1L;

public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException{
doPost(request,response);
}

public void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
resp.setContentType("text/xml;charset=utf-8");
resp.setHeader("Cache-Control", "no-cache");

String action = req.getParameter("action");
System.out.println("action:"+action);
if(action.equals("member_list")){
doQueryMemberList(req,resp);
}else if(action.equals("member_add")){
doInsertMember(req,resp);
}
}
private void doInsertMember(HttpServletRequest req,HttpServletResponse resp){
String member_name=URLDecoder.decode(req.getParameter("member_name"));
String member_sex=URLDecoder.decode(req.getParameter("member_sex"));
String member_birthday=URLDecoder.decode(req.getParameter("member_birthday"));
}

---------------------------------------------JAVA Servlet-----------------------------------------

這樣您就可以在java上進行db的新增與修改資料嚕....db那段有需要我在補上嚕.....

2009年2月3日 星期二

透過VBA 將Excel中所有的圖片與FaceID列出


最近因為研究vba內製作工具列,因此特別需要圖示(自己畫自訂圖想說麻煩之後再研究),所以就找了一下不然每次FaceID都亂填~~找了很久終於Google大神幫我找到了分享一下~
以下附上程式碼

Private Sub CommandButton1_Click()

Dim NewToolbar As CommandBar
Dim NewButton As CommandBarButton
Dim i As Integer, IDStart As Integer, IDStop As Integer


On Error Resume Next
Application.CommandBars("FaceIds").Delete
On Error GoTo 0


Set NewToolbar = Application.CommandBars.Add _
(Name:="FaceIds", temporary:=True)
NewToolbar.Visible = True


IDStart = 1
IDStop = 800

For i = IDStart To IDStop
Set NewButton = NewToolbar.Controls.Add _
(Type:=msoControlButton, ID:=2950)
NewButton.FaceId = i
NewButton.Caption = "FaceID = " & i
Next i
NewToolbar.Width = 600

End Sub


接著大家快點去玩工具列吧~

2009年1月31日 星期六

想做出類似google calendar 行事曆功能

最近因為想弄類似行事曆功能,所以參考Google Calendar作法,本來以為Google Calendar可以像Google Map一樣把api完全開放出來,但沒想到Google Calendar說實在的被綁死,目前Google Calendar可以用出所謂的Calendar分享,也就是說讀出Google端的資料,它無法像Google Map可以讀本端資料近來,也因為這樣我們根本無法用到Google Calendar的介面功能,因為Google Calendar內好用的就是他的事件定義功能,只要拖拉就可以建立事件,真的很棒....

我為了要能弄出類似取代功能,我想了幾個辦法,第一個是用類似iGoogle的版面調整功能,這樣可以弄出類似拖拉事件來改變事件的時間,類如從星期三下午3點拖拉將事件改製星期四下午3點,就用類似下圖iGoogle作法


第2種方法,我想用用圖層概念方式來做行事曆規劃,因為要先把取滑鼠座標的Script程式撰寫出來,如下
接下來既然滑鼠座標拿到了,就可以開始試了,首先我先把Google Calendar的日曆版面當成背景用,或者自己之後設計跟Google Calendar類似的版型,接著設計幾個事件圖案,目前我是用4個顏色的圖片來當作我們要定義的事件,使用者就可以托拉事件至你的行事曆時間如下圖範例,

下圖是拖拉後的結果
有這樣的範例之後,就可以直接抓取圖片的位置,就可以知道使用者選取什麼時間,我們再將此資訊儲存至資料庫,再讀出就可以弄出類似Google Calendar定義事件的功能,當然還差很多嚕,要自己寫下去才知道好不好用!

2009年1月28日 星期三

VBA上連線db教學範例

最近研究了一下office系列內的巨集,本來以為這種Basic語言是無法連資料庫的,沒想到真的有人有這個需求,所以我就研究一下vba連線到db抓資料,找了許多資料沒想到真的可以這樣連阿!!!
我的範例是連線 MS SQL2005,說真的感的滿久的才弄出來,現在跟大家分享一下嚕

首先小弟我打開PowerPoint中巨集選項的Visual Basic工具 我先拉個TextBox與Button,然後我要去做當我按下Button時候就連線到db取得我想要的資料,最後再把他print出來,既然可以連線到db剩下的運用就自己去想嚕


2009年1月15日 星期四

ubuntu 8.04 3G上網設定

Huawei Technologies Co., Ltd. E620 USB Modem

安裝驅動
下載驅動https://forge.betavine.net/frs/?group_id=12&release_id=26
Ubuntu Netbook Remix下的vodafone-mobile-connect_1.99.17-8_all.deb


終端機上執行順序如下:
1. apt-get install wvdial
2. gedit /etc/wvdial.conf

貼上如下:

[Dialer Defaults]
New PPPD = yes
Dial Command = ATDT
Dial Attempts = 1
Modem = /dev/ttyUSB0
Modem Type = Analog Modem
ISDN = 0
Baud = 115200
Username = user
Password = pass
Init1 = ATZ
Init2 = AT&F E1 V1 X1 &D2 &C1 S0=0
Phone = *99#
Stupid Mode = 1
Init3 =AT+CGDCONT=1,"IP","internet"

接著重開機(不確定要不要重開)

終端機上執行 wvdial Defaults

若成功會顯示

--> WvDial: Internet dialer version 1.60
--> Cannot get information for serial port.
--> Initializing modem.
--> Sending: ATZ
ATZ
OK
--> Sending: AT&F E1 V1 X1 &D2 &C1 S0=0
AT&F E1 V1 X1 &D2 &C1 S0=0
OK
--> Sending: AT+CGDCONT=1,"IP","internet"
AT+CGDCONT=1,"IP","internet"
OK
--> Modem initialized.
--> Sending: ATDT*99#
--> Waiting for carrier.
ATDT*99#
CONNECT 7200000
--> Carrier detected. Starting PPP immediately.
--> Starting pppd at Fri Jan 16 01:38:28 2009
--> Warning: Could not modify /etc/ppp/pap-secrets: Permission denied
--> --> PAP (Password Authentication Protocol) may be flaky.
--> Warning: Could not modify /etc/ppp/chap-secrets: Permission denied
--> --> CHAP (Challenge Handshake) may be flaky.
--> Pid of pppd: 13232
--> Using interface ppp0
--> pppd: ������[06][08]��[06][08]
--> pppd: ������[06][08]��[06][08]
--> pppd: ������[06][08]��[06][08]
--> pppd: ������[06][08]��[06][08]
--> pppd: ������[06][08]��[06][08]
--> local IP address 114.137.31.9
--> pppd: ������[06][08]��[06][08]
--> remote IP address 10.64.64.64
--> pppd: ������[06][08]��[06][08]
--> primary DNS address 168.95.1.1
--> pppd: ������[06][08]��[06][08]
--> secondary DNS address 168.95.192.1
--> pppd: ������[06][08]��[06][08]

就可以開始上網了...若要停用案ctrl+c

線上office非LiveDocument末屬

LiveDocument



這一兩年browser越來越強大,各大公司想盡辦法把所有的應用程式甚至作業系統都在browser上做,
最明顯的就是office,過去除了 Google Docs外,現在又多出了一個強大的線上office,聽說這個團隊是過去msn的開發團隊(創使團隊),一開始主打用browser打造跟 Office2007一樣功能介面的office,暌違了一年多總算現在Live Document推出實體產品了,目前Live Document開放的是presentation功能,玩了一下介面真的還不錯,比Google更華麗一點,主要是因為Live Document用的是Adobe AIR 開發的,所以承接了Flash的特效與ActionScript的的搭配,真的大家可以試試看。
browser上弄出類似作業系統的東西,現在不只是國外公司在推,連台灣的台積電都已經在測試了(上次看到朋友給我看他們用的browser作業系統,說真的還蠻棒的=.=)




LiveDocunent http://www.live-documents.com/

2009年1月8日 星期四

對於Yahoo API的感想

過去一直以來我都是追求著Google跑,今天總算可以換換口味試試看,在朋友口中聽見YUI(Yahoo User Interface),第一次聽到時候嚇一跳自己完全沒聽過,因為自己平常花很多時間閱讀,所以很遺惑....
而我這次會去看YUI主要重心放在Google也有的API上,分別是Calendar與Map,不過再這裡要解釋一下Yahoo的YUI指的是介面的部份,他提供使用CSS與Javascript(不用花太多時間弄美工)
包括button、menu、calendar(這裡的日曆功能真的只是日曆跟google)很多很多如下圖
接下來說一些我覺得yahoo不錯的服務如下(我只附上一部分)
這些服務中我覺得一個最棒的是BBauth,為什麼這樣說呢?你想想一搬來說是不是每去一個新網站都要註冊一個帳號,這是多麼麻煩又討厭的事情,自己想想一個人活到老不知道會申請多少個重複帳號,真的很煩,但yahoo提供了一個google沒有的服務阿,就是BBauth,只要使用他的API就可以登入您的系統了,而且我也覺得會員管理這個部份是新的網站最難增加會員的方法,所以新網站我真的蠻推荐使用,反正使用者登入之後可以拿到一些基本使用者資訊這樣就夠拉,密碼這部份yahoo也不會洩漏..

接下來要說明的就是Yahoo Map,本人覺得Map有點不夠精準且不夠詳細,雖然yahoo跟在地化服務做結合弄的還不錯,不過就是還不夠方便簡單,程式碼部份覺得比google再更少一點,可惜不夠強,不過一般使用者學應該很快,還有一個好處是申請yahoo map api不需要url驗證,所以可以一直用不需要固定ip,這點倒是蠻欣賞的。

2009年1月1日 星期四

Linux Java支援Office狀況

前幾天小弟弄了AspriseOCR API成功的讀取pdf還有一些圖檔的辨識,本以為KMS在linux上是無法讀取pdf檔而已(我~太天真了),後來才搞清楚狀,原來iFilter支援很多格式(主要是常用的office).
當然知道之後我繼續花時間找出Linux上的替代品,不過找了兩天好像真的沒有人寫好類似iFilter的工具,
就算是付費的也好都沒有~~~最後只好去找api,小弟找了一下Java的Api現在有三個比較有名分別是:



1.Apache POI
2.Jacob
3.Javacom

那我也看了一下網路資料,目前網路評價比較好的是Apache POI ,因此我就找了POI 來試試
官方網頁:http://poi.apache.org/
根據官方最新說法,最近2008年11月放出新的支援(beta版),除了過去支援的Word、
Excel、Powerpoint、OLE之外 新增加Outlook、Visio、 Access 支援,所以我就想說那找不到現成用的工具自己根據Api寫來Linux用吧!我寫了小main來測試~



結果:
Word、Excel、PowerPoint都不錯、PDF(我用ApriseOCR) 而其他的檔案目前usermodel api支援都非常低 所以Visio、Outlook 測試都算失敗..根本讀不出來(看了很多資料才發現真的是目前支援非常差)
其他的格式需要找時間再試了...
附上範例程式source code