Google App Script – Gmail to Calendar

สวัสดีครับ วันนี้จะมาเล่าประสบการณ์ใช้ google app script สร้าง event calendar เมื่อมี new email โจทย์มีอยู่ว่า ทุกครั้งที่ผมออกกำลังกาย ผมจะ email workout summary ซึ่งมันจะสรุป เวลาที่ใช้ จำนวนแคลที่ได้ โซนหัวใจ และอื่นๆทีนี้ ผมอยากเห็นเป็นรูปแบบ calendar เพราะจะได้รู้ว่า วันไหนออกกำลังกายไปเท่าไหร่ ออกตอนเช้าหรือ ตอนเย็น บลาๆ ลงมือทำ ขั้นตอนแรก ต้องลองทำ Diagram ก่อน Search Mail ผมใช้วิธี search จาก label ซึ่งผมจะไปเพิ่ม setting gmail ให้มี filter label ก่อน ด้วย“from:(moves@myzone.org) subject:(Your Myzone Workout Summary)“ดังนั้นเมื่อมี email เข้ามาใหม่ แล้วตรงเงื่อนไขแล้ว […]

kreangkrai supchid

June 3, 2023

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

บ่น CodeSignal และภาษาอังกฤษ

คือ ผมทำ CodeSignal อยู่เรื่อยๆ พยายามแบ่งเวลามาทำเรื่อยๆแต่ปัญหาก็คือ บางครั้งโจทย์ยาวมาก และผมแปลผิด นั้นทำให้เขียนโปรแกรมเท่าไหร่ก็ไม่ผ่าน แล้วผมบ้าบอ อะไรก็ไม่รู้คิดไปเองหลายๆอย่าง และนี่ไม่ใช่ครั้งแรก พอมานึกดูดีๆ ผมเจอแบบนี้บ่อย และข้อนี้ผมก็จำได้ว่า ให้หา number of candidate ไม่ใช่ index แต่พอเราหยุดเขียน เพราะติดงาน หรือติดอื่นๆ กลับมาเขียนใหม่ มันก็จะลืม แล้วก็หา index เหมือนเดิมมมม บ้าาาาาาา พอผมเข้าใจโจทย์ ผมเขียนรอบเดียวผ่าน ผ่านแบบไม่ได้ทดสอบ test อะไรเลย ผมเลยหงิดหงุดกับภาษาอังกฤษตัวเองมากกกก ทำไมถึงแย่ขนาดนี้ ไอที่ยาวๆ คือผิด ส่วนสั้นๆ func เดียว ทีเดียวผ่านนนน บ้าบอออออออ

kreangkrai supchid

August 20, 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

The First Flutter Web Project

โปรเจคนี้เป็นโปรเจคทดสอบเขียน Web ด้วย Flutter โดยขึ้นโครงจาก Test Drive และลอกตัวอย่างจาก Create a Website Using Flutter – Flutter Web – Speed Code ซึ่งเป็น video เมื่อ 1 ปีที่แล้ว ในตัวอย่างจะใช้ FlatButton ได้เลย แต่เวอร์ชั่นที่ผมทำ คือ Flutter 2.2.1 • channel stable • https://github.com/flutter/flutter.git Framework • revision 02c026b03c (4 days ago) • 2021-05-27 12:24:44 -0700 Engine • revision 0fdb562ac8 Tools • Dart 2.13.1 ดังนั้น code ชุดนี้ก็มีการอัพเดทเรื่อง […]

kreangkrai supchid

June 1, 2021

Git clone all project in one line

เคยเจอโปรเจคแบบ microservice ไหมครับ โปรเจคที่แบบมีเป็น 10 modulesถ้าให้มานั่ง clone ทีละอัน บางทีก็เสียเวลาครับ งานมันทำซ้ำ ถ้างั้นก็ต้องเขียนโปรแกรมได้สิ สิ่งที่ต้องเตรียม token ที่มีสิทธิ read_repository 2. project group id 3. curl หรือ wget และ jq เพราะ output มันจะได้ json น่ะ ต้องใช้ jq ช่วยในการ refer object คำสั่งที่ใช้ for repo in $(curl “https://<host>/api/v4/groups/<groupID>?private_token=<token>&per_page=50&page=0” | jq “.projects[].ssh_url_to_repo” | tr -d ‘”‘); do git clone $repo; done;

kreangkrai supchid

January 18, 2021
1 2 3