顯示具有 資訊應用 標籤的文章。 顯示所有文章
顯示具有 資訊應用 標籤的文章。 顯示所有文章

寫招標書的好幫手: Word 的長文件概念

"長文件"並不是一個正式的功能, 而是多種 Word 功能的組合, 包括:
  1. 目錄
  2. 樣式
  3. 大綱模式(階層)
  4. 分隔設定
  5. 多檔案
這些功能則是可以克服一般編輯時常用到的功能:
  1. 由不同人撰寫不同的段落(多檔案)
  2. 章/節要有相同的字型、縮排(樣式、階層)
  3. 讓新的"章"從單數頁開始, 新的"節"從下一頁繼續(分隔設定)
  4. 目錄的頁碼與內容的頁碼分開(分隔設定的"分節")
  5. 產生目錄(階層與目錄自動編頁碼)
要使用這些功能時, 就需要先知道一些 Word 編排的概念:
  1. 文字/段落(按 enter )/同一段內斷行(按 shift-enter )的使用
  2. 分頁(按 ctrl-enter )
  3. 分節(插入 -> 分隔符號 -> 分節, 又分為
    1. "接續本頁", 處理"分欄"時使用
    2. "下頁起", 處理要形成另一組頁碼, 或者新的一節有不同紙章大小等用途.
    3. "下一個奇數頁/下一個偶數頁": 可以讓新的章節從指定奇數頁開始, 翻閱較方便.
  4. 使用"樣式", 並對應到"階層"與字型/行高等設定.
  5. 對章/節的標題套用"樣式"(實際上影響的是"階層").
  6. 插入目錄, 就會自動將階層標題編入目錄.
概念大概是這些, 由於網路上已經有許多人寫了更完整的說明, 加上 Word 不同版本的介面都不同, 就不說明這些功能在哪邊了. :p
今天開始試作新資料庫架構的一些元素, 把以前只是資料表的方式, 再改用類別清單的方式存檔; 發現原來分散各處的類別資料, 集中成一張類別表, 然後用程式加上條件, 就可以減少很多開啟資料表的資源; 只是這張類別表的定義就需要更嚴謹, 以免將來破表(註: 溢位(overflow))....

原本是: 電話類別有"住家", "公司", 性別有"男","女", 職業等.
結合成一張表, 第一欄是大類, 第二欄是各類的清單, 看起來就像:
電話,住家
電話,公司
性別,男
性別,女

似乎就是把"反正規化"這原理實作的樣子啊....( happy~ )



再去找一些資料....發現上面的作法"不是"反正規化....

反正規化是說....
像是學員選課, 以正規化來想是有選課記錄(清冊), 而需要人數時, 統計清冊中的有效值再算筆數.
而如果直接在課程的資料表內, 加上一欄"目前有效人數", 就可以直接抓人數出來, 不必再查選課記錄表.

這幾天一直在思考著, 以整合方案來想網路行銷:
A. Blogger + FeedBurner 訂閱 ?
B. 現有網站 + 傳統 Mail ?

方案A的優缺點:
1. 學員或民眾透過 FeedBurner 會不會太難?
2. Blogger 與現有官網分開, 同事更新會不會麻煩?
3. Blogger 有較佳的手機版設計.

方案B的優缺點:
1. Mail 清單來自學員, 對一般民眾沒有辦法行銷.
2. 同事更新習慣不變.
3. 現有官網沒有手機版, 畫面不美觀, 網站慢....

不過想了很久, 在會議前還是決定用 B 方案, 因為:
1. 內部活動設計的品質夠不夠好?
2. 學員是否已經有足夠向心力, 讓辦公室可以無後顧之憂地擴充?
3. 同事對資訊化的熟悉程度?
4. 民眾對訂閱電子報的熟悉程度.

所以....比較漂亮且相對功能多的 Blogger 還是 ByeBye 了....

‎(之前給全家的建議)


1. 標題: 透過 FamiPort 對於消費者載具辨識, 提供已有之資訊整合, 使 FamiPort 成為個人生活管理之重心.

2. 主旨: 現有超商消費者使用 FamiPort 設備, 受到現有功能規畫限制, 而需要多個步驟才能完成事情, 則 FamiPort 僅達到工具之效果.
若能於架構上新增"個人生活管理", 於消費者同意下, 主動將曾經使用過的功能, 回報繳費記錄, 推薦可能喜好的功能, 使 FamiPort
成為個人生活管理之重心.

3. 舉例:
a. 消費者常繳信用卡單, 但是否成功則不確定.
b. 消費者使用店到店服務, 查詢時需要輸入單號, 方可查詢.
c. 消費者有線上訂票或預購, 不知道進度.

4. 整合概念:
a. 目前 FamiPort 都是由消費者向 FamiPort 提出要求, FamiPort 才回應要求, 若有多個要求則需要分別處理.
b. 若 FamiPort 能得知消費者基本資料, 主動匯整: (1) 過去使用記錄 (2) 使用中的進度查詢(如繳費) (3) 建議未來使用(如電子發票查詢)
c. 消費者若能在電腦或電腦上, 感應載具, 則透過網路, 將消費者預約的要求, 儲存於 FamiPort 後台, 只要消費者到門市即可使用.

5. 實作案例:
a. 消費者在 FamiPort 登記載具為 e卡通, 留下基本資料.
b. 一般 FamiPort 事項.
b1. 消費者首次列印 金鑽銀行信用卡繳款單 , 並至櫃台繳費.
b2. 消費者使用店到店, 寄送商品.
b3. 消費者擬購買xx商品, FamiPort 取得使用者授權, 將基本資料(電話/地址)直接輸入訂單.
c. 消費者在家中看到某電子書, 很有興趣, 而該電子書業者與 FamiPort 有合作, 則可以感應載具(或輸入帳/密), 將該筆要求存入 FamiPort
d. 消費者下次在 FamiPort , 感應載具(e卡通), 則可以:
d1. 看到金鑽銀行帳務已由全家轉出.
d2. 店到店仍在配送途中.
d3. 訂購商品廠商已備貨, 未出貨
d4. 消費者曾登記列印電子書, 預計 x 頁, 費用 x 元, 是否要列印?
d5. 已經接近發票對獎日, 可於 x 月 28 日到店查詢.
d6. 消費者曾經列印 xx 大學簡章, 是否要查詢榜單?

6. 技術問題:
a. 預估使用者成長量
b. 預估使用者查詢量
c. 批次作業或即時作業? (批次作業可預先將資料整理好, 但量大, 即時作業反應較慢....)
d. 相關資源分配.

這樣以消費者為中心的思考, 則可以提高消費者對 FamiPort 依賴性, 提高來客率.

註: 由於個人傾向業者間良性競爭, 所以提出此概念供 貴公司參考.

是否有指令或方式可以跨router來喚醒區網的電腦呢?

http://ithelp.ithome.com.tw/question/10115635



看看 192.168.2.3 的網段有沒有相關設備可以送出開機(WOL)訊息, 有些 Router 或 IP 分享器會內建這功能.

另外也可以看看主機配置, 例如有一台可以設定成定時開機, 再由這台電腦送出開機(WOL)訊息.



因為需求已經是要 WOL , 表示一定要所有條件都符合, 而 WOL 的條件不多, 所以我會想直接在區網先放一台測試機(筆電亦可), 找出區網內需要 WOL 的所有電腦, 再以軟體送出 Magic Packet (就是 WOL 訊息的封包), 再看看是否成功, 如果沒有成功被開機的, 再找出那台的失敗原因.

常見失敗原因:
1. 桌機需要維持供電, 如果有延長線開關, 不能關掉, 另外要支援 PCI 2.1 (還是 2.2 ? 才有待機電源, 大概 Pentium 晚期開始普及.)
2. 下班後, 網路線 Hub 沒電....(與 1. 有點相似.)
3. 主機 BIOS 設定為關閉. (可觀察關機時, 網卡的訊號燈有沒有亮, 如果有亮通常表示有啟動 WOL )
4. Mac Address 有異常. 由於 WOL 是靠 Mac Address 來驅動, 有些公司則會為了迴避軟體檢查, 而去修改 Mac Address , 造成開機後的 Mac Address 不同. (少見, 但有這種可能.)
5. 再不行....改用其他方式如定時開機或有自動開機的延長線功能. (可能更貴 XD )









最近在思考的, 是資料庫設計時, 該從什麼角度切割.
比如常見的通訊錄, 是像這樣:
姓 名│電   話1│電   話2
陸仁賈│0286686966│0223915081
陸仁以│07-1234567│
陸仁秉│0222342238│

不過如果資料庫, 也許可以像這樣:
a. 個人:
個人代號│姓名
1│陸仁賈
2│陸仁以
3│陸仁秉
b. 電話(或電話類型的資料)
電話代號│電話
1│0286686966
2│0223915081
3│07-1234567
4│0222342238
c. 個人與電話對照
個人代號│電話類型│電話代號
1│個人│1
1│公司傳真│2
2│公司│3
3│個人│4

以第一種表格式, 最像 Excel 作法, 也是很多小型資料庫的作法, 程式撰寫時特定欄位就對好了, 不過因為資料較容易有空白, 所以也往往會造成資料庫較大.

第二種作法則是再把實體資料(如電話)與業務上特性(如個人/公司)分開, 如果再遇到電話號碼變動等狀況, 較容易修改, 不過程式就需要再處理對照的部份; 由於實際上的資料若不需要, 就會刪除, 也可以減少資料庫使用.

簡單比較 RamDisk , Cache , 軟體還原的特性

最近測了一些 RamDisk , Cache , 軟體還原 的工具軟體, 覺得有時候想比較綜觀地看一下這些軟體特性, 所以就整理了一下.


這張圖只是用來解釋一下各種軟體大概出現的位置, 有些軟體可能會有不同的設計, 所以僅供參考.

要說明這些軟體之前, 首先都要有個前提: CPU 內的暫存器與 Cache 最快, 記憶體其次, SSD 目前比硬碟快一些, 硬碟最慢; 硬碟平均成本低, SSD 其次, RAM 較高.
再來則是延伸幾個特性:
1. CPU 與 RAM 都是一關機資料就不見; SSD 內部是晶片, 若一個晶片損壞, 可能會造成整個 SSD 資料都會不見; 硬碟內部是碟片, 所以可能有壞軌會造成檔案損毀, 如果是電路板則可能整個硬碟無法使用, 但換電路板後也許可以救.
2. 記憶體管理受到作業系統限制: 最近常聽到的 32bit 只能使用 3.xG 記憶體, 或 DOS 的 640K 都是因為作業系統所遵循的規範.

了解這些前提與原則之後, 接下來就可以開始看看這些軟體的特性:
1. RamDisk : 由於使用記憶體模擬出磁碟, 所以速度極快, 可讀寫次數也遠大於磁碟, 但是因為關機後就無法保存資料, 所以適合"頻繁讀寫", "容量已知或可控制".

2. 快取軟體: 將記憶體保留一部份, 並攔截讀取/寫入磁碟的動作, 當需要讀取的資料已經在記憶體中, 就不用再讀取實體硬碟; 當需要寫入資料時, 也可以先保留在記憶體, 再一次寫入. 不過也有斷電時, 未完全回寫磁碟, 而資料損毀的風險.
目前市面上的作業系統都有內建這種功能, 只是為了安全考量, 通常只有讀取快取, 而沒有寫入快取; 並且為了記憶體用在實際執行程式, 快取空間並不會很大, 所以快取軟體可以讓使用者為了特別的需要, 另外擴充快取空間.

3. 還原軟體: 也是攔截讀寫磁碟的動作, 而著重在寫入的攔截, 比快取軟體著重是否允許異動控管, 而異動的保留區, 也依軟體而不同, 例如: 微軟提供 ewf 與 fbwf 給 Embedded 版的作業系統, 保留區是使用記憶體; 而市售某些還原軟體, 是以隱藏的分割區來保留異動的部份.

了解這些軟體的特性後, 再來考慮使用者可能的動作, 選擇較合適的應用:
1. 頻繁讀寫但不重要的檔案, 例如: 解壓縮暫存檔, 瀏覽器快取等; 因為檔案的產生與刪除都是由程式自動處理, 所以設定在 RamDisk 是最常見的作法.

2. 頻繁讀寫但是有需要存檔的檔案, 例如: 一般工作的檔案, P2P 的暫存檔. 如果記憶體夠大, 可以開 RamDisk 來存放, 而開或關機時再讀入或回寫, 不過也會需要一段時間轉移這些資料. 另外也可以用快取軟體, 針對分割區處理, 則可以減少轉移的時間.

3. 讀取需要而不需要寫入的檔案, 再考慮用還原軟體, 並且設定為不寫入, 例如: 商務或電腦教室使用的電腦, 並不太需要開放寫入(安裝)程式, 所以把資料跟程式分開, 在 Windows 常見分為 C: 與 D: , 也是有這方面的意義, 這樣程式區(一般是 C: )就幾乎不用寫入.

由於這些軟體的應用, 往往是以分割區(Partition / Volume)為單位, 所以就會把檔案依這些特性分類:
1. 是否需要寫入? 程式(偶爾寫入), 個人資料與下載檔案(稍常寫入), 瀏覽器快取檔(頻繁寫入)
2. 重要性? 程式與個人資料(很重要), 下載檔案(重要性略低), 瀏覽器快取檔(不太重要)
3. 是否要在開關機時移轉? 瀏覽器快取檔不需要, 其他都要移轉而且時間長短不一.

找出這些特性後, 再配合不同的軟體, 來發揮記憶體的特性, 提高系統效益, 以個人為例:
1. C: 程式: 使用 NTFS(壓縮) + 還原軟體, 由於程式只有讀取到記憶體才會執行, 不太需要寫入, 所以用 NTFS(壓縮) 減少讀取的資料量, 到記憶體解壓縮後才會執行, 另外有還原軟體可以梢微避免病毒.
2. D: 資料1: 使用快取軟體, 設定寫入延遲 10 秒, 因為我的電腦有不斷電系統, 但是也不希望資料遺失, 所以設定較短的寫入快取.
3. E: 資料2: 虛擬機器區, 設定寫入延遲 1 小時.
4. RamDisk : 瀏覽器快取區與 Windows 暫存, 使用 Imdisk , 用多少才算多少.
5. P2P 暫存區: 第二硬碟+快取軟體, 設定寫入延遲無限久, 因為 P2P 暫存檔讀寫頻繁, 為了分散使用量, 所以用另一顆硬碟, 另外配合快取軟體, 減少寫入; 如果要抓檔, 才接上這硬碟並開啟快取軟體, 平常使用時不會接這硬碟, 抓完的檔案再轉存到資料區.

這樣依不同用途, 可以彈性調整記憶體用量, 來減少磁碟讀寫的次數, 壓榨系統效能~

將文件加工成 PDF 並降低資料被盜的原理


1. 先把重要的內容轉成圖型, 再加一點"花"(例如: 降低解析度, 放符水印圖檔), 這樣減少被直接用 ocr 軟體轉成純文字.

2. 放文章摘要, 文章摘要可以放在本文, 不過上面再用圖蓋掉, 這樣就可以讓 PDF 編輯軟體找到, 但不放全文, 一般情況就較難複製摘要.

3. 在 PDF 編輯器的內容放關鍵字, 這樣還有基本的關鍵字可以用.


2013年1月31日

用 Ramdisk 減少硬碟寫入, 再配合 junction 強化

很多人都知道可以在電腦建立 Ramdisk , 把不太重要但讀寫頻繁的檔案改存到 Ramdisk ; 不過有些軟體並不能更動目錄, 就可以再使用 junction 來強化; 以下就是以 Java 來當範例.

很多人都知道可以在 Windows 環境建立 Ramdisk , 再把 Windows 的 TEMP , IE 的 Temporary Internet Files 搬到 Ramdisk , 由於 Ram 存取及搜尋速度遠超過硬碟, 可以減少軟體讀寫檔案的延遲, 又可以降低硬碟讀寫次數.

可是有些軟體本身有固定的檔案寫入位址, 例如大部份的人電腦都有安裝 Java , 而 Java 會把檔案暫存在 使用者的 Application Data\Sun\Java\Deployment\cache 與 SystemCache 目錄下, 或是 IE 的歷史記錄是在 Local Settings\History 等等, 如果想把這些目錄, 改到 Ramdisk , 雖然很多網站有教怎麼改 Registry 把目錄移到 Ramdisk , 可是如果升級或重新安裝, 有時擔心程式出問題, 好像又有點不順手.

其實 NTFS 已經有支援 junction 功能, 也就是在 Linux 的 ext FS 已經普遍使用的 Soft Link , 在 Windows 的磁碟管理畫面, 其實就有"把磁碟加在空的 NTFS 目錄", 也就是 junction 的應用, 只是 XP/2003 以前沒有一個專用的程式.

所以在應用上, 只要發現程式有大量讀寫硬碟, 再確認這些頻繁讀寫的資料並沒有很重要, 就可以透過 junction 這小程式, 把暫存的目錄, 改成在 Ramdisk 建立的目錄, 這樣不必異動程式設定, 又可以提高速度.

例如剛剛舉 Java 為例, 第一次搬移時:
  1. rem 第一次先把檔案 copy 到 Ramdisk  
  2. for %%f in ("Documents and Settings\使用者\Application Data\Sun\Java\Deployment\cache"do xcopy /c /d /e /h /y "C:\%%~f" "R:\%%~f\"  
  3. rem 把目錄改名, 如果遇到問題可以救, 沒問題再刪.  
  4. for %%f in ("Documents and Settings\使用者\Application Data\Sun\Java\Deployment\cache"do move "C:\%%~f" "C:\%%~f_old"  
  5. rem 實際建立連結, 注意用法是"新連結"在前, 對應的目錄在後.  
  6. for %%f in ("Documents and Settings\使用者\Application Data\Sun\Java\Deployment\cache"do junction /s "C:\%%~f" "R:\%%~f"  

以後開機時, 或由 Ramdisk 建立後再接著執行
  1. for %%f in ("Documents and Settings\使用者\Application Data\Sun\Java\Deployment\cache"do md "R:\%%~f"  

由於 C: 底下的連結已經建好了, 所以之後不必再連結, 只要確保對應的目錄存在, 以後跑 Java 時就會把暫存檔放在 Ramdisk 了.

而相同的應用, 也可以用在如 P2P 軟體的索引, 如 aMule 是放在 C:\Documents and Settings\使用者\Application Data\aMule , 只是要記得關機前找地分備份.

當然還有其他方式, 例如單一 folder cache 軟體等, 只是個人偏好系統內不要裝太多軟體, 所以有 junction 這樣簡便的軟體, 就先測這套, 也想應用如: 以後裝完系統, 整個 Documents and Settings 就搬到另一個磁碟, 在系統碟是建立 junction , 備份就相對輕鬆了.

junction 檔案下載: http://technet.microsoft.com/en-us/sysinternals/bb896768.aspx


原先可以apt-get,變成無法使用
執行:sudo apt-get update
顯示:sudo: /etc/sudoers is world writable
sudo: no valid sudoers sources found, quitting

1. 這台主機上的 /etc/sudoers 是人盡可夫....(大家都可以改)
2. sudo 找不到適合的檔案.
有幾個可能:
1. 被入侵改掉了 sudoers
2. 有人設錯的權限
造成:
sudoers 檔案是空的或裏面沒有設定了
而:
sudo 無法從 sudoers 抓設定來參考, 也就無法同意執行.
解法:
1. 先檢查 /etc/sudoers 怎了?
2. 重建 sudoers .
3. 檢查 log , 確定是入侵或人為疏忽, 再採取對應行動.


http://ithelp.ithome.com.tw/question/10115029

IE 還蠻會"污染" Windows 的


一直覺得 IE 很喜歡"污染" Windows , 所以除了網路銀行外, 我都不使用 IE ; 剛剛又驗證了一次.... :(

剛裝好 Windows 2003 , 用 IE 開啟了網路銀行, 裝好 ActiveX , 之後關閉 IE , 再把瀏覽器的記錄都清除; 但是重開機之後, IE 快取目錄卻有網路銀行的暫存檔, 而且是在 Ramdisk , 表示一開機系統就自動連到網路銀行了; 檢查了一下, 不在 IE 目錄或登錄檔(Registry)內, 所以搜尋整台電腦 + 登錄檔, 原來被放在"Internet 連線精靈"內, 覺得很不可思議; 上網看了一下, 也難怪很多惡意網站清不掉, 因為藏在這種看起來不是 IE 應該改的地方, 但是 IE 又會讀取這邊的資料, 電腦就中毒了.

所以再次驗證.... IE 還蠻會"污染" Windows 的, 而且是許多惡意軟體的好入口.... :(

經過幾天測試, 覺得 2003 + ImDisk 是比較適合目前我的筆電的環境.

原本習慣用 XP 搭配 VSuite Ramdisk 來使用 3.xG 以上的記憶體, 但 XP 老是把我喜歡的"傳統配色"改掉, 而造成可用視窗變小, 另外看到朋友裝 IE8 之後的不相容問題, 想想自己幾乎都用 Chrome , 也不需要 IE8 .

而試用 2003 之後, 在筆電裝 12G 記憶體也都可以配置, 並改用 ImDisk 取代 VSuite Ramdisk , 同時可以掛載 iso 檔當"虛擬光碟機", 而且 2003 只有 IE6 , 對網路銀行的相容性很好, 其他的網路功能都在 Chrome .

所以剛剛就重灌了筆電, 希望這樣的環境可以讓我覺得穩定一點. ^^!

SQL語法考勤上下班問題?

1. 看起來原始資料有 'employeeID', 'date' 兩欄, 分別代表'員工號'及'打卡時間', 另外連結 'NameID' 是'員工姓名'.
2. 公式裏用了 convert(varchar,date,111) , 一般是把 date 當保留字, 不會把變數用 date .
3. 再來原本的 select 為
  1. convert(varchar,date,111)+'  '+datename(weekday,date) as date  

既然用 as , 前後的名稱就最好不要一樣, 才知道是原始資料還是轉換的.
4. 最後看了一下公式, 簡化為
  1. Select date,employeeID,NameID,N'上班',as N'下班'  

就邏輯上感覺有點怪, 如果以比較簡單的表格(employeeID,date)來看, datepart(hour,date)如果是 <12 就會在上班, >=12 就會在下班, 所以出現在上班, 就不會出現在下班, 後來補充的範例並沒有問題.

只是以需求來看, 應該要依這樣的步驟思考:
1. 抓讀卡機資料.
2. (目前看起來要補這一項)把讀卡機資料轉成上班打卡記錄, 以標準朝酒晚舞(畫線), 可能像這樣:
  1. 員工號,日期,12點前的打卡時間,12點後的打卡時間  

這部份應該要搭配 select ... group by 處理
3. 等步驟 2 處理完, 才判斷
a. 12 點前的打卡時間, 是漏打還是遲到.
b. 12 點後的打卡時間, 是漏打還是早退.
c. 當天都沒打, 與出差或請假記錄比對.


補充公式(沒有 MS SQL 可測, 大意寫一下)
  1. select 員工號, convert(varchar,打卡時間,111) as 打卡日, 打卡時間, case (12點前算上午,12點後算下午) as 上下午 into #temp_raw  
  2. select 員工號, 打卡日, min(打卡時間) as 上班打卡 from #temp_raw where 上下午='上午' into #temp_morning  
  3. select 員工號, 打卡日, max(打卡時間) as 下班打卡 from #temp_raw where 上下午='下午' into #temp_afternoon  
  4. select 員工號, 打卡日, 上班打卡, 下班打卡 from #temp_raw join #temp_morning join #temp_afternoon group by 員工號, 打卡日  


還是有很多工作上會實作的東西沒有檢測到, 例如: 有分多班制的公司, 有加班等動作的處理, 如果以基本使用大概是這樣吧. (歡迎各位捐 MS Windows Server + SQL 給我, 可折現更好)

以我用過的邏輯大約是這樣:
1. 員工必須先有排班表, 各班有對應的"起始時間"與"結束時間".
2. 若打卡時間在"有排班(已經排除休假)"的"起始時間"與"結束時間"內, 就是遲到或早退.
再把我的回答的第 3 個步驟: 
  1. 3. 等步驟 2 處理完, 才判斷  
  2. a. 12 點前的打卡時間, 是漏打還是遲到.  
  3. b. 12 點後的打卡時間, 是漏打還是早退.  

改成
  1. 3. 等步驟 2 處理完, 以打卡時間對照當天的出勤時間, 是漏打還是遲到/早退.  


原理就是"上下班認定的基準點", 由題目的"中午 12 點"(很奇怪的點), 更細緻的調整成:
  1. 1. 系統預設每個人的應上班時間.  
  2. 2. 員工排休假或調班.  
  3. 3. 打卡時間記錄, 對應排班或休假, 若無特殊排班或休假, 則對應標準應上班時間.  
  4. 4. 做成差勤記錄.  
  5. 5. 月底後 5 日內確認差勤記錄, 若無誤則轉薪資系統處理.  






原問題:http://ithelp.ithome.com.tw/question/10114881

花了半天瀏覽了一些 php 及 oo 設計的網站, 似乎對於類別及屬性的應用有一點概念, 而需要累積如何把屬性適當地分在類別內, 再實作繼承等作業.

想法大概是這樣, 有點覺得是以前在思考像選課系統設計時, 資料的分類法:
以前我會直接用"學員", "教師"兩種類別, 而後來看到其他人會先建一個"人"的類別; 在應用上, 當初我用 Access , 所以程式對應資料幾乎都是單純的動作, 如果要採用 oo 概念, 就可以考慮先有"人", 再分"(繼承了人的屬性)學員", "(繼承了人的屬性)教師", 這樣處理時, 就會分為"人的屬性", "教師的屬性".

只是在寫程式時, 也就要多考慮這些屬性的一致性或特殊性; 不過安慰自己一下, 也有人覺得"經過 oo 化的思考後, 有些專案並沒有細緻到非分開不可, 例如小規模的專案並不一定要分這麼細, 效率反而好".

接下來....嗯, 還是先處理欠別人的兩件事好了.... XD


感覺 oo 化動作跟"正規化"有點像....

1. 觀察
2. (正規化中間多一點技術動作)
3. 解構
4. 定義
5. 再結構



剛剛再想了一下, 在選課系統的資料, 用"人"去當主要的類別的確可以省下比較多空間;
之前社大人員不太能接受某套選課系統的狀況, 則是在於程式直接把這樣的類別設計方式, 呈現在使用者端, 而大多數的使用者習慣了交叉表的呈現方式(類似 Excel ), 就造成了使用者排斥.

Sweet Home 3D 試作

Sweet Home 3D 是一套免費的"室內設計"軟體, 主要用途....

我是拿來試著調整家具空間啦, 因為我是實用取向, 所以我的步驟是:
1. 先量房子的大小, 標出基本空間. (基本上動不了的)
2. 再看有什麼家具, 能移動的範圍(例如要配合插座)
3. 把這些東西在軟體內畫出來.

然後就是開始排列組合, 想像一下使用時的動線與視線, 還有電線, 網路線配線的走法, 畫幾個版本來比較看看.

畫完的樣本....

官方網站: http://www.sweethome3d.com/zh-tw/index.jsp

個人使用 RamDisk 偏好


個人使用 RamDisk 偏好:

1. 免費版, 可接受功能限制(例如可用容量上限), 使用場合限制(通常是限個人用), 但不能接受使用日期限制(如果象徵性標一下就可以接受, 如果會自動計時, 表示會"污染"設定檔或機碼)

2. 個人的 Windows 系統碟已經使用 ewf 來處理還原功能, 所以 RamDisk 只有用在暫存檔, 不太需要回寫功能.

3. 目前用的 OS 有 XP 與 2003 , 都是 32bit , 所以有可能會有 2G 限制, 但許多軟體可能沒有寫到這限制; 另外 XP 32bit 只能使用 3.5G 以下的記憶體, 能否用到 3.5G 以上的空間, 也是一個關鍵.

比較了幾款 RamDisk 之後, 比較適合我的有幾款:
1. VSuite Ramdisk Free Edition (32-bit only): Romex 的前一代, 可以在 XP 32bit 使用到 3.5G 以上的空間, 最多可以開 4G RamDisk (也就是大概電腦插 8G 就會有一點"浪費"了)

2. SoftPerfect RAM Disk: 除了在 XP 32bit 不能使用 3.5G 以上的空間, 以及不能動態使用記憶體外, 功能最完整; 除了 XP 32bit 外, 都可以考慮用這套.

3. ImDisk: 因為是文字介面, 所以設定上較難入手, 配合awealloc 可以在 XP 32bit 支援 3.5G 以上空間, 不過這軟體受限於 OS 的 2G 限制, 所以單一磁碟不能用滿 2G , 反而有支援動態分配, 所以在 XP 32bit 又記憶體比較少(小於 3G 以下)時, 用這套可以節省資源.

簡易比較表: https://docs.google.com/spreadsheet/ccc?key=0Ar10y-TeUk90dF9vbU1EVnFhNWRkV2owVjhuckVEQUE

(2013/01/21: 昨天才比較完, SofiPerfect 今天就給我"出鎚"....在 32bit OS 下, SoftPerfect 有可能出現 C000009A 錯誤, SoftPerfect 已經知道這狀況, 但目前還未完成新版釋出.... :( )

邊洗澡邊想著以前跟社大伙伴討論的事: 為什麼我給她的文件, 都會建目錄, 而且目錄都會在前面標 00~99 ?

其實這是我個人的習慣, 把專案進度列出來, 這樣電腦列目錄時, 會照 00~99 的順序排列, 就大概知道進度, 也可以預先把可能用到的時程建好, 並把參考資料放進去.

只是這樣的作法在文件管理上, 仍有改進之處, 就是每個人的期望進度不同, 而且這樣和其他同事共用時並不一定容易理解, 心中就有個點子, 那是不是電腦系統可以找到這樣的文管系統呢? 後來想想, 以前摸過一點點的 Lotus Notes 好像就有點這樣的概念, 只是現在要找到合用的, 就還要搜尋看看.

請問要如何以DOS command或WScript把子目錄下的檔案,全部複製至指定目錄(但不含目錄結構)

問:

假設有一A目錄,底下分別有A1,A2,A3,A4....的子目錄,而各子目錄底下都有一個檔案,請問要如何把A1,A2,A3,A4....下的檔案全部複製到B目錄,但不建立A1,A2,A3,A4....的目錄結構。

使用xcopy /s是會在B底下同步建立A1,A2,A3,A4....等目錄,故不適用。

擬答1:


  1. @echo off  
  2. set temp_file=4892346928364.txt  
  3. if exist %TEMP%\%temp_file% echo 卡家雖小....  
  4. rem 以上是隨便加的, 以下才是主要功能....  
  5.   
  6. dir /a-d /b /s A目錄 > %temp_file%  
  7. for /F "delims=''" %%f in (%temp_file%) do copy "%%f" B目錄  
  8.   
  9. rem 注意幾點:  
  10. rem 1. 批次檔內, 變數的 % 或 %%  
  11. rem 2. for /F 功能在 XP 或 Server 2003 測試 OK , 其他版本不保證.  
  12. rem 3. for /F 要加上 "delims=''" 避免目錄或檔名有空白造成異常.  
  13. rem 4. 實作時 A目錄 跟 B目錄 要自己改名, 另外要注意同名問題.  
  14. rem 5. 如果當備份用, 要注意時差引起的問題. 例如隔天複製時檔案已經存在的異常.  
  15. rem 6. 這方法需要有暫存區放一個檔.  
  16. rem 7. 只能滿足您題意需要, 無法處理衍生的問題, 例如但不限於: B目錄 空間不足.  
  17. rem 8. 本人無業中, 歡迎捐款, 但請勿拍打或餵食.  
  18.   
  19. set temp_file= 


擬答2:

  1. @for /R A目錄 %%f in (*) do @copy "%%f" B目錄

請問要如何以DOS command或WScript把子目錄下的檔案,全部複製至指定目錄(但不含目錄結構)