typegoose enum ต้องใส่ type ด้วย

ตอนนี้ decorator ตัว arrayProp มันถูกยกเลิกการใช้งานไปละ และให้ใช้รวมกับ prop ปกติแทน แล้วเราเรียน สร้างระบบ Authentication ด้วย JWT ตามคลิปของช่อง AmateurCoder ซึ่งเค้าสอนดีมากๆ แหละ แต่ตอนที่เค้าสอนกับตอนนี้มันมีอะไรเปลี่ยนแปลงอยู่บ้างนิดหน่อย อย่างที่เจอตอนนี้หลักๆ เลยคือตอนสร้าง enum ซึ่งของที่เ…

DataTables ซ่อนบาง Column ตามเงื่อนไขที่กำหนด

เอาโค้ดตัวเต็มไปตัดต่อเอาเองเน้อ แต่หลักๆ คือใช้ Event drawCallback ของตัว DataTables นะ let dataTables = $(‘#datatable’).DataTable({ ajax: { url: backofficeUrl + “manage/youtube/get_items”, type: ‘POST’, data: {} }, columns: [{ data: ‘id’, }, { data: ‘name’, visible: false, }, ], columnDefs: [{ tar…

คำสั่ง Scroll to Bottom ของ Javascript

อันนี้เอาไว้ใช้เล่นๆ ใน Console ของ Web Browser นะ ส่วนใหญ่เคนเอาไว้เลื่อนโหลดโพสต์ของเพจในปริมาณมากๆ คือขี้เกียจกด Page Down ทีละอันอ่ะ สั่งด้วย Javascript แล้วค่อยมาหยุดมันง่ายกว่า let scroller = setInterval(function() { document.documentElement.scrollTop = document.documentElement.scrollHeight; }…

วิธีออกจาก each ใน jQuery

ในการใช้ .each() บางทีเราก็ไม่ได้ต้องการให้วนครบทุกรอบจริงๆ เราเพียงแค่วนจนกว่าจะเจอแล้วก็ไปต่อหรือออกเลย วิธีทำก็ไม่ยากครับ แค่ใส่ return false; เข้าไป มันก็จะหลุดออกจาก .each() แล้วไปต่อ แบบนี้ let msg = ”; $(‘input[name^=input_sender_address_]’).each(function() { if ($(this).val().trim() == ”) …

DataTables Ajax แบบส่งค่า แต่อยากให้ค่าเปลี่ยนทุกรอบที่ส่ง

เนื่องจากตัว DataTables ถ้าไม่เขียนแบบพิเศษโดยเพิ่มเป็นฟังก์ชั่นเข้าไป เวลาทำงานถึงแม้เราจะบอกว่าให้ไป get จาก $(‘#element’).val() มันก็จะดึงแค่รอบเดียวนะ ถึงเราเปลี่ยนมันก็จะจำแค่ค่าที่มันดึงครั้งแรกสุด วิธีทำก็อย่างที่บอกคือใช้ฟังก์ชั่นอัดเข้าไปใน data แทนการใส่ค่าปกติแบบนี้ แล้วก็เคนใช้ร่วมกับ jQ…

DataTables รูปแบบการเขียนโค้ด Server-side

การทำในส่วนโค้ดของ Server-side ของ DataTables นั้นจะใช้ภาษาอะไรก็ได้ แต่ในตัวอย่างในโค้ดของเคนจะเป็นภาษา PHP และใช้อยู่ใน Codeigniter 3 นะ เพราะเคนใช้อันนี้เป็น Framework หลัก HTML ในส่วนนี้จะไม่ต้องทำอะไรมาก แค่สร้าง Table ใส่ Class ใส่ Id และกำหนดแค่ส่วน thead แค่นี้ก็โอเคแล้ว <table class=”tab…

Next.js Axios ตั้งค่า defaults config

ในขณะที่ create-react-app มี react-scripts ซึ่งช่วยให้การตั้งค่า Proxy ใน package.json เป็นไปอย่างง่ายดาย แต่ใน Next.js มันทำไม่ได้ ก็หาวิธีอยู่ตั้งนาน การเซ็ตค่าต่างๆ ของ Axios ใน Next.js นั้นต้องทำแบบ Manual ไม่สามารถให้มันดึงอัตโนมัติได้ ดังนั้นจึงต้องทำการสร้างไฟล์ตัวกลางมาเพื่อกำหนด defaults co…

Git หาย หลังจากอัปเดท macOS Catalina

หลังจากทำการอัปเดตมาเป็น Catalina ก็พบเจอ VS Code มันฟ้องว่าในเครื่องไม่มี git.path นะ ให้ติดตั้ง git ด้วย ซึ่งน่าแปลกใจเพราะคนใช้ macOS มันจะมี git ติดมาให้อยู่แล้ว แต่ไม่เป็นไรเรามาแก้ไขปัญหานี้กันดีกว่า ปัญหามันคือ ตัว XCode Command-line Tools มันต้องการการอัปเกรด วิธีการแก้ไข ทำการเปิด Terminal …

MySql นำเข้าฐานข้อมูลไม่ได้เพราะขนาดไฟล์เกิน

ในส่วนนี้จะต้องไปแก้ไขที่ไฟล์ php.ini ของตัวที่ใช้รัน Server ของเราครับ อย่างของเคนเองจะใช้เป็น XAMPP ก็จะง่ายหน่อย เพราะที่ตัวโปรแกรมมันจะมีปุ่มเมนู Config แค่กดแล้วเลือกแก้ไขไฟล์ php.ini มันก็จะขึ้น Notepad มาให้เลย จากนี้สิ่งที่เราจะต้องไปแก้ไขจะมี 2 ตัว คือ post_max_sizeupload_max_filesize ความต…

DataTables Group และ Sum

รวมกลุ่ม DataTables ให้แสดงผล ตัวอย่างจะเป็นการรวมกลุ่มตามวันที่ โดยที่ตอนแสดงจะแสดงผลแบบนี้ในตาราง IDวันที่สมัครUsername/EmailWallet Code พอรวมกลุ่มแล้วมันก็จะทำการตัดคอลัมภ์ของ วันที่สมัคร ออกไปรวมด้านบนแทน โดยโค้ดที่ใช้มี 2 ชุด คือแบบ แค่รวมกลุ่มธรรมดา และ รวมกลุ่มแบบนับจำนวนด้วยก็เลือกเอาเลยเนอะ…

แนะนำธีม VS Code

เป็นธีมที่เคนใช้เวลาหาใน Visual Studio Code ค่อนข้างนานมากๆ ต้องบอกก่อนว่าสายตาเคนเหมือนไม่ค่อยปกติ ถ้าใช้ Dark Theme แบบที่คนอื่นดูแล้วสบายตากันอ่ะ เคนจะมองไม่ค่อยเห็นเพราะมันมืดเกินไป ตาเคนมันจะไม่ค่อยโฟกัสกับธีมมืดแบบนั้น จะหาธีมสว่างๆ ก็บาดตาอีก แต่มันก็มีข้อยกเว้นอยู่บ้าง เช่น ธีมมืดที่ทำสีตัวอ…

CSS รูปภาพพื้นหลัง + จาง

background-image + opacity นั่นเอง หรือเรียกเป็นภาษาไทยก็น่าจะ ใส่รูปพื้นหลัง และทำให้มันจางๆ เป็นแบบเขียน CSS 1 div ได้เลย ไม่ต้องเขียนหลาย div ก็ต้องขอบคุณ StackOverflow อีกแหละ 555 .wave-bg { background-image: url(‘/assets/img/wave.png’); background-image: linear-gradient(to bottom, rgba(255, 255…

กว่าจะเข้าไป Debug Samsung Internet Browser ผ่าน Google Chrome ได้

ยากอิ๊บอ๋ายยยยย ไม่ได้ยากธรรมดา กว่าจะหาจนเจอวิธีที่ใช้ได้ แม่มก็โคตรยากกกกกกกก ของเคนเป็น Samsung Galaxy Note 9 อะ ส่วนของการเข้าถึงอาจจะไม่ตรงกับทุกคน แต่วิธีทำจะประมาณนี้แหละ ขอบคุณ StackOverflow อีกแล้วhttps://stackoverflow.com/a/57524521 วิธีทำ เปิด USB Debugging (การแก้ไขข้อบกพร่อง USB) บนมือถ…

registerElement ถูก Deprecated ให้ไปใช้ customElements.define แทน

ในช่วงที่ผ่านมาก็มีประกาศจากทาง Google Chrome ว่าจะยกเลิกการใช้ตั้งแต่ช่วงเดือนมีนาคม 2019 แต่ถามว่าเคนเห็นไหม?…ก็ไม่…เพิ่งมาเห็นหลังจากมันประกาศมา 4 เดือน ก็คือตอนนี้ โดยที่ตัวเคนเองอ่ะไม่ได้เขียนหรอก แต่สคริปต์ที่เอามาใช้เค้าเขียนเอาไว้น่ะสิแบบนี้ l.registerElement(“vakata-jstree”, { prototype…

Ubiquity – PHP Framework ที่เร็วแรงสุดตอนนี้ (2019/07)

เคนไม่ได้กล่าวไว้ แต่ PHPBenchmarks.com เค้าบอกมา! PHPBenchmarks.com คือ เคนก็เพิ่งรู้จักเค้าเหมือนกัน เหมือนจะเป็นเว็บที่รวบรวมจัดอันดับความแรงของ PHP Framework ไว้ให้เราดูกันว่า ตอนนี้ตัวไหนแรงอยู่อันดับที่เท่าไหร่แล้ว เข้ามาหน้าเว็บเค้าก็จะมีชาร์ตให้ดูแบบนี้เลย ซึ่งก็ดันไปสะดุดว่าไอ้ตัว Ubiquity …

วิธีเขียน Cronjobs ใน DirectAdmin ของ Codeigniter

Cronjobs มันก็ไว้กำหนดวันที่เวลาว่าเราจะรันไฟล์ตัวนี้เวลาไหน วันที่เท่าไหร่ แต่บางคนอาจจะงงๆ ว่าแล้วใน Php Codeigniter มันกำหนดยังไง แตกต่างกับตัวอื่นไหม? จริงๆ ก็ไม่นะ…(มั้ง) อ่ะ…ไปดูหน้าตาตัวจัดการ Cronjobs ใน DirectAdmin กันก่อน โดยมันจะมีส่วนกำหนดเวลา และคำสั่ง กับส่วนรายการที่เคยสร้างแล้ว ป…

ความกวนตีนของ ESLint/Prettier – Missing space before function parentheses

ต้องตะโกนดังๆ ว่า มึงกวนตีนกูอยู่ใช่ไหมมมมมมมมมมมมมมมมม เคนเป็นมือใหม่หัดใช้ ESLint กับ Nuxt.js ตอนนี้เหมือน Nuxt.js จะอัพเดทเวอร์ชั่นใหม่ ทำให้เคนติดตั้งด้วย Template ตอนนี้มันก็เหมือนได้กฎใหม่ของ ESLint มาด้วย ซึ่งกฎตัวนี้ค่อนข้าง…กวนตีน!!! ไปดูตัวอย่างโค้ดดีกว่าจะได้รู้ว่ากวนตีนยังไง! export de…

เริ่มต้นเรียนรู้การใช้ Vue.js ด้วย Nuxt.js มันง่ายกว่าจริงแฮะ

ใครเป็นเหมือนเคนไหมอะ เหมือนเติบโตกับการเขียนโปรแกรมแบบตัวเดียวจบ (Decoupled) คือไม่มีการแยก Frontend/Backend เป็นแบบตัวเดียวเลย ทีนี้พอถึงยุคนี้ที่เน้นการแยกระหว่าง Frontend กับ Backend ขึ้นมา เคนเองในส่วนของ Backend อะ ไม่มีปัญหาใดๆ เลย เพราะมันก็ทำเหมือนที่เราเคยทำมา และเคยชิน แต่พอไปจับ Frontend…

กว่าจะเข้าใจ State…ป่ะ! มาใช้ Nuxt.js กันดีกว่าไหม

State Store ใครบอกเข้าใจง่าย? …ม่ายยยยยย!!! สำหรับเคนนี่เป็นเรื่องที่เข้าใจโคตรยากเลย กว่าจะเข้าใจว่ามันคืออะไร ยังไง ใช้อะไร ทำไมต้องมี ทำไมต้องใช้ dispatch? reducer? ขออธิบายไม่ใช่ในเชิงวิชาการใดๆ ทั้งสิ้น แต่เป็นในเชิงของความเข้าใจเคนล้วนๆ นะฮะ ผิดหลักการอันใด สามารถคอมเมนท์เพื่อเสริมความเข้าใจ…

MySQL ของ MAMP ไม่สามารถเชื่อมต่อได้

โอ๊ยยยยย ปัญหานี้บอกเลยว่านั่งงมอยู่ 2-3 ชั่วโมง ทำไม่ได้สักที! คือกำลังฝึกลองเขียน ASP.NET Core แต่ว่าจะใช้ตัว MySQL ของ MAMP เลย จะได้ไม่ต้องติดตั้งใหม่ แต่ทำยังไงมันก็เชื่อมต่อไม่ได้สักที ก็นั่งเอ๋อว่าเขียนโค้ดผิดตรงไหนหว่า หลังจากงม แก้โค้ดไป 2-3 ชั่วโมง เชื่อมต่อไม่ได้สักที จนท้อละ…กำลังจะลงไ…

Lint Linter ESLint คืออะไร

Linter คือตัวที่ใช้ตรวจสอบความผิดพลาด หรือสิ่งที่จะทำให้เราผิดพลาดในการเขียนโปรแกรม หรือทำอะไรสักอย่าง เค้าเลยเอาตัวแนวคิดของตัว Linter มาใช้กับส่วนของการเขียนโค้ดด้วย ก็จะเป็นตัวไว้ตรวจสอบความผิดพลาดของการเขียนโค้ดของเรา โดยที่ตัวตรวจสอบ ก็จะแยกไปตามแต่ละภาษาโดยก็จะลงท้ายด้วยคำว่า Lint หรือ Lintter…