Coursera – Front-End Web UI Frameworks and Tools – Introduction to Bootstrap

將以下程式碼貼在<head>標籤的下一行,可以達到RWD(Responsive Web Design)的效果

<br /><br /><br /><!-- The above 3 meta tags *must* come first in the head; any other head content must come *after* these tags -->

將以下程式碼貼在<head>的<title>標籤的下一行,可以引用專案內包含的BootstrapCSS檔

<!-- Bootstrap -->

<!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
<!-- [if lt IE 9]>
<a href="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js">https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js</a>
<a href="https://oss.maxcdn.com/respond/1.4.2/respond.min.js">https://oss.maxcdn.com/respond/1.4.2/respond.min.js</a>
<![endif]-->

將以下程式碼貼在</body>的前一行,可以引用專案內包含的jQuery和Bootstrap JavaScript lib。

<!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->
<a href="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js">https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js</a>
<!-- Include all compiled plugins (below), or include individual files as needed -->
<a href="http://js/bootstrap.min.js">http://js/bootstrap.min.js</a>

也可以改用以下程式碼,引用網路上的Bootstrap CSS/JS檔

<a href="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js">https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js</a>
<a href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js">https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js</a>

三種Bootstrap class

  1. container
  2. row
  3. jumbotron

KhanAcademy – Algorithms – Selection sort

要使用selection sort對一個陣列進行排序的步驟:
1. 找出陣列中最小的值,將其和陣列中的第一個數進行交換。
2. 不考慮陣列的第一個數,從陣列剩餘的部分找出最小的值,與陣列的第二個數進行交換。
3. 依此類推,每次都找出次小的值,並與陣列適當位置的值進行交換,重複此步驟直到陣列內容全部排序完畢。

白頭髮可能原因與因應方式

可能原因

  1. 熬夜晚睡
  2. 壓力大
  3. 偏食造成營養不均衡(缺乏蛋白質、植物油、維生素B群、維生素C,及礦物質鋅、磷、鐵、鈣、銅、鈷
    等促進頭髮健康生長的營養素。)
  4. 缺乏黑色素。
  5. 遺傳
  6. 甲狀腺素分泌過多或不及
  7. 吸煙
  8. 情感創傷
  9. 過度的吹風整燙都會造成頭髮的傷害
  10. 晚上洗頭不吹乾頭髮就睡覺

因應方式

  1. 補充微量元素:目前認為可預防白髮或脫髮的食材有黑豆、胡蘿蔔、菠菜、韭菜、香菇、黑木耳和烏骨雞。水果類則有黑棗、柿子、桑椹、桂圓、荔枝等。攝取含有銅質、碘質和蛋白質食物,例如蛋、海帶、菠菜、堅果等。黑色食物含有更高的蛋白質、脂肪、氨基酸、維生素以及人體所必需的鈣、鐵、鋅、硒等礦物質。

* 黑米和黑豆富含維生素B群、微量元素及黑色素;黑芝麻補益肝腎,滋潤五臟,都具有美容烏髮的效果。將黑豆洗乾淨並反覆蒸、曬後,存於瓷瓶內,每天吃 2次,每次6克,嚼後用淡鹽水送下。同時,每天再吃雞蛋1個,大核桃仁2個,長期堅持服用就有療效。
* 內服枸杞子
2. 睡眠充足,11點以前就寢。
3. 規律運動,且特別要著重下肢及肩頸部的活動。
* 按壓「風池穴」(在後頸部兩側,髮際與脊椎外側筋處)
* 按壓腎經的湧泉穴(足底,腳掌底前半凹陷處,從第2、3腳趾趾縫延伸到足跟連線約前三分之一處)。
* 按壓肝經的太衝穴(足大趾、次趾趾縫間,往腳背上推到頂處)。
* 經常按壓幫助頭頸放鬆、氣血順暢的幾個重要穴位,包括太陽穴、風池穴、百會穴(兩耳向上至頭頂中心交會處)、天柱穴(頸部髮際下,大筋外側凹陷處
* 按摩腳踝的太谿穴(屬腎經),用拇指靜按2分鐘,重複3次即可。
4. 飲食均衡,吃綜合維他命。
5. 拔髮可能令頭髮毛囊永久受損,令毛髮不能再次增生,所以並不建議拔除白髮。
6. 遺傳和衰老等原因引起的白頭髮確實通過治療手段改善的效果不明顯,但是對於體內微量元素失調、蛋白質、維生素缺乏、精神因素等引發的白髮,尤其是在年輕人群裡,是可以通過醫療手段來改善的。
只要毛乳頭裡的毛母細胞正常存在,去除某些障礙或致病因素,頭髮仍然可以變黑。
7. 頭部按摩:早晨起床後和臨睡前,用食指與中指在頭皮上畫小圓圈,同時揉搓頭皮。先從額經頭頂到後枕部,再從額部經兩側太陽穴到枕部。每次按摩1~2分鐘,每分鐘來回揉搓30~40次,以後逐漸增加到5~10分鐘。

參考資料

  1. 白髮長不停?5招養出一頭黑髮
  2. 白髮和掉髮並非老年才有的症狀:少年白的六大原因及保養秀髮必學三招
  3. 【泛科學】真的假的!壓力造成白髮?
  4. 白頭髮相關迷思
  5. 洗頭不吹乾成白髮元兇-4招教你白變黑

KhanAcademy – Algorithms – Binary Search

什麼是Linear Search

一一依序檢查集合中的項目,確認是否為要尋找的項目。

什麼是Binary Search

適用於在排序好的集合中找出特定項目。每次猜測的值都為可能範圍的(最大值 + 最小值) / 2,如果數值過大/小,則將最大/小值改為比該猜測值更小/大,使得可能範圍縮小一半,依此規則重複進行猜測,直到猜中為止。此外,若最小值變得比最大值還大,則代表要尋找的項目不在可能範圍之內。

O(n) = ln(n),也就是base-2 logarithm of n。

使用Psuedocode描述演算法

可以避免採用特定程式語言實作演算法時涉及較多與程式語言本身、輸入資料驗證或例外處理等相關,但與演算法本身無關的細節的問題。

本課程的Psuedocode採用英文和Javascript的組合。

讓Asp.net 的Restful Web API可以接收x-www-form-urlencoded格式的request

遇到的問題

在xxxController類別(繼承ApiController)中有一個Post method的API,
1. 使用Postman搭配json格式post資料時,該web API可以被正常觸發、解析Request內容。
2. 使用Postman搭配x-www-form-urlencoded格式post資料時,該web API可以被正常觸發、但無法正常解析Request內容。
3. 使用HTML Form submit資料,該web API可以被正常觸發、但無法正常解析Request內容。

確認HTML Form submit的content-Type格式

使用Fiddler取得本機HTML Form submit到該URL的request內容,確認其 content-Type是x-www-form-urlencoded格式。

解決方法

方法一:Client端的Form調整Request的格式為Json

尚未確認如何實現。友人提及可採用AJAX的方式送出Request,其好處為收到Response時不會和Form一樣有轉頁的動作。

方法二:Server端的API調整為相容格式為x-www-form-urlencoded的Request

在Client端不調整程式的情況下,Server端的API可以進行如下的調整,以正常解析 content-Type為x-www-form-urlencoded或Json的Request。

public void Post(HttpRequestMessage request)
{
switch (request.Content.Headers.ContentType.MediaType)
{
case "application/x-www-form-urlencoded":
var form = request.Content.ReadAsFormDataAsync().Result;
string[] Service = form.GetValues("Service");
serviceInfo = new ServiceInfo()
{
Service = Service != null ? form.GetValues("Service").FirstOrDefault() : string.Empty,
};
break;

case "application/json":
var json = request.Content.ReadAsStringAsync().Result;
serviceInfo = new JavaScriptSerializer().Deserialize<ServiceInfo>(json.ToString());
break;

default:
throw new HttpResponseException(HttpStatusCode.UnsupportedMediaType);
}
}

參考資料

  1. Web API Routing by Content-Type

用postman/Fiddler,Post json格式的測試資料給 web api

PostMan

HTTP method

Post

URL

http://localhost:50271/api/values

Header

Content-Type:application/json

Body

  1. 選擇"raw",再選擇"JSON(application/json)"
  2. 下面方框內容輸入"Alice"或其他要傳送的json格式內容

Fiddler

Post http://localhost:50271/api/values  HTTP/1.1

User-Agent: Fiddler
Host: localhost:50271
Content-Type: application/json

“Alice"