一位同事被主管(?)在公司的LINE群組嗆,發生時間為2019年6月30日,一個夏初炎熱的周六午後。下面是原始對話。
2019/6/30
2019/6/28
Java Thread Pool 簡介
從Java 1.5開始,增加了java.util.concurrent
的Concurrency API來處理併行程式,java.util.concurrent
提供多個類別及方法讓我們能夠更方便地建立,管理,執行多執行緒,其中一個重要的特色就是Thread Pool。
2019/6/27
Java 使用ExecutorService來執行多執行緒
原本在Java使用多執行緒來做平行處理時,都是透過建立Thread
物件,傳入Runnable
,然後呼叫Thread.start()
來執行,請參考Java 如何建立Thread。
2019/6/26
分散式系統的CAP定理(CAP theorem)
在設計分散式系統(Distributed System)前,必須要了解CAP定理(CAP theorem),又稱布魯爾定理(Brewer's theorem)。
2019/6/24
Spring Cloud Eureka 使用RestTemplate實作服務間溝通(Service to Service Communication)範例一
本篇示範如何在一個Spring Cloud Eureka的一個服務透過RestTemplate
呼叫另一外一個服務的REST API。
2019/6/23
2019/6/21
Spring Cloud 建立 Spring Cloud Netflix Eureka Server
本篇介紹如何使用Spring Boot建立Spring Cloud NetFlix Eureka Server。
Spring Cloud 建立 Spring Cloud Netflix Eureka Client
本篇介紹如何使用Spring Boot建立Spring Cloud NetFlix Eureka Client。
Spring Cloud Netflix Eureka簡介
微服務架構(Microservice Architecture)中很重要的一環就是服務註冊及發現(Service Registration and Discovery)。
2019/6/20
2019/6/19
2019/6/18
Vim 離開時發生 E37: No write since last change (add ! to override) 無法離開
如果你用Vim開啟了檔案,進入插入模式(Insert Mode)修改了內容,然後沒有存檔直接在命令模式(Command Mode)輸入q
離開Vim,就會發生E37: No write since last change (add ! to override)
的提示。
2019/6/17
2019/6/16
Visual Studio Code copy current line to next line (copy line down) shortcut key
Visual Studio Code (VS Code) copy current line to next line shortcut key.
2019/6/15
Angular 使用wildcard route (**) 處理無效的URL
在設計Angular元件的Route時,對於錯誤或非預期的URL請求,可以透過配置wildcard route來攔截,並返回預先設計好的結果。
2019/6/14
2019/6/13
2019/6/12
Hibernate JPA Entity屬性應該用原始型別(Primitive type)或包裹類別(Wrapper class)
當定義與資料表映射的Entity class(實體類別)時,若Entity屬性(成員變數)對映的資料表欄位是基本資料型態(例如整數(INTEGER),長整數(BIGINT),浮點數(DOUBLE)等),那應該用原始型別(Primitive type)還是包裹類別(Wrapper class)來定義Entity的屬性呢?
2019/6/9
2019/6/8
Visual Studio Code select current line shortcut key
Visual Studio Code (VS Code) select current line shortcut key.
SVN 為什麼無法ignore檔案
一個專案中有些檔案是不需要被SVN版控的,通常是一些IDE與如Eclipse相關的檔案,像是.classpath
,.project
,.settings
等。或是編譯或建構生成的檔案,例如Maven的target
目錄。
TortoiseSVN 從SVN repository check out專案並匯入Eclipse
本篇介紹如何用TortoiseSVN將SVN repository上的專案checkout下來至本機的指定資料夾中。
2019/6/7
VisualSVN 建立多專案(multi projects)的SVN repository
建立多個專案的SVN repository (multi projects SVN repository),以VisualSVN Server為例做法如下。
KIRKLAND MICROWAVE POPCORN - MOVIE THEATER BUTTER
今天(2019/06/07)晚上和老婆去桃園統領威秀去看哥吉拉II,在樓下全家超商買了一包好市多牌的KIRKLAND奶油爆米花上去邊看邊吃。
2019/6/6
Eclipse Maven pom.xml Maven Configuration Problem: Unknown
今天用Eclipse (2019-03)的STS plugin建立Spring Boot Web Starter專案(2.1.5)時,專案的pom.xml
第一行出現未知的紅色叉叉錯誤如下。
TortoiseSVN 無法登入SVN repository
如果發現原本之前可以正常連線到SVN repository的TortoiseSVN(也就是可以正常checkout,show log,commit等),突然變成無法連線(也就是無法checkout,show log,commit),然後即使輸入正確的帳號密碼也登不進去,可以試著將TortoiseSVN儲存的驗證資料刪除,打開TortoiseSVN的settings,在Saved Data項目中,點選Authentication data右側的Clear all刪除全部原本記住的連線SVN repository的帳號密碼。刪除後需要重新連接SVN repository並重新輸入帳號密碼即可。
2019/6/5
SmartSVN How to open Directories window
The way to open the [Directories] window of SmartSVN (v11.0.2) is select Window -> Directories
on the Menus bar, or you can press shortcut key Ctrl + Shift + 1。
SmartSVN 更改編輯器的字型大小(font size)
SmartSVN的程式編輯器預設字型大小是9,中文看起來太小了,
在功能選單的Edit -> Preferences...
,然後選擇User Inteface -> Built-in Text Editor
中可以調整字型和大小。
2019/6/4
MySQL Workbench 無法直接編輯資料表的資料
如果MySQL Workbench中無法直接編輯(新增、刪除、修改)資料表中的資料,那或許是你的資料表沒有設定主鍵(Primary Key)欄位或Unique Non-null欄位。
2019/6/3
2019/6/2
「發布」還是「發佈」
軟體開發常會說,要發布(publish)哪個版本(revision),中文的publish有「發布」和「發佈」兩個詞,微軟新注音的提示也同時有兩種,網路上查兩個詞意思一樣,「發布」和「發佈」是通用的。
2019/6/1
Java 副作用Side Effects
程式的副作用Side Effects是指當一個表示式(expression),函式(function)或方法(method)會改變外面物件的狀態或內容時,這個函式就被稱為有副作用。
Java String Pool 字串池,使用 == 比較兩個String是否相等
我們都知道,Java程式中比較兩個String
變數是否相同時,應該用equals(String s)
,但面試時常會看到使用==
比較兩個String
變數,這主要是考你是否知道String Pool(字串池)的概念。