顯示文章

這裡允許您檢視這個會員的所有文章。請注意, 您只能看見您有權限閱讀的文章。


主題 - 洋蔥叔叔

頁: [1]
1
雜七雜八 / 16M/8M 送 750g 行動硬碟??
« 於: 2011-04-25 11:01 »
剛接到中華電信來電說 16M/8M 的用戶有送 750G 行動硬碟的優惠,要跟我核對聯絡資訊跟地址。
雖然對方也有留電話跟分機號碼,但怕是詐騙集團來釣資訊還是什麽的,請問有人也有接到同樣的電話嗎?

2
連帶一堆東西也一起更新,又要下載好幾 G 了...

下載位置我有整理在我的 Blog 裡面

4
常有一些網站需要註冊,登入才能看到你想看的內容,註冊雖然不用錢,但有時候要填一堆資料,設個使用者名稱跟密碼又很煩,這時這個網站就很有用了:

http://www.bugmenot.com/

裡面提供了多數網站的登入資訊,非常棒!

5
以下整理一些關於 .NET 開發的一些資訊以及資源,希望對新手,老手或半老手都會有一些幫助。

1. 開發工具
下列是目前坊間 .NET 開發幾個常用的開發工具以及一些簡單的比較:

Microsoft Visual Studio 2010
Visual Studio 系列為微軟針對軟體開發的旗艦產品,從 Visual Studio .NET (2002) 開始到目前的 Visual Stdio 2010,整個重心從 COM 轉移到 .NET 平台。基本上每一個 Visual Studio 版本會對應到一個 .NET Framework 版本,但自從 .NET Framework 3.0 之後這個架構有了一點小改變,以下為各個 Visual Studio 版本以及所支援對應的 .NET Framwork 版本:

Visual Studio .NET (2002) - .NET Framework 1.0
Visual Studio .NET 2003 - .NET Framework 1.1
Visual Studio 2005 - .NET Framework 2.0
Visual Studio 2008 - .NET Framework 2.0, 3.0 和 3.5
Visual Studio 2010 - .NET Framework 2.0, 3.0, 3.5 和 4

以下是Visual Studio 2010 各個版本的介紹以及比較:
http://www.microsoft.com/taiwan/vstudio/2010/products/default.aspx

Visual Studio Express 版本,網頁無中文版但軟體有:
http://www.microsoft.com/visualstudio/en-us/products/2010-editions/express

以我個人的使用經驗上來講,Express 版本實際上對於中小型專案已經非常足夠, 很多不足的功能可以用 third party 來彌補 (比如說單元測試可以用 NUnit,分析可以單獨用 FxCop 等等)

SharpDevelop
如果你慣用開放原始碼的軟體的話,這裡有一套叫做 SharpDevelop,而且目前他也支援 WPF 應用程式的開發。它對於 C# 的支援非常不錯,執行的速度比 Visual Studio 快,但唯一的缺點是 VB.NET 支援就差了點,不過還有支援 Target Mono。它可以跟 Visual Studio 共存,有興趣的人可以試試看。

2. .NET Framework
微軟從 2001 年推出 .NET Framework 1.0 之後,至今已經到了 3.5。其中有些版本是新增功能,有些是大改版,有些則是新增功能,會有一點混亂。以下列出各個版本間的差異,以及到底用戶要怎麼裝才能用你開發的程式:

.NET Framework 1.0 & .NET Framework 1.1 - 1.1 為 1.0 的大改版,包含了所有 1.0 的功能,所以系統只要裝 1.1 就可以執行針對 1.0 開發的應用程式。Runtime 為 CLR 1.1。
.NET Framework 2.0 - 2.0 為 1.1 的大改版,只要裝 2.0 就可以執行 1.0/1.1 的程式, runtime 升級為 CLR 2.0.
.NET Framework 3.0 - 3.0 只是 2.0 的「增強功能」(WPF,WCF,WF 等等) 版,所以用 3.0 開發出來的,要裝 2.0 也要裝 3.0 才行。
.NET Framework 3.5 - 3.5 為 2.0 跟 3.0 的小更新加上新功能,所以要先裝 2.0 跟 3.0,才能裝 3.5 以及執行 3.5 開發出來的應用程式。
.NET Framework 4 - 4 為 3.5 的大改版,runtime 從 CLR 2.0 改成 CLR 4.0。

理論上只要裝 .NET Framework 4 就可以向下相容所有的版本,如果有特殊需求的話所有版本也是可以共存。

以下是幾個微軟作業系統內建包含的 .NET Framework 版本:

Windows XP SP3 - 沒有,全部要另外裝
Windows Server 2003 - .NET Framework 1.1,且好像不可以反安裝
Windows Vista - 預設裝到 .NET Framework 3.0
Windows Server 2008 - 預設什麼都不裝,但可以選擇性裝到 3.0
Windows 7 -  預設裝到 .NET Framework 4

以下列出幾個對於 .NET Framework 開發 (不管是什麼 IDE) 很好用的免費工具:

NUnit - 免費的單元測試平台,如果使用Standard/Express 版本或 SharpDevelop 的話,就可以用他來彌補功能上的不足。單元測試的品質還是靠撰寫的人,所以工具只是輔助,NUnit 不見得不會比 Visual Studio 內建的測試功能還遜色。

FxCop - 程式碼分析工具,會針對一些內建的規則(可自訂)來檢查你的程式碼是否符合設計的 guideline。

CLR Profiler - 免費的 Profiler 工具,可讓你找出程式效能的瓶頸或是 Memory Leak 的問題,缺點在於你需要對 CLR 有一定程度的了解才看的懂它在做什麼。

.NET Reflector - 超棒的 .NET 反組譯工具(decompiler),如果你想看一下微軟 .NET Framework 類別庫裡面的程式碼到底是怎麼寫的,可以用這個工具來看。

ILMerge - 可將一個或多個 Assembly 組成一個,比如說你程式有參考 10 個 dll 有些不是你開發的,你想把他全部整合到一個 exe 再給使用者,此時就可以用 ILMerge。

Enterprise Library 4.0 - 這是微軟針對企業級應用程式開發時常遇到的問題而推出的一組元件庫,裡面包函了直接可用的元件,比如說快取功能,加密/解密功能,安全性等等,都是模組化而且很多功能可以透過設定檔自訂,非常實用。

3. 文件
MSDN Library 線上版:
http://msdn.microsoft.com/zh-tw/library/default.aspx

4. 資源
MSDN 台灣 - 微軟常常會舉辦一些免費的研討會,大家可以訂閱他們的 RSS 來取得最新研討會資訊。

點部落 - 整合各個有名的 .NET 開發者部落格內技術文章的網站,時常有一些有趣的文章。

微軟技術社群討論區

6
我覺得之前太大了,現在剛剛好,除了糊掉的地方,是否可以細調那些區塊?

7
程式討論版 / 檢查中文字
« 於: 2005-05-13 01:01 »
請教各位前輩如果我想用Perl(或任何語言)寫一支程式檢查中文字要如何著手?

具體來說好了,我現在有一群非常大量的XML格式的文件(都UTF-8, 之後會轉成HTML),現在有一個問題就是我必須檢查它一些格式上是否一致的問題,比如說一個就是中文參雜英文的話中英文之間一定要空格,可是如果是中文標點符號又不用。

又或者是有沒有人知道有已經開發好可以達到類似功能的軟體?

感激不盡

8
Gentoo Portage on Fedora Core 2

前言
Gentoo Portage是一個強大的原始碼套件管理系統,其結構類似FreeBSD的Ports,但是基本上比Ports更新的速度快,比較容易使用,而且功能不斷地在加強。
以下介紹我在Fedora Core2安裝Portage的心得,不過下面提到的兩個script在其他Distro應該也可以使用,只是我沒測試過。

用Portage有什麼好處?
我想對已經有RPM及yum/apt-get等系統的FC使用者來講是原始碼自動下載、安裝、更新及管理。只不過使用前有幾點要注意,除非你有一定的把握,否則盡量把RPM系統跟Portage系統分開,比如說可以的話某套件跟全部的相依套件只用Portage裝。建議是只用來裝一些FC2本身沒有附的東西,例如一些多媒體軟件(mplayer, xine etc)。還有大概不用我提但絕對不建議使用在實務機器上。RPM的Devel套件能裝就裝,要不然很多東西編不出來。

需求: Python, GCC, Rsync, Wget, 冒險的精神

1.
下載
http://demonbane.org/files/portageinstall.sh

http://demonbane.org/files/portageinject.sh


2.
執行portageinstall.sh,它會自動做好一切準備工作,到一半當它第一次在跟Server上的Portage Tree同步(作emerge sync)時會需要一段時間(約10-20分鐘),因為整個Portage Tree約有十萬個檔案。還有執行過程中會出現一些警告訊息,除非導致執行中斷,否則基本上不用理會。


3.
Sync好了之後接下來執行portageinject.sh,這個script會把一些比較核心的套件(如baselayout glibc等等)不作安裝直接加到Portage資料庫裡,當Portage裝軟體時就不會因為相依性而去安裝那些套件。除非你打算冒險嘗試把你的系統整個轉成Gentoo,要不然如果真的安裝Gentoo的baselayout或Glibc之類的話系統大概會完蛋。


4.
全部好了之後就可以開始使用Portage了!基本指令為
代碼: [選擇]

emerge <套件名>
例: emerge mplayer

ok但在開始用之前還有一件很重要的事,就是編輯Portage的設定檔, /etc/make.conf。裡面看起來很多東西但基本上比較重要的只有幾個變數:

USE
CFLAGS
CXXFLAGS
ACCEPT_KEYWORDS
FEATURES

USE基本上是用來控制編譯軟體時的選項(看要支援什麼之類的),可以用ufed這個工具來編輯比較方便(先emerge ufed)
關於Use flags的詳細介紹請看這裡

CFLAGS跟CXXFLAGS是GCC在編譯套件時使用的參數,可以利用這個在編譯時針對你的CPU把編出來的執行檔的效能最佳化。預設是"-O2 -mcpu=i686 -pipe"
如果你是用Athlon XP的話通常建議的CFLAGS是
-O3 -march=athlon-xp -pipe -fomit-frame-pointer

Pentium 4的話:
-O3 -march=pentium4 -pipe -fomit-frame-pointer

註:Portage基本上只支援GCC3以上
上面第一個參數-OX就是指最佳化的程度,有1-3(1的話1不用寫出來)及s,-O只做一些基本的最佳化,-O2是作除了會增大執行檔以外的最佳化, -O3是幾乎作所有的最佳化,所以編譯出來的執行檔案也最大,-Os是-O2加上一些可以針對執行檔大小(減到最小)的最佳化。到底哪個才能達到最好效果很難說,因為過度的最佳化有時會造成編譯出來的執行檔不穩定,而執行檔越大表示硬碟要讀取的檔案越大,記憶體也耗越大。所以有些人說Os好,也有人說O2及O3。聽某Gentoo dev說好像-Os在x86會造成CPU fetch的指令跟執行檔的指令不平衡(之類的),不過說老實話我完全不了解意思:)
我覺得要看你的硬體,編譯的軟體,GCC版本等等因素很多,只能自己試。我個人用Gentoo也有一段時間了,整個系統分別用-Os, -O2和-O3編譯其實我都試過一陣子。整體而言覺得-O2提供最佳化及穩定性的均衡點,所以我現在用的CFLAGS是-O2 -march=athlon-xp -pipe -fomit-frame-pointer
順帶一提我用的是AthlonXP 2000

接下來的-march是針對特定的CPU作最佳化,比如說用-march=athlon-xp,gcc會使用athlon-xp特有的指令來作最佳化。意思就是說編出來的執行檔只能用AthlonXP執行,拿到其他CPU如Pentium4的電腦就不能用。但這也代表了在AthlonXP上執行可以拿到最佳效能。如果想保持相容性的話可以考慮用-mcpu

最後兩個-pipe及-fomit-frame-pointer,-pipe是叫gcc利用pipe增進編譯速度,-fomit-frame-pointer是不編進一般使用者大概用不到一些debug資訊。

CXXFLAGS是編輯C++軟體時用的,留在預設(跟CFLAGS一樣)就好了。
其他還有很多參數有興趣的朋友可以去參考GCC文件

ACCEPT_KEYWORDS很簡單,只有兩個值(不提x86以外), x86或~x86
x86是stable, ~x86就是testing/unstable
所以用~x86可以拿到最新版本,而且一般來講很穩定,因為都是安裝都由原始碼編。以目前的Debian來比喻的話x86是Woody, ~x86是Sid

最後FEATURES是Portage的一些功能,建議使用sandbox跟ccache
sandbox是讓Portage編完一個軟體後先裝到另一個地方,測試沒問題後才真的安裝。
ccache是使用ccache增進編譯速度
其他詳細請看
http://www.gentoo.org/doc/zh_tw/handbook/handbook-x86.xml?part=2&chap=3


5.
make.conf編輯好之後終於可以用Portage來裝軟體了!
在此的建議是先用emerge -p <package名稱> 來看它會為了相依性而安裝哪些套件。如果相依的套件你都以經有RPM安裝的話,你可以用emerge --nodeps <package名稱>,讓它不裝相依的軟件。有一些沒有的話,看需要用emerge --nodeps一個一個來裝。

package名稱有時候需要自己找一下
emerge -s <名稱> 為找名稱裡有該字串的套件
例: emerge -s apache

emerge -S <名稱> 為找描述裡有該字串的套件
例: emerge -S proxy
如果要的東西都找不到的話那可能是Portage裡沒有,或是搜尋的名稱不對。

我想剛開始使用會常出現某套件編不出來的情況,這時要靠錯誤訊息來判斷問題出在哪裡。


6.
最後要介紹的是gentoolkit
gentoolkit是一組查詢,修改及修復Portage的工具,要安裝打"emerge --nodeps gentoolkit",裡面最常用到是qpkg,下面講幾個常用的用法:
代碼: [選擇]

查看所有安裝好的套件:
qpkg -I

查看該套件所有的檔案:
qpkg -l <名稱>

查看某檔案屬於哪個套件:
qpkg -f <檔案>

檢查套件所有檔案的md5碼:
qpkg -mc <套件>
註:不寫套件的話會查全部,加-v會列出被改過的檔案

查timestamp(修改日期):
qpkg -tc <套件>

查md5跟timestamp:
qpkg -c <套件>



7.
其他常用的Portage維護指令:
代碼: [選擇]

更新Portage Tree:
emerge sync

查看哪些套件有更新(p拿掉就是直接安裝)
emerge -pu world

以下是一些Gentoo系統放設定檔的地方,如果你打算用Portage裝一些服務,可能就要注意一下:

/etc/conf.d -> 大致上等於FC的 /etc/sysconfig
/etc/init.d -> 等於FC的/etc/init.d
/etc/env.d -> 基本上等於/etc/profile.d,只是要更改/etc/profile才會被用到



References:

http://www.gentoo.org
http://forums.gentoo.org/viewtopic.php?t=125553 (兩個script從這裡來的,加上我一

些小修改)

頁: [1]