摘要: 上次出去幫一個朋友的朋友給一個原有的.net項目添加一個新的功能模塊。結果,很傷,原因很簡單,由于我對dotnet的工作機理想當然,個人觀點占據上風,導致在初期設計的時候就走上了一天錯誤的道路,郁悶了很長一段時間,決定花一定時間去真正理解一些更底層,更基礎的東西。現在忽然發現自己在過去很長的一段時間有些舍本逐末了,檢討~~~~
這...
閱讀全文
posted @
2009-05-27 11:38 moonandsun 閱讀(416) |
評論 (0) |
編輯 收藏
web2.0這個名詞不止一次的在我眼前出現,有時候由于它的出現過于頻繁,以至于我還沒來得及去想,已漸漸的在內心中接受了這個名詞。初識web2.0是在去年,具體什么時候已記不太清楚,當初我腦海中的web2.0和我現在的認識不盡相同,我當時的認識只是web2.0的一個方面,甚至可以說與我們所說的web2.0不相關。當時我和我的幾個師兄在一起做一個web項目,當然他們常常會提到web2.0標準,起初我不是很理解,當然現在也依然模糊。從網上在了點資料。網上如是說:WEB2.0標準不是某一個標準,而是一系列標準的集合。網頁主要由三部分組成:結構(Structure)、表現(Presentation)和行為(Behavior)。對應的標準也分三方面:結構化標準語言主要包括XHTML和XML,表現標準語言主要包括CSS,行為標準主要包括對象模型(如W3C DOM)、ECMAScript等。這些標準大部分由W3C起草和發布,也有一些是其他標準組織制訂的標準,比如ECMA(European Computer Manufacturers Association)的ECMAScript標準。恍然大明白,原來自己在很長一段時間都在為web2.0標準努力。不由暗暗自喜。后來,每次上網,看雜志(尤其程序員),看報紙(電腦報),web2.0的字眼是滿天飛。既然自己要考研,并且準備在計算機方面發展,我認為有必要了解web2.0。
web2.0是相對于web1.0來說的. 首先就易用性和交互性方面來說,Web1.0里,互聯網內容是由少數編輯人員(或站長)定制的,比如搜狐;而在Web2.0里,每個人都是內容的供稿者。標由于web2.0主張多然參與,所以互聯網內容也更加豐富和多樣化,同時web2.0采用了標簽(tag),多媒體技術,rss訂閱,在線協作等功能,用戶在使用互聯網的過程也更方便、快捷。就我的一個上網習慣來說,我關注最多的是IT技術方面的發展,一般我經常去csdn,cnblogs,itpub等網站,以前我看文章都是一個網站一個網站的打開,有時候發現某個人的博客很適合自己的口味,于是想關注這位博主的最新動態,于是收藏的網址越來越多,每天想把自己關注的事情看一遍很費時間。現在可不一樣了,發現自己的喜歡網站或博客,訂閱到自己的google reader中,每天上網第一件事,打開google reader,有什么最新新聞,最新動態一目了然。都是互聯網提供的便利啊。
其次,web2.0相對于web1.0來說更突出人的作用,在互聯網的新時代,信息是由每個人貢獻出來的。各個人共同組成互聯網信息源。Web2.0的靈魂是人。同是,為了更好的發揮“人”的作用,web2.0的形式也更多樣化,出現了各種各樣的互聯網服務,例如博客、威客、播客、維基、P2P下載、社區、分享服務等等。是“人”能夠從互聯網上得到不同程度上的滿足。現如今,用戶即所謂的“人”所產生的信息在互聯網內容中所占的比重越來越大,而且隨著web2.0的發展,這一趨勢還會不斷加強。web2.0為所有互聯網用戶提供了一個展示自我和自我實現的平臺。而且隨著互聯網技術的發展,web2.0在生活信息化、辦公信息化方面的作用也會一步步提升,是人們的生活、學習、工作更加便捷和輕松。
總之,web2.0從某種程度上改變了人們的生活。
posted @
2009-05-20 21:14 moonandsun 閱讀(163) |
評論 (0) |
編輯 收藏
好長一段時間沒有寫日志,生活在繁忙中迷茫了一段,細細想來也不知道都干了些什么,于技術方面更是毫無長進,靜下心來下篇文章,安撫一下浮躁的心靈。
現在開始Maven2的學習。
第一步不用說,下載Maven2,以待安裝。
其實我們有必要了解Maven2到底是一個干么的東西,要使用它首先得知道它是干么的。
先看看ReadMe.txt
What is it?
-----------
Maven is a software project management and comprehension tool. Based on
the concept of a Project Object Model (POM), Maven can manage a project's
build, reporting and documentation from a central piece of information.
now we got it .it is a tool which can manage and comprehend our project .
系統需求,一般我們都能達到,忽略。
System Requirements
-------------------
JDK:
1.4 or above (this is to execute Maven - it still allows you to build against 1.3
and prior JDK's).
Memory:
No minimum requirement.
Disk:
No minimum requirement. Approximately 100MB will be used for your local repository,
however this will vary depending on usage and can be removed and redownloaded at
any time.
Operating System:
No minimum requirement. On Windows, Windows NT and above or Cygwin is required for
the startup scripts. Tested on Windows XP, Fedora Core and Mac OS X.s
下一步,安裝。我建議看看文檔。
Installing Maven
----------------
1) Unpack the archive where you would like to store the binaries, eg:
Unix-based Operating Systems (Linux, Solaris and Mac OS X)
tar zxvf apache-maven-2.0.x.tar.gz
Windows 2000/XP
unzip apache-maven-2.0.x.zip
2) A directory called "apache-maven-2.0.x" will be created.
3) Add the bin directory to your PATH, eg:
Unix-based Operating Systems (Linux, Solaris and Mac OS X)
export PATH=/usr/local/apache-maven-2.0.x/bin:$PATH
Windows 2000/XP
set PATH="c:\program files\apache-maven-2.0.x\bin";%PATH%
4) Make sure JAVA_HOME is set to the location of your JDK
我用的是winXP,看這句就可以了。
set PATH="c:\program files\apache-maven-2.0.x\bin";%PATH%
其中 “c:\program files\apache-maven-2.0.x\bin”為maven2解壓路徑。
最后一步測試一下是否成功。
5) Run "mvn --version" to verify that it is correctly installed.

OK,it works~~~
posted @
2009-05-05 22:10 moonandsun 閱讀(222) |
評論 (0) |
編輯 收藏
十進制,八進制,十六進制,二進制相互轉換
' 用途:將十進制轉化為二進
' 輸入:Dec(十進制數)
' 輸入數據類型:Long
' 輸出:DEC_to_BIN(二進制數)
' 輸出數據類型:String
' 輸入的最大數為2147483647,輸出最大數為1111111111111111111111111111111(31個1)
Public Function DEC_to_BIN(Dec As Long) As String
DEC_to_BIN = ""
Do While Dec > 0
DEC_to_BIN = Dec Mod 2 & DEC_to_BIN
Dec = Dec \ 2
Loop
End Function
' 用途:將二進制轉化為十進制
' 輸入:Bin(二進制數)
' 輸入數據類型:String
' 輸出:BIN_to_DEC(十進制數)
' 輸出數據類型:Long
' 輸入的最大數為1111111111111111111111111111111(31個1),輸出最大數為2147483647
Public Function BIN_to_DEC(ByVal Bin As String) As Long
Dim i As Long
For i = 1 To Len(Bin)
BIN_to_DEC = BIN_to_DEC * 2 + Val(Mid(Bin, i, 1))
Next i
End Function
' 用途:將十六進制轉化為二進制
' 輸入:Hex(十六進制數)
' 輸入數據類型:String
' 輸出:HEX_to_BIN(二進制數)
' 輸出數據類型:String
' 輸入的最大數為2147483647個字符
Public Function HEX_to_BIN(ByVal Hex As String) As String
Dim i As Long
Dim B As String
Hex = UCase(Hex)
For i = 1 To Len(Hex)
Select Case Mid(Hex, i, 1)
Case "0": B = B & "0000"
Case "1": B = B & "0001"
Case "2": B = B & "0010"
Case "3": B = B & "0011"
Case "4": B = B & "0100"
Case "5": B = B & "0101"
Case "6": B = B & "0110"
Case "7": B = B & "0111"
Case "8": B = B & "1000"
Case "9": B = B & "1001"
Case "A": B = B & "1010"
Case "B": B = B & "1011"
Case "C": B = B & "1100"
Case "D": B = B & "1101"
Case "E": B = B & "1110"
Case "F": B = B & "1111"
End Select
Next i
While Left(B, 1) = "0"
B = Right(B, Len(B) - 1)
Wend
HEX_to_BIN = B
End Function
' 用途:將二進制轉化為十六進制
' 輸入:Bin(二進制數)
' 輸入數據類型:String
' 輸出:BIN_to_HEX(十六進制數)
' 輸出數據類型:String
' 輸入的最大數為2147483647個字符
Public Function BIN_to_HEX(ByVal Bin As String) As String
Dim i As Long
Dim H As String
If Len(Bin) Mod 4 <> 0 Then
Bin = String(4 - Len(Bin) Mod 4, "0") & Bin
End If
For i = 1 To Len(Bin) Step 4
Select Case Mid(Bin, i, 4)
Case "0000": H = H & "0"
Case "0001": H = H & "1"
Case "0010": H = H & "2"
Case "0011": H = H & "3"
Case "0100": H = H & "4"
Case "0101": H = H & "5"
Case "0110": H = H & "6"
Case "0111": H = H & "7"
Case "1000": H = H & "8"
Case "1001": H = H & "9"
Case "1010": H = H & "A"
Case "1011": H = H & "B"
Case "1100": H = H & "C"
Case "1101": H = H & "D"
Case "1110": H = H & "E"
Case "1111": H = H & "F"
End Select
Next i
While Left(H, 1) = "0"
H = Right(H, Len(H) - 1)
Wend
BIN_to_HEX = H
End Function
' 用途:將十六進制轉化為十進制
' 輸入:Hex(十六進制數)
' 輸入數據類型:String
' 輸出:HEX_to_DEC(十進制數)
' 輸出數據類型:Long
' 輸入的最大數為7FFFFFFF,輸出的最大數為2147483647
Public Function HEX_to_DEC(ByVal Hex As String) As Long
Dim i As Long
Dim B As Long
Hex = UCase(Hex)
For i = 1 To Len(Hex)
Select Case Mid(Hex, Len(Hex) - i + 1, 1)
Case "0": B = B + 16 ^ (i - 1) * 0
Case "1": B = B + 16 ^ (i - 1) * 1
Case "2": B = B + 16 ^ (i - 1) * 2
Case "3": B = B + 16 ^ (i - 1) * 3
Case "4": B = B + 16 ^ (i - 1) * 4
Case "5": B = B + 16 ^ (i - 1) * 5
Case "6": B = B + 16 ^ (i - 1) * 6
Case "7": B = B + 16 ^ (i - 1) * 7
Case "8": B = B + 16 ^ (i - 1) * 8
Case "9": B = B + 16 ^ (i - 1) * 9
Case "A": B = B + 16 ^ (i - 1) * 10
Case "B": B = B + 16 ^ (i - 1) * 11
Case "C": B = B + 16 ^ (i - 1) * 12
Case "D": B = B + 16 ^ (i - 1) * 13
Case "E": B = B + 16 ^ (i - 1) * 14
Case "F": B = B + 16 ^ (i - 1) * 15
End Select
Next i
HEX_to_DEC = B
End Function
' 用途:將十進制轉化為十六進制
' 輸入:Dec(十進制數)
' 輸入數據類型:Long
' 輸出:DEC_to_HEX(十六進制數)
' 輸出數據類型:String
' 輸入的最大數為2147483647,輸出最大數為7FFFFFFF
Public Function DEC_to_HEX(Dec As Long) As String
Dim a As String
DEC_to_HEX = ""
Do While Dec > 0
a = CStr(Dec Mod 16)
Select Case a
Case "10": a = "A"
Case "11": a = "B"
Case "12": a = "C"
Case "13": a = "D"
Case "14": a = "E"
Case "15": a = "F"
End Select
DEC_to_HEX = a & DEC_to_HEX
Dec = Dec \ 16
Loop
End Function
' 用途:將十進制轉化為八進制
' 輸入:Dec(十進制數)
' 輸入數據類型:Long
' 輸出:DEC_to_OCT(八進制數)
' 輸出數據類型:String
' 輸入的最大數為2147483647,輸出最大數為17777777777
Public Function DEC_to_OCT(Dec As Long) As String
DEC_to_OCT = ""
Do While Dec > 0
DEC_to_OCT = Dec Mod 8 & DEC_to_OCT
Dec = Dec \ 8
Loop
End Function
' 用途:將八進制轉化為十進制
' 輸入:Oct(八進制數)
' 輸入數據類型:String
' 輸出:OCT_to_DEC(十進制數)
' 輸出數據類型:Long
' 輸入的最大數為17777777777,輸出的最大數為2147483647
Public Function OCT_to_DEC(ByVal Oct As String) As Long
Dim i As Long
Dim B As Long
For i = 1 To Len(Oct)
Select Case Mid(Oct, Len(Oct) - i + 1, 1)
Case "0": B = B + 8 ^ (i - 1) * 0
Case "1": B = B + 8 ^ (i - 1) * 1
Case "2": B = B + 8 ^ (i - 1) * 2
Case "3": B = B + 8 ^ (i - 1) * 3
Case "4": B = B + 8 ^ (i - 1) * 4
Case "5": B = B + 8 ^ (i - 1) * 5
Case "6": B = B + 8 ^ (i - 1) * 6
Case "7": B = B + 8 ^ (i - 1) * 7
End Select
Next i
OCT_to_DEC = B
End Function
' 用途:將二進制轉化為八進制
' 輸入:Bin(二進制數)
' 輸入數據類型:String
' 輸出:BIN_to_OCT(八進制數)
' 輸出數據類型:String
' 輸入的最大數為2147483647個字符
Public Function BIN_to_OCT(ByVal Bin As String) As String
Dim i As Long
Dim H As String
If Len(Bin) Mod 3 <> 0 Then
Bin = String(3 - Len(Bin) Mod 3, "0") & Bin
End If
For i = 1 To Len(Bin) Step 3
Select Case Mid(Bin, i, 3)
Case "000": H = H & "0"
Case "001": H = H & "1"
Case "010": H = H & "2"
Case "011": H = H & "3"
Case "100": H = H & "4"
Case "101": H = H & "5"
Case "110": H = H & "6"
Case "111": H = H & "7"
End Select
Next i
While Left(H, 1) = "0"
H = Right(H, Len(H) - 1)
Wend
BIN_to_OCT = H
End Function
' 用途:將八進制轉化為二進制
' 輸入:Oct(八進制數)
' 輸入數據類型:String
' 輸出:OCT_to_BIN(二進制數)
' 輸出數據類型:String
' 輸入的最大數為2147483647個字符
Public Function OCT_to_BIN(ByVal Oct As String) As String
Dim i As Long
Dim B As String
For i = 1 To Len(Oct)
Select Case Mid(Oct, i, 1)
Case "0": B = B & "000"
Case "1": B = B & "001"
Case "2": B = B & "010"
Case "3": B = B & "011"
Case "4": B = B & "100"
Case "5": B = B & "101"
Case "6": B = B & "110"
Case "7": B = B & "111"
End Select
Next i
While Left(B, 1) = "0"
B = Right(B, Len(B) - 1)
Wend
OCT_to_BIN = B
End Function
' 用途:將八進制轉化為十六進制
' 輸入:Oct(八進制數)
' 輸入數據類型:String
' 輸出:OCT_to_HEX(十六進制數)
' 輸出數據類型:String
' 輸入的最大數為2147483647個字符
Public Function OCT_to_HEX(ByVal Oct As String) As String
Dim Bin As String
Bin = OCT_to_BIN(Oct)
OCT_to_HEX = BIN_to_HEX(Bin)
End Function
' 用途:將十六進制轉化為八進制
' 輸入:Hex(十六進制數)
' 輸入數據類型:String
' 輸出:HEX_to_OCT(八進制數)
' 輸出數據類型:String
' 輸入的最大數為2147483647個字符
Public Function HEX_to_OCT(ByVal Hex As String) As String
Dim Bin As String
Hex = UCase(Hex)
Bin = HEX_to_BIN(Hex)
HEX_to_OCT = BIN_to_OCT(Bin)
End Function
VB自帶函數:
十進制轉八進制:Oct(num)
十六進制轉八進制:oct("&H" & num)
十進制轉十六進制:hex(num)
八進制轉十六進制:hex("&O" & num)
十六進制轉換為十進制
Dim str As String
str = Text2.Text
Text10.Text = CLng("&H" & str)
文章出處:http://blog.programfan.com/article.asp?id=11903
感謝作者的無私奉獻、、、、
posted @
2009-03-29 10:57 moonandsun 閱讀(1462) |
評論 (0) |
編輯 收藏
一、在VB中聲明API函數有兩種方法:如果我們只在某個窗體中使用API函數,我們可以在窗體代碼的General部分聲明它:
聲明的語法是:
Private Declare Function ...
Private Declare Sub.....
這里必須采用Private聲明,因為這個API函數只能被一個窗體內的程序所調用。
如果我們的程序有多個窗體構成,而且我們需要在多個窗體中使用同一個API函數,就需要在模塊中聲明了。
先添加一個模塊(如圖示),
然后采用如下語法聲明:
Public Declare Function....
Public Declare Sub....
Public聲明的含義是把API函數作為一個公共函數或過程,在一個工程中的任何位置(包括所有的窗體和模塊)都能直接調用它。 聲明完畢我們就能在程序中使用此API函數了。
二、可采用以下幾種方式使用API函數,以SetWindowPos函數為例:
(1)忽略函數返回值的調用:
SetWindowPos Form1.hWnd, -2 ,0 ,0 ,0, 0, 3
注意此時函數的參數是不加括號的。
(2)Call方法調用:
Call SetWindowPos(Form1.hWnd, -2, 0, 0, 0, 3)
注意這里需要加上括號,但我們不取回函數的返回值。
(3)取得函數返回值的調用:
MyLng = SetWindowPos(Form1.hWnd, -2, 0, 0, 0, 3)
此時需要加上括號,而且我們必須事先定義一個變量(變量的類型與函數返回值類型相同)來
存儲API函數的返回值。
三、幾個問題的說明:
(1)聲明中的Lib 和 Alias 是怎么回事
一般情況下WIN32API函數總是包含在WINDOWS系統自帶的或是其它公司提供的動態連接庫DLL中,而Declare語句中的Lib關鍵字就用來指定DLL(動態連接庫)文件的路徑,這樣VB才能找到這個DLL文件,然后才能使用其中的API函數。如果我們只是列出DLL文件名而不指出其完整的路徑的話,VB會自動到.EXE文件所在目錄、當前工作目錄、WINDOWS\SYSTEM目錄、WINDOWS目錄下搜尋這個DLL文件。所以如果所要使用DLL文件不在上述幾個目錄下的話,我們應該指明其完整路徑。
Alias用于指定API函數的別名,如果我們調用的API函數要使用字符串(參數中包含String型)的話,Alias關鍵字是必須的。這是因為在ANSI和Unicode字符集中同一API函數的名稱可能是不一樣的,為了保證不出現聲明錯誤,我們使用Alias關鍵字指出API函數的別名,一般來說在WIN9X平臺下我們把API函數名后加一個大寫A作為別名即可。
(2)常見的API參數類型的說明
API函數的參數中最常見的是長整Long型數據類型,例如API中的句柄、一些特定的常量、函數的返回值都是此類型 的值;另外幾種常見的參數類型有:整型Integer、Byte型、String型等。
(3)聲明中的ByVal是作什么用的
這跟VB的參數傳遞方式有關,在默認情況下VB是通過地址傳遞方式傳遞函數的參數、而有些API函數要求必須采用傳值方式來傳遞函數參數(這兩種參數傳遞方式是不同的,前者傳遞的是一個指針,而后者要求是參數真實的值)。這樣就會發生錯誤,解決的辦法是在API函數參數聲明的前面加上ByVal關鍵字,這樣VB就采用傳值方式傳遞參數了。
(4)怎樣得到完整的API函數聲明
VB自帶了API文本查看器API TEXT VIEWER,我們可以在其中找到API函數的完整聲明,然后把它粘貼到程序中即可。
原文地址:http://www.enet.com.cn/article/2004/0312/A20040312293927.shtml
posted @
2009-03-28 16:46 moonandsun 閱讀(157) |
評論 (0) |
編輯 收藏
現行的網絡上,視頻播放器很多(嵌在網頁中那種),flv播放器更是不少,但支持rtmp協議的播放器可是不好找啊。雖然也有,但樣式單一,好看的不多。
一直以來苦苦尋覓一個漂亮的flv視頻播放器(嵌在網頁中那種)。好幾個月過去了,一直沒有結果。后來就把這事放到一邊去了,沒有再去理會。
后來一直就用一個叫Vcastr2.0 的播放器,播放器為黑色,整體感覺還是不錯的,但可供定制的選項不是很多。
再后來我發現了JW player ,官方網站:http://www.longtailvideo.com/ ,它的可定制性比較強,甚至在官網上我們可以直接設計出自己喜歡的播放器樣式,但無論你怎樣設置整體外形還是不變的(其實我看不好的就是這個播放器的外形)。所以這中播放器在那是我是看不上的。
時代在發展啊,當然JW player也一天天悄無聲息的進步著,今天我無意瀏覽到了JW player官網,幾個月不見,小子出息里,它既然也能夠換皮膚了,官方為我們提供了各種各樣的皮膚下載:http://www.longtailvideo.com/addons/skins 。
posted @
2009-03-12 11:50 moonandsun 閱讀(395) |
評論 (1) |
編輯 收藏