小巧的秀圖軟體 – IrfanView
還在用 ACDSee ?? 它已經越來越肥大了,而且新增了一堆用不到的功能,重點是: 我只想要拿它來看圖,還得忍受它的開啟速度。硬體比以前好了,開啟看圖軟體的速度卻比以前要慢??不能忍受的朋友可以看看這一套免費小巧的看圖軟體,有點 ACDSee 2.4x 那時候的味道。 IrfanView http://www.irfanview.com/ 也許 ACDSee 該考慮出個 Lite 版本了吧~~~ :p
還在用 ACDSee ?? 它已經越來越肥大了,而且新增了一堆用不到的功能,重點是: 我只想要拿它來看圖,還得忍受它的開啟速度。硬體比以前好了,開啟看圖軟體的速度卻比以前要慢??不能忍受的朋友可以看看這一套免費小巧的看圖軟體,有點 ACDSee 2.4x 那時候的味道。 IrfanView http://www.irfanview.com/ 也許 ACDSee 該考慮出個 Lite 版本了吧~~~ :p
如果不想要讓使用者使用 SPS2003 預設的檔案操作介面的話,我們也可以自己利用 WebPart 實作一個檔案管理介面,這個檔案管理介面就可以有更多的自訂功能了。實際上 SPS2003 是可以被高度的客製化的,而且客製化良好的 SPS 網站可以完全看不出它背後所使用的是 SPS2003,不過要特別注意的是,某些客製化時會需要去更新 SPS 資料庫的作法,微軟將不會對其提供支援服務。 這篇主要說明以程式編輯 Metadata、刪除檔案及上傳檔案的作法。 [Edit Metadata] 實際上 SPFile.Item 是一組 Collection,包含了我們在 SPS2003 中檔案的各項 Metadata 都是存在這個 Collection 裡頭的。它提供了一個 Update Method,可以讓我們很容易的更動 Metadata 的內容,當然你也可以用這個方法來取得 Metadata 的值,如: string myTitle = myFile.Item[“Title”].ToString(); 更詳細的使用這邊就不再贅述。特別注意在指定欄位值的時候,該變數的 Data Type 也要相同才行。 SPSite mySite = SPControl.GetContextSite(Context); SPWeb myWeb = mySite.OpenWeb(); SPFolderCollection folders = myWeb.Folders; SPFolder myFolder; string _FileURL; _FileURL = “http://myPortal/sites/firstSite/DocLib/ModifyMe.doc“; SPFile myFile = myWeb.GetFile(_FileURL); myFile.Item[“Title”] = _Title; myFile.Item[“ows_Doc_x0020_Title”] = _Title; myFile.Item[“Keyword”] = _Keyword; myFile.Item[“_x0031_st_x0020_category”] = _Catlst; myFile.Item[“_x0032_nd_x0020_category”] = _Cat2nd; myFile.Item[“Abstract”] = _Abstract; myFile.Item[“Confidentiality_x0020_due_x0020_date”] = System.Convert.ToDateTime (_ConfiDate); myFile.Item[“Expiring_x0020_date”] = System.Convert.ToDateTime(_ExpireDate); myFile.Item.Update(); ...
QuickLinkManager 在 MySite 中算是像書籤一樣的功能,我們可以利用它來實作一個像是 My Clip Board 的內嵌功能放在所有的 SPS Site 中,然後可以將自己喜歡的文件加入書籤。只不過 SPS2003 的管制很嚴謹 (算是件好事),在 Portal Level 跟 Web Level 又有著分別,所以要實作這個功能的時候,還是得用些小技巧,以免又落入虛擬的邏輯惡夢中。 [Name Space usage] using System.Runtime.InteropServices; using Microsoft.SharePoint; using Microsoft.SharePoint.Utilities; using Microsoft.SharePoint.WebPartPages; using Microsoft.SharePoint.WebControls; using Microsoft.SharePoint.Portal.Security; using System.Security.Principal; using Microsoft.SharePoint.Administration; using Microsoft.SharePoint.Portal; using Microsoft.SharePoint.Portal.Topology; using Microsoft.SharePoint.Portal.UserProfiles ; 要列出目前在 Quick Link Manager 中所有的連結,這部分沒有甚麼技巧,參考一下 SDK 中的範例,就可以輕鬆的寫出來了。這邊我們是先得到目前的 Server Name,然後再用 UserProfile 的方式去取回該 User 的 QLM。 [List Links] string sServerURL = “”; if(this.Page.Request.ServerVariables[“HTTPS”].ToString()==”off”) sServerURL += “http://”; else sServerURL += “https://”; sServerURL = sServerURL + this.Page.Request.ServerVariables[“SERVER_NAME”].ToString(); ...
剛剛發現到 Windows Update 已經改了版本,系統偵測的時候也有了兩個不同的 Option,此外,安裝的介面也不太一樣了 (我怎麼感覺比舊版要醜呢)。 這一切應該是在為即將發佈的 Windows XP SP2 作準備吧,見到微軟對一個不會有收入 (SP2 是免費更新的,當然也可以藉此拉攏一些未升級的企業) 的產品有這麼多的投入,許多人應該會安心多了才是。
SharePoint Portal Server 2003 有個叫作 Alert 的功能,能讓使用者訂閱想要看的網站資訊,當有新增或更動的時候,會自動送一份通知給使用者。這個功能在 SPS2001 的時候稱之為 Subscription,當然,除了名稱不同之外,SPS2003 的 Alert 與舊版本在其它的地方也是相差很多的,使用 Object Class 的方式也有著天壤之別,這一篇在說明在客製化 SPS2003 Alert 上的一些應用技巧,及可能碰上的陷阱。 一般而言,我們在客製化 Alert 時會使用到這些 name space: using Microsoft.SharePoint; using System.Security.Principal; [Init] 這邊是底下說明的幾個功能都會使用到的初始化程式碼,用於開啟 SPSite,及裡頭的某個 SPWeb,來進行後續的各項 Alert 動作。 SPSite s; SPWeb w; try { string mySiteName = args[1]; s = new SPSite(“http://localhost/sites/” + mySiteName); w = s.OpenWeb(); } catch { Console.WriteLine (“Site name must specify correctlly! Abort!!”); return; } SPAlertCollection alerts = w.Alerts; [List Alerts] ...
在 SPS2003 中有個備分的功能,我們可以使用它來進行備分,不過通常我們使用的都是 GUI 的版本,這裡提供一個 GUI Less 的方法,可以應用在 Schedule Task 的 Script 或者是 Batch 中,備分命令是這樣下的: C:\Program Files\SharePoint Portal Server\Bin\spsbackup /all /file \RemoteServer\SPSBACKUP\20040820 如此一來,我們可以直接建立一個批次檔,然後放在 Schedule Task 中執行,讓系統幫我們自動進行每天的備分工作。但是,我所想作的不只是這樣,我希望系統的備分工作可以更自動,更人性化一點。我的劇本: [1] 每天自動進行備分。 [2] 備分時的檔案名稱使用當天的日期 [3] 對於備分的資料僅保存一個星期,超過一個星期的資料自動刪除。 這個劇本對於我的應用系統來說,已經足夠了,而且我可不希望每天的備分檔案把我的硬碟給塞滿了。那麼,我們可以利用 Script 程式來作一點簡單的變化,實現這個更完美的備分程序。 [SPS-BACKUP.VBS] — START SPS-BACKUP.VBS Option Explicit ‘ Useg: Cscript sps-backup.vbs to run this file. ‘ ‘ This program will backup SPS2003 and try to delete old backup files ‘ 2004-04-13 by James Lin (james{at}awaytech.com) Const L_BackupProgramDir = “C:\Progra1\ShareP1\Bin” Const L_BackupProgram = “SPSBackup.exe” Const L_BackupServer = “myBackup” Const L_BackupDir = “\SPS-Backup” Const L_BackupCaption_Text = “SPS Backup Progress V1.0 by James Lin (james{at}awaytech.com)” Const L_Say = “@.@ “ Const L_DayKeep = 7 ...
SharePoint Portal Server 2003 平台上,整個網站架構是使用 “入口網站 (Portal Site) -> 網站 (Web Site)” 的方式,如果說入口網站是 MyPortal,那麼眾多網站的網址會變成: http://MyPortal/sites/firstSite/ 跟 http://MyPortal/sites/secondSite/ 這個樣子,在實際應用的時候,我們常常會希望使用者打某個 URL 就可以直接進入某個網站中,如: http://first.company.com/ 希望它會重導到 http://MyPortal/sites/firstSite/ (依此類推),這一篇文章裡提供一個簡單的方法及實作。 首先我們進入 Internet Information Services,預設網站通常在安裝了 SPS 之後已經是 SharePoint 的網站,我們在同一台機器上建立一個虛擬網站,[Web Sites][New][Web Site],取名為 Site Redirection,右鍵,選擇 [內容] 然後在 IP Address 右邊的 Advance 按鈕點一下,在 Multiple identities for this Web site 的內容中新增所有重導網站要處理的 FQDN,如: first.company.com second.company.com third.company.com … 記得 TCP Port 一樣使用 80 Port,只要這邊有指定的 FQDN 都會來到這邊作重導,沒指定的都會進預設網站。接下來,在這個虛擬網站中建立一個 default.aspx 的應用程式,內容如下: — START OF default.aspx <%@ Page LANGUAGE=”c#” %> ...
因為 frozen-bubble-data 這個套件有點問題,所以我的 apt-get 已經失效了一段時間,這段時間 Debian 的 apt-get upgrade 會因為這個套件的問題,而無法對其它套件進行有效的更新,而網路上某些方法,如: dpkg –force-all -i /var/cache/apt/archives/frozen-bubble-data_1.0.0-5_all.deb apt-get -f install 皆無法使 apt-get 的功能返回正常,因為它們還是沒解掉該套件 preparing script 所造成的錯誤,後來在 Debian 的網站上看到了一個簡單的解法: touch /usr/games/frozen-bubble.wav 然後再正常的執行 apt-get 的各項功能,哇哈,所有的問題迎刃而解,apt-get 也能正常的工作囉!!
Mozilla Firefox 新版的網頁挺好看的,為了研究一下它的 CSS 用法,偷個 Header 來玩玩看,正點,不過這個網頁的 Logo 還在醞釀中,先空著囉。這幾段 CSS 還挺給它有點 OO 的,以後維護起來也不費事,果然是出於名家之手…. :p
在 VMWare 出了這麼一堆相同功能,但是不同使用群區隔的產品之後,相信很多人會覺得困惑,但是 VMWare 正朝著它的夢想前進,以虛擬取代實體。一般而言虛擬的主機不太可能取代實體主機,原因是因為虛擬主機的執行運算速度比起實體主機差得太遠,但是我們可以由 P2V Assistant 這一個 Migration Tool,來看看 VMWare 到底在想些甚麼。 事實上,在許多企業中不乏有些系統還在使用很舊的主機,運行著 NT4 或是 Netware 舊的版本,基本上只要不是企業的運作流程有太大的轉變,一個設計良好應用系統的生命週期應該可以是很長的,問題在,我們時常看到這些運作了十年左右的機器上滿佈灰塵,再加上長時間的運作,硬體也開始老舊。我們其實可以為它再買台新的機器,但是,使用現在的主流機種來運行這些舊系統,不符合經濟效益,因為這些舊系統根本吃不了這麼多的硬體資源。 於是,我們可以購買一套目前的主流機種 (如: P4 2.8G),然後為它加上 2G-4G 不等的記憶體,接著,裝上 VMWare GSX Server,然後就可以把五、六套舊系統 (甚至更多) 移植到這台新的硬體上頭運行。如此,不但可以免除每天擔心受怕舊系統的硬體甚麼時候會掛掉,也可以藉此提昇這些舊系統的運行速度,大幅度的降低了維護的人力與費用。 本來在作系統轉移的時候,我們也許會使用 Ghost 之類的工具來進行轉移,然後再將它 Restore 回 VMWare 的新建系統中,P2V Assistant 讓我們可以更省事,它可以直接在你的實體機器上開機,並將舊系統中的資料轉換為可開機的 VMWare 支援 Virtual Hard Drive,然後直接拿到 VMWare GSX (或是其它版本) 中使用,讓整個轉移過程更有效率。 這個作法除了可以降低維護成本,也可以讓你雜亂的機房少了許多老舊的機器,也許你該考慮是不是該為一些系統進行轉移了。當然,日後作業系統會慢慢的進步,硬體成長的速度更快,當你考慮升級你的硬體系統,而軟體應用系統想作保留的時候,VMWare GSX Server 都將是你的最佳選擇。 誰說 VMWare 只能拿來測試軟體?!他們的創新,創造了一個可觀的市場!! PS. 在最近,我所作的一個專案是為了取代另一個應用系統,在觀摩原系統的時候,我發現它已經運行了超過十年,一台已經將外殼拿掉的機器,躺在辦公室的角落,上面運行著 NT4, MS-SQL 6.5,我想,這些機器如果都將它們換到 VMWare 上面,將可以省掉 MIS 多少的麻煩!~~~