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 ใหม่ โดยอิงจากผลลัพธ์ให้เหมือนเดิม 

Saturday, November 10, 2018

ขั้นตอนการ Install Ubuntu 18.04 และ amdgpu Pro สำหรับเครื่องขุดเหมือง (Crypto Currency Mining)


  1. ติดตั้ง Ubuntu 18.04  เลือกแค่ minimal install ก็พอ 
  2. ติดตั้ง amdgpu pro
    1. sudo apt-get update
    2. sudo apt-get dist-upgrade
    3. sudo reboot
    4. Download amdgpu pro จาก Download amdgpu-pro  โดยเลือกจากรุ่น Gpu ที่ใช้ 
    5. ** ถ้าไฟล์นามสกุล .xz xz -d amdgpu-pro-18.40-676022-ubuntu-18.04.tar.xz  
    6. tar -xvf amdgpu-pro-18.40-676022-ubuntu-18.04.tar.xz  
    7. cd amdgpu-pro-18.40-676022-ubuntu-18.04/
    8. สำหรับการ install ทั้วไป ใช้ ./amdgpu-installer -y
    9. สำหรับการ Gpu Vega10 ขึ้นไป ใช้ ./amdgpu-installer -y --opencl=pal
    10. สำหรับการ Gpu รุ่นตำ่กว่า vega10 เช่น Rx580, Rx570, Rx480 ฯลฯ ใช้ ./amdgpu-installer -y --opencl=legacy
    11. หลังจาก install เสร็จสิ้นก็ใช้คำสั่ง sudo adduser usernameX video เพื่อเพิ่ม usernameX ลงใน group video
    12. sudo reboot
  3. แก้ไขปรับเปลี่ยน config ใน Ubuntu ให้เหมาะสำหรับขุดเหมือง (Cryto Currency Mining)
    1. ปิด auto update 
      • แก้ไขไฟล์  /etc/apt/apt.conf.d/20auto-upgrades  
      • แก้ไขให้เป็น  APT::Periodic::Update-Package-Lists "0";
    2. Boot to text mode
      • $ sudo systemctl set-default runlevel3.target หรือ sudo systemctl start multi-user.target
    3. Boot to graphic mode (GUI) 
      • $ sudo systemctl set-default runlevel5.target หรือ sudo systemctl start graphical.target
    4. การ Run Background คำสั่ง โดย Screen
    5. การเปลี่ยน ttys ใน ssh client 
      • chvt # โดย # คือค่า ttys ที่ต้องการเปลี่ยน
    6. กรณีลืม password  Ubuntu 
      1. กดปุ่ม shift ค้างไว้ ตอน boot เครื่อง เพื่อแสดงเมนู grub 
      2. เลือก Recovery Mode > root
      3. mount -o remount,rw /
      4. passwd userXX

Wednesday, August 1, 2018

เรื่องวุ้น ๆ ของ Paratition สำหรับคนที่ใช้ทั้ง mac, linux และ windows10

    Paratition ไหนดีที่สุด? ถ้าเราต้องใช้งานร่วมกันกับเครื่องหลากหลาย Platform (linux, windows, mac)
      ที่มาของคำถามนี้คือ ที่บ้านของผมมีเครื่อง mac 2 เครื่อง linux 2 เครื่อง และปัจจุบัน (2018/07) ก็มี windows10 เพิ่มมาอีก 1 เครือง  ปัญหาที่เจอคือ

     ช่วงแรก - ใช้แต่เครื่อง mac เลย format external drive เป็น HFS+ (MAC)

     ช่วงที่สอง  -  เจอเครื่่อง notebook เก่า ๆ ของแฟน เลยเอามาชุบชีวิตใส่ linux เอาไว้เล่นเน็ต เขียน python    ช่วงนี้เริ่มเจอปัญหาละ ว่า linux มัน mount  HFS+ ไม่ค่อยเจอ ต้องสั่ง command line เอาเอง

     ช่วงที่สาม - น้องชายแฟน ซื้อ notebook ใหม่มา (windows10) พอจะเอา external drive ของเราไปต่อ ก็ต้องลงโปรแกรมเพิ่มให้สามารถอ่านได้  แล้วจะเอาไฟล์งาน กลับมาก็ไม่ได้ เนื่องจาก read only

     ช่วงที่สี่   -  เครื่อง mac เริ่มมีปัญหา เนื่องจากอายุอานามที่ใช้มานาน เลยจัด notebook ของตัวเองแต่รอบนี้ต้องทำงานกับ windows

เลยต้องทำการสังคยณาครั้งใหญ่  Paratition ที่เหมาะที่จะใช้กับหลาย Platform ที่สุดก็คือ exFat ครับ ตัวนี้ format ใน windows10 ได้เลย สามารถ read/write ผ่าน mac, linux และ windows ได้หมด 

Wednesday, July 26, 2017

vim in mac problem with python mode

ปัญหา: จะเขียนโปรแกรมภาษา python ผ่าน vim โดยใช้ python-mode เป็นตัวช่วยเขียน IDE 
พอ install เสร็จ แล้วเรียกไฟล์    .py มาแก้ไข ก็เกิดปัญหา 

Error detected while processing /.vim/bundle/python-mode/autoload/pymode/lint.vim
line  1:
สาเหตุ: เนื่องจาก vim ที่ mac ให้มาเป็น version 7.4  ซึ่ง complied โดย python 2.6 ทำให้เกิดปัญหาดังกล่าว   

การแก้ไข: ทำการ install vim ใหม่ โดยใช้คำสั่ง . 
   
    brew install vim --overide-system-vi

     จากนั้นก็ทำการแก้ไข alias ใหม่ 

    alias vim='/usr/local/Cellar/vim/8.0.0771_1/bin/vim'



Monday, July 10, 2017

แก้ไขปัญหา ถอดกุญแจไม่ออก ปุ่มเกียร์แข็งค้าง เบรคค้าง - Honda Civic

     เมื่อวานพาครอบครัวไปทำบุญกัน ขากลับกำลังจะแวะทางอาหารที่ ร้านข้าวแกงแม่แสง (บางพระ) พอจอดรถ ดับเครื่องยนต์ กำลังดึงกุญแจออก ก็ปรากฎว่ากุญแจติดค้าง  ไม่สามารถดึงออกมาได้  บิดพวงมาลัยซ้าย - ขวา ก็แล้วยังดึงไม่ออก  

     แต่พอ start เครื่องอีกครั้ง เพื่อลองเข้าเกียร์ดูปรากฎว่า เกียร์ค้าง ไม่สามารถเข้าเกียร์ได้  เบรคก็แข็งค้างอีก เลยต้องติดต่อช่างฯ 

 ปัญหาที่เกิดขึ้นคือ   ระบบเกียร์มันค้าง ยังเข้าเกียร์ P ได้ไม่สุด เลยทำให้ดึงกุญแจออกมาไม่ได้ 
วิธีแก้ไข  ให้เอากุญแจดอกอื่น เสียบเข้าไปในช่องปลดเกียร์ว่าง แล้วเลื่อนเกียร์ ไปที่ N > P อีกครั้ง พอเกียร์เข้าที่ ก็จะสามารถดึงกุญแจออกมาได้ และระบบเกียร์ กับ เบรคก็จะเข้าสู่ภาวะ ปกติ 


ขอบคุณร้านข้าวแกงแม่แสง (บางพระ) มากครับ ที่ช่วยติดต่อช่างให้   ใครไปบางพระแนะนำนะ ถ้ามาจากทาง ศรีราชา ขับรถผ่านตลาดบางพระ แล้วร้านจะอยู่ซ้ายมือ