跳到主要內容

文章

目前顯示的是 2012的文章

ASP.Net 同時使用Windows Authentication與Forms Authentication混合認證 Mixed Security

最近主管又指示我寫一個小東西,要讓員工及有往來客戶都能使用。所以網站建置在內網,再利用Proxy導向對外網站。但是內網(Intranet)的用戶仍然要使用Windows Authentication(aka NTLM Authentication),而且Windows認證不支援proxy,除非使用Windows 的特殊proxy或丟到Windows Azure雲端。 這下我就很頭大了,只有找到Asp.net 1.1 的  Mixing Forms and Windows Security in ASP.NET ,下載安裝還是不成功。幸好帥學弟之前就有Survey過,提供兩個參考資料: How I Made Windows Authentication and Forms Authentication Work Together  與   Combining Windows Authentication with Forms Authentication in ASP.NET  。

兩個Windows下的email client

因為敝公司許多人仍然在使用具有2GB限制的Outlook Express,由於他們大都又想要非標準的分割郵件功能,因此 我之前推薦Windows Live Mail 。 但是新版Windows Live Mail的介面改得像Outlook而不像Outlook Express,所以許多使用者向我反應說用不習慣。雖然可以調整成類似Outlook Express的顯示,但功能表變成 Ribbon 仍然讓許多LKK望之卻步,所以我抽空找了兩個MIC的eMail Client。 第一個是 DreamMail ,介面挺漂亮的,功能也不少,只可惜似乎不能設定為IMAP。 第二個是我10年前就試過的 FoxMail ,功能很完整,支援IMAP、IMAPS、SMTP、SMTPS,行事曆,通訊錄它叫地址簿,是另一個獨立視窗,但不影響功能完整性。它也具備信件範本功能,可以自訂美美的信紙。 特別一提,具有在本機保留備份的功能,覺得信件很重要的人,可以放心選用IMAP。 我個人目前是推薦FoxMail啦。這兩個軟件都有官方綠色版,沒有安裝權限的一般使用者也能下載使用,非常方便。

在Windows使用Guard-LiveReload

基本上,在Windows使用Guard-LiveReload,就是要用命令列,所以沒興趣的人就可以跳過。

在ASP.Net防止 SQL Injection和參數篡改

看到保哥貼了 Hacking is child's play ,就算有參數化SQL指令,但使用者輸入資料(例如討論區等)還是很難防,所以小小做個筆記。

P2V或V2V轉換後VM再起不能解決方法之Windows篇

通常P2V或V2V程式類似TrueImage Enterprise,具備異機還原功能,也就是會把Windows的HAL重置。 但是並不是所有的程式都有此功能,例如免費的 Disk2vhd ,我轉換了幾台線上機器還沒有能開成功的 :( 所以在此要公布我私藏的秘技,幫助有需要的MIS朋友。

如何在Windows XP/2003啟用SMP/多核心/多CPU

這不是新東西了,只是因為朋友換電腦,因為i7的核心多,希望讓過去使用的VM改設定為多CPU或多核心時,卻還是只顯示一顆CPU單一核心;這情況在換電腦時拔硬碟過去時也可能發生,因此簡單記錄一下。 首先,找出安裝光碟/iso,假設是E: ,就在『開始』->『執行』依序執行以下指令(或用cmd.exe一次執行): expand e:\i386\halmacpi.dl_ c:\windows\system32\halmacpi.dll expand e:\i386\ntkrnlmp.ex_ c:\windows\system32\ntkrnlmp.exe attrib -r -h -s c:\boot.ini notepad c:\boot.ini 將 C:\boot.ini 中 最後一行 multi(0)disk(0)rdisk(0)partition(1)\WINDOWS... 最後加上  /kernel=ntkrnlmp.exe /hal=halmacpi.dll 存檔後關閉,在『開始』->『執行』輸入 attrib +r +h +s c:\boot.ini 重新開機後,會偵測到硬體變更,會要求再重新開機就是SMP支援了! 註: HAL變更後,再把boot.ini改回去,仍然會是SMP的狀態,若看到 老外 別人寫2個boot選項,那是沒用的。 上述檔案從已經啟用SMP的XP/2003複製過來覆蓋過去也有效。 由於XP Professional最多只支援2顆CPU,因此在需要較多計算核心的狀況下,VMware等可以設定VM使用一個CPU多核心。 對Windows 2000有興趣的朋友可以試試  如何疑難排解 Windows 2000 硬體抽象層問題 ,基本上我試過失敗,用升級安裝重來才搞定

Ubuntu Server安裝vmware tools

Ubuntu Server安裝vmware tools不如在CentOS或Redhat Enterprise方便,還需要自己編 module。 Guest -> Install/Upgrade VMware Tools $sudo apt-get install build-essential $sudo apt-get install linux-headers-$(uname -r) $sudo mount -o ro /dev/cdrom /mnt $cd /tmp $umount /mnt/VMwareTools*.tar.gz $cd vmware-tools-distrib $sudo ./vmware-install.pl 接下來一直按Enter就好 如果更新kernel,就必須再裝新的header,重新編modules $sudo apt-get install linux-headers-$(uname -r) $sudo vmware-config-tools.pl

三大伺服器虛擬化技術比較

這一年來我試用了Hyper-V、XenServer以及VMware vSphere ESXi,現在將測試結果列表如下: ESXi XenServer Hyper-V 執行速度 快 最快 普通 iSCSI 存取速度 快 快 普通 細部設定 可 否 可 作業系統相容性 最高 普通 普通 Windows相容性 最高 高 高 Linux相容性 最高 高 少 FreeBSD相容性 有 差 有(2012年8月新增) HA價格 高 低 普通 Cluster價格 $ Free Free Live Migration價格 $ Free Free SmbFS 儲存 無 有 有 * Hyper-V可以在未安裝VM Tools的狀況下Live Migrate,非常強大! ** VMware可以將硬體不相同的伺服器加入HA cluster,Hyper-V和XenServer都需要相同的CPU、RAM甚至於完全相同的網路。 Hyper-V的IO實在太慢了,我個人覺得是敗在NTFS的效能差,我現在查不到 WinFS 的時程,所以就暫時不考慮在公司使用。另一個在下覺得比較重大的缺點是在未安裝vm tools的情況下不能在console使用mouse,許多boot cd都變得很難用或不能用。 以企業使用,若不介意不容易修改細部設定,又缺乏第三方備份軟體支援的情況,XenServer是不錯的選擇。個人使用測試的話,Hyper-V Server功能完整,又有廣泛支援,值得考慮。在銀彈充足的情況下,就別想太多,衝VMware ESXi吧! P.S. 最後我選擇的是 VMware vSphere Essentials Plus Kit ,比起CPU定價,算是小公司可以負擔,而且也足以撐起全公司的Server。 Update :參加完 Tech Days 2012後,我要說當初太不瞭解Server 2012。若要真實測試Hyper-V 3.0,請準備『符合Server 2012的硬體』,再啟用SMB 3.0當做共用儲存空間,雖然說Server 2012不需要共用儲存空間也行,但有還是比較好。 至於我的比較,大家就當做我在放屁就好,非客觀第三方測試! 對此有興趣的朋友請參考 Microsoft Windows Server 2012 Hyper-V compare

How to install VMware ESXi 5 tools for FreeBSD 9

There are some problems while install FreeBSD 9 vmware tools on VMware ESXi 5 update 1, after searching a few hours, I got the solution.  You will make the new binary from source, thus no more COMPACT 6 in kernel configuration. 在VMware ESXi 5 update 1安裝vmware tools有不少問題,經過幾個小時的奮戰,終於找到答案。 首先要強調,不需要在Kernel設COMPACT 6,但是需要裝compact6x的package。以下用藍色標明需要key的指令: Install compact6x package # cd /usr/ports/misc/compat6x # make install clean Mount the cdrom image from vCenter/vSphere Client to guest vm. # mount -t cd9660 -o ro /dev/cd0 /mnt 若你已經試著裝過,cd0 可能會變成acd0,就改成 # mount  -t cd9660 -o ro /dev/acd0 /mnt Extract the source code. # cd /root && tar xzf /mnt/vmware-freebsd-tools.tar.gz  # cd vmware-tools-distriblib/modules/source # tar xf vmblock.tar && tar xf vmmemctl.tar && tar xf vmxnet.tar && tar xf vmxnet3.tar Compile the vmblock module. # cd vmblock-only # make && make install & cd .. Compile the vmmemctl module # cd vmmemctl-onl

Why I moved to VMWare 為何我換成VMWare

I installed XenServer last year (2011/07), because it is fast and free. Before that, I had tried Hyper-V 2.0 Server,it's slower than XenServer. Last month, I wanted to add a FreeBSD vm and got bad experience. Another problem, it is very hard to modify vm setting on XenServer. My boss asked me to do server 100% virtualized, I had to search better solution. After googling a few hours, I decided to move to VMWare vSphere. Why? Because I need FreeBSD vm tools installed to get more control, besides I found VMWare Essentials Plus Kits ,it's not as expensive as I thought. Then I installed a test vm server, it's amazing! ESXi 5 Server gave me a whole new experience. It's fast and powerful, with so many APIs and 3rd party tools. Now, I got very good vm hosts, a stable and fast environment.  Thanks VMWare, I can work easier. 去年評估虛擬化Server後採用XenServer,使用一年也沒有什麼大事,但是支援的作業系統太少始終是個遺憾。會採用XenServer而不用Hyper-V 2.0除了Hyper-V的Linux支援度差外,另一個重要原因是效能不夠好。 主管和我說要讓伺服器100%虛擬化,包括我目前使用

升級到Mac OS X 10.8 Mountain Lion

因為手癢,所以就把手上的2009 Macbook Pro 13"升到OS X 10.8 GM。(叔叔練過的,小朋友不要學) 基本上沒有太大的改變,大部份的API都相容,所以應用程式幾乎都可以直接執行,VM軟體除外,所以我的VirtualBox暫時不能用。要注意Java有改變,所以暫時不能用Oracle Java VM,但是Apple Java VM仍然有提供。 要怎麼自動安裝Java呢?基本上就是啟動「Java 偏好設定」 (Java Preference)就可以了;位置在 「應用程式」->「工具程式」裡。 如果遇到錯誤訊息安裝失敗,得打開「應用程式」->「工具程式」->「終端機」,手動刪掉Java相關檔案。 sudo rm -rf /System/Library/Java/* && sudo rm -rf /Library/Java/* && sudo rm -rf /System/Library/Frameworks/JavaVM.framework/* 如果還不行...就等著正式版出來,Apple修正Bug吧XD

Entity Framework 5 Code First 遇到 context has changed 的問題

我在做一個Asp.net MVC 4 + Entity Framework 5 RC的專案遇到一個問題,就是新增加的Model做 當初是Code First開發,而且我什麼都沒做就很正常地運作。但是後來我再加上一個Model Class後,居然就不會自動更新。錯誤訊息是 The model backing the 'XXXXContext' context has changed since the database was created. Consider using Code First Migrations to update the database ( http://go.microsoft.com/fwlink/?LinkId=238269 ) 那個連結會導到 這裡 ,不完全解答我的問題。 這裡 有高手介紹Entity Framework 4.3.1的做法。 我就想說Let it be,不要再繼續Code First,接下來手動就好,找到在DbContext Class加上這個method protected override void OnModelCreating(ModelBuilder modelBuilder) { modelBuilder.IncludeMetadataInDatabase = false; } 很可惜,在Entity Framework 5.0 RC改了,所以要寫成 protected override void OnModelCreating(ModelBuilder modelBuilder) { modelBuilder.Conventions.Remove<System.Data.Entity.Infrastructure.IncludeMetadataConvention>(); } 這樣就不會去檢查資料庫是否比Context舊。 Update: 不知為何又不行了,只好回過頭找Package Manager Console失敗的原因,發現packages不知何時多裝一個EntityFramework 4.3.1,砍掉之後重新啟動Visual Studio,後來就可以正常Mirgation。

恆溫熱水器的迷思

我在 2009年就換了強制排氣數位恆溫熱水器 ,在 2010年發生接頭堵塞 的情形。最近則是愈洗愈熱,但是熱水的出水量並沒有明顯減少。 因此今天找原廠來維修,將功率調小一點。我上網查過,每個人的說法不一,有些人說將溫度調低直接洗,有些人說調高一點加上冷水洗;事實上根據能量守恆,若出水量足夠時應該是調剛好的溫度洗最能確保恆溫。 那麼我的問題是什麼呢?其實我家是舊公寓,雖然十年前有將冷水管換掉,五年前又將熱水管也換了,但是沒有加壓馬達,加上管線比較長,熱水的出水量是6L/min,維修師傅調整水閥後變成7L/min;師傅說出水量最好有8公升以上,不過6公升其實就可以正常運作。因為數位恆溫熱水器是靠燒瓦斯,必須有個最低火量,若我調成37度,水量6L/min時大概會變成48度,所以就算加上冷水都很熱。當初裝機的師傅並沒有將最低瓦斯量調低,所以我2009年時就必須開冷水才是剛好的溫度,各位裝機時最好直接調好。 另外有朋友問是否能兩間浴室同時使用,我買的12L數位恆溫熱水器就表示最大出水量12L時仍能正常工作,但這前提是水量與瓦斯量都能負荷。例如說閣下的熱水龍頭出水量8L/min,兩間同時使用就必須要用16公升機型才足夠,但若是天然氣壓力不足時,仍然會不夠熱。所以我在夏天時兩間浴室同時使用,由於天氣很熱,所以沒有問題;但是冬天時出水量已經超過12公升,就會覺得不夠熱了。

閒聊平價機械式鍵盤

今天晚上抽空跑了一趟光華商場,到金鍵盤去選購一支較安靜的鍵盤,順便向老闆請教差異。 青軸:二段式,第二段有清脆聲音。反饋壓力小,有明顯段落感。 茶軸:二段式,第二段無聲。 反饋 壓力小(個人覺得比青軸大),有明顯段落感。 紅軸:一段式,反饋壓力小(比茶軸重一點),無段落感。 黑軸:一段式,反饋壓力大,無段落感。 選鍵盤還是得現場試,才會知道差異。 金鍵盤老闆人很好,把許多之前搞不清楚的地方全都弄懂,並且告訴我各家鍵盤的特色,簡單整理如下: Cherry Cherry機械式鍵盤通常都四千多元,品質沒話說,用料好,做工細,很難卡鍵。但是... 二千元上下的Cherry是其他廠OEM,品質就和價錢成正比。例如:我現在試二千元的紅軸明顯比四千元的紅軸重,反彈時感覺較不順暢。 FILCO 品質沒話說,和Cherry原廠沒什麼太大差別。可惜沒有平價鍵盤。 Ducky 用料比以上差一點,技術普普,因此Ducky的鍵盤會有較大阻力,所有的鍵盤都會有變重的感覺,尤其是大L(L型大Enter)鍵內有兩個Cherry軸會更明顯;但是個人不能接受數字鍵也很重的感覺。 ione 用料比Ducky又差一點,但 技術 較Ducky好。鍵盤打字感覺不錯,老闆稱之為『平衡』技術做的好。 我目前在辦公室用的 iOne青軸 就Shit卡了好幾次,又因為辦公室同事常抗議我打字太大聲,本來很想買支好點的茶軸;後來因為價格因素,還是選了iOne的茶軸,主要是老闆說卡鍵可以拿去修,一個鍵50元。其實我的青軸自己拆開來修兩次了,下次若再掛得拿去金鍵盤修理。 說實話,這支茶軸真的不算好,剛拿來用時space有點卡卡的,幸好打一陣子後就比較順。若不是同事抗議,還是青軸的反饋感較得我心。 參考資料: 機械鍵盤中的經典軸-Cherry MX青軸

Ubuntu 12.04的ruby

不知為何,Ubuntu 12.04只有ruby 1.8和ruby 1.9.1,這樣很難相信它是一個最新的套件。 結果後來才發現它有ruby-rvm的套件,所以我就 sudo apt-get install ruby-rvm

升級至Ubuntu Server 12.04

這次在XenServer裡把Ubuntu Server 10.04 LTS升級到Ubuntu Server 12.04 LTS的過程很怪異,以前在Desktop用的sudo apt-get dist-upgrade無效。 搜尋後發現Server必須要用 sudo do-release-upgrade -d 有些說明檔寫do-release-upgrade是不夠的。 我在XenServer裡升級,有些無效的repository必須先手動移除,不知為何我必須移掉台灣的Ubuntu site才行。原本用ssh連線會有問題,所以直接在console作業。 升級完後再起不能,原本想說是不是XenServer不支援,沒想到不知哪裡來的靈感,把vm的boot parameter移掉就好了,就是原本的: -- quiet console=hvc0 這次算是是有神助呀,等等得去拜乖乖大神!原來是升級用的kernel版本有問題,開進去之後再sudo apt-get install linux-image-3.2.0-24 linux-headers-3.2.0-24 ,重開前記得把boot parameter,就一切正常! (之後再 sudo apt-get remove 'linux-image-2.6.*' )

測試Windows Server 2012 beta Hyper-V Cluster

Windows Server 8 beta在2012年2月就可以下載,我現在才有空試,主要是測試Hyper-V 3.0的強大功能。因為現在有消息指出會更名為Windows Server 2012,所以我也把標題改為Server 2012 beta。 Server Core介面很可惜沒有Cluster的選項

測試Hyper-V Server 2008 R2 SP1

這次測試和 上回 的硬體一樣,只是把Windows Server 2008 R2 SP1 Enterprise改成Hyper-V Server 2008 R2 SP1,主要是測試 免費版是否有收費版本的功能 。 安裝時Hyper-V Server比較簡單,也不用啟動,裝好就是Server Core。然後...登入後自動會啟動 sconfig.cmd ,一樣照著選單設定遠端管理、網路設定和容錯叢集等,就可以利用具有管理介面的其他電腦遠端管理。 接著我就同樣建立一個failover cluster,在cluster上建立虛擬機器,用Hyper-V管理員同樣都很正常。 根據 Weithenn的文章 ,Hyper-V Server幾乎有Enterprise版Server Core的所有功能,最大的差別就是不能新增角色和不具備"Application Failover"的功能。 這樣好像沒寫什麼有用的資訊...Orz 好吧,開始放炮,以下的資訊純粹是嘴炮。 Hyper-V cluster預設不會啟用叢集共用磁碟區,必須手動啟用,一點都不直覺;啟動叢集共用磁碟區後又要手動新增存放裝置,預設也不會把共用磁碟放進來。 VMWare與XenServer都有獨特的協調機制,在cluster下可以自由調度VM放在另一台電腦主機,平時可以將VM平均放於cluster內的所有電腦,好處是不只有CPU的資源分享,網路速度也很重要。這兩個產品也有iSCSI的寫入cache,所以會覺得VM在iSCSI上執行速度比Hyper-V快。 我對產品並無特別品牌喜好,但是微軟絕不是省油的燈,所以接下來要測Windows Server 8 beta的Hyper-V,敬請期待。

在獅子Mac OSX Lion裝GCC

在2009年我曾經在Linux上頭 編譯GCC ,因為 GCC 的授權在4.2.1版之後由 GPL v2 改為 GPL v3 ,Apple就不再更新 GCC 。幾年下來造成編譯器版本過舊,蘋果自己也開始打造自己的 clang :基於 LLVM 的compiler;所以現在OS X上有 clang 和llvm-gcc兩個編譯器,都是 LLVM  compiler。 但目前來說, GCC 相容性仍然是比較好,而且支援很多新的語言特性。像是Ruby的 RVM 目前就不支援  LLVM  編譯1.9.3之前的版本,只能用 GCC 。但很不幸地,目前Mac上很方便的套件工具  Homebrew  並不能直接安裝  GCC  ,要用別的方式,詳見  此 。 brew install https://raw.github.com/Homebrew/homebrew-dupes/master/gcc.rb

求出n取k組合的列表 Lisp版

廢話就不多說了,這次改寫Lisp版本的求組合列表,由於太久沒寫,著實吃了不少苦頭。由於Lisp版本眾,我本來想用Emacs開發,可是我把Emacs的hotkey全忘光了,只記得c-x c-e,後來就改用 GNU CLisp ( GCL ),以Homebrew安裝的2.49版為主。

測試Server 2008 R2 SP1 Hyper-V Cluster

我之前測試Hyper-V Server的內容似乎沒有記下來,這次重新測試Server 2008 R2 SP1 Hyper-V Cluster,發現趙驚人的書實在是鉅細靡遺,但還是把自己容易疏忽的地方寫下來,未來要架設時才有跡可尋,不致於重蹈覆轍。 趙驚人在研討會多次重申,Hyper-V要效能好,就要灌Server Core,胡士亮在V-Day也這麼說。所以這次我的目標是要達到企業級的虛擬化,灌Server Core,而且要做Cluster達成HA。題外話,趙驚人真不愧是留美碩士,英文發音超標準,國內很少講者有他的水準。

求出n取k組合的列表 CSharp版

同事要找出n中取k的所有 組合 列表,他想出了一個很簡單的表示法。例如說3取1會有3個,就表示為 001、010、100 這的確是再簡單不過,非常清楚也利於程式使用。他使用的方法是寫一個int, 用for迴圈,從1到2的n次方-1的數字跑一遍,再把每個數字的位元做比對。 但是問題來了,數字小時這樣沒什麼問題,但是他的樣本n超過int的長度,只好改用long,而且光是long就跑很久,最近遇到的問題還超過long〈超過64個〉。

再探Xen Cloud Platform

為了徹底測試Xen Cloud Platform(以下簡稱XCP)是否具備Live Migration及HA的功能,鳥毅耗費鉅資把兩台相同規格的PC裝上12GB RAM及兩張Gigabit NIC。 先灌好兩台,分別叫做xcp1與xcp2,接著利用XenCenter 6.0連上XCP,再設定網路連線到iSCSI,把Windows VM放在iSCSI Storage上。 再來得建立ServerPool,把Windows VM 從xcp1 Live Migrate到xcp2,結果非常順利,和XenServer 6沒什麼差別;由此可知確實己經實作免費版的功能。 最後測試HA,利用XenCenter點在ServerPool上會看到HA的分頁,也可以設定,但是按下確定時會有錯誤訊息,表示此功能尚待實作。 Xen Cloud Platform己經具備XenServer大部份的功能,若要做到企業級HA,則得再等一陣子了。

Xen Cloud Platform初探

讓Windows Live Messenger 不顯示廣告

收到朋友轉寄的Email,出處不可考,內容是如何讓Windows Live Messenger 不顯示廣告。 原文用0.0.0.0的IP,這樣會delay,所以我改為127.0.0.1,再補充UAC部份 ===================== 用記事本打開 C:\WINDOWS\system32\drivers\etc 目錄裡的 hosts (若是Windows Vista以上有UAC,必須以管理員身份執行記事本或其他文字編輯器) 將以下內容加到 hosts 檔最後面 127.0.0.1 rad.msn.com 127.0.0.1 rad.live.com 打開 MSN,在選單上選擇『工具』->『選項 』 -> 『 訊息 』 ,若看不到選單,按一下Alt就會出現。在第二段的 [對話] 項目中, 取消 『 在對話視窗中顯示展開的頁尾 』 的勾選, 再按 『 確定 』 。 這方法不用Patch軟體,升級後依然有效。

FreeBSD上在Roundcube使用Managesieve

久違的個人備忘錄又來了。 環境:FreeBSD 9.0-Release+Postfix+Dovecot 1.2 因為我把Webmail換成Roundcube後,就沒有郵件規則可設,之前都懶得去看怎麼設定sieve+ManageSieve,趁今天難得有空趕緊來改一下。 安裝: #cd /usr/ports/mail/postfix #make config #我選Dovecot而不是Dovecot2,懶得改設定檔了,差很多 #make install clean #cd /usr/ports/mail/dovecot #make config #記得要選 MANAGESIEVE #make install clean #cd /usr/ports/mail/dovecot-sieve #make install clean #cd /usr/ports/mail/dovecot-managesieve #make install clean #cd /usr/ports/mail/roundcube #make config #請選擇你要用的database #make install clean 首先看一下 Sieve Plugin怎麼設 ,還有 ManageSieve的設定 ,在 /usr/local/etc/dovecot.conf 修改為: protocol lda { ... mail_plugins = sieve #可以再加上其他的plugin } protocol managesieve { login_executable = /usr/local/libexec/dovecot/managesieve-login mail_executable = /usr/local/libexec/dovecot/managesieve managesieve_logout_format = bytes ( in=%i : out=%o ) } plugin { ... sieve = ~/.dovecot.sieve #一定要設這個名字,因為Roundcube的managesieve plugin預設用這個 sieve_dir = ~/sieve } 還有其他FreeBSD上的設

谷溝也搞未來式

Google最近更新了 隱私權政策 和 服務條款 ,結果居然也搞未來式(今天是2012年1月30日),有圖為證:

iOS需要關掉程式釋放memory

大部份的人都希望手機拿來用而不需要什麼背景知識,但很可惜地,隨著智慧型手機的普及,iOS/Android/WM 用起來比 Symbian 複雜太多,穩定性也更差。 前幾天 某個Blog 上寫說iOS device在Home鍵按兩下出現 App的列表只是「最近用過的應用程式」,並不會影響作業,完全不需要手動關,這是大錯特錯,完全的誤導呀! 早期iPhone推出時,並不具備多工,但隨著iOS 4推出具備(半?)多工後,事情變得麻煩。因為手機是記憶體受限裝置,iPhone 3GS才256MB,所以多工勢必要消耗更多的記憶體,開了幾十個App之後,很可能會因為作業系統所能支配的記憶體不足,出現速度遲緩或是程式當掉的情形;嚴重時必須重開才能釋放leak的memory。這件事只要用任何一套iOS上的memory monitor程式就可以證實,上個月敝公司的CEO的iPhone 4上Mail完全看不到附件,用這招才恢復正常。根據在下兩年來不專業的使用下,連耗電量都有很大的差異! 補充說明:列表並不代表占在記憶體裡的情形,但是會有關連,尤其是會背景執行的App,必須這樣關閉。在  iOS :認識多工處理  有提到: 用 Activity Monitor Touch 這支程式來證實我的說法。 先做名詞解釋,參考 A detailed look at memory usage in OS X ,Active不用說,就是現用的 ; Free不必我解釋吧?Inactive 是 allocated memory that hasn't been accessed during last N Secs,也就是可以吐回的記憶體;Wired 是 memory allocated that shouldn't/can't be swapped/paged out ,也就是已配置也不能置換的記憶體。在 Activity Monitor Touch 用紅色代表Wired,黃色表示Active,白色是Free,藍色是Inactive。以下是測試: 亂開一堆App,結果快用完256MB: 先關有背景多工的App,可以看得到Wired memory馬上釋放: 接著關沒有背景多工的App: 最後可以看出,若如該篇文章所言,應該不會占用W

換冰箱

最近家裡的冰箱常漏水,搞得地板濕濕地讓我很火大,剛好又看到 經濟部補助一二級節能家電2千元 ,跑到黃色X屋看實體後,決定用貴婦代言的品牌,訂價52900,贈品三選一。有經驗的朋友一看就知道是什麼問題,原來是買 國產節能家電補助2000元 ,並不是一體適用Orz 星期一下午在黃屋網站下訂50900,變成門市出貨,晚上和我確認時間,星期二就送到。