發表文章

元件存放區已損毀 Error Code: 0×80073712

圖片
資訊科學以及開發人員的養成訓練和經驗告訴我們,發生問題一定是有背後的原因的。網路上常常有人歸納於人品、或七月沒拜拜、或放在Server上的零食過了保存期限( 或是加了塑化劑 ),我要說,這都是不科學且沒有根據的。 話說自從我買了新的NB之後,一直沒有認真寫程式,可能是因為上帝覺得我這樣混也不是辦法,所以強迫我非得寫個App不可,我在蘑菇了幾天之後,終於重新把開發環境和WP8 SDK裝起來,過程出奇的一切順利(誰說人品有問題來著???)... WP8模擬器需要Hyper-V,這不是問題,我可是i7的ultrabook呢... 正當我這樣想的時候,shit,Hyper-V開不起來,以前沒看過的錯誤訊息... 元件存放區已損毀     什麼鬼啊,本著實事求是的精神,我決定要認真找原因,我不相信跟今天大樓普渡我理都不理有什麼關係。 經過3 0 分鐘後, 找出解法了 ,首先,用管理者身分開啟Command Line,接著輸入: DISM.exe /Online /Cleanup-image /Scanhealth DISM.exe /Online /Cleanup-image /Restorehealth 執行結果如下:  搞定。 後記:這個問題其實估計跟預裝的Windows 8我把它升級成Windows 8 Pro有關。如果重新安裝Windows 8 Pro,應該不會有這個問題,本著實事求是的精神,這個測試,我留給其他人做了。 後後記:話說我Search的時候看到 這篇 ,這苦主發生的問題跟我一模一樣,連機器都是同一款,我在想,說真的,最近這十年因為internet的出現,世界變小了,學習變快了。如果是二十年前,在地球兩端的兩個人,可能得各自為了碰到的問題傷腦筋,但現在,我只是Search,就可以找到別人留下的足跡...一方面感謝,一方面感慨...

你為了什麼寫Code呢???

圖片
在網路上看到一個小朋友提到最近看到一篇文章,講到的程式設計師的薪資。這位寫PHP的同學,發現自己可能領到的薪資相較於用其他技術的開發人員低,比較起來是倒數的,有些忿忿不平。 原始文章在這裡: http://www.inside.com.tw/2013/08/23/average-income-per-programming-language 姑且不管上面這篇寫的到底對不對、這樣的統計數據有沒有道理,其實...我想說的完全是另一件事情。我想談談為何軟體業不賺錢,以及程式設計師的薪資問題。或者這麼說吧,你真心想在這個行業繼續奮鬥,卻又真的覺得自己薪水不夠想要高一些...OK,那你可以繼續看下去。 在台灣,在今天這個時代,若你只『專注於』寫程式,是不太可能賺到大錢的。可以溫飽、可以糊口、也可以集畢身積蓄買台重機...這都OK,但若你想買台北市的房子、或買買BMW、Benz玩玩,那可能就輪不到你了。年輕的時候,你也許會覺得無所謂,但到了一定的年紀之後(30,35歲),你會慢慢發現這似乎怎麼有點不太對... 也就是說,我們在研討會上跟大家說,寫程式要有愛,學技術要有愛,不然撐不久,這不是說著玩的,是認真的...老師在台上講、沒睡著的,就應當聽。 這一路以來,我們沒有轉行,不是因為覺得這行業可以幫我們賺到大錢、或是因為手上掌握了哪種關鍵的應用技術、還是在台上很風光、可以享受學員崇拜的眼神,或是在案子裡面可以呼風喚雨...從來都不是(因為都沒有)。 這一路以來,我們沒有轉行,是因為我們習慣了看世界的時候,用的是與世人不同的另一種角度;我們習慣了看到問題,就思考著如何可以第一時間找出答案;我們習慣了出現新的技術時,以朝聖的心情蒐集、整理、比較、分析、再消化吸收;我們習慣了會心這小小的社群裡面的人,才能理解的幽默。當然,碰到一些IT或3C阿宅希望我們幫忙解決一些電腦問題時,偶而也享受著這些不明就裡的外人,剎那間完全搞錯對象也搞錯方向的崇拜。(有統計指出,幾乎每一個Developer,都幫女生修過電腦...) 但為了賺大錢? 很抱歉,一直都不是,也從來沒機會。 我也曾經也有著不明白的時候,要知道,一個商業Developer的養成其實相當不容易。除了,必需學習的技術少說也數十種,大多數Developers在養成過程中,看過的專業書籍數以百計,而技術...

你的財寶在哪裡,你的心也在那裡...

圖片
部落格中好久沒有寫寫心情了... 主日,早上主領敬拜的弟兄提到,最近搬家,過去視為珍藏的許多論文、書籍、和知識,在搬家過程中全都捨棄了,過去前幾年覺得重要的,如今看起來卻似乎都沒那麼有價值... 碰巧前一陣子我也剛搬完家,30歲的時候搬家,跟40歲的時候搬家,最大的不同是,很多東西我開始覺得我搬不動,也不想搬了:或許不是實際的重量多重,而是我覺得這些東西放在我生活裡、或是我生命裡,它無形的重量太重,佔有的空間又太大,讓我很容易忘了其他更重要的事情... 所以這次搬家,我丟掉的比上次搬家時所丟的又多更多了...連我自己寫的書,都只留下了一本,更不用說其他的了...搬完之後,老婆跟我說:我們家徒四壁耶..我說:是啊,你不是一直想要有更大的空間嗎? 現在有沒有很清爽??? :) 那時候,我心裡在想,我們手上掌握的技術、整理的知識、考完的認證、拿到的獎盃和獎狀...種種引以為豪的成績,真的那麼重要嗎? 我現在拼命努力的,會不會幾年以後,搬家時,又毫不猶豫地被我捨棄了呢? 我想到聖經上的一段話:「不要為自己積攢財寶在地上;地上有蟲子咬,能銹壞,也有賊挖窟窿來偷。只要積攢財寶在天上;天上沒有蟲子咬,不能銹壞,也沒有賊挖窟窿來偷。因為你的財寶在哪裡,你的心也在那裡。」 或許你不是基督徒,但上面這段話,我最喜歡的是:『你的財寶在哪裡,你的心也在那裡』...對你來說,你的財寶是什麼呢???  我有一個好朋友,結婚之後,工作還是佔據他人生當中不少的時間,他和他的另一半,都是非常忙碌的中階主管,但自從生了孩子之後,我明顯的地看到了他們的改變... 年輕時,我們常常談著將來要怎樣創業,或是合夥開家公司,或是用技術改變這個世界:自從小孩出生之後,他最在意的是孩子的健康、關注的是怎麼教育對孩子最好、掛念的是小孩將來的成長規劃...創業的事情我當然也不再提了,他只希望在這一波景氣低谷中,能夠確保工作的穩定。 我沒有小孩,但我想我能理解這樣的心情。 前陣子和剛結婚的年輕工程師聊天,他剛進到一個嚮往已久的工作環境,身邊的同事就是以前崇拜的技術明星,過去在大型研討會的舞台上才能夠瞻仰的風采,現在每天出現在自己的身邊,興奮的程度恐怕跟中了尾牙頭獎差不多... 我聽了快一個月他述說自己公司顧問講師們的輝煌事蹟、風光的專案經歷、帶有能力與強大說服力的講演風...

在Web Form專案中使用Rzaor上Azure WebSites的問題

圖片
先不談問何需要在WebForm當中使用Razor WebPages,這一篇主要還是討論到的問題和解決的方法。 首先要在WebForm中使用Razor不是太大的問題,建立一個HTML Page把副檔名直接改cshtml即可: 接著我們就可以撰寫Razor語法了(我找一天完整一點介紹Razor以及他的意義,但還沒寫之前,gelis的 這一篇 不錯,如果你喜歡讀英文,可以看 這篇 )。 OK,撰寫一段簡單的程式碼如下,結果一執行,馬上發生錯誤: 我們很乖的依照指示,到web.config中改成: <configuration> <appSettings> <add key="webPages:Version" value="2.0"/> </appSettings> <system.web> <compilation debug="true" targetFramework="4.0" /> </system.web> </configuration> OK,可以work囉。 但悲劇發生在上Azure WebSites時: 本來以為是Azure websites看不懂cshtml,還我改了一陣子MIME設定,後來想想不對,如果看不懂就應該不能run MVC 的razor才對,所以又轉往另一個方向嘗試,折騰了半天,原來Azure websites尚未支援2.0。 立馬到Azure WebSites設定畫面調整看看: 設定完成之後,搞定囉。 cshtml的razor頁面可以混在WebForm中上Azure囉... 先寫到這邊(其實還有一個在cshtml page中存取資料的問題...改天繼續) ================================== 沒事幹嘛在ASP.NET WebForm中混入Razor呢? 其實我也有點掙扎。 這一陣子有個案子是以MVC來設計,開發的同仁跟我說,選用MVC其中一個原因是他討厭WebForm中的WebControl,總是沒有辦法隨心所欲的調整UI,不管套入CSS或...

ASP.NET Reporting - 如何讓SSRS中TextBox的Go To URL Action中跳新視窗

圖片
SSRS對於ASP.NET開發人員來說實在是一個很好的工具,畢竟,對很多MIS/IT所服事的大老闆來說,資訊系統 唯一 的價值,其實就是那一份份的報表。 如果你有用SSRS,一定會發現文字方塊是可以設定成超連結的,關鍵在於TextBox的Action屬性,只需要設定成Go To URL,然後在Select URL那邊放入網址即可: 但你找了半天,居然沒有可以設定點選該URL的Target設定位置,那...如果要開新視窗怎麼辦呢??? 好問題!!! 其實,這個Go To URL有一個更有趣的設定,可以解決這些問題,你可以直接在Select URL中,輸入底下內容: 沒想到,居然可以輸入JavaScript,如此一來,在報表中點選該連結,就可以開新視窗囉。 ============================================================= 既然可以開新視窗,那可不可以更進一步的??? 答案也是可以的,SSRS真是個好物。

ASP.NET WebForm Forms驗證整合Google oAuth驗證

圖片
ASP.NET從4.x開始,支援不少重要的機制,也不知道是因為用的人變少了,還是因為大家都沒空,所以ASP.NET WebForms相關的中文post比起其他技術相形之下少的可憐。 最近開發團隊中有夥伴需要透過ASP.NET WebForm來整合Google/Faccbook/MS的身分驗證,當然,我們都知道現在大家都支援 oAuth 或 OpenID 了,最理想的狀況是讓我們家的網站跟MS自己的網站一樣,User只需要登入一次,就可以跨網站跑來跑去不需要重新登入,同時,我們的網站也不需要負責維護用戶的帳號密碼,而是透過Google/Faccbook/MS幫我們做身分驗證。 (有空我會畫張圖,上面這張是出自oauth.net) 簡單的說,就是我們的網站的用戶只需要有Google/Faccbook/Microsoft Account等帳號,即可登入我們的網站,而我們的網站也不需要傷腦筋身分驗證的事情,畢竟,驗證是一個可能導致風險的機制,也是駭客進入你的網站的第一道防線,如果隨意設計可能後患無窮,與其自己辛苦,不如透過oAuth機制幫你驗證用戶身分。 前面說過,在ASP.NET要實現這樣的功能,從4.0之後的版本,大幅簡化了工作流程,甚至,你現在只需要透過DotNetOpenAuth.AspNet套件即可完成。 我們以底下這個ASP.NET WebForm 4.0與Google帳號整合的驗證機制來示範,我們建立一個新的WebForm網站: 我刻意用ASP.NET Empty Web Application,因為這個範本比較乾淨,甚至連app_start都沒有,這樣比較容易說明。 接著,請進入到我們的ASP.NET專案,在VS2012中開啟Package Manager Console(主選單--> Tools --> Library Package Manager --> Package Manager Console),並依序輸入: Install-Package Microsoft.AspNet.Membership.OpenAuth   和 Install-Package DotNetOpenAuth.AspNet 輸入後,VS2012會執行一些動作... 你會發現Visual...

升級舊版 Visual Studi 2010 的 SQL Express .mdf 檔案到 Visual Studio 2012

圖片
上課的時候,我們常會讓學員用SQL Express來開發或測試ASP.NET應用程式,但是換了新的開發環境之後,你可能會發現,Visual Studio 2012開啟舊版的.mdf檔案會發生底下錯誤:   這時候,若你要升級舊版.mdf,可以在Server Explorer中,點選該mdf:     按滑鼠右鍵選擇【Modify Connection...】,接著選【Advanced】:   接著再出現的Advanced Properties視窗中按下OK,然後Advanced Properties視窗關閉後,再按下OK,接著會出現底下畫面:     一旦按下Yes,該.mdf資料庫就會轉換成新版的囉,接著我們就可以在VS2012中正常存取了。(注意:但Visual Studio 2010就不能讀取囉)   如果你不想轉換而是想共用,也可以參考底下說明: http://msdn.microsoft.com/en-us/library/hh873188.aspx    

反對政府以任何理由封鎖任何網站!!!

圖片
最近一直看到這個訊息,智慧局好熱心主動的想打擊盜版,然後好的不學學些惡霸國家封鎖自己人民的網路,看著看著,我心裡就更納悶,這到底是怎麼回事??? 這是什麼邏輯? 為了保持理性,我努力的從智慧局的角度想這件事情,但依舊想不通,想要防止盜版,所以就封鎖(擋掉)國外的網站,讓台灣島上的人看不到某些架設在國外的網站的內容,可是,這樣能保護什麼呢? 充其量不過就是保護台灣廠商(或外國廠商)在台灣這塊小島上的獲利,讓這些廠商能夠賺得到台灣人的錢,但這樣的保護真的有價值嗎? 誰都知道台灣是個小島,上面沒多少人,不管是賣電影賣唱片賣什麼玩意兒,台灣都只是全球市場(或全球華文市場)中的一小塊,政府你放著全世界那麼大一塊95%的市場在盜版不努力去想辦法(不管是無力防堵或不想防堵),反倒把腦筋動到台灣這塊小市場來? 然後美其名是保護智慧財產權? 這是哪個少根筋的人想出來的主意呢??? 這是一個全球化的時代,台灣所有的產品(不管實體產品或文化產品)都要靠外銷,都要想辦法賺到外國人的錢,才能夠在這個時代中存活。只靠政府保護(還要犧牲掉台灣人連上國外網站的權利)才有辦法存活的廠商,非得賺台灣這一個小島上的人民的錢,才能夠生存下來的公司,真的在全球上有競爭力嗎? 真的有必要附上這個(犧牲台灣網路自由)的代價,動用這樣的手段,去做這樣的智慧財產保護嗎? 政府要幫上這些智慧財產所有權人的忙,應該是花更多的力氣去幫這些廠商做全球行銷,讓全世界台灣以外的那99%的人,喜歡且更方便的購買台灣的產品。沒辦法做到這些,只能反過來限制自家人民的權益,政府單位做到這種程度,真的還有存在的價值嗎? 因為國外廠商建立的平台,讓我們寫的App可以在全球市場賣,對於讓我們的App能夠跨上全球舞台,在國際上行銷,台灣政府有幫上哪一點忙? 報告,實在是少的可憐!!! (偶而可能還扯扯後腿,造成廠商收款上的困難) 我當然也不喜歡自己的產品被盜版,我們也不喜歡某些地區的人總是連0.99美元也不花就破解和盜版App,但如果哪一天政府跟我說,要保護我寫的App在台灣的銷售權益,所以好心的幫我封鎖國外某些特定的App盜版下載網站,讓台灣人都上不去...呵呵(冷笑),我只會說你省省吧,我一點都不會感激政府,因為全球其他 99% 的市場如果都可以下載破解版,賺台灣這一點零頭你以為真有什麼意義嗎? (而且很可能因為...

[研討會]微軟實戰課程日 Demo影片與Slide

圖片
今天是有史以來第一次公開舉辦的MVP Open Day 微軟實戰課程日,整個議程非常的精彩,除了早上的座談之外,下午有十多堂的分堂課程,由不同領域的MVP,為參與盛會的朋友們介紹自己熟悉的技術。 http://www.microsoft.com/taiwan/newsletter/library/edm2013/msrealworldexperiencedayweb/msrealworldexperiencedayweb.html 這種盛會不僅僅是破天荒第一次,在台灣也是除了付費參加的TechDay之外,少數能夠聚集這麼多各領域不同講師的場合。 很高興有機會在今天和大家一起分享 雲端 與 行動裝置 的應用,相關的影片與Slides,可從底下位置下載。 [ Slide ] slides中多出來的內容是由於研討會上肯定沒有時間講完,因此把相關的要點整理出來提供學員們參考。 由於時間的關係,實在沒有辦法好好的完整介紹整個Azure Mobile Service,對我來說是一個遺憾。不過底下的影片中所展示的,透過Mobile Service來快速的為企業設計出一套工作分派系統,橫跨Web、Win8App、WP8App(如果你想要,也可以用iOS或Android),並且可以讓開發人員大幅減少撰寫服務的負擔,是未來值得一看的雲端應用服務。 影片:透過Azure Mobile Service設計工作分派系統   課堂中的DEMO使用到的背景技術,可以參考 這邊 。

[研討會] MentroTrust集英信誠 資料庫與.NET開發技術論壇

圖片
很開心受邀在集英信成年度舉辦的研討會中,和大家分享雲端與行動裝置整合的議題,今天和大夥聊的很開心,期待有機會再和大家分享最新的技術心得。 Windows Azure相關的resource可以在底下網址找到: Free Trial Link:  http://www.windowsazure.com/en-us/pricing/free-trial/?WT.mc_id=WWE001_1032548834 MSDN Subscription Offer:  https://www.windowsazure.com/en-us/pricing/member-offers/msdn-benefits/?WT.mc_id=WWE001_1032548834 BizSpark Offer:  https://www.windowsazure.com/en-us/pricing/member-offers/bizspark-benefits/?WT.mc_id=WWE001_1032548834 MPN Offer:  https://www.windowsazure.com/en-us/offers/ms-azr-0002p/?WT.mc_id=WWE001_1032548834   課堂中的DEMO使用到的背景技術,可以參考 這邊 。