Thursday, October 1, 2020

บันทึกการ Upgrade Samsung SM-T705 (Galaxy tab S 8.4) และ Samsung N-8000 (Galaxy Note 10.1)

เมื่อเจ้าลูกชายตัวแสบ ได้มรดกจากทั้งคุณก๋ง (N-8000) และคุณยาย (SM-T705)  ก็เดือดร้อนมาถึงพ่อ ที่ต้องทำการ upgrade ให้ เนื่องจาก N-8000 ใช้ android 4.1 ซึ่งเก่ามากในปัจจุบัน ไม่สามารถจะ install เกมส์หรือ  app version ใหม่ ๆ ได้เลย  ส่วน SM-T705 ใช้ android 6 แต่ samsung ผู้ใจดี ก็แถม app ไม่พึ่งประส่งค์ให้เยอะเหลือเกิน จนทำให้ memory มักจะเต็ม  

เลยบันทึกขั้นตอนการแก้ไข ทั้ง 2 เครื่องเอาไว้ หน่อย เก็บไว้เป็นข้อมูลต่อไป 

Samsung Galaxy note 10.1  (N-8000)

ปัญหาที่เกิดขึ้นระหว่างการทำงาน  
  1. เมื่อทำการ write rom TWRP ที่เป็น recovery ใหม่ ลงในเครื่อง N-8000  โดยไม่ได้ root ก่อน พอ restart เครื่องใหม่ เพื่อเข้า recovery mode จะเหมือนกว่าไม่มีอะไรเกิดขึ้น เนื่องจาก samsung ใส่ script ไว้กรณีที่มีการ write rom ใหม่ จะมีการเขียน rom เดืมของ samssung ทับไปอีกครั้ง   วิธีแก้ไข คือให้ทำการ root ก่อน ในขั้นตอนการ root จะมี remove script ดังกล่าวออกไป 
  2. เมื่อทำการ write linageOS 14.1 แล้วเกิด error 
     E1001: Failed to update system image.

    Updater process ended with ERROR: 7

    Error installing zip file '/sdcard/lineage-14.1-20180904-deadly-signed.zip'

  3. วิธีการแก้ไข 
    ให้เข้า TWRP เมนู advanced > terminal, จากนั้นสร้าง dir   /cache/recovery   โดยใช้คำสั่ง 

    mkdir /cache/recovery
    จะแก้ไขปัญหาได้ 

  4. เมื่อ write linageOS 14.1 แล้ว boot  ไม่ขึ้นค้างที่หน้า logo    วิธีการแก้ไข สาเหตุเป็นเพราะ ใช้ TWRP version เก่าเกินไป (2.8)  เลยทำการ updateTWRP (3.2) แล้วค่อย write linageOS ใหม่ ก็จะหาย 
การ Root เครื่อง N-8000
  1. download file CF-Auto-Root-p4noterf-p4noterfxx-gtn8000 จาก link ด้านบน 
  2. เช็คมือถือว่ามี battery เกิน 50% จากนั้นให้ boot เข้า download mode โดยการปิดเครื่องก่อน  จากนั้น กดปุ่ม power + volumn down ค้างไว้จะขึ้นหน้าจอ download mode  จากนั้น เสียบสาย  USB เข้ากับเครื่องคอมพิวเตอร์ 
  3. เปิด โปรแกรม odin จากไฟล์ด้านบน  ตรวจสอบก่อนกว่า odin เจอมือถือหรือไม่ ถ้าเจอก็ให้กดปุ่ม AP จากนั้นเลือกไฟล์ CF-Auto-root.xxx.zip  แล้วกดปุ่ม write  
  4. จากนั้น odin จะ restart เครื่องให้ อัตโนมัติ ตรวจสอบว่ามี application SU อยู่ในเครื่องหรือไม่ ? ถ้ามีแสดงว่า  root สำเร็จ 

Upgrade Revovery เป็น TWRP 
  1.  boot เครื่องเข้า download mode 
  2. ต่อสาย USB มือถือเข้ากับคอมพิวเตอร์ 
  3. เปิดโปรแกรม Odin กดปุ่ม AP จากนั้นเลือกไฟล์ twrp-3.2.3-n8000-n2.tar 
  4. กดปุ่ม write แล้ว odin จะ boot เครื่องใหม่ เมื่อ boot เสร็จแล้ว ปิดเครื่อง แล้วลองเข้า recovery mode ดู (กดปุ่ม power + volumn up)  ว่าเปลี่ยนเป็น TWRP แล้วหรือยัง? 
Install LinageOS 14.1   
  1.  boot เครื่องเข้า recovery mode  (TWRP)
  2. จากนั้น ต่อสาย usb เชื่อมมือถือกับ คอมพิวเตอร์ 
  3. เข้า memu mount ใน TWRP จากนั้นกดปุ่ม mount อีกครั้ง 
  4. copy ไฟล์ lineage-14.1-20190313-UNOFFICIAL-n8000,zip และ open_gapps-arm-7.1-micro-20200927.zip ลงในเครื่องมือถือ 
  5. จากนั้นกดปุ่ม  unmount ใน TWRP และกดปุ่ม back เพื่อกลับไปยัง main menu 
  6. กดปุ่ม install จากนั้นเลือกไฟล์ lineage-14.1-20190313-UNOFFICIAL-n8000,zip กดปุ่ม install ถ้าหากพบปัญหา  error 7 แล้วแก้ไขตามวิธีการแก้ไข ช่วงบน 
  7. จากนั้น ก็ install open_gapps-arm-7.1-micro-20200927.zip เพื่อใช้งาน app google แล้วก็ทำการ restart เครื่องใหม่ 

Samsung Galaxy tab S 8.4(SM-T705) Download file ที่จำเป็นต้องใช้ที่นี่ 

 ขั้นตอนทุกอย่างเหมือนกับ N-8000 แต่เปลี่ยนไฟล์ที่ดาวน์โหลด แค่นั้น

Wednesday, February 26, 2020

วิธีเปิด DNS over HTTPS บน chrome

เปิดทำไม DNS over HTTPS ทุกวันนี้มีการบันทึกการเข้าถึงเวปไซต์ต่าง ๆ ส่งไปให้หน่วยงานต่าง ๆ เยอะแยะ(ทั้งราชการ และไม่ใช่) การที่เราเข้ารหัสส่วนนี้เป็นการ ป้องกันการละเมิดสิทธิส่วนบุคคลฯ
ซึ่งเมื่อทาง ISP หรือ บุคคลอื่น ๆ ที่ดักไว้จะได้ข้อมูลประมาณ

https://www.di.com/sf23245ksajf9w83uds;fja394uoijfoe8wurj;lkvsjdf3085jlkjfsd  เป็นต้น

ขั้นตอนการเปิด  Chrome

1. ใน address bar ให้พิมพ์ chrome://flags/#dns-over-https แล้วกด  Enter 
2.  click ที่ปุ่มด้านหลัง  เพื่อ Enable 
3. จากนั้น  restart browser
***  อย่าลืมเปลี่ยน  primary DNS ใน windows  เพื่อให้เรียกใช้  DNS ที่รองรับ https ด้วย

ขั้นตอน 

1.  click ขวา ที่ปุ่ม Start จากนั้นเลือก setting  > network & internet 
2. จากนั้นเลือก status > change adapter options 
3. Click ขวา ที่ connection ที่ต้องการ เช่น wifi ก็ click ขวาที่ wifi
4. เลือก tcp/ip v4 แล้วกดปุ่ม properties 
5. ช่อง DNS ข้างล่างให้ใส่   primary 1.1.1.1   alternative 1.0.0.1   ค่านี้เป็นของ cloudflare ถ้าจะใช้เจ้าอื่นก็เปลี่ยนเอาเอง 
6. จากนั้น เลือก tcp/ip v6   ใส่ ในช่อง primary 2606:4700:4700::1111 และ 2606:4700:4700::1001 ในช่อง alternative


Tuesday, February 11, 2020

บันทึกความทรงจำ SQL Tuning (Oracle) #1 เบื้องต้น

      ไม่ได้เขียนบทความใน blog ของตัวเองมานาน ช่วงหลังจากมีลูก มีเรื่องให้คิดเยอะขึ้น มีอะไรที่อยากจะทำ มีความคำถามที่อยากจะถามตัวเอง อยากหาคำตอบให้กับตัวเอง แล้วก็อยากจะห่างจาก social หน่อย ช่วงหลัง ๆ เลยไม่ค่อยได้จับคอมฯ หรือ tablet  ส่วนใหญ่จับแต่ kindle ไว้อ่านหนังสือ เรื่องบ่น ๆ เดี๋ยวค่อยเขียนอีกอันดีกว่า ^ ^"
   
    จริง ๆ บทความนี้คิดว่าอยากจะเขียนมานานละ แล้วก็ลืมไปเลย จนวันนี้เพื่อนคนหนึ่งโทรมาปรึกษาเรื่อง SQL Tuning เลยได้โอกาสเขียนบทความนี้สักที
     


บันทึกความทรงจำการทำ  SQL Tuning (Oracle) #1 เบื้องต้น
    สมัยก่อนประมาณเกือบ ๆ 10 ปีที่แล้วผมยังทำงานสาย IT อยู่บริษัทใหญ่บริษัทนึง สำนักงานใหญ่อยู่สีลม สมัยนั้นทำงานเกือบทุกอย่างค่อยข้างผสมปนเป  ประมาณว่าใครมีปัญหาติดปัญหาอะไรก็มาปรึกษา งานไหนไม่มีใครทำก็เอามาทำ ถ้าจำไม่ผิดตอนนั้นทีมตัวเองเรียกว่าทีม solution

   หนึ่งในปัญหาที่ส่งมาปรึกษากันก็คือ Database ทำงานช้าดึงข้อมูลช้ามาก ซึ่งข้อมูลมีขนาดระดับ 200GB ได้  ก็เลยได้ลองทำ SQL Tuning และได้รู้จักกับ Oracle SQL Analyzer

ขั้นตอนการทำ SQL Tuning 
  1. ดึงข้อมูล SQL ที่ทำงานช้าออกมาก่อน ขั้นตอนนี้ก็ง่าย ๆ แค่ดึงคำสั่งที่ทำงานช้าออกมา โดยดูการระยะเวลาการดึงข้อมูล ถ้าเป็น application ก็ลองดูว่า page ไหนทำงานช้าแล้วค่อย ๆ ดึงข้อมูล sql  นั้น ๆ ออกมา 
  2. วิเคราะห์คำสั่ง SQL ที่ใช้  คำสั่งที่ใช้ในการ Query จะมีเงื่อนไขค่อนข้างเยอะ แล้วบ้างครั้ง database ที่ออกแบบมานั้น ก็ทำ normalization เรียบร้อยมาก (ในหนังสือเรียน Database จะมีสอนเสมอ) แต่การทำ normalization ที่ละเอียดไม่ได้ตอบโจทก์การทำงานจริง ที่ต้องการความรวดเร็ว  เนื่องจากจะต้องมีการ join table เยอะ ซึ่งการ joint table ยิ่งเยอะ ก็ยิ่งทำให้ DB ทำงานเยอะตามไปด้วย แต่จะไม่ normalization เลยก็ไม่ได้เพราะข้อมูลจะเก็บซ้ำซ้อนเยอะ ทำให้การจัดการ และ DB บวมได้ สิ่งที่ต้องวิเคราะห์แบ่งเป็นข้อ ๆ ได้ดังนี้ 
    1.   การ joint table  มีการ joint กี่ table เป็นการ joint  แบบไหน? ( inner, outter, lefe join, right joint) มีการใช้ index เป็น key ในการ joint หรือไม่ ?  ถ้ามีความจำเป็นที่ต้อง joint ก็แนะนำให้สร้างเป็น view เลยดีกว่า จากนั้น select จาก view โดยตรง เนื่องจาก DB ต่าง ๆ จะสร้าง index ให้โดยอัตโนมัติ DB สมัยใหม่นั้นจะมีการสร้าง view ได้หลายแบบ สามารถเลือกสร้างได้ตามความเหมาะสม 
    2. เงื่อนไขการ Query แต่ละเงื่อนไข มีการสร้าง index แล้วหรือยัง?  กรณีที่มี index อยู่แล้ว index ที่สร้างมีความเหมาะสมกับเงื่อนไขนั้น ๆ หรือไม่  ถ้าข้อมูลมีขนาดใหญ่มาก ๆ  ก็พยายามลดการ Query ที่ดึงข้อมูลทั้ง DB เช่นการเพิ่มเงื่อนไขของช่วงเวลามาเป็นต้น จะทำให้ DB ทำงานน้อยลง 
    3. เพิ่มระบบการ Paging ลงใน SQL ถ้าใน Oracle จะใช้คำสั่ง  Limit จะทำให้ DB ลดการทำงานลง เพราะการใช้งาน ผ่าน App ส่วนใหญ่จะ display ข้อมูลแค่เพียงจำนวนนึง ไม่ได้ใช้พร้อมกันทั้งหมด เป็นต้น 
    4. database ที่ใช้ได้ทำการ reindex หรือ เรียงลำดับข้อมูลใหม่หรือไม่?  ส่วนนี้เกี่ยวข้องกับ DBA โดยตรง index ต่าง ๆ เมื่อใช้งานได้สักระยะ ก็ควรจะต้องทำการ reindex ใหม่เสมอ เช่นอาจจะ เดือนละครั้ง หรือ สัปดาห์ละครั้ง เป็นต้น
       
  3. แก้ไข index, table, view สร้าง index ตาม criteria ในการใช้งาน  table มีหลายประเภทสามารถเลือกใช้ตามความเหมาะสมได้จะทำให้ DB เร็วขึ้น  view ก็เหมือนกัน ถ้าจำเป็นต้อง joint table บ่อย ๆ สร้าง view ไว้เลยก็เป็นความคิดที่ดี  view เองก็มีทั้ง view แบบ memory และ view แบบ permanant 
  4. แก้ไขคำสั่ง SQL ใหม่ โดยอิงจากผลลัพธ์ให้เหมือนเดิม