Total Pageviews
2020/02/29
2020/02/28
2020/02/10
[Docker] 如何將預先準備好的 SQL 檔案,於啟動時匯入 Oracle Docker
1. 確認 Docker 所 mount 的 directory
2. 將準備好的 SQL file(s) 放到特定目錄下
3. 指定 volume,將 sql 所存放的路徑 (i.e. /Users/guojunyou/Documents/docker/local-initdb) 對應到 /etc/entrypoint-initdb.d
Reference
[1] https://hub.docker.com/r/orangehrm/oracle-xe-11g
2. 將準備好的 SQL file(s) 放到特定目錄下
3. 指定 volume,將 sql 所存放的路徑 (i.e. /Users/guojunyou/Documents/docker/local-initdb) 對應到 /etc/entrypoint-initdb.d
docker run -d --shm-size=2g -p 8080:8080 -p 1521:1521 \ -e NLS_LANG="TRADITIONAL CHINESE_TAIWAN.AL32UTF8" \ -v /Users/guojunyou/Documents/docker/local-initdb:/etc/entrypoint-initdb.d \ 42dda6eba3ea
Reference
[1] https://hub.docker.com/r/orangehrm/oracle-xe-11g
Labels:
Docker
2020/02/09
[Docker] 如何解決 Oracle Docker 匯入資料繁體中文亂碼問題
Problem
我有準備好 create table 與 insert data 的語法在指定目錄,並用以下指令啟動 docker:
並成功啟動 Oracle docker
發現所 insert 的資料都是亂碼
How-To
這是因為編碼所導致的問題,在啟動指令增加一個參數
-e NLS_LANG="TRADITIONAL CHINESE_TAIWAN.AL32UTF8" 即可解決亂碼問題
我有準備好 create table 與 insert data 的語法在指定目錄,並用以下指令啟動 docker:
docker run -d --shm-size=1g -p 8080:8080 -p 1521:1521 \ -v /Users/guojunyou/Documents/docker/local-initdb:/etc/entrypoint-initdb.d \ 42dda6eba3ea
並成功啟動 Oracle docker
guojunyoude-iMac:~ guojunyou$ docker logs 4445b2acf933 --details Starting Oracle Net Listener. Starting Oracle Database 11g Express Edition instance. Database init... /start.sh: running /etc/entrypoint-initdb.d/data.sql Table created. 1 row created. 1 row created. 1 row created. 1 row created. End init. Oracle started successfully!
發現所 insert 的資料都是亂碼
How-To
這是因為編碼所導致的問題,在啟動指令增加一個參數
-e NLS_LANG="TRADITIONAL CHINESE_TAIWAN.AL32UTF8" 即可解決亂碼問題
docker run -d --shm-size=1g -p 8080:8080 -p 1521:1521 \ -e NLS_LANG="TRADITIONAL CHINESE_TAIWAN.AL32UTF8" \ -v /Users/guojunyou/Documents/docker/local-initdb:/etc/entrypoint-initdb.d \ 42dda6eba3ea
Labels:
Docker
2020/02/08
[Docker] Error response from daemon: Get https://registry-1.docker.io/v2/: net/http: request canceled while waiting for connection
Problem
As I tried to pull a docker image, I got the following error message:
How-To
Configure proxy and restart docker
Pull again
As I tried to pull a docker image, I got the following error message:
F:\git λ docker pull orangehrm/oracle-xe-11g Using default tag: latest Error response from daemon: Get https://registry-1.docker.io/v2/: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)
How-To
Configure proxy and restart docker
Pull again
F:\git λ docker pull orangehrm/oracle-xe-11g Using default tag: latest latest: Pulling from orangehrm/oracle-xe-11g cb56c90f0b30: Pull complete 0acc551e5716: Pull complete 8956dcd35143: Pull complete 908242721214: Pull complete b44ff14dd3bb: Pull complete 81ac3d025953: Pull complete b555aeaf1117: Pull complete e1896669ff82: Pull complete 9437119349eb: Pull complete 96e36910991c: Pull complete 2de589c896ac: Pull complete c5510f7fcb03: Pull complete c09e52e19f4b: Pull complete abbfadca26af: Pull complete c14464a9caeb: Pull complete 4468bbe36672: Pull complete 85cfa88ee1f2: Pull complete d4831108a661: Pull complete 0821dd9b7524: Pull complete b19f8225db0a: Pull complete 3001b1e31fbc: Pull complete 585b27c5a8cb: Pull complete 4977c21ef050: Pull complete acf12f209883: Pull complete 51a0fc043bdd: Pull complete 47759cd1519f: Pull complete Digest: sha256:b56c95bb59dfef4ee8d373713209105dedb52f09d56c82f94edb29f1fac3b60c Status: Downloaded newer image for orangehrm/oracle-xe-11g:latest docker.io/orangehrm/oracle-xe-11g:latest
Labels:
Docker
2020/02/07
2020/02/06
[Docker] error during connect: Get http://%2F%2F.%2Fpipe%2Fdocker_engine/v1.40/version:
Problem
When I try to get my docker version, I get the error message as bellows:
How-To
Start up docker
Check again:
When I try to get my docker version, I get the error message as bellows:
F:\git\doodle\cheers2019 (master -> origin) λ docker version Client: Docker Engine - Community Version: 19.03.5 API version: 1.40 Go version: go1.12.12 Git commit: 633a0ea Built: Wed Nov 13 07:22:37 2019 OS/Arch: windows/amd64 Experimental: false error during connect: Get http://%2F%2F.%2Fpipe%2Fdocker_engine/v1.40/version: open //./pipe/docker_engine: The system cannot find the file specified. In the default daemon configuration on Windows, the docker client must be run elevated to connect. This error may also indicate that the docker daemon is not running.
How-To
Start up docker
Check again:
F:\git\doodle\cheers2019 (master -> origin) λ docker version Client: Docker Engine - Community Version: 19.03.5 API version: 1.40 Go version: go1.12.12 Git commit: 633a0ea Built: Wed Nov 13 07:22:37 2019 OS/Arch: windows/amd64 Experimental: false Server: Docker Engine - Community Engine: Version: 19.03.5 API version: 1.40 (minimum version 1.12) Go version: go1.12.12 Git commit: 633a0ea Built: Wed Nov 13 07:29:19 2019 OS/Arch: linux/amd64 Experimental: false containerd: Version: v1.2.10 GitCommit: b34a5c8af56e510852c35414db4c1f4fa6172339 runc: Version: 1.0.0-rc8+dev GitCommit: 3e425f80a8c931f88e6d94a8c831b9d5aa481657 docker-init: Version: 0.18.0 GitCommit: fec3683
Labels:
Docker
2020/02/05
[Intellij IDEA] How to build project automatically
By default, Intellij IDEA doesn’t compile classes automatically.
But, you can enable the auto compile feature by following steps :
File => Settings => Build, Execution, Deployment => Compiler => Checked "Build project automatically"
But, you can enable the auto compile feature by following steps :
File => Settings => Build, Execution, Deployment => Compiler => Checked "Build project automatically"
Labels:
Java
2020/02/04
[Java] [Freemarker] Generate Text file from FTL - example 2
Requirement
I would like generate text file as bellows:
FTL file
Test Case
I would like generate text file as bellows:
FreeMarker Template example: Hello World! ===================(Page:0001) ====== County List ====== ======================== 1. 台灣 2. Japan 3. The Netherlands ===================(Page:0002) ====== County List ====== ======================== 4. United Kingdom 5. France 6. Canada ===================(Page:0003) ====== County List ====== ======================== 7. United States 8. Italy ------------------------------ Number of Record(s): 0000000008 Print date: 19 Nov 19
FTL file
<#-- 設定 locale,讓日期印出來是英文 https://freemarker.apache.org/docs/ref_directive_setting.html --> <#setting locale = "en_US"> <#-- 宣告變數用來儲存總筆數與頁數 https://freemarker.apache.org/docs/ref_directive_assign.html --> <#assign total = 0> <#assign page = 1> <#-- 取得現在日期 --> <#assign dateTime = .now> <#assign date = dateTime?date> FreeMarker Template example: ${message} <#list countries as country> <#-- 一頁三筆資料 --> <#if total % 3 == 0> <#-- 第二頁開始才在表頭增加兩行空白 --> <#if page gt 1> </#if> <#-- 將 page number 格式化 --> ===================(Page:${page?string["0000"]}) ====== County List ====== ======================== <#assign page = page + 1> </#if> ${country_index + 1}. ${country} <#assign total = total + 1> </#list> ------------------------------ Number of Record(s): ${total?left_pad(10, "0")} <#-- https://freemarker.apache.org/docs/ref_builtins_date.html --> Print date: ${date?string["dd MMM yy"]}
Test Case
package com.test.batch; import com.test.batch.exception.FtlException; import freemarker.template.Configuration; import freemarker.template.Template; import freemarker.template.TemplateException; import lombok.Builder; import lombok.Getter; import lombok.extern.slf4j.Slf4j; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.junit4.SpringRunner; import java.io.File; import java.io.FileWriter; import java.io.IOException; import java.io.Writer; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; @RunWith(SpringRunner.class) @SpringBootTest @Slf4j public class FtlTest { private Configuration cfg; @Before public void init() { cfg = new Configuration(); // 設定到 classpath 讀取 ftl file cfg.setClassForTemplateLoading(this.getClass(), "/"); } @Test public void testCountriesFtl() { try (Writer file = new FileWriter(new File("C:/ftl_countries.txt"));) { Template template = cfg.getTemplate("ftl/countries.ftl"); Map<String, Object> data = new HashMap<>(); data.put("message", "Hello World!"); List<String> countries = new ArrayList<String>(); countries.add("台灣"); countries.add("Japan"); countries.add("The Netherlands"); countries.add("United Kingdom"); countries.add("France"); countries.add("Canada"); countries.add("United States"); countries.add("Italy"); data.put("countries", countries); template.process(data, file); } catch (IOException | TemplateException e) { throw new FtlException("fail to generate file from ftl file : " + e.getMessage(), e); } } }
Labels:
Java
2020/02/03
[Java] [Freemarker] Generate Text file from FTL - example 1
Requirement
I would like to generate text file as bellows:
FTL File
Test Case
I would like to generate text file as bellows:
分行代碼 貸款代碼 客戶代碼 流水號 808 12345678 0000001 111 303 87654321 0000002 222 123 45678912 0000003 333 ------------------------------------------------- Number of Record(s): 0000000003
FTL File
<#assign total = 0> <#if rows??> 分行代碼 貸款代碼 客戶代碼 流水號 <#list rows as row> <#-- https://freemarker.apache.org/docs/ref_builtins_string.html#ref_builtin_right_pad --> ${row.branchId?right_pad(16)}${row.custLoanNumber?right_pad(11)}${row.custId?right_pad(10)}${row.ext1?right_pad(30)} <#assign total = total + 1> </#list> <#else> No Data Found! </#if> <#-- https://freemarker.apache.org/docs/ref_builtins_string.html#ref_builtin_left_pad --> ------------------------------------------------- Number of Record(s): ${total?left_pad(10, "0")}
Test Case
package com.test.batch; import com.test.batch.exception.FtlException; import freemarker.template.Configuration; import freemarker.template.Template; import freemarker.template.TemplateException; import lombok.Builder; import lombok.Getter; import lombok.extern.slf4j.Slf4j; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.junit4.SpringRunner; import java.io.File; import java.io.FileWriter; import java.io.IOException; import java.io.Writer; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; @RunWith(SpringRunner.class) @SpringBootTest @Slf4j public class FtlTest { private Configuration cfg; @Before public void init() { cfg = new Configuration(); // 設定到 classpath 讀取 ftl file cfg.setClassForTemplateLoading(this.getClass(), "/"); } @Test public void testBankFtl() { try (Writer file = new FileWriter(new File("C:/ftl_bank.txt"));) { Template template = cfg.getTemplate("ftl/bank.ftl"); Map<String, Object> data = new HashMap<>(); List<Row> rows = new ArrayList<Row>(); rows.add(Row.builder().branchId("808").custLoanNumber("12345678").custId("0000001").ext1("111").build()); rows.add(Row.builder().branchId("303").custLoanNumber("87654321").custId("0000002").ext1("222").build()); rows.add(Row.builder().branchId("123").custLoanNumber("45678912").custId("0000003").ext1("333").build()); data.put("rows", rows); template.process(data, file); } catch (IOException | TemplateException e) { throw new FtlException("fail to generate file from ftl file : " + e.getMessage(), e); } } @Getter @Builder public static class Row { private String branchId; private String custLoanNumber; private String custId; private String ext1; } }
Labels:
Java
2020/02/02
[閱讀筆記] 正義:一場思辨之旅 (2/3)
- 志願軍的反對意見:
- 代理孕母的爭議:我們都必須思考兩個問題 - 我們在自由市場上所做的選擇有多自由?是不是有特定的德性與更高的才或是無法由市場表彰,而且是錢買不到的?
- 三種常見看待正義的方式:
方式
|
說明
|
功利主義
|
|
自由放任主義
|
|
提倡德性
|
|
- 康德的意見:
方式
|
說明
|
功利主義
[反對]
|
|
自由放任主義
[贊同]
|
|
提倡德性
[反對]
|
|
- 根據康德的說法,自由的行為就是自主 (autonomy) 的行為,而行為要能夠自主,就是依據我為自己訂定的法則行事,而不是根據自然的決定或社會的慣例行事。例如,你放開一顆撞球,那顆撞球就會往下掉,在掉落的過程中,撞球不是自由行事,而是受到自然律的支配,也就是萬有引力定律;又如我從 Taipei 101 跌落下來(或被人推下來),當我墜落地面時,絕對不會有人說我是自由的,我就跟那顆撞球一樣,被萬有引力定律所支配。自由的行為不是選擇達成特定目標的最佳手段,而是選擇目標本身,為了目標本身而做出選擇,人類能做出這種選擇,但撞球以及大多數的動物卻不能。
- 他律決定的例子:做一件事是為了另一件事,而另外那件事又是為了另一件事,以此類推。我們如果從事他律行為,就是為了外力給予我們的目標而行事。在這種狀況下,我們對於自己追求的目標而言,只是工具,不是創造者。
- 自主的概念:一旦我們依據自己為自己訂定的法則從事自主的行為,即使是為了該項行為本身而從事那個行為,那個行為本身就是目的。這種自主行動的能力就是為人類生活賦予特殊尊嚴的因素,標誌了人與物的不同。
- 康德認為,動機有分成兩種:
方式
|
說明
|
義務動機
|
|
喜好動機
|
|
- 康德認為的道德最高原則
方式
|
說明
|
對比一:道德
|
|
對比二:自由
|
|
對比三:理性
|
|
對比四:立場
|
|
- 定言令式的例子
定言令式
|
說明
|
把你的行為準則普世化
|
|
把人視為目的
|
|
- 絕對與相對:為什麼兩個人都會有同樣的行為舉止呢?因為這就是一種「相對」,絕對中的相對;從宗教的角度來舉例,基督教徒信仰基督耶穌為唯一的真神,這是絕對,可相對於非宗教信徒者或他教的信徒而言,就非絕對,再換個例子,台灣的藍綠政黨,某種程度上也都是彼此的絕對,而對人民來說又是相對。
- 康德主張的道德與自由:任何奠基在利益上的原則,必定只會是「條件式原則」,不可能成為「道德法則」。
- 道德不是經驗性的,而是與這個世界隔著一些距離,道德會評判這個世界;雖然科學擁有強大的力量與洞見,卻無法觸及道德問題,原因是科學只能在感官界中運作。
- 康德主張,謊言與誤導性的真話之間存在著具有道德重要性的差異,精心建構的迴避說詞是向說實話的義務致敬,但直接說謊沒有做到這一點。在簡單撒謊即可過關的情況下,一個人如果還費心提出一項具有誤導性,但嚴格來說並未違背事實的陳述,即是表達了對於道德法則的尊重,不論這樣的表達有多麼含糊不清。
- 美國政治哲學家 John Rawls 在《正義論》(A Theory of Justice) 著作中,主張思考正義的方式就是詢問我們在初始平等狀態中,會同意接受哪些原則。在大家都不知道自己是 Bill Gates 或街頭流浪漢的前提下,會浮出兩項正義原則:
正義原則
|
說明
|
❶ 為公平提供平等的自由
|
|
❷ 社會與經濟平等
|
|
- 我們經常質疑人所訂立的協議是否公正,而且我們也熟知那些可能造成劣質協議的偶然條件:訂定協議的一方可能比較精於談判,或者佔據比較有利的談判地位,或是叫了解交易事物帶有的價值。電影《教父》當中的老柯里昂的那句名言:「我會開出一個他拒絕不了解的協議」,就顯示了大多數的談判或多或少太有的那種壓力。
- 契約只有在實現「自主性」與「互惠性」這兩項理想的情況下,才會具有道德份量。就自願行為而言,契約表達我們的自主性;其中規定的義務之所以具有效力,因為那是我們自願承擔,也就是我們自由地把那些義務背負在自己身上。就互利工具而言,契約援引了互惠的理想;履行契約的義務來自於另一項義務,也就是必須回報別人為我們提供的利益。在實務上,自主性與互惠性未必完美實現。有些協議雖然是自願達成,卻不是對雙方都有利。
- 契約的道德限制:第一,協議的事實不保證協議的公平性;第二,同意不足以創造出具有約束力的道德主張權。例如,某個無知的老婦人,被一個無恥的水電工利用、牟利,只是修理馬桶漏水就收取十萬的費用,即便是水電工沒有脅迫婦人,此項協議是出於自願,卻一點也不足以確保其中交換的利益是平等或相近的。
- 在現實生活裡,每個人的處境各自不同,可能有談判能力與知識的差異。只要這點成立,協議的事實本身就不足以保證協議的公平性。這就是為什麼實際上的契約並非獨立自足的道德工具。我們總是有充分的理由可以問:「雙方同意的條件是否公平?」
- 人有出身之別,透過自由放任主義的觀點,只是創造出形式上的機會主義;透過功績主義的觀點,雖然彌補了不平等的教育機會,但是彌補不了不平等的自然天賦。但是,如果不接受功績市場社會,唯一替代選項就是強加限制天賦出眾者的齊頭式平等。
Labels:
Reading
Subscribe to:
Posts (Atom)