顯示具有 網路 標籤的文章。 顯示所有文章
顯示具有 網路 標籤的文章。 顯示所有文章

2015年11月24日 星期二

Solve the problem of Causing IIS Express Slow Down

[Chinese/中文]
最近我的Visual Studio 2013內建的IIS Express 實在跑太慢了,而且常常回報無服務回應的錯誤。根據此條目,看起來像是logger元件出問題。
為了解決此一問題,我們可以嘗試以下步驟:
1. 用系統管理員權限開啟命令提示字元視窗 (cmd console)
2. 輸入以下指令
  (1) cd  %systemroot%\system32\inetsrv\
  (2) appcmd set config /section:urlCompression /doStaticCompression:True
  (3) appcmd set config /section:urlCompression /doDynamicCompression:False
  (4) appcmd set config /section:httpLogging /dontLog:True

[English]
Recently, my Visual Studio 2013's built-in IIS Express runs too slower and it often reports errors about no service response.
According to the thread, it seems logger component of IISExpress broken.
To fix the problem, we can try the following steps:
1. Open a cmd console with Administrator permission.
2. Type the subsequent commands:
  (1) cd  %systemroot%\system32\inetsrv\
  (2) appcmd set config /section:urlCompression /doStaticCompression:True
  (3) appcmd set config /section:urlCompression /doDynamicCompression:False
  (4) appcmd set config /section:httpLogging /dontLog:True

Reference

  1. Mike Volodarsky, "Getting Start with Appcmd.exe", Microsoft Developer Network. URL: http://www.iis.net/learn/get-started/getting-started-with-iis/getting-started-with-appcmdexe
  2. "VS 2013 Professional - Web Dev Server (IIS Express) is very slow", Microsoft Developer Network. URL: https://social.msdn.microsoft.com/Forums/en-US/8e42baa5-38c7-4fef-b120-b0dd22ba8228/vs-2013-professional-web-dev-server-iis-express-is-very-slow?forum=visualstudiogeneral

2013年9月15日 星期日

Google表單自動寄信給填表人

2013/09/15 updated: 由於sheet的API呼叫跟Form的呼叫API不同,這邊加入Google表單的範例。
2015/02/27 updated: Google Docs的API改版了,筆者已經發布新版的寫法,請移駕至此。

現在網路上教的Google Docs問卷,都只有填表格功能,難道沒有讓使用者填寫完資料後,寄一份資料到使用者信箱的功能嗎?因為我們有時候需要製作收據系統之類的…。

答案是有的!我們只要動幾根手指頭,依照下列步驟,就可以輕易開發出這個功能喔!請依照以下步驟一步一步跟著我做即可。
請注意,如果是直接用Google表單的話,請注意第三步驟有些不同。

2013年8月14日 星期三

[Windows] Port 80被佔用導致Apache無法啟動

我們在Windows上使用AppServ架設網頁服務時,有時候會發現Port 80被佔用,導致無法啟動的狀況。

面對這樣子的窘境,可以參照以下步驟來執行:

  1. 開啟命令提示字元視窗,輸入以下指令:netstat –ano ,找出佔用Port 80的程式PID
  2. 開啟「工作管理員」,到「處理程序」標籤,按上方的「檢視」→「選擇欄位」,把PID選項勾選起來。
  3. 看看是哪一個Service佔用了80 Port? 就處理處理一下吧。

一般而言,最常發生Skype佔用80 Port的狀況,若發生此狀況,請參考這邊的解決辦法。

    倘若發現PID = 4,且來源是NT Kernel佔用的話,請別急著把它砍掉。

    請下達以下指令:

  1. net stop http
  2. Sc config http start= disabled   
    (注意,這一行請完整複製,大小寫與空格都有差異)

完成後,最好重新開機一下,這樣子問題應該就解決了。

參考資源

  1. Getting Apache to run on port 80 on Windows 7
  2. [問題排除] 80PORT被佔用? 如何查出佔用PORT的方法
  3. Skype 佔用了 port 80

2013年7月30日 星期二

CDN如何加速網站讀取速度?

在雲端運算(氾濫)的時代,所有服務都講求加速再加速,傳統的單一伺服器(Server)服務多個用戶端(Client)的方法,在面臨行動網路用戶迅速增多,而造成大量資源索取時,無論是資料的傳輸、服務的回應時間,反而變得「緩不濟急」。

因此,CDN(Content Delivery Network,內容傳遞網路)的技術興起,正是運用雲端運算分散式計算的概念,加速資料的存取與降低伺服器端的負載。

傳統網路服務模式與CDN服務模式(取自Wiki)

我們傳統的網路服務模式如上圖左,所有的用戶端都連線到伺服器上索取資源。但是,當用戶數量成長到百萬數量級時,伺服器的負擔便會開始變得重,回應時間慢,開始發生取不到資源的狀況。而這個現象若發生在向伺服主機業者租賃虛擬主機或是雲端主機的服務提供商(Service Provider, 這邊簡稱SP) 而言,可不是一個好兆頭。因為這些主機商會跟SP依照頻寬、IO數量與CPU運算量計價,代表著錢都還沒進來就開始付出昂貴的費用了,更不用說因為網路服務不穩、回應時間太慢造成客戶流失的慘劇。

因此,CDN的出現變成了這些服務提供商的救星。CDN網路主要是靠著分散在各地的(雲端)主機,就近提供這些服務提供商的用戶資源。

它有著巨量的頻寬與速度,只要服務提供商將主機網址(例如,http://www.example.com) 寄放給CDN,CDN業者的主機便會先到http://www.example.com 抓取靜態的資料(主要是圖檔、影片、一些雜七雜八肥大的線上存取函式庫等等),然後將這些靜態資料派送給這一大群CDN網路內的主機。

因此,過沒多久,所有的CDN主機都有同樣的資料複本(如上圖右),那麼使用者在跟這個SP提供的服務做連線時,在索取圖像、影片等資料時,會「就近」選擇最近的CDN。例如,台灣的使用者,連上某個美國的服務時,會先到新加坡的CDN主機進行存取,由於網路封包路由比較近,速度上會快很多。

這項技術已經被很多雲端服務業者採用,例如FB就是一個例子,它很多照片都是委託給akamaihd.net這個CDN來幫忙做圖床複本,所以大家在載入時便會快很多(但是安全性就…)。

有些小聰明的使用者,或許會問以下問題。

使用者的網路存取是怎麼自動連線CDN的?

有些興趣的使用者會在網路上Google一下做法,但是要有點DNS的知識才看得懂這在做啥?我就我知道的,從實務面來簡單講述一下基本流程:

  1. 身為服務提供者(SP),為了降低頻寬,拿它的服務網址(例如,http://www.example.com) 去跟CDN業者申請一個帳號。
  2. CDN業者給他一個CDN對應domain,假設是cdnexample.cloudcdn.net 好了。
  3. CDN業者使用CDN主機去抓取http://www.example.com 的資料(通常是抓取圖片、影片等)
  4. 業者到自己的註冊網域服務提供者,加入一個CNAME(網域別名),假設是media.example.com ,對應到cdnexample.cloudcdn.net。這樣子大家連到media.example.com時,便會到cdnexample.cloudcdn.net。
  5. 由於CDN業者僅只有抓取靜態資源(如圖片、影片)等,正式的動態產生頁面還是要SP的主機來做。因此,在程式的寫法上,如果是圖片、影片的資源提供,會寫成<img srcf=”media.example.com/01.png” />。如此一來,大家在讀取圖片或是影片時,會藉由media.example.com連到最近的CDN(cdnexample.cloudcdn.net) 取得資源。這樣子存取速度變會大幅提升,真正提供服務的主機其負擔便會降低不少。

再狠一點的話,就是把動態的網頁在生成時,全部做成HTML,這樣子服務的主機只要對CDN提供服務,不用對使用者用戶端提供服務。

這樣子,CDN整體概念可以描述成下面這張圖來理解:

CDN

參考資料

2013年7月14日 星期日

Use the CURL Library in Code::Blocks on Windows Platform

In current days, our college students meet the problem while compiling the CURL library in Code:: Blocks on Windows(i.e. Windows 7) platform.

I noted the process that how to write the sample program with CURL library and compile it successfully. There are some steps which we should do: (This is a simple example run on Windows 7 64bits, Code:: Blocs 12.11 and CURL 7.31.0 )

2012年3月14日 星期三

[雲端運算] Google Cloud Storage 來囉!

Google Cloud Storage 開始試營運囉。什麼是Google Cloud Storage?
Google Cloud Storage提供雲端儲存服務,具備RESTful (REpresentational State Transfer) 功能,根據"REST and RESTfull web service"這篇文章的說明,對RESTful做了以下闡釋:
REST 把軟體視為 "資源"(Resource),以 URL (Uniform Resource Locator) 定位資源所在處。資源的使用者則藉由 HTTP 協定中所定義的"方法"(method)操作資源。REST 所稱的軟體,其實是資料與資料處理方法的包裝,也就是 OOP 中的 "個體"、"物件"。同時在 HTTP 中,也定義了四種基本方法,即 GET, POST, PUT, DELETE。以上四種基本方法大致上對應了四種資料處理動作,即 Create, Read, Update, Delete (CRUD) 
有興趣的讀者,可以自行看看原文解釋。

Google Cloud Storage 服務提供了以下幾種特性:

  1. 快速、高延展性與高可靠度的物件儲存服務
    1. 所有資料皆複製好幾份到Google雲端資料中心
    2. 讀寫同步
    3. 物件大小可達TB等級,支援可恢復性的上傳、下載以及Range-GET。
    4. Domain-scoped bucket命名空間
  2. 簡單、彈性 、具驗證以及共享能力
    1. 支援  OAuth 2.0 驗證
    2. 可驗證的Web下載能力
    3. 個別的、專案等級或是群組等級的控制存取
那麼,要怎麼樣才可以開發Google Cloud Storage呢?你只要:
  1. 擁有Google帳號,並且有存取Cloud Storage的能力
  2. 安裝Python 2.6或2.7
  3. 安裝最新版的GSUtil 工具
付費方式則根據儲存資料大小、網路流量大小、Request(GET, POST, PUT, HEAD)等需求,有不同的計價方式,詳細請參考官網頁面。

而Google官方則提供免費試用版本,直到2012年6月30日以前申請,你可以得到:
  • 5 GB of storage
  • 25 GB of download data (20 GB to Americas and EMEA*; 5 GB to Asia-Pacific)
  • 25 GB of upload data (20 GB to Americas and EMEA*; 5 GB to Asia-Pacific)
  • 30,000 GET, HEAD requests
  • 3,000 PUT, POST, GET bucket**, GET service** requests
這樣看起來,收費方式跟Amazon S3, Windows Azure等差不多耶。不過,因為是全球知名的Google做的,品質應該不差吧。 (它背後有強大的Google App Engine啊XD)

參考資料

2012年2月29日 星期三

URL最大長度

URL最大長度的限制,在標準規範中並無定義。但是,Microsoft Internet Explorer 有規定,需在
2,083個字元內。其他瀏覽器,如Firefox、Chrome、Opera等,至少為65,536個字元。

但Apache Server可接受的字元數為4,000,IIS則為16,384。

因此,若開發人員想要利用URL傳遞參數的話,URL長度盡量在2,000個字元內,會比較安全。


參考資料

  1. URL的最大長度限制
  2. 最大 URL 長度是在 Internet Explorer 中的 2,083 字元

2011年12月19日 星期一

XMPP

XMPP(Extensible Messaging and Presence Protocol,前稱Jabber)是一種以XML為基礎的開放式即時通訊協定,是經由網際網路工程工作小組(IETF)通過的網際網路標準。XMPP因為被Google Talk應用而被廣大網路使用者所接觸。

想要知道相關資料,請參考:

  1. Wikipedia: XMPP
  2. XMPP初探

2011年11月15日 星期二

IDL Programming Language

I've found some tutorial resources:

  1. IDL Tutorial: Programming in IDL (這個好像是天文的..)
  2. IDL TUTORIAL (這個好像是天文的..)
  3. The IDL Astronomy User's Library (這個好像是天文的..)
  4. Coyote's Guide to IDL Programming (這個好像是天文的..)
  5. A GUIDE TO IDL FOR ASTRONOMERS (這個好像是天文的..)
  6. RMI,Java IDL 
  7. Institute for Computational Cosmology: IDL (這個好像是天文的..)

2011年10月31日 星期一

Linux C socket, fork(), select(), and Pthread programming

I've finished my project about Linux socket using select(), fork(), and pthread.
There are some recommended and useful resources:
1. Programming in C UNIX System Calls and Subroutines using C
    It introduces socket, pthread, fork, and RPC(Remote Procedure Call).
2. SAS/C Library Reference: Socket Function Reference
    It provides varied functions, such as select(), htons(), send()...,etc.
3. Programming IP Socket on Linux, Part One
    It introduces how to write socket on Linux platform.
4. Linux Kernel Hacker's Guide
    It provides the methods about how to write your embedded system components, such as device driver.
5. Socket Program Design (Socket程式設計)
    It provides details of writing socket ( in Traditional-Chinese language)

2011年8月15日 星期一

[程式設計] 影像搜尋與處理相關API


1. TinEye API
說明:TinEye 的API目前看起來並沒有支援手機上使用版本。僅支援Python, Perl, Ruby, javascript, .NET等程式語言。
若要用他的手機版,得去使用他開發的PixID。(目前此版本還沒看到相關API)

2. Google Image API
Google Image API
說明:目前看起來只有提供輸入文字以搜尋相關圖片的API。
而Google Image Search 則提供了與TinEye一樣的圖片搜尋服務。不過相關API則是還沒支援,僅支援瀏覽器外掛版本。
Google 也提供了一些Java專用的圖形處理API: Image Java API ,專門替1MB以下圖片進行翻轉、刷淡、擷取縮圖等處理。

2011年8月1日 星期一

[Windows] 已啟用Win7遠端桌面,從家中連回去卻無法連線?

各位朋友好!
筆者最近發現擺在實驗室的Windows 7桌上型主機,從區域網路的任何一台電腦可以連線,但是從宿舍(中華電信)或是女友家中(Cable)無法執行遠端桌面連線,順利連回來。
在東找西找之後,才發現跟Windows 7 遠端桌面連線數有關。

想必大家都有過這段經驗,要結束遠端桌面連線,都會順手直接把遠端桌面視窗關閉。但是此舉可能造成遠端桌面的Session無法順利清除。下一次連線時,因已達連線數目的上限,系統直接拒絕你的連線。

要解決的辦法很簡單,只要依照下面3個步驟即可!
1. 從要被遠端的電腦上,按下Windows 7的開始按鈕,在搜尋視窗內輸入"gpedit.msc",找到gpedit.msc後直接執行。

2. 開啟本機群組原則編輯器後,透過左方目錄樹,到電腦設定→系統管理範本→Windows元件→遠端桌面服務→遠端桌面工作階段主機→連線 資料夾。

3. 右鍵編輯右方子視窗的限制連線數目,把選項設定為啟用,並且把允許的RD連線數目上限改為999999 (無限制上限)

做完上述步驟,筆者相信你的Windows 7電腦已經可以接受遠端桌面連線,真是可喜可賀!^^

Reference


2011年7月9日 星期六

使用SVN 與 Google Docs 之備份機制優劣

筆者以前寫在Google文件內的文章,貼出來給大家奇文共賞。:)
使用SVN 與 Google Docs 之備份機制優劣 

SVN(Subversion Control System)Google Docs
優點
  • 可以自己架設,自由度高。
  • 每一次的修改都可以做記錄。
  • 必須額外裝軟體。
  • 空間可以自己擴充。
  • 免費且不用額外裝設軟體,只需要Browser即可。
  • 操作簡單。
缺點
  • 需知道SVN操作觀念。
  • 萬一SVN Server掛點,後果自行負責。
  • 欠缺完整的備份策略。
  • 空間太小(1GB),若需擴充,則需額外購買。

2011年6月27日 星期一

LDAP入門初探

什麼是LDAP?
LDAP全名為Lightweight Directory Access Protocol。它是一種目錄服務(使用精簡的核心以及TCP/IP協定製作,十分輕量化),可使用 LDAP 記錄各種的人員資訊,像是通訊錄一樣,更進階一點,他也可以拿來做帳號整合,若是在 AP 上都有支援,那麼要使用同一組帳號密碼就不再是難以搞定的事了。

筆者發現有一個很好的LDAP筆記與介紹分享給大家,希望大家對於LDAP這個未知的東西感到畏懼才是!

2011年5月7日 星期六

簡介:雲端環境Log蒐集軟體 ─ Chukwa

簡介
MapReduce支援Log processing。但不幸的是,由於Hadoop是一個叢集式系統,
跨多台機器的大量Log processing讓原本Hadoop的效率變慢,而且HDFS也不能支援
一致性儲存這些Log,只能在各自的子系統中自行維護Log。

Chukwa專案發起的主要目標是對於分散式資料蒐集以及快速的資料處理問題,能夠
提供一個彈性且強力的平台

Chukwa主要分為四個組件:
  1. Agents:在各自機器上作資料的發送。
  2. Collectors :從agent上接收資料並存入儲存體如HDFS、HBase等。
  3. MapReduce jobs :利用MapReduce傳遞並將資料作歸檔 (archive) 。
  4. HICC:Hadoop Infrastructure Care Center,利用web介面展示資料。


更多請參考Chukwa官方網站

2010年6月7日 星期一

雲端運算的MapReduce

其實這個標題算下得不太好!應該是講說雲端系統 Hadoop的MapReduce。

有興趣的讀者可以看一看以下文章:

MapReduce,Hadoop

初探Hadoop開放原始碼平台環境

2008年5月10日 星期六