All posts by admin

Computer Programming For Kids

 

 

 

Programming คืออะไร?

มนุษย์ทุกผู้ทุกคนล้วนแล้วแต่เป็น Programmer ตั้งแต่เกิด, เพียงแต่ไม่รู้ตัวเท่านั้น. เราจะปลุกความเป็น Programmer ในตัวคุณออกมาด้วยการเล่นเกมส์สนุกๆ.

 

คุยกับหุ่นยนต์อย่างไรให้รู้เรื่อง?

เปรียบได้ดังการไปยืนคุยกับผู้พิการหูหนวก, เขาไม่สามารถรับฟังข้อมูลเสียงจากเราได้. สิ่งที่เราควรทำคือ เขียนตัวหนังสือหรือใช้ภาษามือเพื่อสื่อสาร.

เช่นเดียวกัน, ถ้าเราอยากสื่อสารกับ Computer หรือหุ่นยนต์, เราต้องรู้ว่า Computer หรือหุ่นยนต์ตัวนั้นสื่อสารด้วยช่องทางใดและใช้ภาษาอะไรบ้าง?

 

ทดลองสื่อสารด้วยภาษาหุ่นยนต์

หุ่นยนต์ก็เหมือนมนุษย์, มีความแตกต่าง มีหลากหลายชาติพันธุ์. เราจะมาทดลองสั่งการหุ่นยนต์ Ozobot ด้วยภาษาของมันกัน.

 

 

พื้นฐาน 3 ข้อแห่ง Computer Programming

คำสั่ง, เงื่อนไข, การทำซ้ำ … พื้นฐานขั้นสุดของ Computer Programming.

 

เขียน Program สั่งการหุ่นยนต์

ทดลองใช้ภาษา Blocky เพื่อสั่งการหุ่นยนต์ให้เดินหลบสิ่งกีดขวาง.

 

สร้างเกมส์ Flappy Bird ในตำนาน

เกมส์ 8 bit ที่เราต้องพาเจ้านกบินลอดช่องแคบ, ที่เคยดังถล่มทลายเนื่องด้วยความยากระดับเทพพระเจ้า. เราจะสร้างเกมส์เล่นกันด้วย Scratch.

 

 

 

ไม่ต้องกลัวลืม Shortcut key อีกต่อไป, มาเพิ่ม Menu ให้ Sublime กันเถ๊อะ

บัวบานใช้ Sublime บ้างในบางโอกาส. และประสบปัญหาอย่างแรง เวลาจะเรียกใช้ plugin แต่จำ shortcut key ไม่ได้! ต้อง google ทุกครั้งไป. น่าเบื่อ!

วันนี้ขอจบปัญหานี้อย่างถาวร ด้วยการเพิ่มเมนูเข้าไปให้ Sublime เลย. จะขอยกตัวอย่าง Plugin  Pretty JSON ซึ่งมีหน้าที่จัดเว้นวรรค เว้นบรรทัด ให้ JSON อ่านง่ายขึ้นนะฮะ.

Install Plugin

  1. กด Preferences > Package Control

  2. เลือก Package Control: Install package
  3. พิมพ์ “Pretty JSON” แล้วกด Enter

หลังจากที่มันลงเสร็จแล้วเราจะเห็น package นั้นบนเครื่องเรา.
Windows: %userprofile%\AppData\Roaming\Sublime Text 3\Packages\Pretty JSON
Mac: /Users/your-user/Library/Application Support/Sublime Text 3/Packages/Pretty JSON

 

Add a Menu

ณ จุดนี้ เราจะเพิ่มเมนู “PrettyPrint” และภายใต้นั้นเราจะใส่ “Pretty JSON” เอาไว้.

  1. เปิดไฟล์ Main.sublime-menu
  2. เพิ่ม object เข้าไปดังบรรทัดที่ 38-48
    [
        {
            "mnemonic": "n",
            "caption": "Preferences",
            "id": "preferences",
            "children": [
                {
                    "mnemonic": "P",
                    "caption": "Package Settings",
                    "id": "package-settings",
                    "children": [
                        {
                            "caption": "Pretty JSON",
                            "children": [
                                {
                                    "caption": "Settings – Default",
                                    "args": {
                                        "file": "${packages}/Pretty JSON/Pretty JSON.sublime-settings"
                                    },
                                    "command": "open_file"
                                },
                                {
                                    "caption": "Settings – User",
                                    "args": {
                                        "file": "${packages}/User/Pretty JSON.sublime-settings"
                                    },
                                    "command": "open_file"
                                },
                                {
                                    "caption": "-"
                                }
                            ]
                        }
                    ]
                }
            ]
        },
        {
            "caption": "PrettyPrint",
            "mnemonic": "p",
            "id": "prettyJson",
            "children": [
                {
                    "command": "pretty_json",
                    "caption": "Pretty JSON"
                }
            ]
        }
    ]
    
  3. Save file และ Restart Sublime. จะเห็น Menu โผล่มา พร้อมกดใช้ได้เลยนะฮะ.

Selenium JavaScript Executor (English version)

Javascript Executor in Selenium have a lot of benefits that normal Selenium API cannot provide.

For instance,

  • You want to fetch data from server but it needs an authentication.
  • You want data inside a response of fetch or AJAX (XHR).
  • You want to get value from Javascript such as data from performance API (Navigation Timing, User Timing, etc.)

Continue reading Selenium JavaScript Executor (English version)

Selenium JavaScript Executor

JavaScript Executor ใน Selenium นั้นมันมีประโยชน์มาก. ถ้าใช้ให้ถูกวิธีจะสามารถเพิ่มความสามารถให้ Selenium ได้อย่างอลังการ. ยกตัวอย่างเช่น:

  • อยากจะ AJAX, XHR, หรือ Fetch แต่ติดปัญหาเรื่อง credential หรือ cross domain.
  • อยากจะรู้ว่า AJAX, XHR, หรือ Fetch นั้นได้ค่าอะไรกลับมา.
  • อยากจะเรียก JavaScript function บน app นั้นเพื่อทำงานบางอย่างเช่น expand/collapse dropdown, hide element.
  • อยากจะเก็บค่า performance พวก navigation timing, user timeline, resource timing.

Continue reading Selenium JavaScript Executor

WebSocket Performance Test on JMeter

วันนี้อยู่ๆก็มีอารมณ์อยากลองทำ performance test ของ websocket ขึ้นมา. ก็เลยทดลองเล่น JMeter 3 with plugin JMeter-WebSocketSampler.
เชิญชมวิธีการทำ performance test บน websocket (ws/wss) กัน. Continue reading WebSocket Performance Test on JMeter

Selenium – Page Object คืออะไร?

Page Object เป็น design pattern ในการเขียนโค้ดสำหรับ automation testing. แนวคิดก็คือสร้าง Class ที่ทำหน้าที่เป็น interface ระหว่าง application และ test case.

ก่อนที่เราจะพูดเรื่อง Page Object, ผมขอเกริ่นนำก่อนว่า Page Object นี้เกิดมาเพื่อสิ่งใด? เริ่มต้นด้วยตัวอย่างการเขียนเทสแบบไม่ใช้ Page Object (จากนี้ไปจะเรียก Page Object Model ย่อๆว่า POM). Continue reading Selenium – Page Object คืออะไร?

JMeter – การใช้ JMeter แบบง่ายๆ

jmeter-logoมี tools จำนวนมากในตลาดที่ช่วยในการทำ performance test นะฮะ. JMeter (by apache) น่าจะเป็นตัวเก๋าที่ทุกๆคนรู้จัก. มีข้อดีหลักๆคือ อยู่มานาน ทำให้มี tutorial เยอะ, รองรับการใช้งานหลากหลาย เช่น http, SOAP, JDBC, MongoDB, LDAP, TCP, …, และมีลูกเล่นเยอะแยะ เช่นใส่ script นู่นนี่เพื่อประมวลผล response, assert response, monitor response.

บัวบานขอนำเสนอวิธีการใช้ JMeter ทำ performance test Web Application แบบง่ายๆ. Continue reading JMeter – การใช้ JMeter แบบง่ายๆ

บันทึกบัวบานเยือนสาธารณรัฐประชาชนจีน – day 2 – พระราชวังต้องห้าม เฉียนเหมิน และหวังฝูจิ่ง

กำแพงทิศเหนือของพระราชวังต้องห้าม

หลังจากเดินทางมาถึงปักกิ่ง และเยี่ยมชมกำแพงเมืองจีนในวันแรก ซึ่งเป็นวันจันทร์. วันที่สองเราก็ตื่นเช้ามาทานอาหารเช้าในโรงแรม. อาหารจะจืดๆ มันๆ, หาอาหารเค็มได้ยาก, อยากจะหาซีอิ๊วขาวมาหยดลงบนไข่ดาวสักหน่อยก็ไม่มี. เริ่มสงสัยว่าไอ้ซีอิ๊วขาวนี่มันเครื่องปรุงของจีนหรือของไทยกันแน่. Continue reading บันทึกบัวบานเยือนสาธารณรัฐประชาชนจีน – day 2 – พระราชวังต้องห้าม เฉียนเหมิน และหวังฝูจิ่ง