在 Red Hat 環境下,NumLock 老是關閉的(Mandrake 不會)
如果懶得一個一個去把 NumLock 按成 On
可以在
/etc/rc.local 最後,放如下指令:[bash]# Enable NumLock
for tty in /dev/tty[1-6]; do
setleds -D +num < $tty
done[/bash]
即可
另外,此行據稱可以加速,但我不知道是什麼意思
[bash]echo “base=0xd8000000 size=0x800000 type=write-combining” > /proc/mtrr[/bash]
也可以一併放在 /etc/rc.local 中
法國繪畫展
11/25 星期天,和女友去故宮看法國繪畫展.
很不錯的展覽~展出了相當多的名畫~
這次的畫風主要是寫實,浪漫跟印象.
我對其中有一幅畫印象比較深刻,但我不記得什麼名字了,只記得畫的內容是一個少女的肖像,微微露出左乳,蠻漂亮的~
老實說,我們對這些話是誰畫的,並不是很關心.我們也不懂他們所用的高深技巧.我們只是想知道,這些畫家所認為的美到底是什麼. ^_^
這樣才能確實的提高自己美的層次,不是嗎??
Lonely Satursday
周六的上午,受父母之託幫老妹搬東西到他公司,順便設定一下區域網路~
當然設定區域網路對我來說,是相當簡單的事情,彈指之間就能完成,但我的心情卻不太好,原因是老妹那傢伙居然在我搬東西下車,父母要開車走了之後,說:
“你好可憐喔~@#$!@#$!#@”巴拉巴拉的一些.
讓我覺得很不是滋味,因此在設定完區網之後,我就離去~時間約是 11:0x 左右.
我從信義敦南路口漫步到敦南基隆路口搭公車,本想去接女友,但想起昨天女友說不用去找他,所以乾脆就跑去美麗華看電影.
到了美麗華一看,老天,A~F廳共十二部電影,我居然看過 10 部~沒看過的兩部,一部是”龍吻”,與”侏儸紀公園III”合映,另一部則是”貓狗大戰”,忘了與什麼合映.
我決定看”龍吻”,於是我買了一瓶奶茶和一瓶梅酒進去.
無聊的看完兩部片,只有兩個心得
1.龍吻這部片真是個爛故事~
2.好累喔
於是就又做公車回家玩我的 AOE2 了~
呼~~
紅磨坊
這部片子跟我預料中的不同,原本以為會一部陳腔濫調的愛情片,但卻不然.
導演以百老匯歌舞劇的方式使得一個簡單的愛情故事擁有了生命,片中的配樂,歌曲不但動聽,更為片中的氣氛,轉折帶來了畫龍點睛的效果~
這部電影是個值得一看的作品!
Building Solutions for VB In Windows 2000
講師:羅慧真
筆記者:ellery
檢查需要的元件是否安裝
No -> On demand installtion
Yes -> 檢查元件是否適當安裝,若miss,則 On demand repairing.
Install Sheild for Windows 2000 or Wise 2000
本身不提供 Module 檔,所以要自行將 Modules 檔複製進去.
Visual Installer 不需要的原因是因為, Microsoft 已經將 VB 所需的 Modules 放進去了.
Package 若以 Publish 發行,則 user 要在 Add/Remove 安裝.
若 Assign -> user, 該 user login 進去後就會開始安裝
若 Assign -> computer, 只要該電腦一開機進入就會開始安裝
How to implement side by side?
在欲保留原 DLL 的 AP 路徑下,建立一文字檔,更名為 ap.exe.local, 如此一來就會使用到原 DLL.
p.s. only for Windows 2000.
如果環境為 95/98/NT, 可將 CLSID 機瑪下的 InprocServer32 的Default內容的路徑拿掉.
Group Policy 的一些相關設定擋在 \WINNT\SYSVOL\DOMAIN 下面,可利用 Notepad 去查看.
Directory Service
1. Workgroup | |
![]() |
每台PC都必須設定 user account 缺點:分散管理 Security 差,維護困難 一個資源只能同時給 10 個 connection |
2. Windows NT 4.0 Domain | |
![]() |
優點: One user one account Universal resource access centralize administration 缺點: Trust 沒有遞移性,需手動維護 Truest Trust 為 Domain 間相同 Account 共享 Resource. |
3. Windows 2000 | |
![]() |
DC安裝步驟:
- My Computer -> 右鍵 Property -> Network Identification -> Property
-> Advance -> Other, 指定 Domain Name - Network -> 右鍵 Property -> Local area connection -> 右鍵 property
-> TCP/IP 指定 DNS 的 IP, Advance DNS 指定 Domain Name - ipconfig /all 檢查 DNS 及 domain name 是否正確
- DC Promote 決定角色
- Domain 的第一台 PC或第二台
- Root Domain 或 sub domain
- 加入另一 domain tree 為 forest
AD Schema
- regsvr32 schmmgmt.dll
- mmc
- snap-in ad schema
LDAP Name:
1.DN -> Distiguished Name
CN: Common Name +Container +User +Computer Name
OU: Organization Unit +ou +group
DC: Domain Component +Domain Name +Type +Location
Example: CN=User CN=Guest CN=London, ou="Domain Controller", DC=Microsoft, DC=COM uuu.com.tw 即 domain.type.location
以下這一狗票東西,是你可以寫,然後放到 Group Policy 裡面的,在.apm 檔案中(WINNT\INF\SYSTEM.adm)
CATEGORY "Media Player Settings" POLICY "Store with this view" KEYNAME "Software\Microsoft\MediaPlayer\Player\Settings" EXPLAIN "Used to set the initial Media Player view" PART "Select View" DROPDOWNLIST NOSORT VALUENAME "view" ITEM LIST NAME "Compact" Value 0 NAME "Standard" Value 1 NAME "Minimal" Value 2 END PART END POLICY END CATEGORY
Logon.
Queue
心情不好二三事
昨天,10/7,我們去了陽明山.
這次騎車由明德樂園旁邊的路上山,這條路出乎意料的遠,沿路經過平等里…等兩三個小聚落,大多經營的都是些觀光農場,果園或是土雞城之類的生意,
看來饒有一番趣味.路上一直都看到”奧萬大”,令人詫異,以為是中南部賞楓的奧萬大,到了以後大略看了一下,原來是一家咖啡,品茗的店(我應該沒看錯),令人莞爾.
這條路會一直連接到菁山路.
我們由菁山路步道入口開始步行,這條步道就是就是有名的金包里大道,在早前,這條步道主要是先人通商,買賣的一條通道,也是通往金山的必經之路.
主要特徵就是中間的石頭大,而兩旁的石頭小,呵呵,這都是由步道兩旁的解說牌看來的啦.
沿路會經過絹絲瀑布,最後會到達擎天崗.
接近擎天崗的時候,起了霧,有朦朧的感覺,別有一番風味.
末了,我們搭公車下到步道入口,騎車下山~
我們由仰德大道下山,經過士林官邸,我發現有花蓮奇石展,於是不管是不是中午,是不是該吃飯了,就停車,把ela拉進去逛逛.
當然,他抱怨連連囉~,說我欺負他,不給他吃飯之類的話.
不過這次對於士林官邸有了新的發現,官邸的後方有個小山,山上有個慈雲亭,不知何故,遊客稀少,這裡可以遠眺,也能享受一份幽靜.
走下小山,聽到露天表演台傳來悠揚的Jass音樂,心情不禁好了許多.
我們邊散步邊尋找,看到了許多拍婚紗照的新人.
…
ela:他們為什麼要在假日來拍,請假來拍的話,人比較少,比較方便;
我:之前我有特別假的時候,你不結,現在我沒有特別假了.
ela:那還是可以請假啊
我:不要了,不請了.
…
到了奇石展的場地,進去逛逛,這裡果然不虛此行,奇石都很漂亮,多呈現出國畫中的山水意境.
最後,該吃飯的還是要吃飯. ^_^
下午去光華商場逛逛,sw打了通電話來,邀約10/10去KTV為ela過生日,我說不要,因為,ela,10/6,跟我說不要去KTV.
關於這件事,ela,早上有改口說要,但不知怎麼地,我就是不想去了.
於是我把手機丟給ela,讓她跟sw說,ela就跟他聊了一下,最後應該是說要吧,我也不是很清楚.
後來送ela回家後,我也回家了.
回家的時候心情很不好,覺得很暴躁,定不下來,也覺得很生氣.我想,打打世紀帝國II應該會好些.但沒有.
吃過飯,躺了一下,似乎睡著了,這個時候sw打電話來,通知了我時間,我說,我會轉告ela.
我心情更不好了,心裡想了很多事情…
想要趕快提親,提出訂婚以及結婚的日子,也拖了許久,更討厭的是,ela媽媽還說,我們還年輕,不必要這麼早結婚.(當然,我知道日子並不是ela能決定的,但我只是…唉…)
我不禁自暴自棄,好吧,乾脆不要結好了,反正這樣子過日子也不錯,終日與電腦為伍,閒來爬爬山,逛逛街,看個電影.
日子還不是能過~~~
末了,我賭氣地告訴ela,10/10那天我不要去~我可以送你到樓下,唱完再來接你~
啊~~~想要大聲的叫出來~~~
啊~~~想要用力的打牆壁~~~
有時候,不禁懷疑自己是不是有憂鬱症或躁鬱症之類的~
“哪裡”颱風
納莉颱風來的這四天,我賣掉了四,五年前買的Canon BJ200e 黑白印表機,得到 300 元.
寫好了一篇預定要投稿給 RUN!PC 雜誌的文章,內容是介紹 VFP7 與 Web Service 的應用.
打了幾通關心的電話.
完全沒有和女友外出,只靠電話聊天,哈拉.
完成了一些網站的東西,預定月底才會更新上去.
每天看著水,看著看著,想到了聖經諾亞方舟的故事,猜想,搞不好十天的大雨就可以讓台灣淹沒~中共也甭統一了.
最後一天,在 Kimo 看到一個很冷的笑話:為什麼納莉颱風會走的這麼慢,這麼久呢?因為他的名字叫”哪裡””納莉”~所以打轉了許久,琢磨了許久,才逛出台灣.
其實這篇應該叫做雜記吧,胡亂湊合著上.
VFP與SQL Server的連結與最佳化
內容:
建置測試環境
- 請先利用 sql server enterprise manager去建立一個 database,叫做demo,然後利用 Query Analyzer 執行以下的sql script
[sql]use demo
if exists (select * from sysobjects where id = object_id(N'[dbo].[demo]’) and OBJECTPROPERTY(id, N’IsUserTable’) = 1)
drop table [dbo].[demo]
GO
CREATE TABLE dbo.[demo] (
cus_no int IDENTITY (1, 1) NOT NULL ,
cus_name char (10) NOT NULL ,
comment text NULL
) ON PRIMARY TEXTIMAGE_ON PRIMARY
GOALTER TABLE dbo.demo WITH NOCHECK ADD
CONSTRAINT PK_demo PRIMARY KEY NONCLUSTERED
(
cus_no
) ON PRIMARY
GO
[/sql] - 請再設定一下控制台中的ODBC
- 設定一下 class 裡面的 demo.vcx 中的 prjhook QueryRunFile Event 中的路徑,然後在專案上面點一下滑鼠右鍵,選擇 專案資訊,接著把專案類別設為 demo.vcx,然後以後你執行程式的時候,就只要按 執行 就好了
- 接著去變更一下 database 中的 connection
測試
以程式動態模擬 1000 筆資料寫入 sql server 資料庫中,直接利用 vfp 的 connection + remote view
硬體: cyrix 200 + 128 mb ram + 4g hd
軟體: m$ sql server 7 + ado 2.6
情況 1 :
不設 buffering,vfp 當然是每新增一筆, 就會寫一筆到 sql server 中,想當然耳,速度超慢
情況 2 :
設定 buffering 為 5,這個時候,新增就粉快了,因為新增的資料都是放到 local 端,不過 tableupdate 的時候,就超慢了
情況 3 :
設定 buffering 為 5, batchupdatecount 為 1000, prepared 為 true
第一次新增 1000 筆,tableupdate 寫入,僅僅花了二分鐘多左右,效率還算讓人滿意
在程式執行的同時,我也有利用 sql 的 profiler 去觀察,vfp的確有先產生 prepare 的指令, 再執行 insert 的動作,仔細看了一下 tableupdate 的指令說明
tableupdate 的第一個參數如果帶 1, 而且 buffering 有開啟的時候,就會只把有變動的記錄更新回去
這一點我呆會會再另外用另外一種方法來測試是否真的有這麼去tableupdate
第二次執行的時候,花了約四分鐘,這次我發現vfp有多花一些時間在requery()上,所以我把 use demo 改為 use demo nodata
果然就又回復到約二分鐘多左右了,這次我把 prepare 拿掉試試看,發現了很有趣的現象,profiler 中,仍然使用了 prepare,不知道是不是因為 odbc driver 的關係
第四次(prog2)
測試 requery() 的速度
我知道memo的大小會影響速度,所以直接先把 fetchmemo 設為 false,程式很快就run完了,我感到質疑,因此我用browse去看
我發現 vfp 會 requery() 一個程度之後,開始在background去抓資料
如果這個時候去browse,速度就變的粉慢,怎麼變快??
於是我接著把 FetchAsNeeded 設為 True, FetchSize 設為 100
重新執行, 果然速度變快很多,因為vfp只抓了 100 筆
我利用 browse 去觀察的時候,向下 page down, vfp 還會自動往下抓100筆記錄
這真是太棒了
不過我後來直接把 scroll bar 移到最下面,這個requery的時間就很久了
第五次(form1)
我寫了一個簡單的表單,寫的過程,遇到一個小問題,我在dataenvironment中拉入view,接著把view拖到表單上,產生grid的時候粉慢,這時候我建議各位先在指令列下 use demo nodata, 然後再來拖,會順利很多!!
做好的畫面如form1,畫面很簡單,右上角是我測試的重點之一,我輸入一個數值,按下”跳到”,會自動移到該筆記錄去
當我 go 100 的時候,果然vfp會自動抓下一百筆資料
另外當我點選到 memo 欄位時,vfp也會自動去抓取該欄位的memo值
(因為之前把fetchmemo設為false,所以不會抓memo值)
不過這時候又產生了另外一個問題
如果我想知道總共有多少記錄的時候要怎麼辦呢??雖然輔助說明中說requery()之後,
會把取得的記錄數目存放在_tally變數中,but似乎不是這樣,因為我取得的_tally總是與事實不符
翻遍輔助說明,看來都沒有適合的指令可以取得
只好利用 select count() 了
我把這段指令寫在 “總筆數!!” 這個按鈕上
千萬不要用 reccount() ,這會把所有資料下載下來!!
FetchAsNeeded??
第六次 (form1)
這次我們要試的是 tableupdate 是否真的只把我們有更動的資料寫回去
因此我們使用 tableupdate( 1, .T. ) 來作
可是粉奇怪,profiler 並沒有顯示任何 update 的動作
這太奇怪了~~
我搞了好久
才在 vfp 的 programmer’s guide 找到
當 fetchasneeded 設為 true 的時候,是無法做任何更新動作的!!!!
必須要先 sqlcancel 之後才能去做
最後實驗 tableupdate( 1, .T. )也順利成功
程式碼在[奇數碼更新]裡面!!
vfp 果然會只更新有變動的部分而已!!!
SELECT-SQL UNION ALL Clause
很久以前就知道在別的大型資料庫系統裡, Select 有 Union這個子句(clause)
但我不知道VFP有這個子句
前兩天在看VFP輔助說明的時候,才發現到,VFP也有。
那那那…這個指令有啥好處呢?
我用個範例來做說明好了,這個範例是從BBS的Database版上借下來的,有經過改寫,原本是ORACLE的範例:
首先先建立一個Database,然後建好多個 Table,其結構都相同
CREATE DATABASE DEMO
CREATE TABLE DEMO_1995 ;
(TRANS_DATE D, cTEXT C(80), ;
CHECK (TRANS_DATE>={^1995/01/01} AND TRANS_DATE={^1996/01/01} AND TRANS_DATE={^1997/01/01} AND TRANS_DATE={^1998/01/01} AND TRANS_DATE={^1999/01/01} AND TRANS_DATE={^1998/01/01} AND TRANS_DATE<{^1999/07/01}
或者 你也可以不需要建DEMO這個View
你也可以直接用
SELECT * FROM DEMO_1995 ;
UNION ALL ;
SELECT * FROM DEMO_1996 ;
UNION ALL ;
SELECT * FROM DEMO_1997 ;
UNION ALL ;
SELECT * FROM DEMO_1998 ;
UNION ALL ;
SELECT * FROM DEMO_1999
這個時候 也許你會問,這有啥好處呢?? 看來是沒有啊 請注意…
相信各位都曾經有過這種迷惘-以年度區分(或其他)的資料檔到底是要分開呢?還是要放在一起?
假設你選擇了分開,那麼在作整合查詢的時候,就會相當的麻煩。
通常只能先建立一個暫存資料檔,然後依序將零星的資料匯入之後,再對此一暫存資料檔作查詢。
使用了union all,就可以不需要那麼麻煩了。
筆記:深度探索C++物件模型 第一章
摘要
C++ Object Model
一般來說有三種實作方式:
1.Simple: 一個Object內有一個 slot table, table 中各 slot 指向一個 member.
2.Table: 把 member 和 function 抽出來為 兩個 table, 物件內含一指標指向這兩個 table, 而 function
table 又指向各 function.
3.目前一般常見 C++ Compiler 所採用的物件模型, 則是將 member 放在物件中,物件內含一指標指向 function table,
而 static member 則另外存放於 heap 中.
繼承
早期,直接把 base class member 含括到 derived class, 較快; 但若 base class 變更,會造成 derived
class 需重新 compile.
2.0 規格以後,為有關聯的 virtual base class 加上指標:
- 導入 virtual base class table
- 擴充現有的 virtual table
簡單的說就是在衍生類別中加上指標指回 base class 的 member 和 function.
虛擬繼承
亦可指定 virtual, 如 iostream
class istream: virtual public ios {...}; class ostream:virtual public ios {...};
此情況下, base class 不管在繼承串列中被衍生幾次,均只存在一個實體,上例中, ios 將只存在一個.
class 和 struct
class 和 struct 幾乎相同,但仍然請依照需要乖乖使用.
多型
只有透過 pointer 或 reference 的間接處理,才支援多型.