這一章開始介紹基礎元件了。
AppBar 主要是當按下滑鼠右鍵或是由下往上時出現在螢幕下方。用的方法就是在 HTML 裡增加一個 div,id 屬性設為 appBar,data-win-control 屬性設為 WinJS.UI.AppBar 。裡面的按鈕,則是用 button tag,其 data-win-control 屬性為 WinJS.UI.AppBarCommand,要提供預設屬性設置的話,就用 data-win-options 屬性,屬性內容則是 json 格式的字串。
大致像是這樣子:
<div id="appBar" data-win-control="WinJS.UI.AppBar">
<button data-win-control="WinJS.UI.AppBarCommand" data-win-options="{section: 'global', label: 'New Item', icon: 'add'}">
</button>
</div>
AppBar 因為會被許多 HTML 畫面引用到,所以可以寫在獨立的 HTML 裡,然後使用 HtmlControl 來引用,像這樣:
<div data-win-control="WinJS.UI.HtmlControl" data-win-options="{uri: '/html/appbar.html'}"></div>
作者把這種獨立的 HTML 畫面叫做 HTML fragment。
從上面,可以了解到 WinJS 利用 data-win-control 跟 data-win-options 來做一些事情。程式碼不能寫在 appbar 所在的 HTML 裡,要放在共用的 js 裡,像作者是寫在 default.js,正好每個 HTML 畫面都會用到。除此之外,作者也用一個 namespace 來切開。
Flyout 有點像是 pop dialog,一樣是 div tag,data-win-control 是 WinJS.UI.Flyout。裡面用的 tag 就是標準的 form tags,像 label、input、button 之類的。要讓按鈕叫出這個 flyout,AppBarCommand 按鈕的 data-win-options 裡要加一個 flyout 項目,內容填 flyout 的 id 即可。雖然是填 id,但可以放在跟 AppBar 不同的 HTML fragment 裡。程式的話,就是去操作 DOM element,真正的資料存取則是透過 ViewModel 來做。
Page 是 HtmlControl 的進化版,HtmlControl 能控制的事情很少,Page 可以在頁面載入完成時去執行一些事情。大致的做法跟前面都很類似,但 Page 需要寫的 JavaScript 代碼會比較多一點,頁面跟頁面間的切換是用 WinJS.UI.Pages.render()。
一樣可以用 iframe 來顯示額外的頁面,也可以加上 ready() 的事件做一些處理。
最後提到 package.appmanifest,這邊可以定義 permission,表示 app 會使用到哪些 permission。這一章的程式碼不多,因為沒有跟著實作,僅大致摘錄一下看過的部分。
- Feb 21 Thu 2013 11:49
Metro Revealed - Building Windows 8 App Chapter 3
- Feb 18 Mon 2013 14:06
黃河青山
12 月的某天讀到這篇 失敗的總和----讀《黃河青山:黃仁宇回憶錄》,就很衝動的去圖書館找,當然,這是本冷門的書,很快就預約到了。
整本書主要是寫他自己的經歷,從他被裁員,要出萬曆十五年開始寫,然後交代他如何決定投筆從戎,去唸了軍校,加入國民黨軍隊,參與了駐印軍、擔任駐日使館官員、到東北,最後到了美國唸書、教書、出書的經歷。整本書是以他寫書時間點的事情與他過去的經歷交雜在一起,相當的冗長,這樣的經歷帶給他新的看歷史觀點,在當時,大部分人看歷史、研究歷史都是以片面的觀點來看,也就是橫切一段時間點,然後去做研究。他認為這樣不是不好,只是很多大事件的起因,可能並不是在那個時間點,而是起因於更早之前的時間點。這樣的看法,導致他出了「萬曆十五年」與「中國大歷史」這兩本書;他認為從萬曆十五年之後,就已經決定了中國在二十世紀初的命運,直到毛跟蔣,一個由下而上的改革,一個由上而下的領導抗戰,到了文革之後,勉強算是改革成功,所以以這本書來討論萬曆十五年發生了什麼事情;而「中國大歷史」則是採取一個宏觀的角度來看歷史,不強分朝代來看歷史。
說真的,雖然黃仁宇對中國共產黨的論點沒錯,他個人其實也不偏頗,但從行間字裡看的出來,他認為目前中國共產黨的大方向看起來是對的,中國已經不完全是以馬克思思想為主的共產主義了。不過他離開了中國大陸好多年,也許可以看到中國的大方向沒錯,但是卻忽略了中國共產黨內部的問題與政府對周遭政權的處理。而且雖然經濟上已經是修正過的馬克思理論,但現在也有受到美國經濟影響的傾向。
書裡還有提到 70~80 年代美國學校的變化,我認為跟現在臺灣的教育處境相似,老師由學生來打分數,評價若不好,可能就不續聘,導致老師以較不嚴格的評分標準來吸引學生修課,或者是開主題能吸引學生的課程,以便讓自己能繼續被學校聘用,導致教學品質與學生素質下降。不知道後來美國的學校又是如何做出改變,來解決這種問題。
這本書是相當有意思的一本書,在邊看的時候,記下不少書裡的東西跟自己的想法。
p.92:「在官僚管理下的龐大農業社會中,軍隊的人力、賦稅、軍務和補給都來自集結的村落,無從測試組織中無數的漏洞和欠缺的關聯性。軍隊既已處於沒有競爭能力之下,更不曾進行軍事操演或演習,藉以熟悉戰爭的記憶,因為高高在上的文官認為,實際的作戰並不會發生。明代的軍隊本質上是支龐大的警力,由文官來率領。」
p.93:「基本上來說,直到本世紀,中國一直近似只有農業的社會,大體上是由官僚來管理。國民黨在政府組織上層創造出現代的外觀,但底子裡全國仍是村落的結合體,管理方式不可能比明朝或清朝更企業化。」
這個評論時間點大約是在二十世紀中後期,針對的對象是二十世紀初,然而現在還是一樣嗎?
從最近的新聞看來,國民黨的思維還是停留在民國初期的情況,仍然較少去貼近基層,在當時,導致了長期在農村進行改革的共產黨的崛起,現在呢?如果是為了經濟,無法對抗資方的壓力,那麼是不是也應該有其他的變通措施?
p.220 「每個政黨都有其黑暗面,被該黨本身極盡淡化,以為不過是危機時不可避免的小缺失,但敵對陣營卻認定是蓄意的惡毒。」
p.227 這一頁把二十世紀初中國的問題講的很清楚,太多問題令人困擾,盤根錯結,沒有一套經濟法則可以適用於所有區域的所有部門。
p.279:「身為歷史學家的我相信,蔣介石和毛澤東都是偉人。他們都獨樹一格,用自己的方式去處理歷史加諸他們身上的最艱困處境,從而展現本身非凡的長才。他們的勇氣雖然方式不一,但都代表中國的心智和力量。但這類型的勇氣都是一面倒的固執,毫無吸引我們的個人性格和特質。...傳記作家作家可以簡單形容他們:一個僵硬死板,另一個掩不住土氣...」
對蔣介石的評論,我認為相當客觀,作者不認為蔣是個獨裁者,相反的,蔣是個能容納異己並且能迅速做出決定的人,很多時候,其實他是不得不做出這些決定,只是在旁人眼中看來,這就是獨裁。
p.319~p.320:「農業官僚管理的種種後果早在兩、三百年前就已出現,而且是中國現代化的障礙。同樣的情況持續到二十世紀...。中央集權的政府決定直接從個別的自耕農徵稅時,為了本身的利益,必須維持納稅人口的數量。政府唯一要做的事,就是將法律機制納入傳統的架構中。地方官掌理的訴訟案基本上是家族間的小糾紛,地方習俗和社會價值大大減弱財產權的觀念。」
p.321:「毛澤東的崛起不在於他能力過人,而是因為他有辦法掌握自然經濟運動的趨勢。」
p.398:「每6年農作物會嚴重欠收,每十二年會出現大飢饉。在民國成立前,為期2117年的歷代記載中,就包含1621起洪水和1392起旱災...。在帝制時期,平均每年發生1.42起天災。...比較大的國家援助饑民時比較有效,自然有更多民眾願意追隨,國家勢力也可能愈來愈強大。...」
氣候真的是一個影響中國經濟很大的因素。
p.512: 「公眾利益的務實議題無法就事論事加以辯論,而必須轉換成道德議題和抽象概念,這就顯示上層結構和下層結構之間欠缺必須的機制。」
我覺得台灣好像也走到這一步了,政府、立法委員、人民欠缺了必需的溝通機制,都在唱不同的調。
p.576:「我們仍然活在昨日的觀念和有限的視野中。我們常把事實和自己的價值、偏好混為一談。主要的困難在於,我們所檢討的事件大於我們的經驗範圍。」
p.578:「除非一個國家可以在數字上進行管理,否則就不可能在今日的世界上佔有一席之地。」
p.584:「歷史證實,國民黨在大陸之所以失利,並不在於其邪惡企圖;在台灣島上化危機為轉機,也不能歸功於夢幻般的道德。在這兩種情況下,技術是更決定性的因素。就本質來說,在濱海省份實施貨幣管理,要比在廣土眾民的情況下容易的多。...耕者有其田法案強迫富裕的地主進入農業以外的其他經濟部門...美國十多年的大額援助更增添經濟成長的動力...台灣善加整合大陸所不具備的有利條件,才能有如此出色的表現。...當前的問題在於外來的競爭。高科技產業面臨和日本的艱困競爭...低階的勞力也不再算是廉價,必須面臨其他開發中國家的挑戰。...」
譯後記:「看到黃仁宇用英文寫的回憶錄,第一個反應是翻譯這本書的人好可憐。外國人寫中國東西也就罷了,翻譯成中文就算洋腔洋調,反正是外國人嘛。但中國人用英文寫回憶錄就不一樣了,中文翻譯流不流暢,一看便知。...沒想到,後來我就成為這個可憐的人。」
- Feb 07 Thu 2013 16:01
Metro Revealed - Building Windows 8 App Chapter 1~2
主要是在用了 Windows 8 以後,想瞭解 App 怎麼開發,所以就來翻一翻,主要是想快速的瞭解,就不仔細翻閱了。
第一章主要是介紹,沒有告訴你該安裝什麼。我查了一下,就是要裝 Visual Studio 2012 就對了,練習的話,可以下載 Visual studio express 2012 for Windows 8。這本書主要是用 HTML5 + JavaScript + CSS 來寫,所以第一章的後面列出一個空專案的代碼。
第2章就開始寫 code,這一章主要是介紹 UI 與資料的結合。Metro 主要的框架就是走 MVC 或 MVVC,HTML 就是 View,那 JavaScript 就是用來寫 Model 跟 Controller 的。針對 JavaScript 的部分,微軟提出 WinJS.Namespace 來解決 namespace pollution 的問題。然後 HTML 裡 script tag 的順序很重要,default.js 就是放在最後就對了。資料最好都用 WinJS.Binding.as() 或 WinJS.Binding.List(),就是要 WinJS.Binding 開頭的,要不然可能會遇到 readonly 的情況。有寫過 Backbone / jQuery 的開發者對這個應該不會陌生,主要的差別就是很多功能都是要透過呼叫 WinJS 來完成,介面就是 HTML 跟 Template。另外也有導入 Promise Pattern 來解決 Async 的問題,以確保能順利執行 JavaScript 程式。
參考資料:
- Getting started with Windows Store apps (Windows)
- Create your first Windows Store app using JavaScript (Windows)
- Feb 06 Wed 2013 17:46
Android Apps with Eclipse Chapter 10 - Movie Player using HTML and JavaScript
這一章是 SL4A 的進階篇,會要擴充 Facades 以便存取 Media store,這剛巧是原來 SL4A 沒有的部分。(現在的版本不知道是否已經新增了?)
因為要擴充 Facades,當然就要先下載 SL4A 的原始碼。SL4A 原始碼的 repository 是用 mercurial,這邊就順便介紹了 Mercurial 與 Mercurial Eclipse plugin。
要建立一個新專案,這是依照前一章的介紹,拿 template project 來改。跟上一章有不一樣的地方是依存性,原本 template project 裡有一份 SL4A framework 的 library,這邊把依存性移除,改連結到剛剛 checkout 下來的 SL4A 原始碼專案(有好幾個)。接著再建立 MovieFacade 專案,同樣也是給 template project 使用。設定完成以後,就是開始寫 code:MovieFacade 的 code、JavaScript 的 code 跟 python 的 code。
自己編譯的好處是可以再去縮減 app 的大小,拿掉不必要的 library。但是感覺這樣做複雜度提高蠻多的,在除錯上可能也會搞死人。
Appendix A 提到測試的部分。介紹了各項術語跟可以使用的類別,然後是建立 UnitTest Project 的方法,要進行 UnitTest 測試時,是選 Run As > Android JUnit Test。除了 Unit Test 以外,也可以做 coverage 測試跟 Stress test (Monkey test,adb shell monkey -p package_name -v 500)。
- Feb 05 Tue 2013 17:23
Android Apps with Eclipse Chapter 9 - Android scripting with Eclipse
SL4A 主要有3個部分:Script Interpreters、Android RPC client 跟 Facades。Script Interpreters 就是語言的翻譯器,用來翻譯電腦語言。然後每個執行的 script 就是一個 RPC client ,會與 SL4A 的主體,也就是 RPC server 做連結、溝通。Facades 則是提供出來的 API,在 script 裡面只能呼叫這些 API 來控制手機。
SL4A 的安裝相當簡單,就是到 http://code.google.com/p/android-scripting/ 下載 apk,然後以 adb install 或是檔案總管點選該 apk 來安裝。安裝以後,你得再另外下載 interpreter 的 apk 才行,在 SL4A 的介面裡可以選。
要編寫 script,可以用互動主控台(Interactive console)或是編輯器(Script Editor),就我個人使用過的經驗,如果手機不夠快,在手機上面寫程式還蠻痛苦的,要查一些 API 也很麻煩。也可以在 PC 上編寫,然後以 adb push 把檔案放到 /sdcard/sl4a/scripts 下,再用 adb shell am start -a com.googlecode.android_scripting.action.LAUNCH_BACKGROUND_SCRIPT -n com.googlecode.android_scripting/.activity.ScriptingLayerServiceLauncher -e com.googlecode.android_scripting.extra.SCRIPT_PATH /sdcard/sl4a/scripts/your_script.py 來在背景執行該 script;前景執行的話,則改用 adb shell am start -a com.googlecode.android_scripting.action.LAUNCH_FOREGROUND_SCRIPT -n com.googlecode.android_scripting/.activity.ScriptingLayerServiceLauncher -e com.googlecode.android_scripting.extra.SCRIPT_PATH /sdcard/sl4a/scripts/your_script.py 。
另外一個方法是用 RPC,SL4A 預設不接受外來的連線,所以得要點選 "Start server",選 Public 或 Private 以後就啟動了,啟動以後,會有 icon 出現在 status bar (notification)上。接著,要做 port forwarding,因為 server 只 listen loopback device,所以要下 adb forward tcp:9999 tcp:51323 (51323 在下拉 status bar 以後可以看到)。以 python 為例,程式裡就得用 droid=android.Android(('localhost', 9999))。
使用者的介面可以用內建的 dialog API 去問,或者是 Android Layout XML,或者是 Web-Based UI,Web-Based UI 就是用 HTML+CSS+JavaScript,但這邊的處理還蠻麻煩的,HTML裡要寫 javascript,然後你的 script 要使用 while loop 去等使用者回應。
那,可以把這些包成 apk 嗎?這樣就不用讓使用者裝好幾個 apk。答案是可以,要先下載 http://android-scripting.googlecode.com/hg/android/script_for_android_template.zip ,匯入到 eclipse 以後,修改 package name,把 script 檔案放到 res/raw 路徑下,然後把 Script class 裡的 ID 改為 R.raw.your_script 就可以了。
- Feb 04 Mon 2013 16:57
Android Apps Security Chapter 10 - Malware and Spyware
閱畢日期:2013/2/4
我個人覺得蠻跳 tone 的,開始介紹起 Malware 跟 Spyware,提到 app 有可能被下載來修改過以後,重新上傳到 market 上面,於是手機就被入侵了。
Case study #1:是一個透過 WAP push message 入侵的 Malware,當點擊訊息上的連結時,就會下載並要求安裝應用程式,安裝以後,手機就被入侵了。
Case study #2:Android app - FlexiSPY,可以做到捕捉 SMS/e-mail、log、提供 GPS 位置、竊聽、竊聽電話跟 SIM card 更換通知等等。作者針對這個 app 稍稍分析了裡面的運作手法跟流程。
至此,歷時約3個月,看完了這本書,對於開發比較有幫助的部分是在前面幾章,主要是側重於如何保護資料、觀念實作與登入的部分。
- Feb 02 Sat 2013 08:44
夫婦的覺悟
閱畢日期:2013/2/1
因為在網站上看到推薦,就找來看了。整本書很好翻,翻到一半的時候,我發現這本書的面向其實是女人,而且比較適合日本的女人來看。不過把男女的身份互相掉換,其實是一樣的道理。該退讓的時候就要退讓,不要吝惜關心,平日不要吝惜簡單問候,去思考自己喜歡怎麼樣被人對待,就這樣對待對方。很多事情也不一定要彼此勉強,如果對方不喜歡,不用一起連袂參加也無所謂。如果真的不適合,先不要考慮離婚,或許可以考慮相互調整彼此的生活習性,避免正面衝突,像是分居、分房等等或許之後在重新認識之後,會重新攜手。作者也建議了蠻多事情,像是培養興趣,儘量跟朋友保持聯絡、旅行等等,可以降低退休對自己帶來的衝擊。
作者對於日本男人的描寫,是比較內斂,不知道怎麼關心家庭,喜歡妻子以母親的身份來照顧自己的人,在吵架時,也不知道發生了什麼事情,到了退休,說真的,有時候我就像是這樣子的人。總之,還不錯,可以翻翻看,了解別人的案例,然後刺激一下自己去思考自己的情況。
結婚,真的就是要對有另外一個人一起度過餘生的事情有所覺悟才是。
- Jan 30 Wed 2013 16:01
Android Apps Security Chapter 9 - Publishing and Selling your apps
先介紹上架 Google Play 的申請步驟,然後告訴你,要上架收費,就要面對被人破解的可能。
接著就乾脆教你怎麼破解(反組譯)了,在下載 app 以後,這些 apk 可以在裝置上的 /data/app 下找到,要看這些 apk 並複製,只要下載 Android SDK,用 adb 就可以辦到。adb pull 拿到 apk 以後,就可以用 unzip/winzip 打開,apk 其實就只是個 zip 檔。解開以後,會看到 .dex 檔案,你可以用 smali/baksmali、dexdump(Android SDK 內建)、dedexer、dex2jar搭配Java Decompiler 等工具來看人家寫的程式,修改以後再編譯放回去。
Android License Verification Library (現在看到的名字叫做 Google play Licensing library)是 Google 提供的 library ,可以讓開發者使用來保護自己的心血。使用這個 library 需要搭配 Google API,下載以後,會在 Google SDK 目錄下,使用前先把整個目錄 (<Android SDK>\extras\google\market_licensing\library) 複製出來。建立 Library Project ,Package Name 要命名為 com.android.vending.licensing,好了以後,要去 project properties 裡勾選 "Is Library",然後匯入剛剛複製出來的目錄,這樣就好了。
然後在 app 專案裡,去 project properties 找,選加入 Library Project,這個就是選剛剛建立的 Library。程式裡,最主要就是要去寫一個類別繼承 LicenseCheckerCallback ,然後用 LicenseChecker.checkAccess 帶 callback 類別去做檢查。
// 大致的程式碼
// Create an Obfuscator and a Policy
AESObfuscator obf = new AESObfuscator(SALT, getPackageName(), identity);
ServerManagedPolicy policy = new ServerManagedPolicy(ctx, obf);
// Create the LicenseChecker
LicenseChecker lCheck = new LicenseChecker(ctx, policy, PUB_KEY);
// Do the license check
lcb = new LicCallBack();
lCheck.checkAccess(lcb);
AndroidManifest.xml 要加上 <uses-permission android:name = "com.android.vending.CHECK_LICENSE">
程式上架以後,把 PUB_KEY 填到 https://market.android.com/publish/Home 網站上。
這樣做了以後還是有可能被破解,作者建議可以修改 LVL 的 source code ,這也是作者剛剛建議要複製出來的緣故。
最後是介紹 proguard,在 proguard.cfg 填寫要混淆哪些類別就可以,Android SDK 會負責整個過程。
最後的最後,作者整理該注意的事情以及步驟。
- Jan 26 Sat 2013 21:46
兩種資本主義之戰
閱畢日期:2013/1/26
- 德日:強調集體成果,注重鵝做精神,關心長遠利益。
- 英美:崇尚個人成功,追逐眼前金融利潤。自雷根、柴契爾夫人開始,以縮減社會福利、降稅的措施來促進經濟發展。
p.52 傳統上,購併發生時,特別是當收購方為某家大公司,購併目的在於擴大經營規模,購併對象的股票會暫時下挫。如今,購併目的顯然為了分塊轉賣,股票頓時上揚。
上漲或下跌也並非一定,得視雙方的情況而定。
p.54 購併有時只是管理人為了博名的手段
這倒是,蠻多收購之後並未見到有任何助益,甚至整個變差的。
p.59 對員工一貫穩定的管理是競爭能力的先決條件。
p.60 洛克斐勒:「有錢人不能只做一個有錢人」
保險也分為阿爾卑斯型及海洋型,阿爾卑斯型由合作社起來,海洋型則是由航海而起。現在汽機車強制險即由阿爾卑斯型而來,而現在保險公司推陳出新的多樣產品則比較像是由海洋型而來,但這還是要看保險公司的淵源而定。
p.70 阿爾卑斯型口號:「只要於企業有利,必要惠澤顧客」海洋型口號:「顧客對好壞自有足夠的判斷能力」
p.182 對未來的投資才是創造財富的泉源。
這句話說的真是很好,不僅僅是對財富的投資,也要對自己做出投資,才能確保自己的未來。
這本書寫到後面有點過於吹捧德日的資本主義了,不過德日資本主義的某些措施相對於英美資本主義起來,是真的較好的,像是鼓勵儲蓄、工會等等。以工會而言,在台灣實施的話,我認為需要更進一步提升人民的素質,多認識工會所應擔負的責任,才能進一步參與工會,才能逐步提升工會的能力,讓工會能提高其影響力。另外,僱主也會認識到工會對於資方的輔助,像是可以一同擔負教育培訓等。
書裡講的,到了今日,很明顯的是慢慢偏向英美的資本主義,最近美國又再一波 QE,未來不知道還有什麼未爆彈。
- Jan 25 Fri 2013 14:45
Android Apps Security Chapter 8 - Concepts in Action Part 2
- Jan 24 Thu 2013 16:43
Android Apps Security Chapter 7 - Security in the Enterprise
這一章是討論企業內部的,一般企業內的應用程式在開發 client-server 時,client 端程式往往會內嵌資料庫的敏感資訊,直接跟資料庫連線,作者在此舉了一個例子,說明這樣不好的原因。第一個不好的原因是嵌了敏感資訊,第二個不好的,是企業內部複雜的網路環境,有可能跨網段,或是牽扯到 VPN 等等的,這都會造成程式的困難。作者建議了,提供一個中間層會是一個比較好的解,這個中間層就是走 HTTP/HTTPS ,這樣就可以避掉 VPN ...等等的麻煩,再者,也可統一以 SSL 來加密。那中間層的格式就是用 XML 或 JSON ,這兩種格式在 Android 裡都有提供函式庫來幫忙解譯,不用另外找函式庫。
目前應該很少人直接連線到資料庫吧~
- Jan 21 Mon 2013 18:00
告白
閱畢日期:2013/1/21
看完以後才明白,所謂的告白,是整個案件裡每個人的告白。
故事因為之前有電影上映的關係,大致上已經知道了。就是森口老師的女兒在游泳池溺死,結果卻發現並非失足死亡,而是有兩個同學殺害。第一章是以森口老師的立場來說故事,第二章是美月同學在說故事,第三章是上村同學,第四章跟第五章是上村同學的家人,第六章是渡邊同學自己的告白以及最後的大結局。美月同學算是無端被牽扯進來的,跟渡邊同學一起被當作霸凌的對象,之後甚至慘死,真的是太冤枉。渡邊跟上村的確就是凶手,可是出發點完全又不同。
故事故意分別用不同的人來表現出各自的內心在想什麼,相當的好看,不過我第五章跟第六章隔了兩個多月,今天才一口氣把第六章看完。雖然每個人的想法都有他自己的出發點,但是森口老師未免也太過於深沈,相信喪女的打擊真的是很大。說真的,要是我,我可能永遠也不會原諒害死我小孩的人。
不知道電影拍的是不是跟小說一樣,接下來或許該是找電影來看看的時候?
- Jan 18 Fri 2013 17:59
隨意搜尋
閱畢日期:2013/1/18
這本書算是資訊類書籍裡講少見的講人文、社會的書籍。作者想說的是可尋性對人類的重要性,探討了從網路開始以來的種種變化。我是因為有人提到這本書才去找來看的,不過,並不是很有興趣,所以看的速度很慢。
Ambient Findability
p.8 如果未能搭配有效使用資訊的能力,只有豐富的資訊本身,並無法建立消息更靈通的公民社會。
p.9 Make site findable
p.10 許多使用者並非從首頁開始瀏覽,有許多使用者永遠不會看到首頁
p.12 差勁的資訊架構、對 Web 標準的弱相容性、沒有 metadata、內容在資料庫裡
綜觀以上,網站開發應該注重使用者需要些什麼,並且加強可尋性與相容性,讓使用者能容易找到所需要的資訊。
p.17 提到 labyrinth 跟 maze 的不同,實際上常提到的 maze 裏面通常有 labyrinth 的成份在。
p.41 James Mark Baldwin 有機體要在生態的挑戰中存活下來,必須依靠培養出的知識和技巧(通常要透過學習),這可能導向物競天擇,為不需要即具有自發知識的有機體帶來優勢。這機制稱為鮑德曼效應,認為有機體可以學習形塑環境,終致改變演化路徑。
p.46 Calvin Mooers 如果顧客覺得擁有資訊比不擁有資訊更痛苦、更麻煩,那麼人們寧願不使用資訊檢索系統。p.47 該把焦點從「建立豐富的資訊」轉移到「解決注意力貧乏」
反過來就是解決了注意力貧乏的問題,方能吸收資訊。
p.49 資訊由它對終端使用者的價值所定義。
p.51 資訊檢索起源於語言與意義的本質。核心是 relevance,適切的結果就是使用者感興趣且對使用者有用的結果。「精確度」和「涵蓋度」是基本的效用量測方式。
p.52 精確度=存取出的適切數量/總存取數量 涵蓋度=存取出的適切數量/總適切數量
p.59 最省事原則(Principle of Least Effort) 每個人都會採取的行動方針是少做一點事來把事情完成。
Marcia Bates 的 berrypicking 可以說是當代 Web 搜尋行為的基礎
後面因為還書時間快到了,幾乎是草草帶過,沒有記下什麼東西。
要買書可以到博客來網路書局
- Jan 09 Wed 2013 14:09
Android Apps Security Chapter 6 - Talking to Web apps
一開始丟了一個關於登入的程式碼,問說你覺得這樣寫有什麼問題。
接著開始實作,首先是架設 Web server,作者直接拿 Google appengine 來當 Web Server,原因是方便架設、有限度的免費而且寫起來很快,這邊花了不少篇幅來介紹。
中間介紹了一小段關於 Web Service、REST的歷史以及 Web Application 架構,然後帶了一段 Android app + Web app 登入的範例。
介紹 OWASP 、2010 年的十大漏洞以及十大建議,前一陣子有去上過恆逸的的課程,有介紹到 2011 年的十大漏洞,這兩年的十大漏洞都差不多。
回頭介紹認證的機制,作者一直強調 SSL 很好,但不能全然相信,不管是 trusted CA 或是自己簽發的 CA,因為還是有所謂的 MitM 存在,所以作者又介紹了 MitM (其實跟維基百科上的很相似)。
在 OAuth 之前,如果網站要使用其他網站服務,勢必要在該網站提供帳號跟密碼,而這可能會有風險。OAuth 則是改為在要使用其他網站服務時,導向到服務提供者的網站去,讓使用者決定要不要提供服務給這個網站,允許的話,才可以。網站拿到的是一個 token,而非帳號跟密碼。這邊有一張 OAuth 整個過程的圖片,解釋的很清楚。
最後是介紹 Challenge/Response with Cryptography,這有點類似 OAuth,傳送的資料以密碼來加密,相關的範例會在第八章出現。
- Jan 08 Tue 2013 09:52
進擊的巨人
我是因為看到有動畫化的消息才注意到這個漫畫,去維基百科上看,發現故事設定很有意思。
這漫畫還在連載中,一開始就是一個末世紀的設定,人類只存在於城牆之內,而牆的外面則充斥著會吃人的巨人,巨人並不是為了生存而吃人,只是單純的吃人。故事從艾連、米卡莎、阿爾敏三人開始,三人加入軍隊是因為幾年前的巨人入侵事故,而立志加入調查軍團,想要找出巨人的秘密,進而打倒,米卡莎只是單純的要保護艾連。在完成訓練之後,巨人再次襲擊城牆,艾連為了救人,而被巨人吞進去,此時卻發生了變化,艾連變成了巨人,但他沒有吃人,反而是開始跟入侵的巨人對打。
一場大戰以後,艾連恢復了原狀,但卻被同儕懷疑,阿爾敏利用自己的聰明才智與米卡莎說服了軍團長,救了艾連。接下來就是交代與探討巨人這件事情,透過艾連,調查軍團發現巨人可能是人類所變化而成的,可是為什麼會這樣子,卻沒辦法說明。艾連聲稱自己的父親交給他一把鑰匙,只要回到他老家,用鑰匙打開地下室就可能可以知道真像。之後又發生了女巨人事件,女巨人其實是加入調查軍團的新兵所變成,這場騷動在女巨人快逃出時,城牆破裂露出巨人與女巨人被拉下來整個硬化而結束。城牆露出巨人的事件,顯示出跟教團相關,而堅固的牆則是由巨人所變成。
接下來的事件,又顯示出可能與教團試圖保護的血緣有關係,第3個會變成巨人的新兵也投入戰鬥,真的是愈來愈讓人想看下去。漫畫的畫風不怎麼樣,算是很寫實的那種,不過賣點就是在故事本身,所以把焦點放在故事上就好。