Cannot read property ‘mtime’ of undefined – Jasmine

終於開始做 Unit Testing
但是不知道為什麼在自己電腦上Run Unit Test 出現以下的錯誤信息

Running “connect:test” (connect) task
Started connect web server on http://localhost:9001

Running “karma:unit” (karma) task
Warning: Cannot read property ‘mtime’ of undefined Use –force to continue.

Aborted due to warnings.

mtime of undefined

最後發現原因可能是 Windows 10 使用 mklink  symbolic link 來reference 資料夾/ 檔案的問題
或是可以bower package version mismatch的問題
解決方法 就是在Windows上使用傳統的方法
copy and paste 來複製在Unit Test用到的檔案到要用的資料夾內

之後再進行Unit test 便可以解決這個問題了

Hope you find it useful

Atom Terminal Plugin

最近多數做Web Front End 相關的工作
所以 IDE 主要也是用Text Editor
暫時還沒有決定好那一個Text Editor 比較好用
Visual Studio Code 還是Atom

VS Code的好處是有Built-inTerminal ,  十分好用
可以在同一個VS Code Instance 上執行多個powershell / command prompt
但是個的版面分割(split) 功能就只可以分 “上,下” 或 “左,右” 有點美中不足
Visual Studio Code Split Screen
有時候想上下左右一起分割..但是不能了

還有由於暫時還沒有找到一個比較好用的Code formatter plugin..所以轉用了Atom

Atom 可以任你分頁。。還有他的Atom-beautifier 也十分好用。。為一一個大問題是。。IDE 有時會not respond..

繼續講 Terminal plugin for Atom

在網上安裝了幾個 Terminal / Command PromptAtom Plugin都不如理想
安裝了 但是執行不到… 只有一個黑色的Terminal 畫面

最後終於找到了一個十分好用,可靠的plugin
他就是”platformio-ide-terminal
https://atom.io/packages/platformio-ide-terminal
platformio-ide-terminal

VScode 差不多
Atom Terminal panel
Hope you find it useful

fetch origin error: cannot lock ref – Another git process seems to be running in this repository, e.g. an editor opened by ‘git commit’. Please make sure all processes are terminated then try again. If it still fails, a git process may have crashed in this repository earlier

今日很䌓忙時候 我的Git / Source Tree 出現了以下的錯誤信息
可能是開了太多的ProjectLocal Branch 的關係

Another git process seems to be running in this repository

git -c diff.mnemonicprefix=false -c core.quotepath=false fetch origin
error: cannot lock ref ‘refs/remotes/origin/develop’: Unable to create ‘D:/Git/client-web/.git/refs/remotes/origin/develop.lock’: File exists.

Another git process seems to be running in this repository, e.g.
an editor opened by ‘git commit’. Please make sure all processes
are terminated then try again. If it still fails, a git process
may have crashed in this repository earlier:
remove the file manually to continue.”

解決方法十分簡單
我們只需要到這個Project 的 “.Git” 資料夾內
e.g.”/.git/refs/remotes/origin/

或出那個有 “.lock” Extension 的檔案.之後把他”刪除” 便可以了

Hope you find it useful

MS SQL Notes – Database Management Scripts

最近有機會去接觸公司的Database
可以幫忙performance tuning
很可惜在之前的公司沒有好好的記下一些有用的script
今日想和大家分享一些有用的Database Management script
和用來check Database 的東西
以下有兩個網頁
https://ola.hallengren.com/

這個提供了一些SQL Server Backup, Integrity Check, and Index and Statistics Maintenance的script/解決建議
Script 可以在這裡下載
https://ola.hallengren.com/scripts/MaintenanceSolution.sql
SQL Server Maintenance Solution


http://whoisactive.com/
提供了script來幫助 Monitor SQL Server
去到網頁入面便可以download之後在 SQL Server Management Studio上執行便可以安裝這些script了
sp_whoisactives

有時間再和大家介紹他們的use case

Hope you find it useful

How to bypass Exception in Visual Studio

最近係公司寫的一個Web app 因為backend 的web api 有些問題的關係。。所以不能連接要development server 上某些data 所以久不久便彈一些 unhanded exception出來。。

嘗試 Debug的時間。。因為Visual Studio會在有 throw exception的地方停下來的關係。當你不為意的時間。會在想。。為什麼程式會停下來。。
其實可能是因為 visual studio 在  執行那些程式碼上throw 了exception停下來。自己又沒有為意

解決方法十分簡單
我們只要在 Visual Studio Throw Exception “Exception was unhandled by user code” 這個popup上
Break When This Exception Type Is User handled
untick了 “Break when this exception type is user-unhandled
下次再遇到同樣的exception時便會繼續執行

Hope you find it useful

How to delete field inside Json Object – 如何把Json 的屬性移除

今日在公司經過同事Code Review…我學會了很多東西
其中一個就是如何delete Json/ Javascript Object 內的一些Field

e.g.

var params = {
        UserId: membership.id,
        FirstName: membership.firstName,
        ScreenName: membership.nickname,
        location: membership.currentLocation
      };

假設只有某些權限的用戶才可以看到 location這個field的

我們可以使用 delete keyword 來把Json / Javascript object的 field 移除
e.g.

delete params.location;
console.log(params);

Hope you find it useful

How to set a default state with Angular ui-router

最近使用了 Angular Js ui-route 來作我的js demo 的 navigation

之後發現一個問題
就是當URL 輸入錯的時間便會出現問題
那麼怎樣可以把設定一個把這些Request 直接連到一個page not found

解決方法十分簡單

我們可以在定義這個Module 設計route的時候設定 “$urlRouterProvider
之後在module內定義一個Default route 將去到的路徑 $urlRouterProvider.otherwise
e.g.

  $urlRouterProvider.otherwise('/home');
//或
  $urlRouterProvider.otherwise('/page-not-found');

便可以了
e.g.

var jsDemoApp = angular.module('jsDemoApp', ['ui.router']);

// configure our routes
jsDemoApp.config(['$locationProvider', '$stateProvider', '$urlRouterProvider', function ($locationProvider, $stateProvider, $urlRouterProvider) {
    $urlRouterProvider.otherwise('/home');
    $stateProvider
        // HOME PAGE ========================================
        .state('home', {
            url: '/home',
            templateUrl: '/modules/js-demo/views/index.html',
            abtract: true
        })
        // ABOUT PAGE
        .state('about', {
            url: '/about',
            templateUrl: '/modules/js-demo/views/about.html',
            abtract: true
        });
  }]);

Hope you find it useful