自由學習的風

幽夢影 張潮 少年讀書,如隙中窺月;中年讀書,如庭中望月;老年讀書,如臺上玩月。皆以閱歷之淺深,為所得之淺深耳。

[轉貼] YAML -- 想要愛你很容易

2019年10月6日 星期日

yaml 文件格式似乎也逐漸走入我的日常工作裡,還是需要瞭解一下好讓工作更順利!
-----------------------------------------------------------

轉貼連結: YAML -- 想要愛你很容易

重點截錄:

YAML 的定義是:“YAML Ain ’ t a Markup Language”,即:YAML 不是一種標記語言的遞歸縮寫。
YAML 的數據組織主要依靠的是空白,縮進,分行等結構。











[編輯器] sublimetext 無法安裝 plugin 的解決辦法

2019年9月7日 星期六

程式人總會有自己習慣的文字編輯器,sublimetext,這一陣子在我的 deepin linux 上執行後都無法安裝 plugin,今天終於有時間來找找問題。
原因在於連線時的 ssl 已經過時,導致每次連線都會被拒絕,解決辦法就是開啟
Preferences / Package Settings / Package Control / Settings - User
並加入下列的設定,關掉再重新執行 sublimetext,就可以正常安裝了。
"downloader_precedence":
{
"linux":
[
"curl",
"urllib",
"wget"
],
"osx":
[
"curl",
"urllib"
],
"windows":
[
"wininet"
]
},

有趣的 0 byte 字元

2019年8月8日 星期四

自 ascii 編碼開始,就有很多 unreadable 字元,例如:\n、\r、 \t  \b…用來表示不同的作用;不過,unicode 編碼有一個字元編碼範圍更有趣,它是 「不存在」的存在 -- zero byte (0 byte),有網友分享了一個短網址的服務,看起來一模一樣的短網址,卻會連線至不同的網頁,還蠻有趣的應用,不過,對大部分的人來說,短網址是為了減少網址太長造成輸入錯誤時減少字元的記憶,如果完全看不到也無法輸入的短網址,似乎更適合一些特殊場合或用途。
因為覺得有趣,就順便記錄下來,免得只剩下「一個轉身」的記憶把它遺忘了。
https://zws.im/​​​‌​‌​​​​​‌‌​/ 
https://zws.im/​​​‌​‌​​​​​‌​‌/

參考文章及網址:


網友文章出處:

清除MySQL 的 bin log

2019年6月15日 星期六

參考:迷失露的迷失 - MySQL 的 bin log 太多如何清除?
-------------------------------------------------------------------

千萬不要這麼做
# rm -rf mysql-bin.000001  (X, 錯誤做法)

你應該由 mysql 去控制/刪除這些檔
刪除單一檔的指令是 : PURGE BINARY LOGS TO 'mysql-bin.000001’;

刪除 7 天前的檔案指令是:PURGE BINARY LOGS BEFORE DATE(NOW() - INTERVAL 7 DAY) + INTERVAL 0 SECOND;

自動刪除7天前的 log,那麼請在你的 my.cnf 加入 expire-logs-days=7

沒有replication,建議可以取消 log-bin
#log-bin=mysql-bin 




轉:DOCKER – HOW TO CONNECT TO A MYSQL RUNNING CONTAINER


轉貼自 LITTLETECHBLOGGER
---------------------------------
1. What we want to achieve:
We used the official mysql image from Docker Hub (https://hub.docker.com/_/mysql/), and created a running database container.
Now we need to connect to the MySQL database using MySQL command line client, to do some database operation.

2. Solution1:
Bash into the running container and run MySQL client.
2.1 Bash into the running MySQL container:
$ docker exec -t -i <container_name> /bin/bash
2.2 Run MySQL client:
$ mysql -u “<useranme>” -p

3. Solution2:
Use MySQl Command Line Client.
In the official guide, it states:
The following command starts another mysql container instance and runs the mysql command line client against your original mysql container, allowing you to execute SQL statements against your database instance:
$ docker run -it --link some-mysql:mysql --rm mysql sh -c 'exec mysql -h"$MYSQL_PORT_3306_TCP_ADDR" -P"$MYSQL_PORT_3306_TCP_PORT" -uroot -p"$MYSQL_ENV_MYSQL_ROOT_PASSWORD"'
The variables here are really confusing.  Here is a more readable version of this command:
$ docker run -it --link <container_name>:<image_name> --rm <image_name> sh -c 'exec mysql -h"<container_ip_address>" -P"<mysql_port_number>" -u"<mysql_username>" -p"<mysql_password>"'
Now, lets use an example to explain how to find all the variables.

3.1 Get container_name, image_name, mysql_port_number:
$ docker ps
1
We can get:
container_name: romuiweb_db_1
image_name: mysql
container_port_number: 3306

3.2 Get container_ip_address:
$ docker inspect –format ‘{{ .NetworkSettings.IPAddress }}’ <container_id>
1

3.3 Get mysql_username, mysql_password:
When we start the mysql image, we set environment variables to decide the username and password.
username is default to root.
password is set by MYSQL_ROOT_PASSWORD, and we can find it in docker-compose.yml file:
1
So we can get:
mysql_username: root,
mysql_password: password.

3.4 Create the real command:
Now we have all the values of the variables. We can construct the real command:
$ docker run -it –link romuiweb_db_1:mysql –rm mysql sh -c ‘exec mysql -h”172.17.0.2″ -P”3306″ -u”root” -p”password”‘

3.5 Run the command, gain access to MySQL:
1

If it works, skip the following problem solving part.

3.6 Problem Solving:
(In this problem, we are not using romuiweb_db_1 we used earlier. We switch to docker_db_1. The Ip Address is different now)
docker: Error reponse from daemon: Cannot link to <container_name>, as it does not belong to the default work.
$ docker run -it –link docker_db_1:mysql –rm mysql sh -c ‘exec mysql -h”172.20.0.3″ -P”3306″ -u”root” -p”password”‘
1
This means that we are not running the mysql connect container on the same network the mysql container is currently running on. We need to connect it to the same network use –net option. Reference: https://docs.docker.com/engine/userguide/containers/networkingcontainers/
Step1: Find out which network mysql container is running on:
$ docker inspect docker_db_1
Find the “Networks”:
1
As we can see from the screenshot above, the network docker_db_1 is running on is “docker_default”. We need to connect to this network. So we change out command to this:
$ docker run -it –net=docker_default –link docker_db_1:mysql –rm mysql sh -c ‘exec mysql -h”172.20.0.3″ -P”3306″ -u”root” -p”password”‘
After adding the network argument, we successfully connected:
1

[Git] 在命令提示字元視窗下,中文亂碼的解決方式

2019年6月7日 星期五

解決當前使用的視窗中文亂碼的設定方式:
git config --global core.quotepath false
git config --global gui.encoding utf-8
git config --global i18n.commit.encoding utf-8
git config --global i18n.logoutputencoding utf-8
set LESSCHARSET=utf-8

永久正常顯示中文的方式,只要把最後一列的環境變數加到Windows 的系統環境變數即可。

[網路教學]Vue教學文章或影片

2019年5月11日 星期六



[轉][程式] Postman - 測試Web Service的工具

2019年5月6日 星期一

原文: Postman - 測試Web Service的工具

 Postman 是用來測試 Web Service 方便的工具,在法蘭克還不認識它之前,要測試自己撰寫的 Web Service 都要用 HTML 刻一個表單,然後放上許多 input 的元件並且一個一個填入參數去 Call API,過程可說是相當麻煩,但是自從知道 Postman 後,就再也沒有自己刻過表單了。Postman 是 Chrome 的應用程式並可在 Chrome Web 商店找到它。今天就來介紹利用 Postman(Client端) 呼叫 TOS - ESB (Server端) 的一些基本功能並找兩個範例來實作,當然 Server 並非一定要跟法蘭克一樣是使用 TOS - ESB,也可是政府開放平台或公司後台的 API。

轉:建立安全的登入模組

2019年5月5日 星期日

原文:https://en.wikibooks.org/wiki/PHP_Programming/Building_a_secure_user_login_system

關鍵點:
$timeout = 60 * 30; // In seconds, i.e. 30 minutes.
$fingerprint = hash_hmac('sha256', $_SERVER['HTTP_USER_AGENT'], hash('sha256', $_SERVER['REMOTE_ADDR'], true));
session_start();
if (    (isset($_SESSION['last_active']) && $_SESSION['last_active']<(time()-$timeout))
     || (isset($_SESSION['fingerprint']) && $_SESSION['fingerprint']!=$fingerprint)
     || isset($_GET['logout'])
    )
{
    setcookie(session_name(), '', time()-3600, '/');
    session_destroy();
}
session_regenerate_id(); 
$_SESSION['last_active'] = time();
$_SESSION['fingerprint'] = $fingerprint;
// User authenticated at this point (i.e. $_SESSION['email_address'] can be trusted).

轉: How to enable and start services on Alpine Linux

2019年5月4日 星期六

Alpine Linux 是個小巧輕量的 Linux系統,非常值得試試

原文:https://www.cyberciti.biz/faq/how-to-enable-and-start-services-on-alpine-linux/


How do I add or delete service at boot time on an Alpine Linux? How do I enable service such as Nginx/Apache at boot time on an Alpine Linux? How do I start/stop/restart services on an Alpine Linux?
Alpine Linux comes with OpenRC init system. This tutorial shows how to use the various command on OpenRC to manage services.View status of all services
Type the following command:# rc-status

轉:乾貨!這才是學習Python的正確打開方式!

2019年4月28日 星期日

寫程式似乎愈來愈受到重視,而所有的程式語言之中,相對容易學習的語言,Python可謂當之無愧。但是,在開始學習之前,你有想過,究竟程式到底能做什麼?為什麼一定要寫程式嗎?
讀讀這篇文章,也許能有些收穫!!

原文:乾貨!這才是學習Python的正確打開方式!

內文節錄:
Python可謂是世界上最通用、最強大的編程語言之一。人們使用Python可以編寫自己的應用程序,創建遊戲以及設計算法,甚至還可以為機器人編程。不僅如此,學習Python還可以讓你在軟件工程、web開發、移動開發或數據科學等領域謀一份好差事,在職業提升的道路上助你一臂之力。就目前而言,無論是創建一個網站,還是申請Google公司的崗位,掌握Python是必備條件。那麼,學習Python正確的打開方法是什麼呢?
對於想學習Python的人來說,他們的幸運之處在於,現在比以前擁有更多的資源。但這也會增加篩選相關書籍、課程和其他資源的難度。而且,人們的學習方式都大相逕庭——對一個人有用的課程未必就適合另一個人。為了找到一個量身定製的學習方法,我們在蒐集各種學習資源前,先討論一下需要注意的關鍵問題。
如果以下三個問題回答不上來,那麼,先不要花錢參加在線課程或購買書籍來學習Python。
1.你為什麼想學Python?
2.你的學習風格怎麼樣?
3.你的編碼水平有多高?


首先,從你的學習目的開始。
你為什麼想學Python?你想瞭解學習Python的最佳方法,是因為想換工作嗎?還是因為你有一個很棒的應用程序的想法,你想自己設計?你是否想在簡歷中添加編碼這一項技能,好讓你有資格在編程行業中獲得一份工作?明晰動機不僅能讓你集中注意力,還可以幫助你縮小查找學習資源的範圍。舉個例子,如果你的興趣主要在於web開發,那麼,使用Python進行數據分析的課程對你的幫助就沒有那麼大。
確定好目的之後,再來思考自己學習風格是怎樣的。
你在類似學校的結構化環境中活躍嗎?你喜歡通過閱讀來自學技能嗎?當你與其他學生互動或獨自學習時,你表現得好嗎?另外,可以想一下,你是喜歡循序漸進的教學方法,還是喜歡更有挑戰性的途徑?瞭解自己的學習風格可以幫你找到最適合你的Python學習方法。
最後,對自己的編碼水平做一個正確的認知。
你瞭解其他編程語言嗎?還是說你對編程是完全陌生的呢?學習Python的最佳方法與你的技能水平有關。如果你完全是新手,你就需要從入門課程或初學者讀物開始鑽研。如果你已經對Java或c++有所瞭解,並且希望再學習一下Python,那麼可以從一個更高級的選項開始。與在線課程的學習途徑相比,你可能會更喜歡教程或結構化項目。
謹記:從頭開始並不丟人!誠實坦然地對待你的編程水平,這樣才能找到最適合自己的學習方法。
既然目的、學習風格和編碼水平都已確定好,那麼就可以開始著手尋找適合自己的學習方法了。我們先談一下學習Python的主要途徑,包括書籍、在線課程、教程和結構化項目。

[轉] 衝突時,如何讓我們的大腦冷靜

2019年2月10日 星期日

來源:https://www.hbrtaiwan.com/article_content_AR0004740.html?fbclid=IwAR2NMSDUMYxctiOIRPShw_S-pQflprYr9ooJ4t5EehJy-faEvqp34059RaM

衝突會肆虐我們的大腦。經過演化,我們學會在察覺到威脅時,自我保護。在現代的情境中,我們不會像獾與郊狼那樣打鬥,或是像兔子逃離狐狸一樣逃跑。但是,我們保護自己的基本衝動,是自動而且無意識的。

全文請參閱文章原始網站

[Linux] deepin linux 安裝 k3b後無法燒錄

2019年2月9日 星期六

因為權限不足的的關係,所以燒錄音樂光碟後,無法燒錄,查了一下資料後,執行下列指令後,有解。

sudo chmod 4711 /usr/bin/wodim; sudo chmod 4711 /usr/bin/cdrdao
延伸閱讀:鳥哥的Linux 私房菜-- 檔案與目錄管理