git diff/difftool

set meld as an external diff tool, it is the Old way, which is no longer preferred

First you will need to create a simple wrapper script for meld

$ cat ~/bin/git-meld
#!/usr/bin/bash
exec Meld "$2" "$5"

Please don't forget to add the directory containes Meld.exe to your PATH environment variable.
if you are using a real Linux system instead of MSYS2, you will normally need to change Meld to meld and /usr/bin/bash to /bin/bash

After that, run git config --global diff.external git-meld. Ok, you have done. Every time you run git diff, meld will be called.

In case you want to temporarily disable the behaviour, run git diff --no-ext-diff

Normally it is enough for your daily diff job. However, there is also another approach that you can always keep the default text diff behaviour for git diff while you use git difftool for a gui diff.

Another way / Preferred way

Regarding this approach,

  • don't set the diff.external config, so we will not change the default diff behaviour
  • run the following config instructions:
git config --global diff.tool meld
git config --global difftool.prompt false

If you want a normal text diff, run git diff as usual. If you want a GUI diff, run git difftool instead.
PS. Based on my experience, the second way is more comfortable, so it is the preferred way.

Set bash terminal integration with Visual Studio 2019

Solution for Slow logon via Remote Desktop to Server 2012: Disable the Large Send Offload

Recently, I found it became very slow when I am logging onto my development VM, a windows server 2012R2 instance through Remote Desktop. There are many kinds of solutions in Google's search results. I tried many of them and found only this one suits me.

On the Windows Server 2012 machine, disable the Large Send Offload via the following steps:

Open Network Connections. 
Click Change adapter settings
Right-click the icon of the Network card and select Properties.
In Networking tab, click Configure… button.
In the next window, switch to Advanced tab.
Click the Large Send Offload Version 2 (IPv4) and change the value to Disabled.
Click the Large Send Offload Version 2 (IPv6) and change the value to Disabled.

Your RDP connection will disconnect right away after you apply the change. Don't worry, connect it back and you will find the annoying delay disappears!

Reference

CTE 101

Today I first learnt the concept of CTE (Common Table Expression) from my colleague Rod. Basically, CTE can be used to improve the readability of your long and complex SQL statement.

for example, without CTE, you might write the following SQL:

CREATE OR REPLACE VIEW dfx.test_vw123 AS
SELECT 
	a.FIELD_A, 
	a.FIELD_B, 
	b.FIELD_C
	b.FIELD_D
FROM (
	SELECT 
		MAX(FIELD_A) AS FIELD_A, 
		COUNT(*) AS FIELD_B 
	FROM TABLE_A ta 
	WHERE ta.FIELD_E = 'General' 
	GROUP BY ta.FIELD_F
) a 
LEFT JOIN TABLE_A b 
ON a.FIELD_A = b.FIELD_A

with CTE, you could write the following one with better readability.

CREATE OR REPLACE VIEW dfx.test_vw123 AS
WITH TABLE_A_STATS AS (
	SELECT 
		MAX(FIELD_A) AS FIELD_A, 
		COUNT(*) AS FIELD_B 
	FROM TABLE_A ta 
	WHERE ta.FIELD_E = 'General' 
	GROUP BY ta.FIELD_F
)
SELECT 
	a.FIELD_A, 
	a.FIELD_B, 
	b.FIELD_C
	b.FIELD_D
FROM TABLE_A_STATS a 
LEFT JOIN TABLE_A b 
ON a.FIELD_A = b.FIELD_A;

For further information about CTE, click Reference
I also found another article about CTE in Chinese.

读书笔记:也许你该找个人聊聊

也许你该找个人聊聊

洛莉·戈特利布

序:當痛苦可以被言説

2022-01-07 23:23:04

你沒法逃避痛苦,只能承認。

2022-01-07 23:24:15

但最根本的辦法,説來説去只有一個,就是誠實。誠實地承擔來訪者遭遇的無常,也誠實接受自己哪怕有此覺悟,仍會有無法負擔之重。

2022-01-08 23:20:49

我們改變不了問題,但我們可以改變對問題的態度。或者説,只要能夠看到問題的存在,就已經改變了面對問題的態度

2022-01-08 23:21:30

洛莉的故事,所有人的故事,説到底都是同一件事——我們無法逃避痛苦,只能承認。

2022-01-08 23:41:35

不要心存幻想。這個世界沒有奇跡。你無法逃避你所遇到的痛苦,心理學也不能提供任何幻想,但不要忘了,世界上也有這樣的地方,有這樣一些人,可以直面這個無處可逃的、困惑的、痛苦的你。你們坐在一起,隨便談談。你可以言説真實的你,而這就是心理咨詢的奇跡所在。

…more