Menu

Thursday, February 27, 2020

[Blogger][แก้ไขเพิ่มเติม] การทำ Code Snippet สำหรับ Blogger ที่เป็น HTTPS
[Blogger][Updated] How to Make Code Snippet for Blogger (HTTPS version)

จากโพสต์ [Blogger] การทำ code snippet สำหรับ Blogger ที่เป็น HTTPS ที่เรียกใช้ resource จาก https://agorbatchev.typepad.com ปรากฏว่า เมื่อเวลาผ่านไป มีบาง resource ที่ไม่สามารถเรียกใช้ได้ เช่น shThemeDefault.css เป็นต้น

เราจึงนำไฟล์ resource ทั้งหมดที่จำเป็นต้องใช้ไปไว้ที่ GitHub แล้วทำการเปิด GitHub Pages สำหรับ repository นี้

หลังจากนั้นแก้ไขการเรียกใช้ resource จาก GitHub แทนดังนี้
  1. เข้าไปที่ Theme 
  2. กดปุ่ม Edit HTML ภายใต้ Live on Blog
  3. Copy script ด้านล่างไปใส่ไว้ในส่วนของ head ของ theme
  4. <link href='https://arzeroid.github.io/syntaxhighlighter_css_js/css/shCore.css' rel='stylesheet' type='text/css'/>
    <link href='https://arzeroid.github.io/syntaxhighlighter_css_js/css/shThemeDefault.css' rel='stylesheet' type='text/css'/>
     
    <script src='https://arzeroid.github.io/syntaxhighlighter_css_js/js/shCore.js' type='text/javascript'/>
    <script src='https://arzeroid.github.io/syntaxhighlighter_css_js/js/shBrushBash.js' type='text/javascript'/>
    <script src='https://arzeroid.github.io/syntaxhighlighter_css_js/js/shBrushCpp.js' type='text/javascript'/>
    <script src='https://arzeroid.github.io/syntaxhighlighter_css_js/js/shBrushCSharp.js' type='text/javascript'/>
    <script src='https://arzeroid.github.io/syntaxhighlighter_css_js/js/shBrushCss.js' type='text/javascript'/>
    <script src='https://arzeroid.github.io/syntaxhighlighter_css_js/js/shBrushJava.js' type='text/javascript'/>
    <script src='https://arzeroid.github.io/syntaxhighlighter_css_js/js/shBrushJScript.js' type='text/javascript'/>
    <script src='https://arzeroid.github.io/syntaxhighlighter_css_js/js/shBrushPlain.js' type='text/javascript'/>
    <script src='https://arzeroid.github.io/syntaxhighlighter_css_js/js/shBrushPhp.js' type='text/javascript'/>
    <script src='https://arzeroid.github.io/syntaxhighlighter_css_js/js/shBrushPython.js' type='text/javascript'/>
    <script src='https://arzeroid.github.io/syntaxhighlighter_css_js/js/shBrushRuby.js' type='text/javascript'/>
    <script src='https://arzeroid.github.io/syntaxhighlighter_css_js/js/shBrushSql.js' type='text/javascript'/>
    <script src='https://arzeroid.github.io/syntaxhighlighter_css_js/js/shBrushVb.js' type='text/javascript'/>
    <script src='https://arzeroid.github.io/syntaxhighlighter_css_js/js/shBrushXml.js' type='text/javascript'/>
    <script src='https://arzeroid.github.io/syntaxhighlighter_css_js/js/shBrushPerl.js' type='text/javascript'/>
    <script language='javascript'>
        SyntaxHighlighter.config.bloggerMode = true;    
        SyntaxHighlighter.all();
    </script>
    
  5. กดปุ่ม Save theme
  6. ใส่ code ตามด้านล่างในส่วนของ HTML ของ Post
  7. <pre class="brush: html">
        <link href='http://alexgorbatchev.com/pub/sh/current/styles/shCore.css' rel='stylesheet' type='text/css'/>
        <link href='http://alexgorbatchev.com/pub/sh/current/styles/shThemeDefault.css' rel='stylesheet' type='text/css'/>
    </pre>
    
หมายเหตุ: เราไม่จำเป็นต้องใส่ brush ทุกอันในข้อ 3 สามารถเลือกเฉพาะอันที่ใช้เท่านั้นได้ สำหรับ brush เพิ่มเติม สามารถดูได้จาก http://alexgorbatchev.com/SyntaxHighlighter/manual/brushes/

[GitHub] การสร้างเว็บไซต์จาก Repository บน GitHub
[GitHub] How to Create Website from Repository on GitHub

  1. สร้าง Repository บน GitHub
  2. เพิ่มไฟล์สำหรับหน้าเว็บ เช่น index.html, ไฟล์ CSS, ไฟล์ JS เป็นต้น ใน repository นั้น
  3. เข้าไปที่แท็บ Settings ของ repository นั้น
  4. เลื่อนลงไปยังส่วนของ GitHub Pages
  5. เลือก Source เป็น branch ที่เราเพิ่มไฟล์เข้าไปตามข้อ 2
  6. เรียกหน้าเว็บผ่าน URL ในรูปแบบดังนี้
  7. https://<username>.github.io/<repository_name>/<file_path>
    
    เช่น
    https://arzeroid.github.io/syntaxhighlighter_css_js/css/shThemeDefault.css

Wednesday, February 26, 2020

[Laravel - Package] การเข้ารหัสและถอดรหัสข้อความโดยใช้ SSH keys
[Laravel - Package] String Encryption and Decryption by Using SSH Keys

การเข้ารหัสและถอดรหัสข้อความโดยใช้ SSH keys ใน Laravel เราจะใช้ package ชื่อ phpseclib

สำหรับตัวอย่างการเข้ารหัสและถอดรหัสเป็นดังนี้
use phpseclib\Crypt\RSA;
...

$publicKey = 'MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCEa1ivzN/iW1wBTyT1T6uPcDKzi3HlCBCp3ro61ZxA1byilNH/TP7HW3iFAh0A0Lyk7dZ7d6Ot4jdsXc783T+Ic0n2Blfh0kCm0ci7q2qXqOLpCa6N30LQyiDofSmaLRzQlD49kjVY8GJYrdqo7lEQvBupenJzjS71LgkIqq+BeQIDAQAB';

$privateKey = 'MIICXQIBAAKBgQCEa1ivzN/iW1wBTyT1T6uPcDKzi3HlCBCp3ro61ZxA1byilNH/TP7HW3iFAh0A0Lyk7dZ7d6Ot4jdsXc783T+Ic0n2Blfh0kCm0ci7q2qXqOLpCa6N30LQyiDofSmaLRzQlD49kjVY8GJYrdqo7lEQvBupenJzjS71LgkIqq+BeQIDAQABAoGAVfYZrIYjEJ6eK3tlUppVlNgREd0EItoJdzzPSEJDHROjUSeq60DgZCpNIossqMrYq3h6M8yGxOqFcCO1qxE1nDhwMRxNYALnM8yBfVTe/RfASD7A+XLBB4HKOPPAs7HjPj6rdJpTSLxSNFXW7lMmw+AUTuI1B5TTqINWR83rewECQQDrYAXjdB9/Xg2x+tW6kBh3Dcdm12d3bTIXklfVeds4/3tvJyZkWi/FnNAkZLG40+R39xzP2s+XbN4Ul14aok4VAkEAkAXNBC++X+91esEIwTf4RTMxn7Q/m5F9j7G827bTWUJ+oPCoCnmdLth+9QfMyVboo4D7P8w+trm665+emV7i1QJBALdBZrRFh/RxdPY6VkdPw0yGFNb0JKFuCg8iKHKT0mPZPfA3qgN92C3iPofnQhumFf51DiCiuvepkmqzw1e3QFUCQEDznMYqkfzKDX1S2RPqnfj3YYXY0Gbkcm//hGDCTwaOSnVikyZGOnEKChePcPfMThaO8MCQ6CeYE4h38BrTBBECQQDDp8w+aItksMhcLGIyPRZZmlLew6ic+Pv+8fES9apzy/13MbBpxm/oPVavftLQi+6N29eTtqbE7lL1hRcdsUqn';

$plaintext = 'test';

$rsa = new RSA();

$rsa->loadKey($publicKey);
$ciphertext = $rsa->encrypt($plaintext);

$rsa->loadKey($privateKey);
echo $rsa->decrypt($ciphertext);
สำหรับตัวอย่างการ Verify key เป็นดังนี้
$plaintext = 'ThisIsTest';

$rsa = new RSA();
$rsa->loadKey($privateKey);
$signature = $rsa->sign($plaintext);

$rsa->loadKey($publicKey);
$rsa->verify($plaintext, $signature); // Throw exception if verification is failed

Tuesday, February 25, 2020

[Laravel - Model] การเข้ารหัสและถอดรหัสค่าของฟิลด์ใน Laravel Model โดยใช้ SSH Keys
[Laravel - Model] Field Values Encryption and Decryption in Laravel Model by Using SSH Key

สืบเนื่องจากโพสต์ [Laravel - Model] การเข้ารหัสและถอดรหัสค่าของฟิลด์ใน Laravel Model ที่เราเข้ารหัสข้อมูลก่อนเก็บลงฐานข้อมูล โดยใช้การเข้ารหัสและถอดรหัสของ Laravel ซึ่งใช้ APP_KEY ใน .env เป็น key ทำให้คนที่เข้าถึง application สามารถถอดรหัสข้อมูลได้

เพื่อเพิ่มความปลอดภัยขึ้นไปอีกขั้น เราจะเปลี่ยนจากการใช้ APP_KEY ใน .env เป็น SSH Keys ซึ่งแยกเป็น Public key และ Private key แทน โดยเราจะได้เพียง Public key มาใช้ในการเข้ารหัส แต่คนมีสิทธิ์ดูข้อมูลเท่านั้นที่จะมี Private key เพื่อใช้ถอดรหัสข้อมูล

Thursday, February 20, 2020

[Bash Script] การสร้าง Link ระหว่าง File หรือ Folder
[Bash Script] How to Create Link between File or Folder

การสร้าง link file หรือ folder จะช่วยเพิ่มความสะดวกในการใช้งาน

สมมติว่า เราต้องเข้าไปที่ folder /usr/share/nginx/myweb ทุกครั้ง เพื่อแก้ไขหน้าเว็บ

เราสามารถสร้าง link /usr/share/nginx/myweb มาที่ folder /app

หลังจากนั้น หากเราต้องการแก้ไขหน้าเว็บ สามารถเข้าไปที่ /app/myweb ได้เลย

คำสั่งสำหรับสร้าง link file เป็นดังนี้
ln source_file destination_folder
เช่น
ln /usr/share/nginx/myscript.sh ~/app/

Thursday, February 6, 2020

[GIT] การตั้งค่า SSH Key ใน Github
[GIT] How to Set Up SSH Key in Github


สมมติว่า เราสร้าง SSH key ในเครื่องของเราเรียบร้อยแล้ว
  1. Login เข้า Github 
  2. เข้าไปที่ https://github.com/settings/keys
  3. กดปุ่ม New SSH key
  4. กรอกข้อมูล Title เพื่อระบุว่า key นี้เป็นของเครื่องใด
  5. คัดลอกข้อมูลภายใน Public key ของ SSH แล้ววางลงในช่อง Key
  6. กดปุ่ม Add SSH key
เพียงเท่านี้ เราก็สามารถใช้ Clone with SSH จาก Github ด้วย SSH key ของเราได้แล้ว โดยไม่จำเป็นต้องใส่ username และ password ทุกครั้ง รวมถึงการทำ Git operation อื่นๆ เช่น การ push, การ pull เป็นต้น

[GIT] การตั้งค่า SSH Key ใน Gitlab
[GIT] How to Set Up SSH Key in Gitlab

สมมติว่า เราสร้าง SSH key ในเครื่องของเราเรียบร้อยแล้ว
  1. Login เข้า Gitlab
  2. เข้าไปที่ https://gitlab.com/profile/keys
  3. กรอกข้อมูล Title เพื่อระบุว่า key นี้เป็นของเครื่องใด
  4. คัดลอกข้อมูลภายใน Public key ของ SSH แล้ววางลงในช่อง Key
  5. กดปุ่ม Add key
เพียงเท่านี้ เราก็สามารถใช้ Clone with SSH จาก Gitlab ด้วย SSH key ของเราได้แล้ว โดยไม่จำเป็นต้องใส่ username และ password ทุกครั้ง รวมถึงการทำ Git operation อื่นๆ เช่น การ push, การ pull เป็นต้น

Wednesday, February 5, 2020

[Docker] วิธีการเปลี่ยน Shell ตั้งต้นใน Image และระหว่าง Build
[Docker] How to Change Default Shell in Your Image and During Build

Shell ในระบบปฏิบัติการส่วนใหญ่มีมากกว่า 1 แบบ เช่น ใน Windows จะมี cmd และ PowerShell หรือใน Ubuntu จะมี /bin/sh และ /bin/bash

ถ้าหากเราต้องการเปลี่ยน Shell ตั้งต้นใน Image และช่วงระหว่าง Build เราสามารถใช้คำสั่ง SHELL ของ Dockerfile ดังนี้
SHELL ["/bin/bash", "-c"]