R – จะติดตั้งแพคเกจ leaflet ใช้กับ R แล้วมันมี library บางตัวที่จำเป็นต้องติดตั้งให้ ubuntu ก่อน

จะทดลองใช้ leaflet ใน R เพื่อแสดงข้อมูลในรูปแบบแผนที่ แต่ว่าพอเรียกใช้คำสั่งติดตั้งปกติใน console ของ R พอติดตั้งไปได้ครึ่งทางแล้วก็เกิด error ขึ้น ว่าหา library บางตัวไม่เจอ ทำให้ติดตั้งไม่เสร็จแล้ว error ออกมา # ติดตั้งแพคเกจ leaflet install.packages(“leaflet”) ไปนั่งอ่าน error และไปหาข้อมูลเพิ่มเติม สรุปว่ามีไลบรารี่ ที่จำเป็นต้องติดต้องให้ os เพิ่มเติมก่อน ที่ leaflet จะเรียกใช้ได้ สำหรับตอนนี้ที่ใช้ ubuntu ก็จำเป็นต้องติดตั้งไลบรารี่ เหล่านี้ให้กับ ubuntu ให้เสร็จก่อน เพราะ R เองไม่สามารถติดตั้งไลบรารี่ของ os เหล่านี้ให้เองอัตโนมัติ จำเป็นต้องติดตั้งแยก ชื่อที่ติดต้งไปก็จะมี:- libudunits2-dev libgdal-dev libgeos-dev libproj-dev รันคำสั่งติดตั้งไลบรารี่เหล่านี้ใน terminal ของ ubuntu (ต้องใช้ sudo Read more about R – จะติดตั้งแพคเกจ leaflet ใช้กับ R แล้วมันมี library บางตัวที่จำเป็นต้องติดตั้งให้ ubuntu ก่อน[…]

R – ลองใช้ dplyr กับ ggplot2 ในการจัดรูปแบบข้อมูลและพลอตเป็นกราฟแบบต่างๆดู

ช่วงนี้เป็นมือใหม่ลองใช้ภาษา R ในการจัดการข้อมูลและลองวิเคราะห์ข้อมูลพื้นฐาน ก็มาถงส่วนที่อยากทำความรู้จักกับ package dplyr กับ ggplot2 วิธีที่ดีที่สุดก็คือต้องลองใช้งานดูเยอะๆ จะได้รู้จัก package นั้นๆ ดียิ่งขึ้น Package dplyr สำหรับ package dplyr เป็น package พื้นฐานของ R ไว้สำหรับจัดการกับก้อนข้อมูลที่เรามีเช่น กรองข้อมูลเฉพาะบางคอลัมน์, กรองข้อมูลเฉพาะแถวที่มีข้อมูลบางอย่างอยู่, จัดเรียงลำดับข้อมูลที่มีตามเงื่อนไขที่ระบุ เป็นต้น ฟังก์ชันหลักๆ ของ dplyr ที่มักจะถูกเรียกใช้เพื่อจัดการข้อมูล:- filter() : มักถูกเรียกใช้เพื่อจะกรองข้อมูลของแต่ละแถว(row) ว่าข้อมูลในแถวนั้นมีข้อมูลตรงตามเงื่อนไขที่ระบุหรือไม่ ถ้าไม่มีข้อมูลก็จะถูกกรองออก เมื่อประมวลผลเสร็จก็จะคืนค่าเป็นข้อมูลใหม่ที่กรองตามเงื่อนไขเรียบร้อยแล้ว select(): มักถูกเรียกใช้เพื่อจะกรองข้อมูล จากชื่อหลัก(column)หรือจากชนิดของข้อมูล(data type)ในคอลัมน์นั้น เมื่อประมวลผลเสร็จก็จะคืนค่าเป็นข้อมูลใหม่ที่กรองตามเงื่อนไขที่ระบุไว้ arrage(): มักถูกเรียกใช้เพื่อจัดเรียงลำดับข้อมูล(มากไปน้อย, น้อยไปมาก) ตามเงื่อนไข(สามารถเลือกจัดเรียงจากข้อมูลหลักเดียว หรือ หลายหลักรวมกันได้) เมื่อประมวลผลเสร็จฟังก์ชันก็จะคืนค่าข้อมูลที่ได้รับการจัดเรียงเสร็จเรียบร้อยแล้ว mutate(): มักจะใช้สำหรับเพิ่มหลัก(column)ใหม่ ให้กับข้อมูล ซึ่งข้อมูลใหม่นั้นมักจะเป็นข้อมูลที่ได้มาจากการคำนวณจากข้อมูลเดิมที่มี เช่น คำนวณค่าเฉลี่ยจากข้อมุล Read more about R – ลองใช้ dplyr กับ ggplot2 ในการจัดรูปแบบข้อมูลและพลอตเป็นกราฟแบบต่างๆดู[…]

ubuntu – ติดตั้ง R กับ Rstudio

ติดตั้ง R กับ RStudio ผ่าน command line ใน Terminal (รอบนี้ติดตั้งบน ubuntu 25.10 “questing quokka”) 1. อัพเดท packages ต่างๆ จาก repository ให้ฐานข้อมูลเป็นเวอร์ชันล่าสุดก่อน เปิด terminal ขึ้นมา (Ctrl+Alt+T) # อัพเดท package ล่าสุดก่อน sudo apt update 2. รันคำสั่งเพื่อติดตั้ง R # ติดตั้ง R sudo apt -y install r-base 3. หลังจากติดตั้ง R เสร็จ เราสามารถใช้งานโปรแกรม R แบบ command line ได้จากใน terminal ได้เลย Read more about ubuntu – ติดตั้ง R กับ Rstudio[…]

ubuntu – คำสั่งสำหรับตรวจสอบ permission ของ user ที่เราใช้อยู่ ว่าสามารถเข้าถึงโฟลเดอร์ที่ระบุได้ไหม

กำลังต้องการเซตให้โปรเจคเวปที่อยู่ใน /home หลายๆ อันสามารถรันเป็น web app บน apache โดยไม่ต้องคัดลอกโค้ดใหม่ทั้งหมดไปลงใน /var/www/html ของ apache มันคงวิธีทำหลายวิธีแหละ แต่ว่ารอบนี้จะอาศัยวิธีสร้าง symbolic link เพื่อลิงค์ให้โฟลเดอร์ของโปรเจคเหล่านั้นมา เชื่อมกับ /var/www/html เลย แต่พอสร้าง symbolic link แล้วติดปัญหาเรื่อง permission ตอน รัน web app ทั้งๆ ที่ไฟล์หรือ web app โฟลเดอร์อื่นๆ ที่อยู่ภายใต้ /var/www/html เองสามารถรันได้ไม่ติดปัญหา ระหว่างเช็คอยู่ก็เจอคำสั่งอันนี้ที่สามารถรันใน command line เพื่อตรวจสอบได้ว่า user www-data ของ apache นั้น มี permission ที่ได้รับอนุญาติให้เข้าถึงโฟลเดอร์ที่เราต้องการได้ไหม # /path/to/symlink/folder ให้ระบุ folder ที่เราต้องการตรวจสอบว่า user Read more about ubuntu – คำสั่งสำหรับตรวจสอบ permission ของ user ที่เราใช้อยู่ ว่าสามารถเข้าถึงโฟลเดอร์ที่ระบุได้ไหม[…]

ubuntu – แก้ปัญหา permission ของ symbolic link เพื่อลิงค์ web app ใน apache

กำลังต้องการเซตให้โปรเจคเวปที่อยู่ใน /home หลายๆ อันสามารถรันเป็น web app บน apache โดยไม่ต้องคัดลอกโค้ดใหม่ทั้งหมดไปลงใน /var/www/html ของ apache มันคงวิธีทำหลายวิธีแหละ แต่ว่ารอบนี้จะอาศัยวิธีสร้าง symbolic link เพื่อลิงค์ให้โฟลเดอร์ของโปรเจคเหล่านั้นมา เชื่อมกับ /var/www/html เลย 1. สร้าง symbolic link เพื่อลิงค์ web app มาที่ /var/www/html รันคำสั่งสร้าง symbolic link # เข้าไปในโฟลเดอร์ /var/www/html ซึ่งเป็นโฟลเดอร์ default ของเวปใน apache cd /var/www/html # รันคำสั่งสร้าง symbolic link sudo ln -s /path/to/symlink/folder name_of_symbolic_link 2. เซตการตั้งค่า(config ของ apache เพื่ออนุญาติให้เข้าถึงสิ่งต่างๆ Read more about ubuntu – แก้ปัญหา permission ของ symbolic link เพื่อลิงค์ web app ใน apache[…]

ใส่ indent ให้ paragraph ใน wordpress

จดบันทึกอันนี้ไว้เผื่อต้องกลับมาเซตสิ่งเหล่านี้ใหม่ในอนาคต กำลังหาข้อมูลว่าถ้าอยากให้เวลาขึ้น paragraph ใหม่สำหรับเนื้อหาในแต่ละหน้าของ wordpress จะทำยังไงได้บ้าง (เอาเฉพาะวิธีสำหรับใช้ editor ในโหมด “code” ไม่รวมวิธีที่ใช้ในโหมด “visual” นะ เพราะชอบใช้แต่เฉพาะโหมด “code” มากกว่า) 1. วิธีแรกก็เซต stylesheet ให้กับแต่ละ paragraph ไปเลย ใน tag p นั่นแหละ หน้าไหนอยากใช้ค่อยใส่ แต่ก็ลำบากต้องมาเขียนรายละเอียดใหม่ทุกรอบ <p style=”text-indent: 2em;”>my custom indent</p> 2. วิธีที่สอง เพิ่ม stylesheet ที่ต้องการสำหรับกำหนดรูปแบบให้ paragraph ไว้ในไฟล์ stylesheet ของตีมที่เราใช้งาน เมื่อทำการเพิ่มไว้แล้วเวลาจะใช้งานจากหน้าไหนก็ให้ทำการกำหนด class ของ paragraph ให้ตรงกันกับชื่อ stylesheet ที่เราระบุตอนเพิ่ม 2.1 ทำการเพิ่ม stylesheet ที่ต้องการ โดยเปิดไฟล์ Appearance Read more about ใส่ indent ให้ paragraph ใน wordpress[…]

ปัญหากับ UIRequiredDeviceCapabilities property

หลายคนอาจจะกำลัง submit application ขึ้น review อยู่ดีๆแต่ต้องเจอกับ error แบบนี้อย่างหลีกเลี่ยงไม่ได้ The app’s Info.plist can’t contain values for the UIRequiredDeviceCapabilities key that would prevent this app from opening on any iOS device. For more information, see Understanding the UIRequiredDeviceCapabilities Key. แล้วเราควรจะจัดการกับ Error ตัวนี้กันอย่างไรดี   ก่อนอื่นมารู้จักกับ UIRequiredDeviceCapabilities property กันก่อนว่าคุณลักษณะตัวนี้ไว้บอกถึงอะไร? UIRequiredDeviceCapabilities property เป็นค่าที่ไว้บอกคุณลักษณะของฮาร์ดแวร์บนอุปกรณ์นั้นๆที่จะอนุญาติว่าจะยอมให้แอพลิเคชันของเรานั้นสามารถเปิดขึ้นมาได้หรือไม่   ค่า Property อยู่ที่ไหน? ที่เก่าที่เดิม อยู่ที่ไฟล์ Info.plist Read more about ปัญหากับ UIRequiredDeviceCapabilities property[…]

พลังงานกับการเขียนโค้ด

สำหรับการทำงานเป็นนักพัฒนาสาขาต่างๆนั้น เราคงหนีไม่พ้นการนั่งอยู่หน้าคอมพิวเตอร์เป็นเวลานานๆ เขียนโค้ด แก้บั๊ก วางแผน เป็นงานหลักๆ ในแต่ละวัน เคยสงสัยกันไหมว่า การที่เรานั่งทำงานแบบนั้นในแต่ละวันร่างกายเราใช้พลังงานกันเท่าไรกันนะ ข้อมูลที่ 1 อ้างอิงจากข้อมูลด้านบน ข้อมูลแสดงให้เห็นว่าสำหรับคนที่มีน้ำหนักตัว 70 กิโลกรัม การที่เรานั่งทำงานแบบนี้นาน 1 ชั่วโมง ร่างกายเราใช้พลังงานไปเพียงแค่ประมาณ 105 แคลอรี่ต่อชั่วโมงเท่านั้นเอง ถ้าเราทำงาน 8 ชั่วโมง ในหนึ่งวันเราก็ใช้พลังงานไปเพียงแค่ 840 แคลอรี่เท่านั้นเอง เปรียบเทียบกับข้อมูลด้านโภชนาการแล้ว  การที่เราทานแฮมเบอร์เกอร์ใส่ชีส ซึ่งให้พลังงานงานถึง 704 แคลอรี่ เท่ากับว่า เราต้องนั่งทำงาน 7 ชั่วโมง ถึงจะสามารถเผาพลาญแฮมเบอเกอร์ก้อนนั้นไปได้    หรือถ้าเราดื่มโค้ก 1 กระป๋อง เราก็ต้องนั่งทำงานตั้ง 2 ชั่วโมงถึงจะใช้พลังงานนั่นหมด เรื่องพลังงานที่เราใช้ไปต่อวันกับอาหารที่เราทานไปนั้น ก็เป็นเพียงปัจจัยหนึ่งเท่านั้นเองที่มีผลต่อสุขภาพของเรา เพราะการที่เราบังคับร่างกายให้นั่งทำงานแบบเดียวกันนานๆ ติดต่อกันโดยไม่ปล่อยให้ร่างกายได้ทำกิจกรรมอื่นสลับไปบ้างนั้น อาจส่งผลให้มีความเสี่ยงในการเป็นโรคอ้วน หรือโรคหัวใจถามหาเราอีกด้วย แม้บางคนอาจจะมีตารางออกกำลังกายประจำวันอยู่แล้วไม่ว่าตอนเย็นหรือตอนเช้านั่นเป็นสิ่งที่ดี แต่ก็ยังไม่เพียงพอ เพราะถ้าในหนึ่งวันเราบังคับให้ร่างกายเรานั่งทำงานอยู่กับที่ท่าเดียวไม่เปลี่ยนกิจกรรมทำบ้าง นั่นก็ย่อมส่งผลเสียต่อร่างกายในระยะยาวเช่นกัน การเปลี่ยนอิริยาบถ ระหว่างการทำงาน Read more about พลังงานกับการเขียนโค้ด[…]

อัพโหลดแอพลิเคชันของเราขึ้นรีวิวด้วย Application Loader

วันนี้เราจะลองมาเอาไฟล์แอพลิเคชันที่ทำเสร็จแล้ว(.ipa) ขึ้น iTunes connect เพื่อรอรีวิวกัน โดยการใช้ Application Builder เริ่มต้นเปิด XCode และเราต้องทำการเสียบอุปกรณ์จริงที่ปกติเราใช้ทดสอบเข้าไปก่อน จากนั้นก็ให้เลือกที่อุปกรณ์ตัวนั้น ไปที่เมนู Product แล้วเลือก Archive เพื่อจะทำการ build แอพลิเคชันของเรา หลังจากเลือก Archive เสร็จเรียบร้อยแล้ว โปรแกรมจะใช้เวลาสักระยะหนึ่งเพื่อทำการสร้างไฟล์แอพลิเคชัน เมื่อเสร็จเรียบร้อยแล้วโปรแกรมจะแสดงหน้าตาดังรูปด้านล่าง (ก่อนอื่นเราก็ทำการเลือก Validate… ไฟล์แอพลิเคชันที่เราสร้างขึ้นมาเสียก่อนเพื่อตรวจสอบความสมบูรณ์ของไฟล์ที่ เราทำการสร้างขึ้นมา ) อันที่จริงแล้วเราสามารถจะเลือก Submit to App Store เพื่อเอาไฟล์แอพลิเคชันนี้ขึ้นไปโดยตรงเลยก็ได้ แต่ในวันนี้เราจะมาลองอีกวิธีคือการใช้โปรแกรม Application Loader ในการนำไฟล์ขึ้นไป เราจึงขอไม่ใช้วิธีนี้แล้วกัน แต่เราจะทำการเลือก Export… แทนเพื่อนำเอาไฟล์แอพลิเคชันของเราออกมา เตรียมรอไว้ก่อน จากนั้นทำการเลือก Save for Ad Hoc Deployment การเลือกแบบนี้เราจะได้ไฟล์แอพลิเคชัน(.ipa) ออกมาซึ่งเราจะนำไฟล์นี้ ไปติดตั้งในอุปกรณ์อื่นๆ ที่เราต้องการจะทดสอบก็ได้ จากนั้นเราก็ทำการเลือกไฟล์ Read more about อัพโหลดแอพลิเคชันของเราขึ้นรีวิวด้วย Application Loader[…]

App Transport Security กับ iOS9

หลายคงอาจจะเจอฝันร้ายไปแล้วหลังจากอัพเดท xcode 7.0 ตัวใหม่ แล้วจัดการรันแอพลิเคชันของคุณใน simulator เพื่อจะทดสอบแอพลิเคชันตัวเก่าที่ใช้งานอยู่ แต่อยู่ดีๆ ข่าวร้ายก็มาเคาะประตูบ้าน “เอ๊ะ แอพลิเคชันเรามีปัญหารึเปล่านะ server เรามีปัญหารึเปล่านะ ทำไมข้อมูลไม่ขึ้นมาหล่ะ แต่เอ๊ะเมื่อวานเรายังรันแอพอยู่ได้สบายๆ อยู่เลย โค้ดเราก็ยังไม่ได้แก้อะไรเลยนะ” หลังจากดูอาการแล้ว ก็เหมือนว่าจะไม่มีอะไรที่ทำให้เกิดปัญหา error ก็ไม่ขึ้นมา เช็คดู server ใช้ tool เรียก service แล้วก็ดูเหมือนจะทำงานเป็นปกติ, รีสตาร์ท เครื่องก็แล้วหรือบางคนอาจจะลามไปจุดธูป จุดเทียนบนกับคุณพระคุณเจ้า ปัญหานี้ก็ยังแก้ไม่หาย หลับไปแล้วตื่นมาปัญหาก็ยังอยู่ แล้วปัญหานี้มันมาจากไหนหล่ะ ใน iOS9 เพิ่มเติมสิ่งที่เรียกว่า App Transport Security ข้อเรียกสั้นๆ ว่า ATS เข้ามาเป็น default behavior ของแอพลิเคชัน สิ่งนี้มันคืออะไร? ก็ตามชื่อมันเลยนั่นแหละ นั่นก็คือ ทำให้แอพลิเคชันนั้นสามารถรับส่งข้อมูลได้ปลอดภัยมากขึ้น แล้วมีอะไรเปลี่ยนแปลงล่ะ? เมื่อต้องการให้การรับส่งข้อมูลปลอดภัยขึ้น เพราะฉะนั้นโดย default Read more about App Transport Security กับ iOS9[…]