星期五, 7月 20, 2012

升級到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

星期二, 7月 17, 2012

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。

星期一, 7月 16, 2012

恆溫熱水器的迷思

我在2009年就換了強制排氣數位恆溫熱水器,在2010年發生接頭堵塞的情形。最近則是愈洗愈熱,但是熱水的出水量並沒有明顯減少。

因此今天找原廠來維修,將功率調小一點。我上網查過,每個人的說法不一,有些人說將溫度調低直接洗,有些人說調高一點加上冷水洗;事實上根據能量守恆,若出水量足夠時應該是調剛好的溫度洗最能確保恆溫。

那麼我的問題是什麼呢?其實我家是舊公寓,雖然十年前有將冷水管換掉,五年前又將熱水管也換了,但是沒有加壓馬達,加上管線比較長,熱水的出水量是6L/min,維修師傅調整水閥後變成7L/min;師傅說出水量最好有8公升以上,不過6公升其實就可以正常運作。因為數位恆溫熱水器是靠燒瓦斯,必須有個最低火量,若我調成37度,水量6L/min時大概會變成48度,所以就算加上冷水都很熱。當初裝機的師傅並沒有將最低瓦斯量調低,所以我2009年時就必須開冷水才是剛好的溫度,各位裝機時最好直接調好。

另外有朋友問是否能兩間浴室同時使用,我買的12L數位恆溫熱水器就表示最大出水量12L時仍能正常工作,但這前提是水量與瓦斯量都能負荷。例如說閣下的熱水龍頭出水量8L/min,兩間同時使用就必須要用16公升機型才足夠,但若是天然氣壓力不足時,仍然會不夠熱。所以我在夏天時兩間浴室同時使用,由於天氣很熱,所以沒有問題;但是冬天時出水量已經超過12公升,就會覺得不夠熱了。