Blog posts

Windows reset subsystem - Ubuntu

最近想嘗試 reset 由頭再安裝 Windows Subsystem 上的 Ubuntu 開頭以入只要 在 Windows Store Uninstall 了便可 但是再次安裝後 之前想 remove 的 application 還是在 Ubuntu 裡面 做了一會 research 之後 終於找到解決方法 我們可以使用 WSL command 來 unregister 這個 linux # List subsystem 上有的 distributions wsl --list # Unregister linux distribution wsl --unregister [distribution name] # e.g wsl --unregister Ubuntu-18.04 Hope you find it useful

Ubuntu install WPScan

之前介紹過用如何用 Docker 來執行 WPScan 來檢查 Wordpress 有沒有安全問題 最近開始使用 Windows Subsystem 發現原來做 Windows Subsystem 上安裝使用 Ubuntu 也十分方便 我們可以用 subsystem 上的 Ubuntu 來安裝 linux 可以安裝的 software 所以安裝 和執行 WPScan 也十分方便 我們可用以下的 command 來安裝 WPScan sudo apt-get update # install dependencies sudo apt install curl libcurl4-openssl-dev zlib1g-dev pkg-config ruby ruby-bundler ruby-dev -y sudo gem install wpscan Hope you find it useful

JS format JSON

如何用 Javascript format JSON 解決方法: 我們可以使用JSON.stringify 來 format e.g. var c = {a : "test", b:{ data: "asdada"}} JSON.stringify(c, null, 4) "{ "a": "test", "b": { "data": "asdada" } }" Hope you find it useful

Useful Heroku command

最近又多用了 Heroku 無左 Microsoft Azure 既 subscription 又怕佢 charge 貴 用 free tier 時發現好似好多野都要收錢咁 剛剛 deploy 了一個 NodeJS project 時 Load 唔起.. 又唔知可以點睇 log. 由於同一隻 App 都是放在 githu 月 Login heroku login List Application heroku apps Show log heroku logs --tail -a AppName Hope you find it useful

XSD restriction for either specific string or number (mixture type)

如果在XSD restriction 上 容許 mix restriction (mix data type) 呢? 解決方法: 我們可以建立一個simpleType 之後在simpleType 入面使用 union 再把多個simpleType union 在一起 e.g. <?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:simpleType name="NumberOrSpecificString"> <xs:union> <xs:simpleType> <xs:restriction base="xs:integer"/> </xs:simpleType> <xs:simpleType> <xs:restriction base="xs:string"> <xs:enumeration value="HongKong"/> <xs:enumeration value="London"/> <xs:enumeration value="Oxford"/> </xs:restriction> </xs:simpleType> </xs:union> </xs:simpleType> </xs:schema> Hope you find it useful

Visual Studio Useful Shortcut

最近有一個 task 係要做一些 code clean up… 發現有很多重覆既動作.. 係時候用下腦記下 D Visual Studio Shortcut… 因為用 mouse 真係有 D 慢.. 用 shortcut key 有時真係方便好多 Remove and Sort Using Ctrl + R Ctrl + G Comment the selected line Ctrl K + Ctrl + C Uncomment the selected line Ctrl K + Ctrl + U Build Solution Ctrl + Shift + B To be continue 不定時更新… Hope you find it useful

Choco check if package already installed / outated

今日想檢查一下 電腦上用 Chocolatey 安裝的 NodeJs 有沒有 outdated 所以便想找個 Choco command 來看看 找到了以下一個 command 用 Chocolatey command 來輸出一個 List choco list -lo 之後用Powershell 來找出在這個 List 有那一個 record 包含某一些字 | Where-object { $_.ToLower().Contains("{text you interested}".ToLower()) } 解決方法 choco list -lo | Where-object { $_.ToLower().Contains("node".ToLower()) } 之後找到另一個更好的 command 就是直找出 outdated 的 package 解決方法 choco outdated | Where-object { $_.ToLower().Contains("node".ToLower()) } Hope you find it useful

Firebase ReactJs routing issue - Page not found

使用 firebase hosting 來 host reactjs 既時候 出現了以下問題 當我直接在 browser 輸入 ReactJs 的 route 既時候 出現了 Page Not Found This file does not exist and there was no index.html found in the current directory or 404.html in the root directory 解決方法: 我們只需要在 firebase.json 的 hosting section 加上 rewrites 到 index.html 便可以了 { "hosting": { "public": "build", "ignore": [ "firebase.json", "**/.*", "**/node_modules/**" ], "rewrites": [ { "source": "**", "destination": "/index.html" } ] } } Hope you find it useful

How to get distinct values from an array of objects in JavaScript

今日有個 task 其中一個地方要在 Array of Json object 中 Distinct 一個 property const data = [ { id: 1, category: 'fruit', name: 'Apple', }, { id: 2, category: 'fruit', name: 'Banana', }, { id: 3, category: 'herb', name: 'Basil', }, { id: 4, category: 'herb', name: 'Rosemary', }, { id: 5, category: 'fruit', name: 'Dragon Fruit', }, ]; 解決方法: (ES5) var categories = data.map( // try to retrieve specific property function(item) { return item.

How to set Environment Variable on NodeJS

###如何設定 NodeJs Environment Variable 解決方法: 可以直接在 command line 設定 set ENV_VARIABLE=9000 && npm start 可以在package.json 上設定 e.g. "scripts": { "start": "set PORT=9000 && yarn run swagger && nodemon --exec babel-node src/index.js",babel-node src/index.js", "test": "yarn jest --coverage", "lint": "eslint src", "swagger:edit": "swagger project edit", "swagger": "js-yaml ./api/swagger/swagger.yaml > ./src/swagger.json" },