Solved tasks: 60/60

Yeah~~~ Now I’m done the challenge CodeSignal ตอนนู้น ก่อนจะเริ่มทำงาน รู้สึกข้อ sprialNumbers ไม่ง่ายเลยแต่พอตอนนี้กลับมาทำ ดันรู้สึกว่า มันก็ไม่ได้ยากอะไรนี่หว่า ที่ surprise คือ เจอคนใช้ recursiveแบบ… เออวะ มันใช้ recursive ได้นิหว่า คนเขียน go ไม่เจอใช้ recursive แต่เจอคนเขียน python ใช้ 555 เหมือนพวก Data Science จะมีความคิดต่างกับ Programmer แหะ ส่วนข้อสุดท้ายเป็น sudoku รู้สึกง่ายกว่า sprialNumbers

kreangkrai supchid

March 17, 2022

การ handle error โดยใช้ mapping literals

พอดีไปอ่านบทความ Don’t Use If-Else and Switch in JavaScript, Use Object Literals แล้วรู้สึกว่ามันน่าสนใจเพราะตอนทำงานจริงๆ ผมเคยเจอบางโปรแกรมที่ handle error ด้วยการใช้ if-else, switch จากโค้ด อ่านแล้วก็เข้าใจแหละ ว่า ถ้า 4xx, 5xx คือ error แต่ 1xx, 2xx, 3xx ไม่คิดจะแยกหน่อยหรอ 5555 ในความคิดผม เราควรทำตาม http standard ก็คือ เมื่อได้ status code มาจาก 3party service ที่เราเรียก ก็ทำการ แยก level ตัวหน้าสุด นั้นทำให้คนที่มา maintain code ต่อเข้าใจได้ง่ายมากๆ ทีนี้ ถ้าเราอยากจะ warp […]

kreangkrai supchid

September 27, 2021

ประวัติที่มา Frontend, Backend และ SEO

Frontend คืออะไร? Backend คืออะไร? แล้วมันเกี่ยวข้องยังไงกับ SEO ผมพบว่า programmer มือใหม่หลายๆคน แยกความต่างระหว่าง frontend backend seo ไม่ออกซึ่งก็ไม่แปลกเลย เพราะผมก็เคยเป็น 5555 ซึ่งวันนี้ผมจะมาเล่าเรื่อง Frontend, Backend และ SEO (น่าจะแบ่งเป็นตอนๆนะ เพราะเรื่องยาว)พอลองค้นหา Google ก็จะพบว่ามีคนอธิบายไว้ละเอียดแล้ว แต่ไม่มีใครอธิบายที่มาที่ไปของคำว่า Frontend Backend เล่าย้อนยุค อยากให้ลองไปดู keyword Computer History Timeline ก่อนครับ เพราะจะเห็นว่ากว่าจะมาเป็นคอมเร็วๆยุคปัจจุบันนั้น มันผ่านอะไรมามากมายจริงๆ ถ้าเราอ้างอิงจากรูป จะเห็นว่าปี 1998 (2541) เพิ่งกำเนิด Google และปี 2002 (2545) เพิ่งจะมี PC ที่ขายได้ 1 พันล้านเครื่องถ้าลองหักลบกับปีปัจจุบัน จะพบว่ามันผ่านไปไม่กี่ปีเอง คอมพิวเตอร์ในยุค 2002 (2545) […]

kreangkrai supchid

September 19, 2021

.htaccess / root directory คืออะไร?

.htaccess .htaccess คือ  ค่า config ที่จัดการ website-access มี Apache and LiteSpeed Support แต่ nginx ไม่ซับพอต .htaccess แต่ถ้าจะย้ายไป nginx ก็มีคนทำ convert config ให้นะ Root Directory ทำความเข้าใจตรงกันก่อนdirectory ถ้าพูดในแบบมือถือใหม่ก็คือ path ที่ folder อยู่ดังนั้น root directory จะหมายถึง ตำแหน่งที่ตั้งต้นของ…..ที่มีของ เพราะ ขึ้นอยู่กับบริบทคนพูด ว่า root directory ของเครื่อง, root directory ของ Angular, root directory ของ React ดังนั้น ถ้าเราไปอ่านบทความไหน แล้วเค้าบอก root directory ให้ตีความตามเนื้อเรื่องที่อ่านถ้ากำลังเกี่ยวกับ ubuntu, […]

kreangkrai supchid

August 28, 2021

Trick hide test file go

https://stackoverflow.com/questions/55279029/in-goland-how-can-i-hide-test-files-underneath-each-non-test-file A quick reference is to do the following: under the project view window click on the cogwheel select File Nesting… click on the “Child file suffix” under “.go” extension add “_test.go” to the list and click OK

kreangkrai supchid

August 7, 2021

การเพิ่ม multiple config ใน ssh

โจทย์ ตอนนี้ผมมี account 2 อันที่ใช้ github.com1. ของส่วนตัว2. ของบริษัทปัญหาคือ ทั้ง 2 account ชี้ไปที่ github.comผมต้องการแยก วิธีแก้ปัญหา ต้องแก้ 2 ที่1. แก้ที่ ~/.ssh/config ให้ตั้งชื่อ hostname ไม่ซ้ำ และใช้ User git เท่านั้น2. แก้ที่ project คือ your-project/.git/config ให้ replace จากhttps://github.com/mynameiskreang/basic-golang.git เป็นgit@github_mynameiskreang:mynameiskreang/basic-golang.git ถ้าอธิบายให้ลึกขึ้น ก็คือ การเปลี่ยน protocol จาก https เป็น git และกำหนด username และถ้าถามว่าทำไมถ้าตา pattern ไม่เหมือน standard ก็เพราะ git มี package เป็นของตัวเองเช่น git clone […]

kreangkrai supchid

August 7, 2021

ปัญหา Let’s Encrypt – example.com

เกริ่นนำ ผมใช้ Server เป็น CyberPanel ซึ่งเป็น Web Hosting Panel ที่มีเครื่องมือครบครันมากๆใช้ openlitespeed/litespeed เป็น server และ config format เหมือน Apache ปัญหาต่อมาคือ ผมพยายาม issue SSL แต่ดันได้ issuer เป็น example.com และ chrome ก็ไม่ยอม เพราะ domain theproud.co.th ดันมี issuer และ subject เป็น example.com ต้นตอของปัญหา เอาตรงๆผมก็ยังไม่แน่ใจว่าต้นตอคือตรงไหน ผมตั้งสมมติฐานแยกเป็นสองส่วน 1.ปัญหาที่ SSL 2.ปัญหาที่ DNS ผมลองค้นหาข้อมูลจาก https://serverfault.com/questions/1012218/letsencrypt-for-all-subdomains-example-comhttps://community.letsencrypt.org/t/everything-to-https-www-example-com/79461อื่นๆอีกมากมายด้วย keyword “letsencrypt example.com” ซึ่งคำตอบส่วนใหญ่ชี้ไปทางเดียวกัน คือ NS,CN น่าจะผิด หรือ […]

kreangkrai supchid

July 24, 2021

Golang – Regexp

วันนี้เป็นโจทย์ง่ายๆจาก CodeSignal ครับ ให้หาตัวเลขชุดแรกใน string ครับ วิธีที่ผมใช้ก็คือ ascii ครับ แต่พอดูเฉลยของคนอื่น ก็ทำให้ร้อง อ๋อวววววเขาใช้ regexp ก็ได้นี่น่า (ผมก็เคยใช้ตอนทำพวก validate แต่ดันนนนไม่เอามาแก้ข้อนี้) Regexp regexp ของ golang ใช้ syntax เดียวกับ Perl, Python, and other languages นั้นหมายความว่า เราสามารถ migrate บาง service มาใช้ Golang ได้สบายๆ แต่สิ่งที่ต่างคือ การใช้ algorithm matching ยิ่งอ่านก็ยิ่งลึกขึ้น เอาเป็นว่ามาดูดีกว่า regex golang มีอะไรให้ใช้บ้าง regex golang เท่าที่ผมดู method มี return 2 แบบ return […]

kreangkrai supchid

July 22, 2021

Golang – Unicode

วันนี้ผมได้ทำโจทย์ข้อนึงจาก CodeSignal ครับให้หา firstDigit ก็คือให้หาเลขตัวแรกจากทางซ้ายครับ วิธีของผม ผมใช้การ map ครับ ( string ของ golang เวลา loop จะได้เป็น rune ครับ ) แล้วของคนอื่นๆละเป็นไง? อันนี้เป็นใช้ unicode ครับ ซึ่งผมว้าวมาก เพราะเพิ่งรู้จักว่า golang มี unicode พอลองไปดู func ก็พบว่าเห้ยยยย อเมซิ่งแว๊นๆ มีครบให้ทุกอย่าง เป็นอีก 1 package ที่ต้องจำไว้ว่า golang ทำได้ นอกจากนั้นก็มีการแปลง strconv ซึ้งก็คิดไว้แล้วว่ามีแหละ เพราะผมเคยทำแบบนี้ สรุป จากที่สัมผัสกับ Golang มานะครับ ผมเข้าใจละที่ว่าทำไม google ถึงเอาภาษา go มาเป็น ภาษาที่ไว้จัดการ network ภายในของตัวเอง […]

kreangkrai supchid

July 17, 2021

Permutation การเรียงสับเปลี่ยน

วันนี้จะมาเล่าโจทย์ข้อนึงใน code signal ให้ฟังครับผมใช้เวลาแก้นานมากประมาณ 1 สัปดาห์ จนสุดท้ายยอมกดดูเฉลย ก็คือ ให้ []string มาแล้ว ตรวจว่า array นี้มันสามารถทำ chain ต่อกันได้ไหม ปัญหาที่เจอ ตอนแรกผมตีโจทย์ผิด เข้าใจว่า chain คำกันแบบไม่สนตำแหน่ง ดังนั้นนนนน หลงทางไปหลายวันเลย อย่างที่สอง คือ ผมพยายามหาทางทำ recursive function หรือการคิดแบบ group char, map char มาใช้ซึ่งโจทย์เก่าๆข้อก่อนๆที่เคยทำมันดัน work ไง ก็เลยคิดว่าอันนี้น่าจะมี easter egg แบบนั้น ผมหมดเวลาไปกับการคิดแนวคิดใหม่ๆ คิดวิธีแปลกๆเยอะมากๆ จนลืมเป้าหมายจริงๆว่ามันแค่ต้องแก้โจทย์ให้ออก ความจริงคือ โจทย์ข้อนี้ ให้ข้อมูลละเอียดและ test ละเอียดอยู่แล้ว ซึ่ง keyword ที่จะหา คือคำว่า Permutation การทำ Permutation […]

kreangkrai supchid

July 15, 2021

วิธีใช้ copy ใน golang

คิดว่าทุกคนนน่าจะเคยเจอปัญหา อยาก copy, clone array หรือ slice ใน golang แต่ดันต้องสร้าง ตัวแปรใหม่ เขียนวนลูปยืดยาว บลาๆ แต่จริงๆแล้วใน standard package builtin มี copy ให้ใช้อยู่ ทีนี้เรามาดูดีกว่า ว่าใช้งานยังไง จากคำอธิบาย ก็คือต้องสร้าง array หรือ slice มารับ dst หรือ destination นั้นเองส่วน src คือ ย่อมาจาก resource หรือข้อมูลตั้งต้นที่เราต้องการ นั้นก็เพราะ dst ที่เราสร้างไม่ได้ ใส่ cap ไว้นั้นเอง ดังนั้น พอ copy จาก src ไป dst ที่ไม่ได้จองพื้นที่ไว้ เลยได้เป็น [] ลองไปปรับเป็น len […]

kreangkrai supchid

July 14, 2021
1 2 5