รัน Jasmine ด้วย Browser IE ผ่าน Karma

ปัญหาการใช้งาน IE ยังไม่จบไม่สิ้น คราวที่แล้วเป็นเรื่องรัน robot framework บน IE รอบนี้มาเจอปัญหารัน javascript unit test บน IE

javascript unit test ที่ใช้เป็น jasmine รันด้วย karma test runner บน Windows server 2012 ปัญหาที่เจอรอบนี้คือ เปิด IE ไม่ขึ้นเฉพาะตอนรันผ่าน jenkins (แต่ถ้ารัน manual ไม่เจอปัญหานี้)

อ่านต่อ »

เอา App ไปรันเป็น Service บน Linux ผ่าน systemd

แต่ก่อนเวลาเขียน app ที่เป็น standalone มาตัวนึง แล้วต้องการปล่อยให้มัน run บน linux เป็น process ทิ้งไว้ ท่าที่มักจะหยิบมาใช้ก็คือ รันเป็น background process (ใส่ & ปิดท้าย และใช้ nohup ร่วมด้วย) และถ้าต้องการ stop ก็จะใช้วิธี kill process และถ้าอยาก restart ก็ kill แล้วตามด้วย run ใหม่แบบ background

วันนี้ได้รู้จักวิธีใหม่จากดิว คือการใช้ systemd ซึ่งจะช่วยให้เราสามารถ start, stop และ restart app ของเราได้เหมือนเป็น service (daemon) กันเลย

อ่านต่อ »

ปัญหาจากการใช้ Browser IE ใน Robot Framework

โพสต์ก่อนหน้าเพิ่งเขียนวิธีใช้ Internet Explorer ใน Robot Framework พอเอาไปใช้จริง ก็เจอปัญหาอื่น ๆ อีก เช่น ช้าโคตร หรือ เปิดขึ้นแล้วเจอปัญหาที่บอกว่า ไม่สามารถเรียกใช้ browser ที่เปิดแล้วได้ ทำให้มันพยายามเปิด browser ใหม่รัว ๆ หรือบอกว่า invalid argument อะไรสักอย่างที่ชื่อ sessionId เรียกว่า ปัญหาเยอะชิบหาย เมื่อเทียบกับใช้ chrome หรือ firefox แทน

โพสต์นี้เลยรวมเอาปัญหาที่เจอ กับวิธีแก้ปัญหามาไว้ด้วยกัน เผื่อเจออีก

อ่านต่อ »

เปิด Internet Explorer ด้วย Robot Framework

หลังจากที่เปลี่ยน OS มาเป็น mac OSX ได้หลายปี รวมถึงใช้ google chrome เป็นหลัก ก็ไม่ได้กลับไปยุ่งกับ internet explorer อีกเลย จนวันนี้ลูกค้าบอกว่า ผู้ใช้ส่วนใหญ่ที่เข้ามาใช้ระบบของเขา ใช้ internet explorer เวอร์ชั่น 11 รองลงมาเป็น google chrome เขาอยากจะให้ความสำคัญกับ browser ทั้งสองตัวนี้ การ test ที่เป็น robot framework ก็อยากให้เทสบน browser ทั้งสองตัวนี้ด้วย

วิธีการ test ด้วย google chrome ไม่ได้ยากอะไร ใช้วิธีปกติได้เลย ส่วนการ test ด้วย internet explorer ล่ะ ต้องทำยังไงวะ ไม่เคยลองจริง ๆ เลยสักที ใน document มันบอกแค่ว่ากำหนด browser เป็น ie ก็จบ ใช้ได้เลย

อ่านต่อ »

Access Control ด้วย Route Guard ใน Angular

ใน App ทั่ว ๆ ไปที่ต้องมีการ login ก่อนการใช้งาน บาง route ก็จะเป็น route ที่ใครก็สามารถเข้าไปใช้งานได้ แต่บาง route อาจจะไม่ ในกรณีที่เราอยากให้บาง route ที่เรากำหนดขึ้นมาสามารถเข้าถึงได้ด้วย user แค่บางกลุ่ม เช่น admin หรือเฉพาะเจ้าของ route นั้น เราสามารถทำได้ด้วยการใช้ Route Guard

อ่านต่อ »

สร้าง Angular Library ไปวางไว้บน npm

เคยคิดว่า ถ้าจะสร้าง component สำหรับ Angular แล้วเอาไปให้คนอื่นได้ใช้ผ่าน npm มันต้องทำยังไง แต่สุดท้ายก็ลืมหาคำตอบ จนมาเกิดคำถามนี้อีกครั้งตอนมา outing ของ odd.Works ที่ตั้มถามว่า ถ้าจะทำ component ไปวางไว้บน npm เนี่ย มันต้องทำยังไง เลยเกิดคำถามว่า เออ มันทำไงวะ เคยได้แต่ถาม ไม่เคยหาคำตอบ งั้น มาลองดิ๊

อ่านต่อ »

Multilingual ใน Angular

ลองหาวิธีทำ multilingual application ใน angular แล้วเจอตัวที่เป็น translation service ที่มีหน้าตาคล้าย ๆ กับที่เคยทำใน AngularJS ต้องใช้พวก translation provider อะไรพวกนี้ หาไปเรื่อย ๆ ก็เจอ @ngx-translate ที่ดูเจ๋ง แต่ตอนเอาไปใช้นี่น่าจะใช้เวลานานเหมือนกัน เลยลองทำเล่นดูเองดีกว่า

อ่านต่อ »

เขียน middleware บน .NET Core 2.0

โดยปกติ เวลาสั่ง dotnet run ตัว web api มันจะแสดงแค่ว่า ตอนนี้กำลัง listen อยู่ที่ port ไหน ถ้ามี request ที่ตรงกับ route เข้ามาก็เงียบ ๆ จะมีบ่น ๆ ก็แค่ตอนเจอ error เลยลองตั้งโจทย์ว่า อยากจะให้ web api request มันคอย log ทุก request ที่เข้ามาบน console เหมือนกับ access log จะทำยังไงดี middleware น่าจะเป็นคำตอบที่น่าสนใจ

อ่านต่อ »

ใช้ LinQ กับ mongodb บน .NET Core 2.0

น้องแอ๋มมาบอกว่า อยากให้ลองใช้ LinQ แล้วจะติดใจ เลยลองเอาตัวอย่างเดิมที่เขียนต่อกับ mongodb มา modify เพิ่ม โดยการก๊อปปี้เอา CustomersService class มาสร้างเป็น CustomersLinQService class แล้วแก้ให้มาใช้ LinQ

อ่านต่อ »