SQL發展的歷史背景

By // 沒有留言:
Dr. E.F codd是一位IBM程式研究工程師,他在1970年開發出了SQL的語言,但當時甫推出時並沒有立即成為流行的程式語言,而是到了後來1977年Oracle開始將之發揚光大,以下為幾間知名公司開發SQL資料庫的時間表:
  • 1977年  Oracle利用C與RDBMS開發「Mainframe」架構之資料庫。 
  • 1978年  IBM結合Sybase與Informix開發出「Mini Computer」架構之DB2。 
  • 後來因應電腦開始流行,硬體成本逐漸下降,資料庫發展開始朝向單機型「dbase III」,當時著名的資料庫軟體有「Clipper」、「Fox-Pro」等。
  • 後來微軟將Fox-Pro公司買下,卻另外跟Sybase合作開發出該公司專屬的Access資料庫,除了跟SQL標準格格不入外,也有許多自己獨樹一格的設計方式(所以即使現在還存有Access,但已經幾乎沒什麼人使用了)。

  •  

資安:「攻擊」?「防守」

By // 沒有留言:
一般中小企業或小型的新創團隊,
在專注自己領域的研究發展同時,
「資訊安全」這件事情,似乎沒有多少心力可以再被關注。

通常資安的問題似乎只有金融業、科技業、生技業等,有重要核心資產需要保護的高端企業才會被重視,剩下的似乎不是駭客興趣的標的。

在一個屢受駭客拜訪的網站或伺服器裡,
是不是只能夠防禦?你來我擋,你有新招,我有奇招,
似乎無法擺脫注定只能防守的命運。

今天在拜訪一個客戶的公司時,聽聞他們又遭受到駭客攻擊,
偽冒了合法員工的帳號密碼,在他們的系統大搖大擺的逛後院,
他們公司的資安人員似乎也沒什麼能耐,
事發經過許多天,才在一次意外的冰山一角連線中發現這件事情。

當然老闆們的指導就是:「把它BAN掉!」

但...BAN掉然後呢?層出不窮的跳板,不斷地轉址,
你該開的HTTP還是得開,總不能因為被駭了就把你該提供的服務關掉了吧?

除了持續加強自身的防護設備的強度外,
我常在思考,該如何從這些屢遭被「拜訪」的來源中,
可以拼出些什麼樣的特徵,
不敢說可以反擊,但起碼知道被誰打、被什麼打以及可能何時被打,

被駭總是unhappy的,也只能祈禱那間公司的SOC可以強化他們的作為了,
不然被看光光卻絲毫不知,也是挺駭人的。

Good Luck

網頁內容擷取

By // 沒有留言:
資料科學年會
黑客松
Splunk Live


資料科學家三項技能樹:資訊、數學、統計

BIg Data的5V

Volumne
Velocity
Variety
Veracity
Value

Crawler - facebook

Type A 直接從該平台或網站擷取資料
Type B 透過XML, CSV, API方式,以Crawler方式存取資料。

Type A cases: facebook, 104, PChome, Chunghwa Telecom, 591
Type B cases: Search Engine(Goolge, Yahoo)


ASP.NET:控制項「Details View 」

By // 沒有留言:
一、 連接資料庫步驟:

  1. 連接Database, SQL 2012
  2. 選擇資料來源,點選「新資料來源」
  3. 選擇「資料庫」
  4. 點選「新增連接」
  5. 伺服器名稱填入資料庫位置,如192.168.168.130
  6. 輸入資料庫認證方式(Windows或SQL認證)
  7. 選擇要連接的資料表,可於「進階」內選擇是否要新增、刪除、修改選項。
二、 修改文章欄位與樣版設定
  1. 選取「編輯欄位」
  2. 點選欲轉成樣版的欄位,點選「轉為樣版」

四、

「Bind」是雙向繫結,無法撰寫任何程式碼。
在原始碼中,可加入換行指令。
原始:Bind("article")
變更後:Eval("article").ToString().Replace("\r\n","<br>")
可將C#中換行符號\r, \n替換為<br>

五、樣版Data Binding注意地方:


ASP.NET:大型控制項的使用

By // 沒有留言:
CommandArgument: 傳遞參數使用,提供後置程式碼使用。
CommandName: 定義動作function

例如:
CommandName = Page (分頁)
CommandArgument = 3

定義此按鈕為分頁功能,當按下按鈕後即跳到第三頁。


protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
    {
        GridView1.EditIndex = e.NewEditIndex;

    }
    protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
    {
        GridView1.PageIndex = e.NewPageIndex;
    }
    protected void GridView1_SelectedIndexChanging(object sender, GridViewSelectEventArgs e)
    {
        GridView1.SelectedIndex = e.NewSelectedIndex;
    }

透過e的function獲得使用者在前端操作的狀態或數值。


大型控制項四大天王:(Master-Detail 主表明細)
單一 Details View, Form View
列表 Grid View, List View

要在大型控制項中使用樣版的基礎控制項,必須要用FindControl()

TextBox TB = (TextBox) DetailsView1.FindControl("TextBox1");
Calendar CA = (Calendar) DetailsView1.FindControl("Calendar1");

TB.Text = CA.SelectedDate.ToShortDataString();