ASP 讀取儲存在資料庫欄位中的 PDF 原始範例
範例假設如下:
database name: DEMODB
database user id: DEMOUser
database user id: DEMOPassword
table name:MY_PDF_TABLE
field1 : pdfID - varchar , 20 , primary key
field2: pdf_content - blob , 1M
ODBC Name: DEMODB
以下挑重點解說:
(1) SQL 指令:
set rs = conn.Execute("SELECT PDF_CONTENT FROM MY_PDF_TABLE WHERE pdfID='"+pdfID+"'")
(2)asp 部份:
Response.Buffer =true
Response.Clear()
(3)設定 MIME TYPE
下面這行是黨你的內容是 pdf 時所要設定的 mime type ,
所以當你的檔案是其他的格式 , 請修改對應的 mime type
Response.ContentType="application/pdf"
(4)Browser 開啟方式: 強制另存檔案 或是 線上開啟檔案
(a) 如果你希望回應到前端 browser 是要強制另存檔案 請用下面這一行
'Response.AddHeader "Content-Disposition" , "attachmentfilename="+pdfID+".pdf"
(b) 如果你希望回應到前端 browser 是要線上開啟檔案 請用下面這一行
Response.AddHeader "Content-Disposition" , "inlinefilename="+pdfID+".pdf"
(5)傳回檔案的二進位串流
回應前端資料使用 BinaryWrite 把二進位串流傳回
dim pdfSize
pdfSize = rs("PDF_CONTENT").ActualSize
Response.BinaryWrite rs("PDF_CONTENT").getChunk(pdfSize)
(6)這一篇雖然是叫做儲存在資料庫欄位中的 PDF 原始範例
但是如果你的 DB 中放的是其他格式的檔案內容也一樣可以通用 ,
假設你放的是 JPG
那麼請修改上述的
(3) MIME TYPE , 請改為 jpg 的 MIME TYPE--> image/jpeg
(4) 開啟方式的檔案名稱的副檔名 , 請改為 .jpg
以下是完整程式碼 , 有執行過 , 確認沒有問題的程式碼
測試方式
開啟瀏覽器: 輸入 以下網址
http://localhost/demo1/ShowPDF.asp?pdfID=BBB9998804
(假設: Windows Server , IIS ,
你建立一個虛擬目錄為 demo1 ,
資料庫中有一筆紀錄 pdfID 為 : BBB9998804 )
===ShowPDF.asp===
<%@Language="VBScript"%>
<%
Response.Charset="utf-8"
Response.Expires=0
dim pdfID
dim pdfID1
dim pdfID2
pdfID1= Request.Form("pdfID") 'POST - 由 input html 中 form 傳入參數
pdfID2 =Request.QueryString("pdfID") 'GET - 直接輸入參數在網址列
if (pdfID1 <> "" ) then pdfID=pdfID1
if (pdfID2 <> "" ) then pdfID=pdfID2
'DB Operation
dim conn
dim rs
dim haveData
haveData=false
set conn = Server.CreateObject("ADODB.Connection")
conn.ConnectionString = "Provider=MSDASQL.1;Password=DEMOPassword;Persist Security Info=True;User ID=DEMOUser;Data Source=DEMODB"
conn.Open()
set rs = conn.Execute("SELECT PDF_CONTENT FROM MY_PDF_TABLE WHERE pdfID='"+pdfID+"'")
on error resume next
rs.MoveFirst()
do while NOT rs.EOF
haveData = true
Response.Buffer =true
Response.Clear()
Response.ContentType="application/pdf"
'Response.AddHeader "Content-Disposition" , "attachmentfilename="+pdfID+".pdf"
Response.AddHeader "Content-Disposition" , "inlinefilename="+pdfID+".pdf"
dim pdfSize
pdfSize = rs(PDF_CONTENT").ActualSize
Response.BinaryWrite rs("PDF_CONTENT").getChunk(pdfSize)
rs.MoveNext()
loop
if (NOT haveData) then Response.Write "查無資料
"
conn.Close()
%>
2009年9月27日 星期日
Velocity - 使用備忘錄
Velocity - 使用備忘錄
Velocity 是拿來作模板套版使用 , 你可以把常用的某些內容透過模板定義的方式 , 由它幫你轉換
直接來看主程式
以下範例 , 是假設你要寄送一堆電子帳單給客戶 , 但是有可能電子帳單的內容會調來調去
(User 特別是User 的主管 , 總是會在最後一刻改變心意 , 告訴你 , 某段的內容要換掉某個字 , 甚至是標點符號的全形半形都會要你改)
以下是使用講解 , 只把重點挑出來 , 完整程式碼 , 請看最下方有附上
完成的測試範例包含
(1)TestMainApp1.java
(2)example1.vm
(3)example1_big5.vm
以下針對 TestMainApp1.java 作重點講解
假設你有一個method , 會根據你傳入的資料,去進行套版 , 然後回傳套表之後的結果
public static String getMailVM(Properties pData) throws Exception{
String s1=null;
VelocityEngine ve=new VelocityEngine();
Properties p = new Properties();
//以下是告訴套表程式 , 你的套版檔案放在哪個目錄
p.setProperty(Velocity.FILE_RESOURCE_LOADER_PATH, "/home/demo/wk_myDemoLab/MyDemoVelocity/src");
//p.setProperty("runtime.log", "velocity.log");
ve.init(p);
//這個是放我們傳入的變數內容
VelocityContext context = new VelocityContext(pData);
Template template = null;
//以下是抓取套版檔案 , 且要用哪種編碼方式讀取
//注意 , 如果你的套版檔案存檔時是用UTF8編碼 , 請用UTF8讀取
//注意 , 如果你的套版檔案存檔時是用big5編碼 , 請用Big5讀取
//不然就會造成 , 顯示時有可能只有變數會正常顯示 , 其他部份都是亂碼
// template = ve.getTemplate("example1.vm","UTF8");
template = ve.getTemplate("example1_big5.vm","big5");
StringWriter writer=new StringWriter();
//合併套版及變數 ,
if ( template != null) template.merge(context, writer);
writer.flush();
writer.close();
//將套版結果轉出成字串
s1=writer.toString();
ve=null;
context=null;
template =null;
return s1;
}
public static void main(String[] args) throws Exception {
//設定會給套版使用的變數 , 需要跟套版檔案配對
Properties p1=new Properties();
p1.setProperty("cust_name", "錢多多");
p1.setProperty("bank_name", "大台北郵局");
p1.setProperty("account_num", "200-123-456");
p1.setProperty("yr", "98");
p1.setProperty("mn", "06");
p1.setProperty("dy", "15");
String s1= getMailVM(p1);
System.out.println(s1);
}
}
======執行結果 , 粗體部分是我們傳入的變數=========
親愛的 錢多多 ,您好:
您的帳單將於98年06月15日自您的大台北郵局200-123-456進行扣款。
客戶服務部
您的帳單將於98年06月15日自您的大台北郵局200-123-456進行扣款。
客戶服務部
======================================
前面提到User 或是User的主管總是很多變 , 如果哪一天User 又想要變變花樣
把電子帳單的訊息改變甚至是要由 Text 變成HTML 怎麼辦?
在沒有增加變數的情況下 , 你只要打開 example.vm然後根據User要的 , 重新調整這個套版就可以了
完成不需要打開原始程式碼重新修改編譯....
把會變的部份 , 盡可能抽離出來 , 讓"修改"遠離你的原始程式碼,
以下是完整程式碼範例
=====example1.vm , 注意是要存檔為 UTF8編碼==================
親愛的 $cust_name ,您好:
您的帳單將於$yr年$mn月$dy日自您的$bank_name$account_num進行扣款。
客戶服務部
您的帳單將於$yr年$mn月$dy日自您的$bank_name$account_num進行扣款。
客戶服務部
=========================================================
=====example1_big5.vm , 注意是要存檔為 Big5編碼=============
親愛的 $cust_name ,您好:
您的帳單將於$yr年$mn月$dy日自您的$bank_name$account_num進行扣款。
客戶服務部
您的帳單將於$yr年$mn月$dy日自您的$bank_name$account_num進行扣款。
客戶服務部
==================================================================
TestMainApp1.java
==================================================================
package com.demo.velocity.examples;
import java.io.StringWriter;
import java.util.Properties;
import org.apache.velocity.Template;
import org.apache.velocity.VelocityContext;
import org.apache.velocity.app.Velocity;
import org.apache.velocity.app.VelocityEngine;
public class TestMainApp1 {
public static String getMailVM(Properties pData) throws Exception{
String s1=null;
VelocityEngine ve=new VelocityEngine();
Properties p = new Properties();
p.setProperty(Velocity.FILE_RESOURCE_LOADER_PATH, "/home/demo/wk_myDemoLab/MyDemoVelocity/src");
//p.setProperty("runtime.log", "velocity.log");
ve.init(p);
VelocityContext context = new VelocityContext(pData);
Template template = null;
// template = ve.getTemplate("example1.vm","UTF8");
template = ve.getTemplate("example1_big5.vm","big5");
StringWriter writer=new StringWriter();
if ( template != null) template.merge(context, writer);
writer.flush();
writer.close();
s1=writer.toString();
ve=null;
context=null;
template =null;
return s1;
}
public static void main(String[] args) throws Exception {
Properties p1=new Properties();
p1.setProperty("cust_name", "錢多多");
p1.setProperty("bank_name", "大台北郵局");
p1.setProperty("account_num", "200-123-456");
p1.setProperty("yr", "98");
p1.setProperty("mn", "06");
p1.setProperty("dy", "15");
String s1= getMailVM(p1);
System.out.println(s1);
}
}
企業使用盜版軟體會被抓 , 企業使用軟體的另外選擇
企業使用盜版軟體會被抓 , 企業使用軟體的另外選擇
最近經濟不景氣 , 在台灣有所謂的BSA | 臺灣商業軟體聯盟 , 專門協助一些大廠抓盜版
檢舉是有檢舉獎金的 , 但是有但書 , 就是必須是舉發成功 , 而且"打官司"有勝訴並且有獲得賠償金額....
但是有很多離職員工都是為了出一口氣... , 所以你會發現會去 BSA檢舉的多是離職員工....
然後每年只有要公司被 BSA抓到有盜版 , 都會有人問: BSA 會不會抓個人盜版?
答案是: 目前並不會,
原因是: BSA 的收入來源就是抓盜版 , 並且勝訴的賠償金 ,
所以它的對象都是企業公司行號 ,
至於無利可圖的個人 , 目前還不是它的目標
(詳情參閱最下方的新聞內容)
回過頭問 ,
為什麼要用盜版? 錢太多 , 一定要買正版?
錯 , 明明有替代性軟體可能達到相同功能 , 為何一定要用盜版 ,
軟體除了要花錢買的正版軟體 , 不花錢買的正版的盜版軟體之外(有點繞舌) ,
還有另一種選擇 , 開放原始碼的免費的正版軟體
簡單的對照如下: 商業付費軟體 -> (開放原始碼)/(免費)正版軟體
OS :MS Windows -> Linux (Ubuntu Server / Desktop 或是其他 Linux)
Office :MS Office -> Open Office
壓縮軟體 :WinZip / WinRar -> 7zip
PDF產生軟體 :Adobe Acrobat -> PDFCreator
電子字典 :DrEye -> StarDict
虛擬伺服器 :VMWare Workstation -> VMware Server 2.0
(燒錄軟體 :) ~~~ -> 太多
(影音播放軟體 :) ~~~ -> VLC
很多企業都會花錢買 Windows OS , MS Office , WinZIP , Dr.Eye 等軟體
但是其實這些軟體都有替代軟體可以使用....不是一定要花錢才有用...
有許多商業軟體也會提供給個人開發用的開發版軟體
例如: XXX Express Edition , XXX Personal Edition , ....
但是很奇怪 , 有很多人就是要用盜版 , 明明有的選擇 , 有替代產品 , 替代方案 , 但是就是要用盜版軟體
舉例來說: VMWare Server 版是免費的版本 , 而VMWare Workstation 是需要付費的版本
其實 VMWare Server 版的功能已經能夠滿足需要使用 VM的人大部份的功能 ,
但是就還是有人偏偏要使用盜版的 VMware Workstation ,
別懷疑 , 我們公司的某廠商 , 他們的人員不止用的理直氣壯 , 告訴他們有免費的VMware Server版本可用 , 他們還一副你是白痴的態度....
甚至於開發出來的某些系統有使用到有版權的商業字型 , 他們也是不管公司是否有買 , 就是拿了就要裝 ,
還有像是 Adobe Acrobat , 反正那家廠商就是甚麼東西會侵權 , 就拿甚麼東西來用....
(反正東西是要裝在我們公司環境跑...就看我們公司的某些白爛 , 會不會明明知道侵權 , 還是讓他們裝在上面)
另外像是文件要轉成 PDF 不是只有 Adobe Acrobat 才能使用 ,
明明有Open Source 的 PDF Crator , 或者是利用 Open Office 也可以把文件轉出成 PDF
但是就是有人堅持要用盜版的 Adobe Acrobat , 很奇怪的想法
關於軟體授權還有不少 故事可以說 ,
有空再說....
以下是跟本文說明相關的新聞全部抄錄 , 僅供上文說明參考使用
------------------------------------------------------------
BSA:不景氣 盜版檢舉率飆升2倍
http://www.zdnet.com.tw/news/software/0,2000085678,20138024,00.htm
ZDNet記者蔡宜秀/台北報導 2009/05/05 19:31:02
無薪假、企業縮編與員工的版權意識抬頭導致今(09)年的企業盜版檢舉量較往年高出2倍。
台 灣商業軟體聯盟(BSA)主席宋紅媞今(6)日指出,從去(08)年11月到今(09)年4月短短半年的時間,即累積超過往年一年的企業盜版檢舉案件 數:1千5百筆,由於檢舉案件繁多,BSA目前仍在篩選、過濾檢舉案件的真實性,計畫將於今(09)年6月開始透過合作律師事務所進行查緝。
BSA指出,不景氣有可能促使今(09)年的企業盜版檢舉案件創歷年新高。
從年初至今,BSA每月至少接獲250到300件檢舉案。宋紅媞表示,因為過年的關係,2月的盜版檢舉率多半偏低,但今年卻不是這麼一回事,根據BSA目前的統計資料來看,這與過年前、中、後都有企業在裁員,以及放無薪假有關。
「這一次接獲檢舉的企業清一律是新竹以北的中小企業,而這可能與中南部的中小企業多在這波不景氣時期宣告倒閉有關,」她說。
接獲盜版檢舉案件數雖創新高,但不代表BSA能荷包滿滿。宋紅媞指出,由於每個案件多得費時2到3年才會有最終判決,因此,即便今年接獲的盜版檢舉案件創往年新高,也未必能未BSA帶來立即性收益:高額賠償金。
「更重要的是,BSA在偕同檢警單位查緝涉嫌使用盜版軟體的企業前,多會先發送警告信函給企業,只要企業證明已改過,即不會進行查緝動作。」她說。
根據BSA數據顯示,台灣盜版率目前是40%,僅次於日本(23%)與新加坡(37%),為亞洲第三低。另根據IDC調查報告顯示,若台灣的軟體盜版率能在2012年降低為31%,將帶動國內生產毛額(GDP)高達134億元的挹注。
BSA查盜版 倒楣的多半是小企業
CNET新聞專區:Ina Fried 2007/11/27 13:32:02
商業軟體聯盟(Business Software Alliance)給人的印象,總是宣布軟體盜版率,並公布因使用盜版而和解的案例。但最新調查報告卻發現,BSA最大的資金來源不是因使用盜版軟體被抓的大企業,而是小公司。
美聯社記者Brian Bergstein表示,他的分析報導顯示,BSA的和解金收入中,有90%是取自於小企業。美聯社報導指出,這個代微軟、奧多比(Adobe Systems)等軟體商監督有無盜版行為的組織,去年的和解金進帳高達1,300萬美元。
有趣的是,美聯社報導附帶的一張表格顯示,BSA的收入有81%得自於和解金,13%得自於會員費。這些收益有將近五成用於法律訴訟,另有16%用於公共關係。
另外值得一提的是,BSA原先為鼓勵企業使用正版軟體,而提出一些赦免措施,但現在這些措施已縮減。同時,BSA提高發懸賞抓盜版的獎金,以鼓勵企業員工舉發使用盜版軟體的雇主。
這篇報導質疑,這類獎勵措施鼓勵任職於企業IT部門的員工舉發雇主,並不能解決企業使用正版軟體的問題。報導也質疑,BSA雖然宣稱只把矛頭對準嚴重藐視軟體授權條件的企業,但案例卻顯示,猶他州有一家公司只用兩套未授權的微軟軟體,一樣被抓到。 (唐慧文/譯)
最近經濟不景氣 , 在台灣有所謂的BSA | 臺灣商業軟體聯盟 , 專門協助一些大廠抓盜版
檢舉是有檢舉獎金的 , 但是有但書 , 就是必須是舉發成功 , 而且"打官司"有勝訴並且有獲得賠償金額....
但是有很多離職員工都是為了出一口氣... , 所以你會發現會去 BSA檢舉的多是離職員工....
然後每年只有要公司被 BSA抓到有盜版 , 都會有人問: BSA 會不會抓個人盜版?
答案是: 目前並不會,
原因是: BSA 的收入來源就是抓盜版 , 並且勝訴的賠償金 ,
所以它的對象都是企業公司行號 ,
至於無利可圖的個人 , 目前還不是它的目標
(詳情參閱最下方的新聞內容)
回過頭問 ,
為什麼要用盜版? 錢太多 , 一定要買正版?
錯 , 明明有替代性軟體可能達到相同功能 , 為何一定要用盜版 ,
軟體除了要花錢買的正版軟體 , 不花錢買的正版的盜版軟體之外(有點繞舌) ,
還有另一種選擇 , 開放原始碼的免費的正版軟體
簡單的對照如下: 商業付費軟體 -> (開放原始碼)/(免費)正版軟體
OS :MS Windows -> Linux (Ubuntu Server / Desktop 或是其他 Linux)
Office :MS Office -> Open Office
壓縮軟體 :WinZip / WinRar -> 7zip
PDF產生軟體 :Adobe Acrobat -> PDFCreator
電子字典 :DrEye -> StarDict
虛擬伺服器 :VMWare Workstation -> VMware Server 2.0
(燒錄軟體 :) ~~~ -> 太多
(影音播放軟體 :) ~~~ -> VLC
很多企業都會花錢買 Windows OS , MS Office , WinZIP , Dr.Eye 等軟體
但是其實這些軟體都有替代軟體可以使用....不是一定要花錢才有用...
有許多商業軟體也會提供給個人開發用的開發版軟體
例如: XXX Express Edition , XXX Personal Edition , ....
但是很奇怪 , 有很多人就是要用盜版 , 明明有的選擇 , 有替代產品 , 替代方案 , 但是就是要用盜版軟體
舉例來說: VMWare Server 版是免費的版本 , 而VMWare Workstation 是需要付費的版本
其實 VMWare Server 版的功能已經能夠滿足需要使用 VM的人大部份的功能 ,
但是就還是有人偏偏要使用盜版的 VMware Workstation ,
別懷疑 , 我們公司的某廠商 , 他們的人員不止用的理直氣壯 , 告訴他們有免費的VMware Server版本可用 , 他們還一副你是白痴的態度....
甚至於開發出來的某些系統有使用到有版權的商業字型 , 他們也是不管公司是否有買 , 就是拿了就要裝 ,
還有像是 Adobe Acrobat , 反正那家廠商就是甚麼東西會侵權 , 就拿甚麼東西來用....
(反正東西是要裝在我們公司環境跑...就看我們公司的某些白爛 , 會不會明明知道侵權 , 還是讓他們裝在上面)
另外像是文件要轉成 PDF 不是只有 Adobe Acrobat 才能使用 ,
明明有Open Source 的 PDF Crator , 或者是利用 Open Office 也可以把文件轉出成 PDF
但是就是有人堅持要用盜版的 Adobe Acrobat , 很奇怪的想法
關於軟體授權還有不少 故事可以說 ,
有空再說....
以下是跟本文說明相關的新聞全部抄錄 , 僅供上文說明參考使用
------------------------------------------------------------
BSA:不景氣 盜版檢舉率飆升2倍
http://www.zdnet.com.tw/news/software/0,2000085678,20138024,00.htm
ZDNet記者蔡宜秀/台北報導 2009/05/05 19:31:02
無薪假、企業縮編與員工的版權意識抬頭導致今(09)年的企業盜版檢舉量較往年高出2倍。
台 灣商業軟體聯盟(BSA)主席宋紅媞今(6)日指出,從去(08)年11月到今(09)年4月短短半年的時間,即累積超過往年一年的企業盜版檢舉案件 數:1千5百筆,由於檢舉案件繁多,BSA目前仍在篩選、過濾檢舉案件的真實性,計畫將於今(09)年6月開始透過合作律師事務所進行查緝。
BSA指出,不景氣有可能促使今(09)年的企業盜版檢舉案件創歷年新高。
從年初至今,BSA每月至少接獲250到300件檢舉案。宋紅媞表示,因為過年的關係,2月的盜版檢舉率多半偏低,但今年卻不是這麼一回事,根據BSA目前的統計資料來看,這與過年前、中、後都有企業在裁員,以及放無薪假有關。
「這一次接獲檢舉的企業清一律是新竹以北的中小企業,而這可能與中南部的中小企業多在這波不景氣時期宣告倒閉有關,」她說。
接獲盜版檢舉案件數雖創新高,但不代表BSA能荷包滿滿。宋紅媞指出,由於每個案件多得費時2到3年才會有最終判決,因此,即便今年接獲的盜版檢舉案件創往年新高,也未必能未BSA帶來立即性收益:高額賠償金。
「更重要的是,BSA在偕同檢警單位查緝涉嫌使用盜版軟體的企業前,多會先發送警告信函給企業,只要企業證明已改過,即不會進行查緝動作。」她說。
根據BSA數據顯示,台灣盜版率目前是40%,僅次於日本(23%)與新加坡(37%),為亞洲第三低。另根據IDC調查報告顯示,若台灣的軟體盜版率能在2012年降低為31%,將帶動國內生產毛額(GDP)高達134億元的挹注。
BSA查盜版 倒楣的多半是小企業
CNET新聞專區:Ina Fried 2007/11/27 13:32:02
商業軟體聯盟(Business Software Alliance)給人的印象,總是宣布軟體盜版率,並公布因使用盜版而和解的案例。但最新調查報告卻發現,BSA最大的資金來源不是因使用盜版軟體被抓的大企業,而是小公司。
美聯社記者Brian Bergstein表示,他的分析報導顯示,BSA的和解金收入中,有90%是取自於小企業。美聯社報導指出,這個代微軟、奧多比(Adobe Systems)等軟體商監督有無盜版行為的組織,去年的和解金進帳高達1,300萬美元。
有趣的是,美聯社報導附帶的一張表格顯示,BSA的收入有81%得自於和解金,13%得自於會員費。這些收益有將近五成用於法律訴訟,另有16%用於公共關係。
另外值得一提的是,BSA原先為鼓勵企業使用正版軟體,而提出一些赦免措施,但現在這些措施已縮減。同時,BSA提高發懸賞抓盜版的獎金,以鼓勵企業員工舉發使用盜版軟體的雇主。
這篇報導質疑,這類獎勵措施鼓勵任職於企業IT部門的員工舉發雇主,並不能解決企業使用正版軟體的問題。報導也質疑,BSA雖然宣稱只把矛頭對準嚴重藐視軟體授權條件的企業,但案例卻顯示,猶他州有一家公司只用兩套未授權的微軟軟體,一樣被抓到。 (唐慧文/譯)
網路安全-企業禁用Open Source 軟體的合理性
網路安全-企業禁用Open Source 軟體的合理性
就我個人所知 , 某些企業內部所謂的 rm單位的某些人士 ,(IRM 或是 ORM)
為了要表現自己真的很專業 , 在審查你的軟體系統時 , 或是針對公司的相關軟體政策 ,
都會把 Open Source 的軟體或是相關套件列為 "禁止使用"
不然就是說 , "不然你開出個證明 , 證明這個軟體或是套件是安全的"
實際上 , 這些人根本就是在裝懂 ,
首先, 你買微軟或是IBM 或是 Oracle的軟體進來的時候 ,
你是否有要求 微軟或是IBM 或是 Oracle 針對他們的軟體開具證明 , 去證明軟體或是套件經過測試是安全的?
那一家公司或是企業有要求出具證明的 , 可以出個聲...
第二個 , 你去哪裡要求提供Open Source 的組織或是單位為你開具證明?
或者是有的企業或是公司政策乾脆明定禁止使用 Open Source (軟體? / 套件?)
基本上 , 如果我是稽核人員 , 看到這種政策 , 然後那家公司如果又是使用 Java導向的 ,
我就直接給他記缺失....
因為政策太白痴 ...會這樣訂的 , 保證是完全不懂的人在裝懂....
這麼說好了 , 很多 Java程式都會使用的 log4j , hibernate , jdom ,dom4j 之類的套件 ,
根本就是 Open Source , 但是公司的政策又規範說 , 禁用 Open Source ,
那你說 , 這樣是不是違反政策 , 是不是就是缺失....
所以說會定這種白痴政策的人 , 你能說他不是在裝懂?
假裝好像很懂資訊安全 , 定了一大堆 , 就是公司擺明一定會違反的政策
你說他不懂 , 他又訂的頭頭是道 ,
你說他真懂 , 怎會訂出擺明就過不了的政策
這種人 , 我碰到過 , 真的你要他說出個五四三 , 他會說的天花亂墜 ,
但是明明這種訂法 , 就是亂來 , 公司擺明了百分之百會違反政策 , 他還是在亂訂....
偏偏又是這種人在導 ISO , 擺明了 , 這種人一導入ISO , 就會讓公司記缺失...還導個屁....
我說得是不是真的?
有興趣的人 , 回去翻翻你們自家公司的 ISO政策或是資訊安全相關文件
是否有禁用 Open Source 這一條要求 ,
有的話 , 再看看 , 你們公司是否是使用 Java相關平台在開發系統的 ,
是的話 ,
直接問 , 使用 Java 系統中幾乎一定會使用的 log4j 是否就會讓你的系統跟公司根本性的違反政策 ,
(一般來說 , 要使用違反政策的軟體或是套件 , 必須要有豁免程序 , 就是公司的某單位要提出申請 , 然後安控單位及相關主管要審查 , 然後出具證明 , 表示公司的安控單位同意此項違反公司政策的要求等等)
這時候 , 你就可以去看看 , 系統中使用的 log4j 是否有經過公司的豁免程序同意使用(有無豁免證明)
如果沒有 , 那就是缺失....
(log4j 的使用 , 在Java 平台上 , 幾乎就是常識性的使用 ,
Java開發人員沒人會特別針對這一點去提出疑問 ,
但是 , 對不起 ,
公司某些制定 SDLC , 安控政策的 , 是完全不會寫程式的人在制定 , 訂的頭頭是道 , 執行處理問題重重)
會拿 log4j 出來當樣板 , 只是為了要突顯 ,
很多公司或企業的安控政策對於Open Source 另眼看待或是要求的不合理狀況
(你用了 log4j(Open Source) , 怎麼沒有出具證明 , 證明 log4j 是安全的 ,
Open Source 你找誰去出具證明的? ,
你用微軟的軟體 , 就不用要求微軟出具證明 , 證明他們家的軟體是安全的 , 沒有漏洞的
)
如果有碰到 , 公司內部安控單位的人員 , 拿著禁用 Open Source的政策當作令箭的 ,
請拿 log4j 打的他滿地找牙.....
(看看安控單位的人員如何不懂裝懂的自圓其說...還蠻有趣的 ,
不過最後的結果大部分就是 , 他可以跟你廢話個 2 萬字 , 但是怎麼把問題處理掉 , 他絕對說不出來...只是繞著問題打轉)
這是先前碰到公司內部的所謂安控人員 , 針對系統的要求 , 特別讓我感冒的問題....
(我不認為 Open Source 是 100%安全的 , 但是我並不認可的是 那種完全不懂就裝懂的要求政策)
~備份複製~從奇摩我的部落格~
就我個人所知 , 某些企業內部所謂的 rm單位的某些人士 ,(IRM 或是 ORM)
為了要表現自己真的很專業 , 在審查你的軟體系統時 , 或是針對公司的相關軟體政策 ,
都會把 Open Source 的軟體或是相關套件列為 "禁止使用"
不然就是說 , "不然你開出個證明 , 證明這個軟體或是套件是安全的"
實際上 , 這些人根本就是在裝懂 ,
首先, 你買微軟或是IBM 或是 Oracle的軟體進來的時候 ,
你是否有要求 微軟或是IBM 或是 Oracle 針對他們的軟體開具證明 , 去證明軟體或是套件經過測試是安全的?
那一家公司或是企業有要求出具證明的 , 可以出個聲...
第二個 , 你去哪裡要求提供Open Source 的組織或是單位為你開具證明?
或者是有的企業或是公司政策乾脆明定禁止使用 Open Source (軟體? / 套件?)
基本上 , 如果我是稽核人員 , 看到這種政策 , 然後那家公司如果又是使用 Java導向的 ,
我就直接給他記缺失....
因為政策太白痴 ...會這樣訂的 , 保證是完全不懂的人在裝懂....
這麼說好了 , 很多 Java程式都會使用的 log4j , hibernate , jdom ,dom4j 之類的套件 ,
根本就是 Open Source , 但是公司的政策又規範說 , 禁用 Open Source ,
那你說 , 這樣是不是違反政策 , 是不是就是缺失....
所以說會定這種白痴政策的人 , 你能說他不是在裝懂?
假裝好像很懂資訊安全 , 定了一大堆 , 就是公司擺明一定會違反的政策
你說他不懂 , 他又訂的頭頭是道 ,
你說他真懂 , 怎會訂出擺明就過不了的政策
這種人 , 我碰到過 , 真的你要他說出個五四三 , 他會說的天花亂墜 ,
但是明明這種訂法 , 就是亂來 , 公司擺明了百分之百會違反政策 , 他還是在亂訂....
偏偏又是這種人在導 ISO , 擺明了 , 這種人一導入ISO , 就會讓公司記缺失...還導個屁....
我說得是不是真的?
有興趣的人 , 回去翻翻你們自家公司的 ISO政策或是資訊安全相關文件
是否有禁用 Open Source 這一條要求 ,
有的話 , 再看看 , 你們公司是否是使用 Java相關平台在開發系統的 ,
是的話 ,
直接問 , 使用 Java 系統中幾乎一定會使用的 log4j 是否就會讓你的系統跟公司根本性的違反政策 ,
(一般來說 , 要使用違反政策的軟體或是套件 , 必須要有豁免程序 , 就是公司的某單位要提出申請 , 然後安控單位及相關主管要審查 , 然後出具證明 , 表示公司的安控單位同意此項違反公司政策的要求等等)
這時候 , 你就可以去看看 , 系統中使用的 log4j 是否有經過公司的豁免程序同意使用(有無豁免證明)
如果沒有 , 那就是缺失....
(log4j 的使用 , 在Java 平台上 , 幾乎就是常識性的使用 ,
Java開發人員沒人會特別針對這一點去提出疑問 ,
但是 , 對不起 ,
公司某些制定 SDLC , 安控政策的 , 是完全不會寫程式的人在制定 , 訂的頭頭是道 , 執行處理問題重重)
會拿 log4j 出來當樣板 , 只是為了要突顯 ,
很多公司或企業的安控政策對於Open Source 另眼看待或是要求的不合理狀況
(你用了 log4j(Open Source) , 怎麼沒有出具證明 , 證明 log4j 是安全的 ,
Open Source 你找誰去出具證明的? ,
你用微軟的軟體 , 就不用要求微軟出具證明 , 證明他們家的軟體是安全的 , 沒有漏洞的
)
如果有碰到 , 公司內部安控單位的人員 , 拿著禁用 Open Source的政策當作令箭的 ,
請拿 log4j 打的他滿地找牙.....
(看看安控單位的人員如何不懂裝懂的自圓其說...還蠻有趣的 ,
不過最後的結果大部分就是 , 他可以跟你廢話個 2 萬字 , 但是怎麼把問題處理掉 , 他絕對說不出來...只是繞著問題打轉)
這是先前碰到公司內部的所謂安控人員 , 針對系統的要求 , 特別讓我感冒的問題....
(我不認為 Open Source 是 100%安全的 , 但是我並不認可的是 那種完全不懂就裝懂的要求政策)
~備份複製~從奇摩我的部落格~
2009年8月16日 星期日
當你們跟我們變成我們 , 小心到最後我們都不我們了
當你們跟我們變成我們 , 小心到最後我們都不我們了
在很多書或是文章中都提到 , 與他人溝通要讓對方產生同理心 ,
最好是要使用 "我們" , 而不是 "你們" ;
這原則我不是不知道 , 但是問題是要看用在甚麼時後跟什麼地方 ,
明明就是應該要確認工作跟指派分工 , 不說清楚獎明白 , 還在哪邊 "我們" , "我們"的 ,
到底是誰要負責作?
所以在職場中 , 如果有兩個部門在合作一項事務時 , 各有各的職責並需去負責跟作業時 ,
你的相關文件或是 Email 要怎麼寫?
範例一:
你們XX部門需要負責工作A
我們YY部門需要負責工作B
有些人看了就會說 , 這樣不是違反上面說得 , 不要使用你們 , 而是要用我們的原則嗎?
好吧 , 那就來改吧!!!
範例二 :
我們需要負責工作A , 工作B
收到信件的兩個部門的相關同仁 , 看到 "我們需要負責工作A , 工作B"
XX部門同仁的想法:
(a)我們部門需要連 YY 部門的工作B 也一起作嗎? ,
(b)嗯 , 發信的是 YY部門 , 所以我們指的是 YY 部門 , 所以統統都是 YY部門要負責
YY部門同仁的想法: 我們部門需要連 XX 部門的工作A 也一起作嗎?
(c)我們部門需要連 YY 部門的工作B 也一起作嗎? ,
(d)嗯 , 發信的是 XX部門 , 所以我們指的是 XX 部門 , 所以統統都是 XX部門要負責
要嘛就是
(1)兩個工作都由單一部門全包了 , 一個部門閒閒沒事幹
(2)兩個部門都不作 , 以為對方要負責 , 結果都沒人作
(3)兩個部門都做了全部的工作 , 結果重工 , 兩邊的人力負擔都很重 , 而且有可能還作不好 , 因為做的不是自己部門專長的工作
(4)最佳狀況 , 兩個部門自己知道Email 中的我們要負責的工作有那一個是自己部門要負責的
如果Email通知或是文件中寫的都是"我們" ,
請問有問題發生了 , 是誰要負責? , 是"你們"要負責 , 還是 "我們"要負責? , 還是"大家"要負責?
當你們跟我們變成我們 , 小心到最後我們都不我們了?
當 User 單位給錯計算公式 , IT 照著公式去開發系統 , 到最後算錯錢的時候 ,
是 User 單位要負責 , 還是 IT 單位要負責 ? 是"你們" , 還是"我們" 要負責 ?
那麼 ? 你告訴我 , 在需要大家協同合作 , 跟責任分工的情況下 , 是要用 "你們" , 還是要用 "我們"?
(大部分的狀況下是:
我們有工作要作 , 我們指的是 "我"方 , 另外的"們" , 是不用做事的那一方
當問題發生了 , 我們 , 有問題要處理 , 這時候絕對會變成 "我"方 , 或是"你們"有問題要處理...
在企業環境下 , 如果有人老是拿著"我們"來跟你要求時 , 請小心 ...
就問這麼幾點 , 作好了 , 績效是我們的 , 還是你們的 , 作不好 , 問題是我們的 , 還是你們的....
當 User 拿著錯誤的公式要求 IT 照著錯誤公式寫出系統時 , 結果要收的錢 , 或是要付的錢算錯了 ,
請問 , 當發生問題時 , 公司對外會講甚麼 ? 是 IT 的系統寫錯了 ? 還是 USER的公式給錯了? 所以算錯錢?
這時候 , 80% 都會變成是 IT 的問題 !!! , 不相信去看看大部分的新聞案例 ,
很多時候 , 提出錯誤需求的 User 方多半是把責任撇的一清二楚的 ,....
這時候是我們還是你們....
)
還有很多時候是 User 要系統上線要的十萬火急 , ...
但是 IT 請 User 提供必要的需求說明或是進行確認時 , User 可以拖個 2 , 3 週不回應 ,
直到時間到了 , 又回過頭來怪 IT 延誤....
請問這個時候要怎麼寫 Email ,
原本是要寫 "要請 User 單位儘速確認 xxx 需求文件是否有誤"
變成是要寫 "要請 我們儘速確認 xxx 需求文件是否有誤" , <-- User 收到這樣的Email 會理你才有鬼 , IT發的Email , 講的是"我們" , 當然是 IT要確認
所以當你們跟我們變成我們 , 小心到最後我們都不我們了
當分工與職責劃分不講清楚前 , 濫用同理心原則 , 到處講我們 , 根本是擺爛的態度....
在很多書或是文章中都提到 , 與他人溝通要讓對方產生同理心 ,
最好是要使用 "我們" , 而不是 "你們" ;
這原則我不是不知道 , 但是問題是要看用在甚麼時後跟什麼地方 ,
明明就是應該要確認工作跟指派分工 , 不說清楚獎明白 , 還在哪邊 "我們" , "我們"的 ,
到底是誰要負責作?
水患發生了 , 如果政府內部會議 , 還在強調 , "我們"要搶救災民 , "我們"要調配物資 , "我們"要提供急難救助 ,
"看" ,
你就看看 "我們"是"我們"的那些部門或是哪些單位要負責?
明明就是應該要確認工作跟指派分工 , 不說清楚獎明白 , 還在哪邊 "我們" , "我們"的 ,
到底是誰要負責作?
在很多書或是文章中都提到 , 與他人溝通要讓對方產生同理心 ,
最好是要使用 "我們" , 而不是 "你們" ;
這原則我不是不知道 , 但是問題是要看用在甚麼時後跟什麼地方 ,
明明就是應該要確認工作跟指派分工 , 不說清楚獎明白 , 還在哪邊 "我們" , "我們"的 ,
到底是誰要負責作?
所以在職場中 , 如果有兩個部門在合作一項事務時 , 各有各的職責並需去負責跟作業時 ,
你的相關文件或是 Email 要怎麼寫?
範例一:
你們XX部門需要負責工作A
我們YY部門需要負責工作B
有些人看了就會說 , 這樣不是違反上面說得 , 不要使用你們 , 而是要用我們的原則嗎?
好吧 , 那就來改吧!!!
範例二 :
我們需要負責工作A , 工作B
收到信件的兩個部門的相關同仁 , 看到 "我們需要負責工作A , 工作B"
XX部門同仁的想法:
(a)我們部門需要連 YY 部門的工作B 也一起作嗎? ,
(b)嗯 , 發信的是 YY部門 , 所以我們指的是 YY 部門 , 所以統統都是 YY部門要負責
YY部門同仁的想法: 我們部門需要連 XX 部門的工作A 也一起作嗎?
(c)我們部門需要連 YY 部門的工作B 也一起作嗎? ,
(d)嗯 , 發信的是 XX部門 , 所以我們指的是 XX 部門 , 所以統統都是 XX部門要負責
要嘛就是
(1)兩個工作都由單一部門全包了 , 一個部門閒閒沒事幹
(2)兩個部門都不作 , 以為對方要負責 , 結果都沒人作
(3)兩個部門都做了全部的工作 , 結果重工 , 兩邊的人力負擔都很重 , 而且有可能還作不好 , 因為做的不是自己部門專長的工作
(4)最佳狀況 , 兩個部門自己知道Email 中的我們要負責的工作有那一個是自己部門要負責的
如果Email通知或是文件中寫的都是"我們" ,
請問有問題發生了 , 是誰要負責? , 是"你們"要負責 , 還是 "我們"要負責? , 還是"大家"要負責?
當你們跟我們變成我們 , 小心到最後我們都不我們了?
當 User 單位給錯計算公式 , IT 照著公式去開發系統 , 到最後算錯錢的時候 ,
是 User 單位要負責 , 還是 IT 單位要負責 ? 是"你們" , 還是"我們" 要負責 ?
那麼 ? 你告訴我 , 在需要大家協同合作 , 跟責任分工的情況下 , 是要用 "你們" , 還是要用 "我們"?
(大部分的狀況下是:
我們有工作要作 , 我們指的是 "我"方 , 另外的"們" , 是不用做事的那一方
當問題發生了 , 我們 , 有問題要處理 , 這時候絕對會變成 "我"方 , 或是"你們"有問題要處理...
在企業環境下 , 如果有人老是拿著"我們"來跟你要求時 , 請小心 ...
就問這麼幾點 , 作好了 , 績效是我們的 , 還是你們的 , 作不好 , 問題是我們的 , 還是你們的....
當 User 拿著錯誤的公式要求 IT 照著錯誤公式寫出系統時 , 結果要收的錢 , 或是要付的錢算錯了 ,
請問 , 當發生問題時 , 公司對外會講甚麼 ? 是 IT 的系統寫錯了 ? 還是 USER的公式給錯了? 所以算錯錢?
這時候 , 80% 都會變成是 IT 的問題 !!! , 不相信去看看大部分的新聞案例 ,
很多時候 , 提出錯誤需求的 User 方多半是把責任撇的一清二楚的 ,....
這時候是我們還是你們....
)
還有很多時候是 User 要系統上線要的十萬火急 , ...
但是 IT 請 User 提供必要的需求說明或是進行確認時 , User 可以拖個 2 , 3 週不回應 ,
直到時間到了 , 又回過頭來怪 IT 延誤....
請問這個時候要怎麼寫 Email ,
原本是要寫 "要請 User 單位儘速確認 xxx 需求文件是否有誤"
變成是要寫 "要請 我們儘速確認 xxx 需求文件是否有誤" , <-- User 收到這樣的Email 會理你才有鬼 , IT發的Email , 講的是"我們" , 當然是 IT要確認
所以當你們跟我們變成我們 , 小心到最後我們都不我們了
當分工與職責劃分不講清楚前 , 濫用同理心原則 , 到處講我們 , 根本是擺爛的態度....
在很多書或是文章中都提到 , 與他人溝通要讓對方產生同理心 ,
最好是要使用 "我們" , 而不是 "你們" ;
這原則我不是不知道 , 但是問題是要看用在甚麼時後跟什麼地方 ,
明明就是應該要確認工作跟指派分工 , 不說清楚獎明白 , 還在哪邊 "我們" , "我們"的 ,
到底是誰要負責作?
水患發生了 , 如果政府內部會議 , 還在強調 , "我們"要搶救災民 , "我們"要調配物資 , "我們"要提供急難救助 ,
"看" ,
你就看看 "我們"是"我們"的那些部門或是哪些單位要負責?
明明就是應該要確認工作跟指派分工 , 不說清楚獎明白 , 還在哪邊 "我們" , "我們"的 ,
到底是誰要負責作?
2009年8月5日 星期三
不會煮菜的寫不好程式 , 當不好PM
不會煮菜的寫不好程式 , 當不好PM <--這個標題 , 純屬瞎掰 , 有無道理容後說明
在一些程式設計網站 , 最常見的初學者或是初入職場的人問的問題?
某某程式 , 不知道從何寫起 , 或是不知道從如何寫?
我敢打包票 , 這些人大概不會煮菜 ,
首先 , 你要煮菜前 , 要上菜市場買菜 ,
買菜也分為兩種 , 一種是隨便買亂亂買 , 一種是有目的的買
例如: 你已經盤算好了 , 今天要煮 排骨蘿蔔湯 , 炒高麗菜 , 糖醋魚 , (關於怎麼配菜也是問題)
那你要買 的材料絕對是要煮這三樣菜的材料 , 絕對不會搞個冬瓜回家 , 也不會搞個雞回家...
為什麼 , 你已經決定好的要煮的菜 , 而要煮的菜 , 絕大部分都有固定的食譜 , 也就是有固定的配料跟調味料的樣式 ,
那跟寫程式有甚麼關係?
有的人寫程式是這樣寫的 ,
"我要寫個可以兩人對戰的網路遊戲" ,
"但是我完全不會寫" ,
"希望有人教教我 " ,
"要有範例 ",
" 而且必須是藥用 C# 寫的" ,
"還有 , 我很急 , 就在線上等 , 請趕快回覆"
這樣很了不起的網路問問題的大爺問法 , 看過沒有? , 我看過 n 次...
有點扯遠了 , 這跟煮菜何干 ?
"我要寫個可以兩人對戰的網路遊戲" , <----- 我要煮個兩人吃的菜
"但是我完全不會寫" , <----- 但是我完全不會煮
"希望有人教教我 " , <----- 希望有人教教我
"要有範例 ", <----- 而且要有食譜
" 而且必須是藥用 C# 寫的" , <-----最好要有@XO#
"還有 , 我很急 , 就在線上等 , 請趕快回覆"
如果你就是那個人 , 你要如何回答問題
我要煮個兩人吃的菜 <----- 首先問問題的方法就是錯了 , 要煮甚麼菜沒有說清楚 , 十分發散
如果可以決定要煮甚麼菜了 , 下面的問題就簡單了
例如:要煮佛跳牆
但是我完全不會煮 <----- 我也不會煮佛跳牆
希望有人教教 我 <------- 現在這個時代當然是要上網查 , 有食譜 , 有作法
而且要有食 譜 <-----
剩下的是甚麼? 準備材料 ,
買回來的材料 , 還要一一經過整理清洗 , 看是要切絲 , 切塊 , 切條 , 切丁 , 反正看要煮甚麼菜 ,
相同的材料 , 用在不同的菜上面就要用不同的處理方式 ,
竹筍炒肉絲 , 如果你硬要切塊 , 切丁也不是不行 , 只是口感會不好...
(一 般來說 , 一道菜 , 如果有切絲的 , 那相關材料都是切絲 , 要不就全切丁(EX: 生菜鴿鬆 , ))
又有點跑題了....
但 是萬一 , 碰到一個你不曾用過的材料的時候怎麼處理?
先去學如何處理那個材料 , 那個材料會處理了 , 菜大概也成功一半了
(菜的烹 調方式也是一樣 , 哪裡不會 , 有需要就學 ,)
另外一點就是處理材料的方式 ,
有的人煮菜 , 會把所有材料全部先處理好 , 該洗 , 該泡 , 該削皮 , 該切絲 , 該切丁 , 該醃的 ,
全部在生火之前 , 全部弄好 , 而且會把材料一一放到適當的剛盆 , 調理碗 ,
等到要生火 , 倒油熱鍋時 , 就只需要 , 把事先準備好的材料 , 一一下鍋 , 等火候到了 , 加調味料 , 起鍋 , 菜就煮好了 , 這種煮法 , 就不會手忙腳亂 ,
另一種人是一邊生火熱油 , 一邊才開始想要先煮哪道菜 , 然後才發現 , 材料的主菜還沒洗 , 趕快隨便洗洗 ,
鍋子已經在冒油煙 , 趕快胡亂切切 , 丟下鍋 , 突然發現 , 還有配菜 , 還放在冷凍庫 , 趕快拿出來 ,
還是結冰狀態 , 趕快用刀坎 (砍得動才有鬼) , 不得已 , 只好把冰凍的配料丟下鍋 , 這時主菜因為剛剛沒空翻它 , 已經呈現焦黑狀 , 而附菜 , 還是冷凍狀態 , 只好加大火煮 , 主菜黑焦的更兇 ,
過 了30分鐘 , 附菜是外面焦黑 , 裡面半生不熟 , 而主菜已經剩下黑炭了....
然後呢 , 等到一個小時之後 , 終於整道菜已經熟了(也焦了)
你還要加個調味料起鍋 , 然後把它吃下肚嗎?
有沒有發現 , 煮菜的方式 , 會碰到的狀況 , 也跟我們在開發程式或是在進行專案管理很雷同...
如果你不預作準備 , 就要胡亂去煮 , 失敗的機率絕對很高....
===== 煮菜 vs 專案管理 對照篇======
但是如果你"會煮菜" , 那麼相信你在進行程式開發 , 或是進行專案管理應該也是有條不紊 ...
首 先先決定煮甚菜 (決定範圍 , 主題)
進行材料採買 (決定資源 , 配置資源)
進行材料前處理 , (確認活動)
決定下鍋優先順序 , (進行活動排程)
確認菜都熟了 , (執行專案活動 , 進行品質驗證)
加調 味料 ,
起鍋上桌 (專案完成結案)
===== 煮菜 vs 程式開發 對照篇======
首先先決定煮甚菜 (決定要寫甚麼方面的程式)
進行材料採買 (決定需要用到哪些技術 , 網路通訊 , 壓縮 , 3D , 加密???)
進行材料前處理 , (確認 那些技術要如何使用 , 進行簡單學習確認)
決定下鍋優先順序 , (轉寫煮程式 , 將各個單項技術模組化撰寫測試)
確認菜都熟了 , (將各個模組合併在一起完成主程式)
加調味料 ,
起鍋上桌 (程式完成)
在一些程式設計網站 , 最常見的初學者或是初入職場的人問的問題?
某某程式 , 不知道從何寫起 , 或是不知道從如何寫?
我敢打包票 , 這些人大概不會煮菜 ,
首先 , 你要煮菜前 , 要上菜市場買菜 ,
買菜也分為兩種 , 一種是隨便買亂亂買 , 一種是有目的的買
例如: 你已經盤算好了 , 今天要煮 排骨蘿蔔湯 , 炒高麗菜 , 糖醋魚 , (關於怎麼配菜也是問題)
那你要買 的材料絕對是要煮這三樣菜的材料 , 絕對不會搞個冬瓜回家 , 也不會搞個雞回家...
為什麼 , 你已經決定好的要煮的菜 , 而要煮的菜 , 絕大部分都有固定的食譜 , 也就是有固定的配料跟調味料的樣式 ,
那跟寫程式有甚麼關係?
有的人寫程式是這樣寫的 ,
"我要寫個可以兩人對戰的網路遊戲" ,
"但是我完全不會寫" ,
"希望有人教教我 " ,
"要有範例 ",
" 而且必須是藥用 C# 寫的" ,
"還有 , 我很急 , 就在線上等 , 請趕快回覆"
這樣很了不起的網路問問題的大爺問法 , 看過沒有? , 我看過 n 次...
有點扯遠了 , 這跟煮菜何干 ?
"我要寫個可以兩人對戰的網路遊戲" , <----- 我要煮個兩人吃的菜
"但是我完全不會寫" , <----- 但是我完全不會煮
"希望有人教教我 " , <----- 希望有人教教我
"要有範例 ", <----- 而且要有食譜
" 而且必須是藥用 C# 寫的" , <-----最好要有@XO#
"還有 , 我很急 , 就在線上等 , 請趕快回覆"
如果你就是那個人 , 你要如何回答問題
我要煮個兩人吃的菜 <----- 首先問問題的方法就是錯了 , 要煮甚麼菜沒有說清楚 , 十分發散
如果可以決定要煮甚麼菜了 , 下面的問題就簡單了
例如:要煮佛跳牆
但是我完全不會煮 <----- 我也不會煮佛跳牆
希望有人教教 我 <------- 現在這個時代當然是要上網查 , 有食譜 , 有作法
而且要有食 譜 <-----
剩下的是甚麼? 準備材料 ,
買回來的材料 , 還要一一經過整理清洗 , 看是要切絲 , 切塊 , 切條 , 切丁 , 反正看要煮甚麼菜 ,
相同的材料 , 用在不同的菜上面就要用不同的處理方式 ,
竹筍炒肉絲 , 如果你硬要切塊 , 切丁也不是不行 , 只是口感會不好...
(一 般來說 , 一道菜 , 如果有切絲的 , 那相關材料都是切絲 , 要不就全切丁(EX: 生菜鴿鬆 , ))
又有點跑題了....
但 是萬一 , 碰到一個你不曾用過的材料的時候怎麼處理?
先去學如何處理那個材料 , 那個材料會處理了 , 菜大概也成功一半了
(菜的烹 調方式也是一樣 , 哪裡不會 , 有需要就學 ,)
另外一點就是處理材料的方式 ,
有的人煮菜 , 會把所有材料全部先處理好 , 該洗 , 該泡 , 該削皮 , 該切絲 , 該切丁 , 該醃的 ,
全部在生火之前 , 全部弄好 , 而且會把材料一一放到適當的剛盆 , 調理碗 ,
等到要生火 , 倒油熱鍋時 , 就只需要 , 把事先準備好的材料 , 一一下鍋 , 等火候到了 , 加調味料 , 起鍋 , 菜就煮好了 , 這種煮法 , 就不會手忙腳亂 ,
另一種人是一邊生火熱油 , 一邊才開始想要先煮哪道菜 , 然後才發現 , 材料的主菜還沒洗 , 趕快隨便洗洗 ,
鍋子已經在冒油煙 , 趕快胡亂切切 , 丟下鍋 , 突然發現 , 還有配菜 , 還放在冷凍庫 , 趕快拿出來 ,
還是結冰狀態 , 趕快用刀坎 (砍得動才有鬼) , 不得已 , 只好把冰凍的配料丟下鍋 , 這時主菜因為剛剛沒空翻它 , 已經呈現焦黑狀 , 而附菜 , 還是冷凍狀態 , 只好加大火煮 , 主菜黑焦的更兇 ,
過 了30分鐘 , 附菜是外面焦黑 , 裡面半生不熟 , 而主菜已經剩下黑炭了....
然後呢 , 等到一個小時之後 , 終於整道菜已經熟了(也焦了)
你還要加個調味料起鍋 , 然後把它吃下肚嗎?
有沒有發現 , 煮菜的方式 , 會碰到的狀況 , 也跟我們在開發程式或是在進行專案管理很雷同...
如果你不預作準備 , 就要胡亂去煮 , 失敗的機率絕對很高....
===== 煮菜 vs 專案管理 對照篇======
但是如果你"會煮菜" , 那麼相信你在進行程式開發 , 或是進行專案管理應該也是有條不紊 ...
首 先先決定煮甚菜 (決定範圍 , 主題)
進行材料採買 (決定資源 , 配置資源)
進行材料前處理 , (確認活動)
決定下鍋優先順序 , (進行活動排程)
確認菜都熟了 , (執行專案活動 , 進行品質驗證)
加調 味料 ,
起鍋上桌 (專案完成結案)
===== 煮菜 vs 程式開發 對照篇======
首先先決定煮甚菜 (決定要寫甚麼方面的程式)
進行材料採買 (決定需要用到哪些技術 , 網路通訊 , 壓縮 , 3D , 加密???)
進行材料前處理 , (確認 那些技術要如何使用 , 進行簡單學習確認)
決定下鍋優先順序 , (轉寫煮程式 , 將各個單項技術模組化撰寫測試)
確認菜都熟了 , (將各個模組合併在一起完成主程式)
加調味料 ,
起鍋上桌 (程式完成)
2009年7月21日 星期二
Mediawiki 的錯誤應用方式
Mediawiki 的錯誤應用方式
我對 Mediawiki 的認知:
Mediawiki 眾所周知就是共筆系統 , 是大家可以一起分工寫一篇文章(或是很多很多篇文章)
這樣的系統提供的是一個"活的"文件系統
什 麼是活的文件系統
就是一份文件可以不斷的成長(它可以是某甲創造出來 , 某乙編修 , 某丙審核)
同時它也提供了整個的歷程檢視跟版 本控管 ,
每個修改歷程都被紀錄下來
對於公司來說 , 如果要把Mediawiki 用在系統開發上 ,
就 是可以把手冊(使用者手冊 , 安裝手冊 , XXX手冊)
都透過 Mediawiki 撰寫 ,
甚至於可以是一個主編把某份 文件的大綱訂出來後 ,
讓多個人同時分工去編輯大綱下的某個小節的內容
Mediawiki 也提供針對內容進行全文檢索功能
OK , 接下來 , 要來講錯誤的Mediawiki 應用方式
聽過某間公司的某個單位 , 他們是這樣用Mediawiki的 ,
他們只 是把 Mediawiki 當作一個擺文件的Portal ,
所有的文件都是WORD , PDF 等等 , (一堆專案文件的檔案)
然 後只把 Wiki 本身只是拿來作這些文件的LINK 入口 ...
Oh...天啊 , 真的錯很大 ,... ,
如果要 這樣用 , 不如搞個檔案管理系統 , 例如 MS Share Point Portal Server
這種用法根本就沒有發揮 Mediawiki 的效用 ,...,
真正專案的內容都藏在附件檔案(WORD , EXCEL , PROJECT)檔案中 , 這樣子要 Wiki 做什麼?
共筆系統就是頁面內容就是文件 , 就是你要賦予它生命的地方 , 它可以被很多人擴充 , 被討論 , 被修改 ,
所 以當你要寫專案範圍或是需求範圍時 , 甚至可以請 User 上去寫屬於他們的部份 ,
然後你們這方可以在 User 寫完的同時 , 也針對審閱的看法 , 直接進行修改或是說明審閱的意見 ,
因為它有版本歷程 , 所以每一次修改 , 都像是活的 ,(因為每一頁內容 , 都可以加上一串討論 , 所以線上討論的結果 , 搭配內容 , 就像是每一次會議紀錄 加上 最後的產出)
也因此 , 它可以是最佳的線上即時專案內容的匯總區 , + 討論區 , + 即時的專案規格區...
想想 , 每次當你使用 WORD 寫了第 1 版的專案文件 , 然後 User 看過 , 大家就可以指指點點 , 然後再加上你的主管 , User 的主管 , 主管的主管 , 甚至開發商 , 到最後 WORD 檔可能是第 n 版 , 但是討論的過程不見了 , 被修改的某個條文 , 出自於某個人的要求變更 , 也沒人知道...
最 重要的是文件最好不要同時散給多個人過目 , 否則修改的地方有衝突就糟了 ,
反之 , 使用 Wiki 就是讓每個人都發表意見 , 但是同時 , 每個人修改的地方 , 也都留下歷程 ,
不論是改的好或是改的不好 , 也都可以讓後來者有跡可循
再說 , 很多公司或是企業最喜歡導標準化文件 , 但是常常第一關 ,
同類的文件 , 結構大不相同 , 或者是同一份WORD文件光是要調整結構 , 就要能搞得不是很聽話的WORD
使用 WIKI 則不需要 , 因為它的段落結構就是哪樣 , 只要訂出一個範例的段落結構 ,(或是樣板模板)
其 他人就很容易共用
拜託 , 不要再拿 Mediawiki 來當垃圾掩埋場 ,
(專案文件檔案一大堆 , 當作 link 附件 , 埋進去 , 你會重新找的到 , 然後拿出來用才有鬼 )
每種軟體必有其適用之處 , 有其強項所在 , 也有其弱項所在 ,
拜託別亂用 , 用完之後 , 就說某某軟體很難用...
碰到這種開著數頓吊車吊一盒雞蛋上 5 樓 , 然後還要怪吊車很難用 , 這種人還蠻多的....
也不要開著跑車 , 硬是想要當作送菜大卡車 , 要把 幾十簍的高麗菜運來運去的
冷 完了....
拜託 , Mediawiki 不是垃圾掩埋場 , 不要再亂埋文件了....
(這不是肯得雞....很老掉牙的廣告台詞 了.....)
我對 Mediawiki 的認知:
Mediawiki 眾所周知就是共筆系統 , 是大家可以一起分工寫一篇文章(或是很多很多篇文章)
這樣的系統提供的是一個"活的"文件系統
什 麼是活的文件系統
就是一份文件可以不斷的成長(它可以是某甲創造出來 , 某乙編修 , 某丙審核)
同時它也提供了整個的歷程檢視跟版 本控管 ,
每個修改歷程都被紀錄下來
對於公司來說 , 如果要把Mediawiki 用在系統開發上 ,
就 是可以把手冊(使用者手冊 , 安裝手冊 , XXX手冊)
都透過 Mediawiki 撰寫 ,
甚至於可以是一個主編把某份 文件的大綱訂出來後 ,
讓多個人同時分工去編輯大綱下的某個小節的內容
Mediawiki 也提供針對內容進行全文檢索功能
OK , 接下來 , 要來講錯誤的Mediawiki 應用方式
聽過某間公司的某個單位 , 他們是這樣用Mediawiki的 ,
他們只 是把 Mediawiki 當作一個擺文件的Portal ,
所有的文件都是WORD , PDF 等等 , (一堆專案文件的檔案)
然 後只把 Wiki 本身只是拿來作這些文件的LINK 入口 ...
Oh...天啊 , 真的錯很大 ,... ,
如果要 這樣用 , 不如搞個檔案管理系統 , 例如 MS Share Point Portal Server
這種用法根本就沒有發揮 Mediawiki 的效用 ,...,
真正專案的內容都藏在附件檔案(WORD , EXCEL , PROJECT)檔案中 , 這樣子要 Wiki 做什麼?
共筆系統就是頁面內容就是文件 , 就是你要賦予它生命的地方 , 它可以被很多人擴充 , 被討論 , 被修改 ,
所 以當你要寫專案範圍或是需求範圍時 , 甚至可以請 User 上去寫屬於他們的部份 ,
然後你們這方可以在 User 寫完的同時 , 也針對審閱的看法 , 直接進行修改或是說明審閱的意見 ,
因為它有版本歷程 , 所以每一次修改 , 都像是活的 ,(因為每一頁內容 , 都可以加上一串討論 , 所以線上討論的結果 , 搭配內容 , 就像是每一次會議紀錄 加上 最後的產出)
也因此 , 它可以是最佳的線上即時專案內容的匯總區 , + 討論區 , + 即時的專案規格區...
想想 , 每次當你使用 WORD 寫了第 1 版的專案文件 , 然後 User 看過 , 大家就可以指指點點 , 然後再加上你的主管 , User 的主管 , 主管的主管 , 甚至開發商 , 到最後 WORD 檔可能是第 n 版 , 但是討論的過程不見了 , 被修改的某個條文 , 出自於某個人的要求變更 , 也沒人知道...
最 重要的是文件最好不要同時散給多個人過目 , 否則修改的地方有衝突就糟了 ,
反之 , 使用 Wiki 就是讓每個人都發表意見 , 但是同時 , 每個人修改的地方 , 也都留下歷程 ,
不論是改的好或是改的不好 , 也都可以讓後來者有跡可循
再說 , 很多公司或是企業最喜歡導標準化文件 , 但是常常第一關 ,
同類的文件 , 結構大不相同 , 或者是同一份WORD文件光是要調整結構 , 就要能搞得不是很聽話的WORD
使用 WIKI 則不需要 , 因為它的段落結構就是哪樣 , 只要訂出一個範例的段落結構 ,(或是樣板模板)
其 他人就很容易共用
拜託 , 不要再拿 Mediawiki 來當垃圾掩埋場 ,
(專案文件檔案一大堆 , 當作 link 附件 , 埋進去 , 你會重新找的到 , 然後拿出來用才有鬼 )
每種軟體必有其適用之處 , 有其強項所在 , 也有其弱項所在 ,
拜託別亂用 , 用完之後 , 就說某某軟體很難用...
碰到這種開著數頓吊車吊一盒雞蛋上 5 樓 , 然後還要怪吊車很難用 , 這種人還蠻多的....
也不要開著跑車 , 硬是想要當作送菜大卡車 , 要把 幾十簍的高麗菜運來運去的
冷 完了....
拜託 , Mediawiki 不是垃圾掩埋場 , 不要再亂埋文件了....
(這不是肯得雞....很老掉牙的廣告台詞 了.....)
訂閱:
文章 (Atom)