2016年10月11日 星期二

Check whether it is a valid binary search tree or not in 1 line in C++

struct Node {
       int data;
       Node* left;
       Node* right;
}

#include <limits.h>
bool checkBST(Node* root, int min = INT_MIN, int max = INT_MAX) {
       return !root || root->data >= min && root->data <= max
              && checkBST(root->left, min, root->data - 1) && checkBST(root->right, root->data + 1, max);
}


Design Pattern and Idiom

C++
NVI Idiom (Non-virtual interface, by creating a public non-virtual function that calls virtual private function that can be overridden by child class)

Java
"Double-Checked Locking" idiom, by checking null once, locking if null, and double checking null again, then initialize. It seems correct but it just works sometimes because by chance it is possible that thread B access the variable while thread A is locking and is partially creating the object. The correct solution is that after Java 5 the field should be declared volatile. The Java volatile field is equivalent to C++ atomic data member, allowing atomic assignment, and hence when thread B sees the variable it must be atomically fully created.

tcpdump and tcpreplay on Linux CentOS 7.2


tcpdump


sudo tcpdump -i em1 -nn port 14316

sudo tcpdump -i em1 -nn 'port 14316'
sudo tcpdump -i em1 -nn port 14316 or port 14311
sudo tcpdump -i em1 -nn 'port 14316 or port 14360 or port 15360 or port 14311 or port 15311'


socat

sudo socat STDIO UDP4-RECV:14316,ip-add-membership=224.0.31.28:em1




All below scripts are tested.



Test


316SA

sudo socat STDIO UDP4-RECV:14316,ip-add-membership=224.0.31.28:em1


GC


360SA

sudo socat STDIO UDP4-RECV:14360,ip-add-membership=224.0.31.202:em1
360SB
sudo socat STDIO UDP4-RECV:15360,ip-add-membership=224.0.32.202:em1


MDP

311SA

sudo socat STDIO UDP4-RECV:14311,ip-add-membership=224.0.31.23:em1
311IA
sudo socat STDIO UDP4-RECV:14311,ip-add-membership=224.0.31.2:em1
311IB
sudo socat STDIO UDP4-RECV:15311,ip-add-membership=224.0.32.2:em1
311NA
sudo socat STDIO UDP4-RECV:14311,ip-add-membership=224.0.31.44:em1






[quantprod@hkoffice083 dev]$ sudo socat STDIO UDP4-RECV:14311,ip-add-membership=224.0.31.23:em1
2016/10/11 05:00:25 socat[20560] E bind(3, {AF=2 0.0.0.0:14311}, 16): Address already in use
[quantprod@hkoffice083 dev]$ sudo socat STDIO UDP4-RECV:14311,ip-add-membership=224.0.31.2:em1
2016/10/11 05:00:33 socat[20562] E bind(3, {AF=2 0.0.0.0:14311}, 16): Address already in use
[quantprod@hkoffice083 dev]$ sudo socat STDIO UDP4-RECV:15311,ip-add-membership=224.0.32.2:em1
2016/10/11 05:00:42 socat[20564] E bind(3, {AF=2 0.0.0.0:15311}, 16): Address already in use
[quantprod@hkoffice083 dev]$ sudo socat STDIO UDP4-RECV:14311,ip-add-membership=224.0.31.44:em1
2016/10/11 05:00:46 socat[20566] E bind(3, {AF=2 0.0.0.0:14311}, 16): Address already in use
[quantprod@hkoffice083 dev]$

pcap

sudo tcpdump -i em1 -nn 'port 14316 or port 14360 or port 15360 or port 14311 or port 15311' -c 1000 -w 311SA.pcap
sudo tcpdump -i em1 -nn 'port 14316 or port 14360 or port 15360 or port 14311 or port 15311' -c 1000 -w 311IA.pcap
sudo tcpdump -i em1 -nn 'port 14316 or port 14360 or port 15360 or port 14311 or port 15311' -c 1000 -w 311IB.pcap
sudo tcpdump -i em1 -nn 'port 14316 or port 14360 or port 15360 or port 14311 or port 15311' -c 1000 -w 311NA.pcap

sudo tcpdump -i em1 -nn 'port 14316 or port 14360 or port 15360 or port 14311 or port 15311' -c 1000 -w 360SA.pcap
sudo tcpdump -i em1 -nn 'port 14316 or port 14360 or port 15360 or port 14311 or port 15311' -c 1000 -w 360SB.pcap

tcpreplay
sudo yum install tcpreplay
http://tcpreplay.synfin.net/wiki/tcpreplay

sudo tcpreplay --loop=0 --intf1=eth0 capture.pcapng

2016年10月10日 星期一

How to compile a Gradle project using command line in Java CME MDP 3.0



Example Project:
https://github.com/epam/java-cme-mdp3-handler


PrintAllSecuritiesTest
1. Copy the directory that contains the required jar files from workspace\AAA\build\b2bits-jmdp3-1.0\lib\ to workspace\AAA\bin\lib\

2. You can use below command to include the classpath of the jar files and start the test
java -cp ".;lib/*" com.epam.cme.mdp3.test.PrintAllSecuritiesTest

3. If the config files are not found, you will see below error messages.
ERROR StatusLogger No log4j2 configuration file found. Using default configuration: logging only errors to the console.
java.lang.NullPointerException
        at com.epam.cme.mdp3.test.PrintAllSecuritiesTest.main(PrintAllSecuritiesTest.java:80)


4. Copy all xml files similar to workspace\AAA\src\test\resources\config.xml to workspace\AAA\bin\config.xml

5. Run the command again
C:\Users\rickypc\workspace\AAA\bin>java -cp ".;lib/*" com.epam.cme.mdp3.test.PrintAllSecuritiesTest
[INFO ] 2016-10-10 15:59:17.940 [Thread-1] PrintAllSecuritiesTest - Channel '311': N feed A is started

6. Notice the below log file will be generated.
Java Market Data Handler for CME Market Data (MDP 3.0).log


Note.
On linux, you need to add the below line to the file /etc/hosts
192.168.10.50 hkoffice083 localhost

SbeParserBenchmark

1. Prepare the file workspace\AAA\bin\dist\pcap\311_AX.bin from workspace\AAA\src\cucumber\sim\data\incr\311_AX_224.0.31.2_17511.zip

2. Run java -cp ".;lib/*" com.epam.cme.mdp3.test.SbeParserBenchmark
or
java -cp ".:lib/*" com.epam.cme.mdp3.test.SbeParserBenchmark


5. Run the command again
5. Run the command again
5. Run the command again
5. Run the command again
5. Run the command again



Eclipse

1. Add jar to Project > Properties > Java Build Path > Libraries > Add JARs































2. Add "Resource" folder as class path folder







































3. 

2016年10月6日 星期四

My CPU List Computer Hardware (2022)

2022

AMD Ryzen 9 3900X HKD$2500
CRUCIAL 8GB DDR4-2666 UDIMM 1.2V CL19 CT8G4DFS8266.8FE1 x 2 RMB$255
MSI B450M MORTAR MAX mATX AMD B450 AM4 4DIMM RTL8111H-CG RMB$220
Intel SSDPEKKF256G8L 3.3V 19JUN2018 NVME RMB$140
Cooler Master GX550 Fully Modular 80 PLUS RMB$160
ASUS GT730-MG-2GD3-V2 RMB$160
SOEYI Acer mATX 300x190x381mm RMB$89
100 RMB to HKD 123
Total = $2500 + RMB$1024 = 2500+1266 = $3766




The CPU that I have met


Desktop

Intel® Celeron® Processor 333 MHz, 128K Cache, 66 MHz FSB Socket 370
AMD Athlon XP 2100+ Socket 462 Thoroughbred
Intel® Pentium® 4 Processor 2.40 GHz, 512K Cache, 533 MHz FSB Socket 478
Intel® Pentium® D Processor 915 (4M Cache, 2.80 GHz, 800 MHz FSB) LGA775
AMD Althon 64 X2 3600+ Socket AM2
AMD Athlon 64 X2 4400+ Socket AM2
AMD Athlon 64 X2 5200+ Socket AM2
Intel® Core™2 Duo Processor E6600 (4M Cache, 2.40 GHz, 1066 MHz FSB) LGA775
AMD Turion II Neo N40L 1.5 GHz Dual Core
AMD A4-5300 Socket FM2
Intel® Core™ i3-2100 Processor (3M Cache, 3.10 GHz) LGA1155

Notebook

Intel® Core™ Duo Processor T2300 (2M Cache, 1.66 GHz, 667 MHz FSB) Samsung X11
Intel® Atom™ Processor N270 (512K Cache, 1.60 GHz, 533 MHz FSB) Asus 1000HD
Intel® Atom™ Processor N550 (1M Cache, 1.50 GHz) Samsung NC110
Intel® Core™2 Duo Processor P8600 (3M Cache, 2.40 GHz, 1066 MHz FSB) Lenovo X200
Intel® Core™ i5-2557M Processor (3M Cache, up to 2.70 GHz) Macbook Air 2011



Work

Intel® Xeon® Processor X5670 (12M Cache, 2.93 GHz, 6.40 GT/s Intel® QPI) BL460c G7
Intel® Xeon® Processor E5-2650 v2 (20M Cache, 2.60 GHz) BL460c G8

Intel® Core™ i7-4771 Processor (8M Cache, up to 3.90 GHz) LGA1150 VirtualBox
Intel® Core™ i5-4440 Processor (6M Cache, up to 3.30 GHz) LGA1150 Windows
Intel® Core™ i3-4150 Processor (3M Cache, 3.50 GHz) LGA1150 Linux
Intel® Xeon® Processor E5405 (12M Cache, 2.00 GHz, 1333 MHz FSB) RS1500SAS
Intel® Xeon® Processor E5520 (8M Cache, 2.26 GHz, 5.86 GT/s Intel® QPI) Dell R410

Working Notebook
Intel® Core™ i5-8250U on Lenovo X1 Carbon Gen 6 from 2018 to 2021
Intel® Core™ i5-7200U on Lenovo X1 Carbon Gen 5 from 2022

2016年10月5日 星期三

Installing CMake 3.7.0 on Windows 10

Installing CMake 3.7.0 on Windows 10

1. Download https://cmake.org/download/ > Platform > "Windows win64-x64 ZIP" > "cmake-3.7.0-rc1-win64-x64.zip", unzip as "C:\Program Files\cmake-3.7.0-rc1-win64-x64"


Note: It seems lucrative to download the common MSI file "cmake-3.7.0-rc1-win64-x64.msi" BUT it is used to install the CMake GUI which is designed to build the binary from CMake source files but NOT for installing the binaries. So DON'T waste your time to download the MSI file.

2. Add CMake's bin folder "C:\Program Files\cmake-3.7.0-rc1-win64-x64\bin" to System Envoronment Variables Path similar to JDK 
























3. Run cmd.exe > "cmake --version" to verify the installation
C:\Users\rickypc>cmake --version
cmake version 3.7.0-rc1
CMake suite maintained and supported by Kitware (kitware.com/cmake).

Installing Gradle 3.1 on Windows 10

Detail also refer to https://www.ibm.com/developerworks/cn/opensource/os-cn-gradle/



Installing Gradle on Windows 10

1. Go to https://gradle.org/gradle-download/, download Binary only distribution, unzip as C:\Program Files\Java\gradle-3.1











2. Add Gradle's bin folder "C:\Program Files\Java\gradle-3.1\bin" to System Envoronment Variables Path similar to JDK






3. Run cmd.exe > "gradle -version" to verify the installation
C:\Users\rickypc>gradle -version
------------------------------------------------------------
Gradle 3.1
------------------------------------------------------------
Build time:   2016-09-19 10:53:53 UTC
Revision:     13f38ba699afd86d7cdc4ed8fd7dd3960c0b1f97
Groovy:       2.4.7
Ant:          Apache Ant(TM) version 1.9.6 compiled on June 29 2015
JVM:          1.8.0_101 (Oracle Corporation 25.101-b13)
OS:           Windows 10 10.0 amd64

Java JDK Eclipse on Windows 10

https://www.pcsetting.com/devtools/35?page=0%2C0

在 Windows 系統中安裝設定 Java JDK 開發環境及 Eclipse 開發工具使用教學

Java是一個電腦程式設計語言,因為有跨平台、物件導向與泛型程式設計的特性,所以我們常在電腦與行動裝置上見到Java的踪影,Java 程式語言也是一個很熱門的電腦程式設計語言,如果要開發Java程式,電腦是必須安裝JRE(Java Runtime Environment;Java執行環境)與JDK(Java Development Kit;Java開發工具包)。JRE與JDK安裝完成後,電腦才能執行您所撰寫的Java程式。當然在撰寫Java程式時,需要有一個好用的Java程式開發平台,本文教學會介紹一個Java著名的開發平台,那就是Eclipse。Eclipse最初是由IBM公司開發的Java開發工具平台,在2001年IBM公司將Eclipse貢獻給開源社群後,現在的Eclipse則有Eclipse基金會來管理維護,Eclipse不僅僅只能開發Java程式,也有程式開發者透過安裝外掛模組,使其能開發其他的電腦程式語言,如:PHP、Python與C/C++等等。
本文教學將指引使用者如何在Windows系統環境中安裝與設定Java JDK開發環境,並且將指引使用者下載及使用Eclipse開發工具平台,及撰寫第一支簡單的Java程式Hello World,最後如果需要將Eclipse開發平台介面更改至其他語言介面,如:繁體中文,應如何更改的教學。本文教學安裝的Java JDK版本為8.0(1.8),舊版的Java JDK 7.0(1.7)也可以參考此教學進行設定,基本上舊版與新版的Java在Windows系統環境下設定Java開發環境方式都是一樣的。而Eclipse開發工具版本為4.4.0(Luna)。
1)下載與安裝 Java JDK。
Step 1:連結至Oracle官網的Java JDK下載頁,選擇下載您要的Java JDK版本,如下圖所示,筆者選擇下載最新的Java JDK 8.0。
Java JDK 下載-jdkecl001

Step 2:點選如下圖所示的『Accept License Agreement』許可協議。
Java JDK 下載-jdkecl002

Step 3:點選您電腦系統的版本,本教學是要指引使用者在Windows環境下安裝Java JDK,當然只有兩種版本『Windows x86』與『Windows x64』的選擇,如果您電腦是32位元的就點選『Windows x86』版本下載;如果您電腦是64位元的就點選『Windows x64』版本下載。如果不確定自己電腦是否可以支援64位元架構的可以查看Microsoft官網的說明:如何分辨我的電腦是否可執行 64 位元版本?若還是不確定,請點選 『Windows x86』版本下載。如下圖所示,筆者電腦系統是64位元架構,所以點選『Windows x64』版本下載並直接執行安裝。
Java JDK 下載-jdkecl003

Step 4:進入安裝畫面,點選『Next』。
Java JDK 安裝-jdkecl011

Step 5:是否需要更改安裝路徑,筆者這邊強烈建議使用預設的安裝路徑,不建議更改安裝路徑,點選『Next』。點選『Next』後,安裝程式就會執行安裝JDK的動作。還有如果您電腦未安裝JRE,這邊也會要求安裝並指引您安裝JRE的動作。
Java JDK 安裝-jdkecl012

Step 6:Java JDK開發環境安裝完成,退出安裝程式,點選『Close』。
Java JDK 安裝-jdkecl013

2)設定Java開發環境。
Step 1:Java JDK安裝好後,接下來要進行設定Java的開發環境,按下鍵盤『windows 鍵』+『E』打開Windows 檔案總管,點選如下圖所示的『系統內容』。
設定 Java JDK 開發環境-jdkecl021

Step 2:點選左側的『進階系統設定』。
設定 Java JDK 開發環境-jdkecl022

Step 3:在『進階』頁籤,點選如下圖所示的『環境變數』。
設定 Java JDK 開發環境-jdkecl023

Step 4:跟著如下圖的方式點選系統變數中的『Path』並點選『編輯』,以進行新增新的環境變數。
設定 Java JDK 開發環境-jdkecl024

Step 5:點選『編輯』後,要複製Java的環境變數的路徑位置,最簡單的方式就是開啟複製Java路徑的絕對位置,一般路徑如下:
C:\Program Files\Java\jdk(您所下載jdk的版本)\bin
設定 Java JDK 開發環境-jdkecl025

Step 6:在變數值的最後面加上一個分號『;』,並將您複製好的絕對路徑位置貼上,貼上格式如下:(**這邊請小心謹慎編輯,否則變更到其他的變數值,可能會造成系統不穩定之後果。)
;C:\Program Files\Java\jdk(您所下載jdk的版本)\bin
設定 Java JDK 開發環境-jdkecl026

Step 7:新增好環境變數後,按『確定』,進行儲存系統變數變更。
設定 Java JDK 開發環境-jdkecl027

Step 8:接下來進行測試Java環境變數是否正確設定完成。按下鍵盤『windows鍵』+ 『R』,開啟『執行』對話框,輸入『cmd』,並點擊『確定』,開啟命令提示字元視窗。
測試 Java JDK 開發環境是否設定正確-jdkecl031

Step 9:開啟命令提示字元視窗之後,輸入『javac -version』,按下鍵盤『Enter鍵』,如能順利顯示『javac 版本號』,則代表您Java JDK開發環境已正確設定完成,並且可以開始撰寫Java程式了。
測試 Java JDK 開發環境是否設定正確-jdkecl032

3)下載Eclipse開發工具。
Step 1:連結至eclipse官方下載頁面,選擇適用您系統的位元版本,關於怎麼選擇位元版本,筆者在安裝Java JDK第一頁已說明了,這邊就不在敘說了。
Eclipse 開發工具下載-jdkecl041

Step 2:下載好後,可以依使用者的習慣將Eclipse解壓縮至一個位置,如下圖所示筆者個人習慣將Eclipse解壓縮至C槽的Program Files資料夾裡。
Eclipse 開發工具解壓縮-jdkecl051

Step 3:解壓縮好後,為了方便日後開啟Eclipse開發工具,建議可以在桌面建立一個Eclipse捷徑。滑鼠右鍵點選『eclipse.exe』,點選『傳送到』,並點選『桌面(建立捷徑)』。
Eclipse 開發工具解壓縮-jdkecl052

4)開始使用Eclipse開發工具。
Step 1:開啟『eclipse.exe』開發工具,會跳出一個視窗要求選擇一個Workspace,預設路徑會在C槽位置,建議可以更改至其他位置,如:D槽,日後您儲存的專案都會在您選好的這個位置。選擇好Eclipse Workspace位置後,可以勾選『Use this as the default and do not ask again』,這邊大意是說使用這個為預設值與不要再詢問。勾選好後點選『OK』。
Eclipse 開發工具使用教學-jdkecl061

Step 2:如下圖所示是Eclipse的介面介紹,這些視窗位置都可以依使用者的喜好去更動位置,如果不小心關閉掉某個視窗,並不知道要怎麼開回的話,可以點選功能列的『Window』,並點選『Reset Perspective...』,就可以回复Eclipse預設的視窗原貌了。
Eclipse 開發工具使用教學-jdkecl062

Step 3:我們開始寫第一個簡單的Java程式,首先先新增一個專案,點選功能列的『File』,點選『New』,因是要寫第一個新的Java程式,所以這邊選擇『Java Project』。
Eclipse 開發工具使用教學-jdkecl063

Step 4:在『Project name』輸入一個專案名稱,您可以看到如下圖所示JRE的地方,Eclipse會自動偵測您電腦的開發環境版本,並自動選取版本,如果安裝JDK新版本8.0會自動選取『JavaSE-1.8』;如果是安裝JDK舊版本7.0會自動選取『JavaSE-1.7』。專案名稱輸入完成後,點選『Finish』。
Eclipse 開發工具使用教學-jdkecl064

Step 5:新增好一個新的專案後,您可以點選小小三角形展開剛剛新建立的專案,您可以看到裡面有個src資料夾,也就是用來存放Source File的位置。還有下面有引用的JRE Library。
Eclipse 開發工具使用教學-jdkecl065

Step 6:滑鼠右鍵點選如下圖所示剛剛新增的『專案』,點選『New』,並點選『Class』。
Eclipse 開發工具使用教學-jdkecl066

Step 7:在New Java Class視窗中,可以跟著如下圖所示的位置去輸入,『Package』可以留空使用預設的,但不建議這麼做、『Name』必填及勾選『public static void main(String[] args)』等下產生的程式碼中會帶有main方法,不用另外麻煩寫這一段了。輸入及勾選完成後,點選『Finish』。
Eclipse 開發工具使用教學-jdkecl067

Step 8:新增好Class後,會自動產生一些必要的程式碼,您也可以看到剛剛勾選的『public static void main(String[] args)』這一段程式碼,接下來可以開始寫您第一支Hello World簡單的程式了。
Eclipse 開發工具使用教學-jdkecl071

Step 9:其實Hello World程式很簡單只是需要print輸出字串『Hello World!』就行了。Hello World程式碼如下:
package pcsettingfirstpj;
public class TestHelloWorld {
 public static void main(String[] args) {
  // TODO Auto-generated method stub
  System.out.println("Hello World!"); //請自行輸入此行
 }
}
Eclipse 開發工具使用教學-jdkecl072

Step 10:完成後,儲存您的程式碼,接下來要執行您的程式,在工具列點選如下圖所示的『小箭頭圖示』,點選『Run As』,及點選執行『Java Application』。
Eclipse 開發工具使用教學-jdkecl073

Step 11:執行後,您可以在Console視窗中,看到執行結果。如果程式碼有錯誤,也會在下面出現警告及錯誤訊息。接下來教學是:如何中文化Eclipse開發工具介面。
Eclipse 開發工具使用教學-jdkecl074

5)安裝Eclipse其他語言與中文化。
Step 1:連結至Eclipse Babel Project,點選如下圖所示的『Downloads』。
Eclipse 開發工具安裝其他語言設定教學-jdkecl081

Step 2:先選擇及複製如下圖所示Eclipse版本下面所附的網址,本文教學是使用4.4.0-Luna版本,所以會複製Luna『Babel Language Pack Update Site for Luna』版本的網址。
Eclipse 開發工具安裝其他語言設定教學-jdkecl082

Step 3:回到Eclipse開發工具,點選功能列的『Help』,並點選『Install New Software...』。
Eclipse 開發工具安裝其他語言設定教學-jdkecl083

Step 4:貼上您剛剛copy的網址,並點擊『Add』。
Eclipse 開發工具安裝其他語言設定教學-jdkecl084

Step 5:在『Name』中輸入一個名稱,如果『Location』裡是空的,請在次貼上您剛剛copy的網址。確定完成後,點選『OK』。
Eclipse 開發工具安裝其他語言設定教學-jdkecl085

Step 6:點選『OK』後,您會在這邊看到『Pending』字眼,大概稍等一會兒後就會看到不同語言的語言包,勾選『Babel Language Packs in Chinese (Traditional)』,並點選『Next』。
Eclipse 開發工具安裝其他語言設定教學-jdkecl086

Step 7:可以檢視看到等下會下載的語言包,點選『Next』。
Eclipse 開發工具安裝其他語言設定教學-jdkecl087

Step 8:選擇『I accept the terms of the license agreement』的許可協議後,點選『Finish』。
Eclipse 開發工具安裝其他語言設定教學-jdkecl088

Step 9:可以選擇在背景中執行安裝程序,但筆者覺得沒差,就等待安裝完成,在安裝過程可能會出現安全警告『Security Warning』,這邊大意是說:有些軟體未經過認證,是否確定繼續安裝?就點選『OK』繼續安裝。
Eclipse 開發工具安裝其他語言設定教學-jdkecl089

Step 10:安裝完成後,需要重啟Eclipse開發工具,才能使剛剛您安裝的語言包生效,點選『Yes』重啟Eclipse吧。
Eclipse 開發工具安裝其他語言設定教學-jdkecl090

Installing Eclipse Neon on CentOS 7





Installing JDK

Download
http://www.oracle.com/technetwork/java/javase/downloads/index.html

Java SE Downloads > Java Platform (JDK) 8u101 / 8u102 > Accept License Agreement  > jdk-8u101-linux-x64.rpm


Install
[ricky@pc009 ~]$ sudo rpm -Uvh jdk-8u101-linux-x64.rpm


Installing Eclipse

Download
http://www.eclipse.org/downloads/eclipse-packages/?osType=linux&release=undefined

Eclipse IDE for Java Developers Linux 64 bit


Unzip
[ricky@pc009 ~]$ sudo tar -zxvf eclipse-java-neon-1-linux-gtk-x86_64.tar.gz -C /usr/local
[ricky@pc009 ~]$ vi ~/.bash_profile
PATH=$PATH:$HOME/.local/bin:$HOME/bin:/usr/local/eclipse
[ricky@pc009 ~]$ eclipse &

Compile
New a project, and class, with below content
package test01;

public class Tester {
public static void  main(String[] args) {
System.out.println("Hello World");
}
}


Installing Gradle
[ricky@pc009 ~]$ sudo unzip gradle-3.1-bin.zip -d /usr/local
[ricky@pc009 ~]$ vi ~/.bash_profile
PATH=$PATH:$HOME/.local/bin:$HOME/bin:/usr/local/eclipse:/usr/local/gradle-3.1/bin
[ricky@pc009 ~]$ gradle -v
------------------------------------------------------------
Gradle 3.1
------------------------------------------------------------
Build time:   2016-09-19 10:53:53 UTC
Revision:     13f38ba699afd86d7cdc4ed8fd7dd3960c0b1f97
Groovy:       2.4.7
Ant:          Apache Ant(TM) version 1.9.6 compiled on June 29 2015
JVM:          1.8.0_101 (Oracle Corporation 25.101-b13)
OS:           Linux 3.10.0-327.el7.x86_64 amd64

Installing 

2023 Promox on Morefine N6000 16GB 512GB

2023 Promox on Morefine N6000 16GB 512GB Software Etcher 100MB (not but can be rufus-4.3.exe 1.4MB) Proxmox VE 7.4 ISO Installer (1st ISO re...