Education KCNBRAND.COM Blog

PHP: file_get_contents() failed with SSL23_GET_SERVER_HELLO:tlsv1 alert protocol version

วันนี้ผมมาแชร์ error ที่เกิดจากการเรียกใช้ function file_get_contents() บน php ตัวฟังก์ชันนี้ปกติเราใช้ในการดึงข้อมูลขจากเว็บไซต์มาเก็บในตัวแปรเป็น String เช่น มีเว็บไซต์ให้บริการข้อมูลอัพเดทค่าเงิน โดยเรียกผ่าน api url ที่เขากำหนด ตัวอย่าง api url “https://blockchain.info/ticker” ให้บริการข้อมูลราคาค่าเงินสกุลต่างๆ โดยส่งข้อมูลออกมาดังตัวอย่าง { “AUD” : {“15m” : 46766.08, “last” : 46766.08, “buy” : 46766.08, “sell”...

Android : A/libc: fdsan: attempted to close file descriptor 86, expected to be unowned

หลังจากกำหนด targetSdkVersion 30 ปรากฎว่าแอปปลิเคชันเปิดแล้วปิดตัวทันที ลองไปตรวจสอบใน Logcat พบว่ามีเพียงข้อความ error A/libc: fdsan: attempted to close file descriptor 86, expected to be unowned แต่พอเปลี่ยน targetSdkVersion 29 กลับสามารถทำงานได้ปกติ เลยสืบค้นจนพบว่า Error ที่เกิดขึ้น นั่นเกี่ยวกับการใช้ <pl.droidsonroids.gif.GifTextView android:layout_width=”match_parent” android:layout_height=”match_parent” android:background=”@drawable/image” /> พบว่าถ้ารูปภาพที่โหลดไม่ใช่...

MAC: How to get values on latest row in NUMBERS on Mac

บน MACOS มีโปรแกรม NUMBERS ที่เราใช้แทนโปรแกรม EXCEL บน MS Windows โดยการใช้งานทั่วไปจะคล้ายคลึงกัน วันนี้เราจะมาพูดถึงฟังก์ชันที่มีประโยชน์ตัวหนึ่ง ที่เราใช้ในการอ้างถึงข้อมูลในช่องตาราง โดยหากเราต้องการเอาค่าล่าสุดของแต่ละคอลัมธ์ เราสามารถเรียกใช้ฟังก์ชัน INDEX โดยมีรูปแบบดังนี้ INDEX(<COLUMN NAME>,COUNTA(<COLUMN NAME>)) โดยผลลัพธ์คือ การแสดงข้อมูลในคอลัมธ์ที่ระบุ ด้วยการนับจำนวนคอลัมธ์ผ่านฟังก์ชัน COUNTA() แต่จำนวนคอลัมธ์ที่นับได้ไม่ได้รวม Heading Column เพราะฉะนั้นถ้าเรามี Heading Column อยู่ 1 บรรทัด เราต้อง +...

Android : How to detect App foreground/background

วันนี้เรามีอีกวิธีในการตรวจสอบว่าแอปฯของเราอยู่ในสถานะทำงานอยู่ (foreground) หรือถูกปิดหรือย่อให้อยู่เบื้องหลัง (Background) โดยวิธีนี้เราจะเรียกใช้ Lifecycle Observer ที่มากับ androidx (androidx.lifecycle.OnLifecycleEvent) ตรวจจับการทำงานของ Event ของแอปฯ การเรียกใช้เราประกาศครั้งเดียวตอนเปิดแอปฯ แล้วตัว lifecycle จะคอยจับ event ให้เรา ดังนี้ public class MainApp extends AppCompatActivity implements LifecycleObserver { … @Override protected void onCreate(Bundle savedInstanceState)...

Android Issue : Violation of Interfering with Apps, Third-party Ads, or Device Functionality policy

เคยประสบปัญหาโดน Google Rejected App ด้วยเหตุผลว่า “Violation of Interfering with Apps, Third-party Ads, or Device Functionality policy” หรือ แบบง่ายๆคือ การแสดงโฆษณาขึ้นมาหลังจากที่ปิดแอปฯ หรือย่อแอปฯ หรือภายนอกแอปฯ นั่นเอง ซึ่งจากที่ทดสอบมา สมมติว่าขณะที่แอปกำลังโหลดโฆษณา (Interstitial Ads) อยู่แล้วเราทำการกดปุ่ม Home เพื่อย่อแอปฯไปเบื้องหลัง ซึ่งในความเป็นจริงแล้วแอปฯ ก็ยังทำงานอยู่ในเบื้องหลัง (Background) นั่นเอง เพราะฉะนั้นเมื่อโหลดโฆษณาเสร็จ...

mySQL : how to find and get string in 1 query

วันนี้เราจะมารู้จักฟังก์ชันใน mysql query เพื่อใช้ในการค้นหาข้อความ หรือ คำ ในฐานข้อมูล เพื่อนำไปใช้ตามวัตถุประสงค์ต่างๆ ซึ่งมีฟังก์ชันที่เกี่ยวข้องคือ instr() ฟังก์ชันที่ใช้ในการค้นหาตำแหน่งเร่ิมต้นของตัวอักษร ,คำ, หรือประโยคที่เราสนใจ ซึ่งมีรูปแบบการเรียกใช้ดังนี้ instr(Source String, Search String) Source String = ประโยคหรือข้อความตั้งต้นที่เราจะใช้ในการค้นหา Search String = คำหรือข้อความที่เราต้องการค้นหา 2. substr() ฟังก์ชันที่ใช้ในการตัดคำ หรือข้อความออกมาจาก String substr(Source String, index...