2017年4月10日 星期一

[Tools]解決YAHOO信箱無法使用POP匯入至Gmail中

小弟我人生第一個電子信箱帳號是YAHOO,想當初奇摩輝煌的時刻到現在也是有很多感觸,唉~

一直到了大學,Google gmail崛起,進而轉用之。但為了避免遺漏資訊,長期都有使用POP將YAHOO信件擷取至gmail。

直到最近發現其無法再擷取到信件,刪除關聯再進行新增卻一直獲得這樣的紅色訊息...

2017年3月15日 星期三

[JavaScript]記憶體洩漏(Memory Leak)相關資料整理

整理一下近來蒐集關於JavaScript記憶體洩漏(Memory Leak)相關的資料。

總結JavaScript造成記憶體洩漏的原因就是記憶體參考(這裡有相關說明)。
由於JavaScript採用call by value reference,過程中未處理好不再使用的資料參考,造成資料一直佔據記憶體,最終導致記憶體洩漏。

2017年3月7日 星期二

[jQuery]利用jQuery的clone方法複製HTML物件

原先所做的監控系統網站採用polling的方式,定時向伺服器請求資訊,這是一種很直覺、簡單可以達成監控的作法。
為了提升效能,決定改用Server-push的方式,在伺服器端執行監控,當資料有異動時才將資訊push至前端進行更新。

經Google大神開示後,目前很多網站皆使用SignalR的這項技術來完成,這邊先稍微紀錄一下,以後有空再來好好研究這到底是甚麼鬼。

交代完背景故事,移回到正題。
由於前端改為被動的狀態,故接收到差異的資訊後,頁面的更動就必須完全仰賴JavaScript了。

2017年2月25日 星期六

[Entity Framework]IQueryable v.s. IEnumerable

由於先前遇到Entity Framework會有Cache的狀況,而注意到IQueryable以及IEnumerable。
大部分操作LINQ皆預設採用IQueryable的形式進行,以獲得對於資料庫調教後的查詢效能。

基本上兩者的差異如下:
IEnumberable為將整份完整資料載入應用程式記憶體中進行操作。
IQueryable則為類似組SQL字串的模式,將操作轉換為對應SQL字串,直到實際取得資料時才從資料庫中取回資料。(可以把他想成它就是在做LINQ語法與查詢字串之間的轉換)

2017年2月23日 星期四

[C#]Windows Forms 在不同機器上控制項跑版的原因與解法

是的,我必須承認,當初我找到自己寫的第一支程式並沒有那麼順利。
當我興高采烈地開啟專案時,卻看到...


這到底甚麼鬼,WinForm上面的控制項都不在自己應該有的位置上!
Designer.cs裡面定義的控制項座標還跟設計畫面上的不一樣!

2017年2月19日 星期日

[Entity Framework]provider: Session Provider, error 19 - 實體連接不可用

最近利用ASP.NET MVC5搭配Entity Framework寫了一個小功能,監控資料表數量!
該程式每30秒會採polling的方式向SQL Server詢問目前資料表中的資料數量,並顯示在網站頁面中。

經同事報案,在執行過程中不定時會發生Exception,錯誤描述如下:
在接收來自伺服器的要求時發生傳輸層級的錯誤。 
(provider: Session Provider, error 19 - 實體連接不可用)

2017年2月17日 星期五

[心情分享] 回顧大一(2008)時的期末專案 - Pacman(小精靈)

突然心血來潮,看看自己的GitHub近況(Traffic、Fork...),發現多多少少還是有人會來參觀,網路上的夥伴每個動作都給我莫大的鼓勵啊!

2017年2月13日 星期一

[Entity Framework]原來是Cache!用AsNoTracking()揭穿他的真面目!

很好,太好了,我又見鬼啦!
但是我並不害怕,我盯著他看了好久好久,閉著眼都可以畫出他的樣子。
就讓我好好的描述描述他到底長個甚麼樣!

小弟我使用Entity Framework製作讀取資料庫中關聯式資料,實作中將DbContext.Configuration.LazyLoadingEnabled設定為true,便可以在一次執行中將所有關聯資料都同時撈出放在單一實體中。

但是,在一次讀取後,根據讀取的關聯資料進行修改並再次讀取時,恐怖的事情就發生啦!

剛剛更改的東西讀不到啊!

2017年2月9日 星期四

[SQL Server]關於T-SQL的錯誤處理(Error Handling)

真沒想到這麼快就又見面了!
趁著記憶猶新,趕緊來記錄一下小弟我所發現關於SQL Server動態T-SQL的Error Handling現象。

一般來說,T-SQL錯誤處理的方法有兩種。

1. 使用@@ERROR系統全域變數:
此全域變數會記錄上一個T-SQL語句查詢的結果,也就是說隨著執行過程,@@ERROR會一直改變。
也就是說,如果是一串的SQL指令,每一句都需要做Error Handle的話,可能使用下一種方法會更為合適。
2. 使用TRY...CATCH:
就跟一般高階語言(C#、JAVA等)的用法類似,就不再贅述了...

進入重頭戲啦!

2017年2月6日 星期一

[SQL Server]CREATE/ALTER DATABASE不能使用Transaction

果然是失敗、錯誤中學習成長,即便是有Common Sense就可以了解的東西,我仍然可以試出不可行的方法,可見我武藝精深、非同小可。

近來需要實作動態建立SQL Server資料庫,小弟我只能想到利用動態T-SQL來實作,一切都進行得很順利,但是突然靈光一閃~阿要是建失敗了怎麼辦?

這怎麼可能難的倒我呢!包上Transaction不就搞定啦!

於是我蹲好馬步,順著這股氣勢寫了一段SQL...

2017年2月2日 星期四

[SQL Server]使用InMemory記憶體最佳化發生系統記憶體不足,無法執行此查詢之錯誤

為了增加針對SQL Server在寫入以及讀取上的效能,將特定資料表採用InMemory的技術,
能大幅增加資料查詢的時間,使用起來異常痛快,但哪知還是採到地雷啊!

特此筆記之。

測試過程中持續寫入至InMemory資料表中,直到記憶體都被塞滿了吐出這樣的錯誤訊息。
資源集區 'default' 中的系統記憶體不足,無法執行此查詢。

2017年1月26日 星期四

[IIS]架設ASP.NET網站發生HTTP 錯誤 500.19 - Internal Server Error

部門新進了數台測試伺服器,今天在新的機器中架設網站系統,過程中一切都很順利。
當所有檔案資料都準備好後,滿心期待的開啟瀏覽器,結果...


2017年1月25日 星期三

[TFS]解決更改電腦名稱導致Team Foundation Server工作區對應失敗

因MIS部門政策,更改開發機器電腦名稱。
如此簡單的動作卻在打開了Visual Studio開始了一連串比看誰心臟大的嘗試。

注意看了一下先前開發所留下的暫止的變更,一看卻發現甚麼都沒有偵測到。
還給我一段超級完整的錯誤訊息。

2017年1月23日 星期一

[Tools]LINQ超好用工具介紹「 LINQPad」學習、開發兩相宜

最近在看一些C#中關於LINQ相關的資料,發現了一個很棒的工具,不論是用於學習、開發甚至到效能調教都可以使用。

燈冷~就是他~LINQPad

這是一套免費的工具,當然也有更多強大的付費功能可以選用。
但是個人是覺得免費的就已經好用到爆啦!

2017年1月16日 星期一

[JavaScript]淺談使用jQuery套件JavaScript物件複製

最近在前端開發需要做物件複製,但有趣的是JavaScript是call by value reference(或稱call by sharing),每個變數存放的都是資料的記憶體位置。
簡單一點來記的話就是在JavaScript中,原始型別(Primitive Type)的使用「看起來」像是call by value,而物件(除原始型別外全部都是)的使用「看起來」像是call by reference。

注意一點,以上說法只是描述在操作上類似於如此,而JavaScript實際上的記憶體操作是call by value reference(或稱call by sharing)。

2017年1月11日 星期三

[Silverlight]安裝Silverlight tools,通知不符安裝需求的解決辦法

最近因更換機器需要將開發環境重新安裝過,過程中安裝到Microsoft Silverlight 4 Tools時,發現了以下錯誤: