2017-01-26

Data Backup and Redundancy

接觸 IT 之後才發現很多人對 redundancy 跟 backup 之間的分野是混淆的,這種疑問就像前幾年 high availability 很熱門的時候,不少人都認為都已經有 data redundancy 了,還需要作備份嗎?

這種疑問通常忽略了萬一系統寫入異常或中毒的狀況,單純的 data redundancy 並沒辦法取回之前的資料狀態。

這篇文章寫的還不錯,提出了幾點:

  • Data redundancy and backups are both intended to prevent data loss, but the two technologies are quite different.
  • Data redundancy often takes the form of a synchronized copy of the organization’s data.
  • Data redundancy can help to prevent service outages.
  • Backups, on the other hand, are copies of data and other resources.
  • Backups are also a good choice for granular recovery (recovering a single file, email message and so on). In contrast, redundant systems are better suited to situations in which the organization needs to keep critical systems online and cannot tolerate a long recovery period.
相關於 backup 與 redundancy 的字眼分別有:
  • Backup: recovery, point-in-time, versioning, mean time to recovery (MTTR), revert, offline
  • Redundancy: failover, hot spare, online synchronizing, performance, reliability
Availability 是從使用者的角度出發,無論系統是忙碌或是失效,對使用者都是 not availability,所以 availability 這字眼會同時涵蓋 backup 與 redundancy。

2016-07-10

Remote Debug .NET Web Application with Visual Studio

.NET platform 的 remote debug 機制不像 Java 內建於 JVM,.NET CLR 並無內建此機制,需要在受測端安裝 agent (remote tools),控制端只要安裝 Visual Studio 即可。從 client/server 架構來看:

  • Server (受測端):需執行 Remote Debugging Monitor (msvsmon.exe) 與 IIS worker process (w3wp.exe)
  • Client (控制端):執行 Visual Studio
Note:
  • 基本上是 client/server 架構,client 執行 Visual Studio,server 要裝對應版本的 remote tools,預設 port 是 4016;版本不匹配可能會找不到或直接顯示版本錯誤的訊息。
  • 針對 web application 的 remote debug 要 Visual Studio 2005 以後的版本,2012 開始 Community Edition 也支援 remote debug。
  • Attach 的 process 是 IIS worker process (w3wp.exe),因為一台機器上可能同時跑多個 workers,確認 target process 可以參考 [1]
  • Authentication 只支援 Windows 認證,需要在 server side 與 client side 都建立相同的帳號;不然就是不認證 (no authentication; since Visual Studio 2012)。當使用 Windows 認證時,client side 需以 debugging 用的帳號執行 Visual Studio。
see also:

2013-08-14

Google Calendar 可用色碼

Google Calendar 可以使用一個 URL 方便把單一日曆直接顯示在瀏覽器上,URL 的結構上開頭是 https://www.google.com/calendar/embed 後面可以串的參數有:

  • src
  • colors
  • mode: 檢視的時間範圍,可以選 month, week, 或 agenda
  • controls
  • title
  • firstDay
  • bgcolor

另外我們也可以把多個 Calendar ID 放在 src 串接起來,同時顯示在一個頁面上,個別日曆的顏色可以自由指定,方便區分事件來自不同日曆。不過並不是任意顏色都可以用,這邊是 Google Calendar 在 embedded mode 可以用在 URL 上的色碼代號,使用時要把 # 作 URL encoding,換成 %23

#060D5E #0D7813 #0F4B38 #113F47 #125A12 #182C57 #1B887A
#23164E #28754E #29527A #2952A3 #2F6213 #2F6309 #333333
#42104A #4A716C #4E5D6C #5229A3 #528800 #5A6986 #5B123B
#5C1158 #5F6B02 #691426 #6B3304 #6E6E41 #705770 #711616
#754916 #7A367A #853104 #856508 #865A5A #88880E #8C500B
#8C500B #8D6F47 #A32929 #AB8B00 #B1365F #B1440E #BE6D00
參考資料:http://docs.servicerocket.com/display/AtlassianPlugins/google-calendar

2012-09-13

打造Google Maps

今天看到則有趣的報導,"How Google Builds Its Maps",裡頭訪問了Google Maps的資深產品經理,Manik Gupta;訪談中沒提及內部資訊架構,內容主要包括資料處理的困難,以及如何運用電腦視覺技術的進步,在地圖上獲取更多資訊。列一下看到的重點:

  • 在手機時代販售廣告,Google發現使用者所在位置將與搜尋時使用的關鍵字同等重要。
  • 地圖可視為線上世界跟真實世界的橋樑,最佳情況是將所有真實世界的資訊1:1地標註在線上地圖系統中。
  • Google Maps除了一開始外購的基本衛星圖,更多資訊來自於街景車;一方面可以校正路線與衛星圖的偏差,另一方面可利用電腦視覺將交通號誌等標示擷取出來。未來希望可以達到geo-understanding。
  • 針對路線與衛星圖的校正問題,Google花費了非常多的人力!訪談中Nick Volmar示範了如何操作,這確實不是一般沒有雄厚資本的公司能辦到的。
  • 另外Google也利用了廣大的使用群產生的自訂地圖,擷取使用者的地理標註, 豐富 Google Maps的資訊。

最後一點,我認為現在的資訊量增長太快,光靠單一公司或政府單位去維護絕對不夠,想要保持資訊的正確性,最好的方式就是開放給大家使用,把錯誤回報或新增資訊的功能做好。相對於開發團隊間的知識分享也是,專案系統藍圖或各類領域知識,最好都能放到內部資訊平台,方便大家檢視與提供意見。

如果對於打造一個像Google Maps的系統有興趣的話,我倒覺得OpenGeoOpen Geospatial Consortium有不少東西可以看。

2012-09-11

初探Google Web Toolkit (GWT)

一直很佩服能夠在JavaScript海中優游自得,把web前端搞得又漂亮,程式碼又整齊的人!可惜更多時候看到的是苦命的前端工程師,在一堆前端函式庫裡,可能特定版本有bug,或不同函式庫間互相衝突,加上長官跟客戶不斷要求新功能... 在混亂的程式碼中剪剪貼貼,東試西試;一整個變成抓不到root cause的苦差事。

這幾天稍微認識了一下GWT (Google Web Toolkit),簡單來說目的就是希望能減輕前端工程師的負擔,讓Javascript程式碼能夠更簡潔,更結構化;以目前常見的趨勢大概有:

  1. 使用JavaScript函式庫,工程師仍然寫JavaScript程式碼;最有名的當然是jQuery,其他像是ZK/Ext JS/YUI則包括CSS的部分。
  2. 使用另一種語言,透過新的語言強迫程式碼更加模組化,最後再編譯成標準的JavaScript;GWT就屬於此類。
  3. 使用web MVC frameworks提供的tag libraries 。

原則上GWT可以讓工程師寫Java程式碼,最後編譯成JavaScript。基本上Dart也是類似的目的;不過就程式碼編譯的角度來看,Dart提供了自己的front-end,Dart language,不再使用Java,除此還:

  1. 提供自有的binary format,可以在Dart VM上直接執行,省去解析JavaScript程式碼的過程。
  2. 同時可以編寫client side跟server side的程式。

目前看來最大的問題在於如何結合既有JavaScript函式庫。

See also:
  1. GWT: Pros and Cons
  2. Google Web Toolkit: GWT, Closure, NaCl, Dart & JS
  3. Dart: A Language for Structured Web Programming

CSS也是前端工程師常要遇到的領域,同樣也不少新的工具幫忙寫出更有結構的CSS。
  1. Sass
  2. Compass
對JavaScript有熱愛的可以順手做一下這個小測驗:JavaScript Scope Quiz

nVIDIA Tegra 3

這個月(2012.9)一堆平板陸續上市,我自己比較關注的包括iPad mini, Nexus 7, Kindle Fire HD, 跟MediaPad 7 Lite;主要原因在於:目前10吋的平板,單手拿起來當電子書讀,手腕還是很快就支撐不住,多數時候還是得依賴支架放在桌上使用。

今天湊巧看到一則新聞,有關nVIDIA對於Amazon宣稱Kindle Fire HD用的TI OMAP 4470可以秒殺Tegra 3的駁斥,感覺挺有意思的。長期以來,手機跟平板這塊最常聽到的處理器廠商應該是Qualcomm,其次才是nVIDIA跟TI,Apple跟Samsung也滿常聽到的,不過多是用在自家產品(華為海思也有類似的傾向),翻了一下wikipedia才知道ST-Erricson也有出這類SoC產品。

對於nVIDIA的印象大多是圖形處理器很強,軟體驅動程式寫得很好,一直不太清楚在mobile端產品的弱項在哪,趁這機會Google了一下大致上有兩點:

  1. BSP (Board Support Package)較弱。
  2. 無線通訊方面大多已經是Qualcomm的專利。
至於這次的處理器之爭,Tegra 3是qual-core 1.2GHz,OMAP 4470是dual-core 1.5GHz,新聞裡有一段:
This is usually TI's strategy with their chips - they use an older core, but they raise the clock speed.
此外,Tegra 3除了輸在時脈上,記憶體頻寬也是個問題:
As for the memory bandwidth, one of the biggest drawbacks of the Tegra 3 is that it still doesn’t support dual-channel memory, which means memory bandwidth is a bottleneck in some cases.
看來nVIDIA想要憑藉圖形晶片的優勢,進攻mobile市場逼退PowerVR,還是很辛苦的。

See also:


先前看過一系列關於x86跟ARM處理器的故事也滿值得看看的。

2009-01-12

Android: An Overview

最近開始看了一些有關Android的材料,希望能在理頭找到一些研究的相關材料。從2007年底推出到現在,也有相當時日了,網路上介紹架構的文章並不難找,我大致上從mmdays.com的Android 淺探(一)Android 淺探(二)這兩篇入手去看;這兩篇出步說明了Google另外實作一個變形的Java VM, Dalvik的緣故,以及底層爲什麼選擇了Linux.

大致上整理出幾項要點:
  1. 根據統計,Java是現在最常被使用的程式語言,使用Java VM可以方便程式人員進入開發各種applications. (see also: TIOBE Programming Community Index)
  2. VM該提供哪些系統函式庫,在標準的Java VM裡,控制權掌握在SUN手上。
  3. Dalvik針對執行時所需的memory footprint作最佳化。
  4. Linux可方便硬體廠商開發驅動,但opensource並不見得與公司利益相符,所以需要修該原先的kernel把device driver拉到userspace去執行。
  5. 針對kernel層的IPC, Power Management, RAM console等作了最佳化。
大致上看來Android提出的架構跟framework比起其他像是openmoko或OpenMax都來得完整,往後如果有其他聯盟想提類似的open mobile platform很難不把這些也都列入考量。(採用RIA, Rich Interactivce Application, 而不考量general purposed的架構像是 JavaFX, Flex等可能是另一種思考方向。)

相關值得看看的連結還有:

2009-01-08

[轉錄] 回收塑膠袋 省錢又環保

回收塑膠袋 省錢又環保

來源:http://tw.news.yahoo.com/article/url/d/a/080920/78/168vk.html
自由 更新日期:2008/09/20 04:09

〔記者林秀姿/台北報導〕棄用的塑膠袋也可以回收變黃金,環保局昨天再次針對廢塑膠袋回收加強宣導,民眾只要把不用的塑膠袋簡單清潔後,即可交由北市環保局清潔隊進行資源回收。

環保局科長蘇芳慧表示,民眾做回收時,塑膠袋切勿混雜垃圾、回收物或油脂等固體雜物,若曾盛裝豆漿、飲料、蔬果等垃圾袋,只要稍加沖洗,把水分倒掉瀝淨就可回收,而且不分顏色,各類塑膠袋都可回收,不過,蘇芳慧提醒,吸管或金屬光澤等複合材質的食品包裝塑膠袋,如餅乾、泡麵與清潔補充包的包裝塑膠袋,則不能當作塑膠袋回收。

環保局統計,北市自89年7月開始回收塑膠袋後,目前每月平均回收量已達160公噸,而回收的廢棄塑膠袋則變賣給回收工廠做成塑膠粒,再製成塑膠花盆、黑色塑膠袋等再生品,回收塑膠袋既環保又可節省民眾垃圾費支出。

2006-09-16

3M無痕防水系列

家裡的毛巾架因為年代久遠掉下來了,先前固定的方式是在磁磚牆上鑽孔、旋入螺絲釘;久了磁磚壁的裂縫漸漸擴大,螺絲釘自然就咬不住而脫落。剛好想說3M無痕系列裡頭有個浴室防水用的,結果搜尋了一下:有掛鉤牙、刷架、置物架,就是偏偏沒有毛巾架這類東西(我需要的毛巾架大概要有兩呎以上的長度,不是那種只掛一條毛巾的)。而且意外地搜尋到這篇blog「3M無痕掛鉤」 ,原來浴室裡的膠條要先用吹風機稍微加熱才黏得牢!

那篇blog的作者還另外舉了很多公司客服的例子,看完覺得現在消費者都滿多聞的(當然不是我這種);不過真的利害的除了發現問題,應該是那家公司的主管,在有限資源下解決這麼多瑣碎的問題。