資訊技術探索

Apache Parquet 深度介紹與說明

資料科學(data science)的興起以及日益增長的大資料的分析需求,傳統以資料列為導向(row-oriented)的儲存方式逐漸顯現其未逮之處,因此以欄位為導向(column-oriented, 或稱 columnar)的儲存方式應運而生,其中 Apache Parquet 是相當知名的 columnar 檔案格式,也能夠搭配 Hive, Spark 等知名的 Apache 開源專案使用。

本文將介紹 Apache Parquet 儲存格式,並且透過實際操作理解 Parquet 格式與其奧妙之處。

Posted on  Jan 18, 2022  in  資訊技術探索  by  Amo Chen  ‐ 7 min read

什麼是 nofollow ?

現代搜尋引擎都是基於 PageRank 演算法而發展出來的。簡單來說, PageRank 大的網站(可以視為知名度大的網站),除了搜尋結果會出現在比較前面之外,其網頁內容中含有的連結也會受益,連帶地拉高被連結網站的 PageRank (運作上就很像是公信力好的大人物,與其有直接關係的人物,應可推斷也是有公信力的大人物)。

也因為這樣的原理,有些 SEO(Search Engine Optimization) 手法會故意到大網站放上自己的網站連結,企圖拉高自己網站的 PageRank ,這種手法也間接造成搜尋引擎在排名上的困擾,因此 Google 在 2005 年提出用 nofollow 解決此一問題。

Posted on  Dec 22, 2018  in  資訊技術探索  by  Amo Chen  ‐ 2 min read

Backend 淺談 database Transaction Isolation Levels

在資料庫管理系統中有 4 個很重要的特性被稱為 ACID(Atomicity, Consistency, Isolation, Durability) ,也就是不可分割性、一致性、隔離性、持久性,這 4 個重要特性是為了確保每個 Transaction 操作結果都是正確、可靠的。

其中 Isolation 是為了防止多個 Transactions 同時執行導致資料不一致的情況,而 Isolation 中又有所謂的 Isolation Levels ,根據 SQL-92 的標準分為 4 種級別:

  1. Repeatable Read
  2. Read Committed
  3. Read Uncommitted
  4. Serializable

Posted on  Sep 30, 2018  in  資訊技術探索  by  Amo Chen  ‐ 3 min read

Backend 淺談 iOS Universal Link

從 iOS 9.2 之後, Apple 推出 Universal Link 作為取代 Deep Link 的 iOS 平台上重導向的技術。如果對 Deep Link / Universal Link 不熟的話,以下這個例子應該可以幫助認識 Deep Link / Universal Link 。

「在 iPhone 的 Safari 裡點擊 Instagram 的連結後,發現 iOS 自動開啟 iPhone 裡的 Instagram APP 」

Deep Link 與 Universal Link 就是用來連結網址與 APP 的技術,不過隨著時間的推移 Deep Link 將會越來越少,因此只要先知道 Universal Link 即可。

Posted on  Jun 21, 2018  in  資訊技術探索  by  Amo Chen  ‐ 2 min read

淺談 MIME data 編碼與解碼 (encode / decode)

一般處理電子郵件時,如果是全部都使用 ASCII 字元的電子郵件倒還相當直覺,一旦遇到中文(Big5)或其他種語系的時候,就一定會遇到郵件標頭(message headers)內的資訊(如標題 / subject)是經過編碼的,如以下例子的 Subject

Delivered-To: [email protected]
From: =?Big5?B?pKS12KrAt3y61qdRwXCmWMRVttKo87d8?=
<[email protected]>
Subject: =?Big5?B?reyo06FBpc2k6cRAseazb7zLpc6n86fWvNahSQ==?=
To: [email protected]
Content-Type: multipart/alternative;
boundary="=_NextPart_gfa16yplmtrdgwhukyrk8"
MIME-Version: 1.0
Reply-To: [email protected]
Date: Wed, 11 Feb 2011 17:23:24 +0800

Posted on  Nov 30, 2017  in  資訊技術探索  by  Amo Chen  ‐ 2 min read

ICAP-RFC3507

ICAP(Internet Content Adaptation Protocol) 是一種被代理伺服器(Proxy)所使用的協定,目前最常見的用途為做為代理伺服器的病毒掃描或是內容過濾,SquidClamav 就是透過實作 ICAP,來達成 Proxy 病毒掃描功能的最好例子。

ICAP 詳細的內容被定義在 RFC 3507 之中,其中最為重要的是 ICAP 具有 2 種模式- Request Modification(Reqmod)Response Modification(Respmod)

以下以代理伺服器及網頁伺服器做為例子,解說 ICAP 運作的方式。

Posted on  May 22, 2017  in  資訊技術探索  by  Amo Chen  ‐ 2 min read

DNS prefetching

對網路程式比較熟悉的人都會知道,當我們在 Browser 輸入網址(或在頁面點一個連結)後,同時也可能發出 DNS 的域名解析請求,將網址的域名轉成 IP 位址後,再向遠端伺服器發出要資料的請求。對於追求高效能網頁系統的人來說,十分可能會想把這段時間也一併省去,以提升整體網頁速度。現在 Browser 也有一種機制能預先將域名先解析好,節省域名解析時間。

一般稱為:

  • DNS prefetching
  • Pre-Resolve DNS

Posted on  May 2, 2016  in  資訊技術探索  by  Amo Chen  ‐ 1 min read