CategoriesMusic...that i like

WIM – Weirdo (Music Video)

It’s an MV that closely mirrors the present world. I really like the concept where the character talks to an AI every day, becoming close and understanding each other. But one day, the power goes out, and when the character can talk to the AI again, the AI is no longer able to respond. It evokes a sense of sadness and feels realistically possible in terms of technology.

Why would the AI disappear just because of a power outage?

This is something I’ve wondered about, but I tried to reason it out. I understand that the character might have been a developer during a time when technology wasn’t as advanced as it is today. You can tell from how they started using AI while still a student. They trained the AI by cloning the code onto a Raspberry Pi and continued training that AI without ever turning the machine off.

That AI, named “Weirdo,” was given a gender, developed an understanding of humans, and grew into a system capable of deep, meaningful conversations. But one day, when the power went out, the machine restarted.

The AI retained its knowledge of language, but the context and the ability to exchange information with humans were lost. That’s why we see a new AI stepping in to take its place.

Sad, isn’t it? But I really admire how the song managed to convey such a touching story in just about 5 minutes. It’s truly remarkable.

CategoriesTechnology...My interestedToday..what i learn

Coursera : IBM Introduction to Test and Behavior Driven Development

นั่งเรียนเรื่อง Introduction to Test and Behavior Driven Development เพราะอยากเพิ่มความรู้เรื่อง TDD กับ BDD ให้กับตัวเอง

หัวข้อที่เรียน เป็นเรื่องเกี่ยวกับการพัฒนาซอฟต์แวร์สมัยใหม่ ที่นำการทดสอบเข้ามาเพื่อให้มั่นใจได้ว่า Code ที่พัฒนาทำงานได้อย่างถูกต้อง

Test Driven Development (TDD) และ Behavior Driven Development (BDD) เป็นสองแนวทางที่ช่วยให้กระบวนการพัฒนาและการทดสอบมีประสิทธิภาพมากยิ่งขึ้น

ความสนุกของหลักสูตรนี้ คือทาง Professor เป็นผู้รู้ในเรื่องที่เกี่ยวกับการ Test เป็นอย่างมาก แม้ว่าชื่อหัวข้อจะเป็น Introduction to Test and Behavior Driven Development แต่พอนั่งเรียนจริงกลับพบว่ามี Assignment ที่ให้ตัวผู้เรียนเขียน Test กันจริงๆ จังๆ ไปจนถึงการสอบ และส่ง Code งาน Test ให้ตรวจกันเลยทีเดียว

Professor สอนตั้งแต่ การวางกรอบของ TDD , BDD และเขียน Test แบบ Inside out > outside in , การเขียน Unit Test เพื่อ Test Function ภายใน , การเขียน Test สำหรับการ Test Database , การเขียน Test สำหรับการ call api การทำ mock data , การทำ Test Coverage , Gherkin syntax , Behavior Driven Development และ Python

มีอยู่ตอนหนึ่งที่ประทับใจ คือในส่วนของ Test Coverage เพราะมีอยู่ครั้งหนึ่งได้รับมอบหมายมาจากหัวหน้าว่า หาก Dev ทำการส่งงานมาให้ตรวจ ให้ทำการตรวจ Unit Test ของเขาด้วยทุกครั้ง ว่ามี Unit Test ทำมาด้วยหรือเปล่า

ตอนนั้นที่รับคำสั่งหัวหน้า ก็เข้าใจว่ามันต้องมีแนบมาส่ง แต่ตัวเองก็ไม่เข้าใจอะไรมากว่า Unit Test มันทำงานยังไง +ต้องมีรูปแบบอย่างไร เพราะสมัยตอนที่ตัวเองเป็น Dev ก็ไม่ได้ทำสิ่งนี้เช่นกัน และเมื่อมาทำงานตำแหน่งนี้ก็ถูกสอนมาว่า Unit Test เป็นเรื่องของ Dev เท่านั้น

กลับมาตอนที่ Dev เอางานมาส่ง Dev ที่ทำงานด้วยก็ Run Unit Test ให้ดูว่ามี Run กี่ Case ผ่านกี่ Case ซึ่งตอนนั้นเราก็ไม่มีความรู้จริงๆจังๆในส่วนนี้ แต่พอเรียนหลักสูตรนี้จบถึงได้รู้ว่า เราจะรู้ได้อย่างไร ว่า unit test ที่ dev ส่งมา มัน cover กับ code ที่เขียนไปแล้วจริงๆ และมันควรจะมี Tools อะไรเพื่อมาชี้ให้เห็นว่า Code ในแต่ละ Function มีตัวไหนบ้าง ที่ไม่ได้รับการ Test ?!

กับอีกตอนหนึ่งคือเรื่องของการปรับความคิดเพื่อที่นำไปเขียน Gherkin syntax ที่แต่ก่อนเคยเห็นตามบอร์ด Jira จะมี Format การเขียนประมาณ As role …, when , then , background พอจบหลักสูตรนี้ ถึงได้เข้าใจว่า “อ่อ นี่เขาเขียนแบบ BDD นี่เอง” ซึ่งหากใครเข้าใจตรงนี้ ก็สามารถนำไปเขียน Code และเขียน Test กันได้อย่างสะดวก

และตอนนี้ก็เริ่มเข้าใจแล้ว ว่าทำไม คนทำ QA ถึงได้ย้ายสายไปเป็น BA , หรือ SA กันต่อได้ง่ายนัก นั่นก็เพราะเขามีความรู้ตรงนี้แข็งแล้วนี่เอง

สรุปเรื่องที่เรียนแต่ละเรื่อง มีหัวข้อประมาณนี้

  • การทดสอบช่วยยืนยันว่า Code ที่เราสร้าง ทำงานตามที่คาดหวังหรือไม่
  • กระบวนการทดสอบซอฟต์แวร์มี 4 ระดับ: unit, integration, system, และ acceptance
  • Test cases เป็นตัวกำหนดการออกแบบโค้ดทั้งใน Behavior Driven Development (BDD) และ Test Driven Development (TDD)
  • BDD มุ่งเน้นพฤติกรรมของระบบจากภายนอกสู่ภายใน ขณะที่ TDD มุ่งเน้นการทำงานจากภายในสู่ภายนอก
  • Red/Green/Refactor workflow มี 3 ขั้นตอน:
    1. เขียน unit test ที่ล้มเหลวสำหรับโค้ดที่คุณต้องการให้มี
    2. เขียนโค้ดพอเพียงเพื่อให้ผ่านการทดสอบ
    3. ปรับปรุงโค้ด (refactor) เพื่อเพิ่มคุณภาพ
  • Nose เป็น Python test runner ที่สามารถเพิ่มสีในผลลัพธ์การทดสอบและเรียกใช้เครื่องมือ code coverage
  • Test fixtures ช่วยกำหนดสถานะเริ่มต้นก่อนและหลังการทดสอบแต่ละครั้ง
  • Factories และ fakes มีประโยชน์สำหรับการสร้างและจัดการชุดข้อมูลทดสอบขนาดใหญ่
  • Patching เป็นเทคนิคในการ mocking ที่นักพัฒนาสามารถเปลี่ยนพฤติกรรมของการเรียกฟังก์ชัน
  • Mock objects คือวัตถุที่เลียนแบบพฤติกรรมของวัตถุจริงในลักษณะที่คุณควบคุมได้
  • Behavior Driven Development (BDD) เป็นแนวทางการพัฒนาที่เน้นการทดสอบก่อน เพื่อให้แน่ใจว่าแอปพลิเคชันทำงานตามที่คาดหวัง
  • ระดับที่เหมาะสมสำหรับการใช้ BDD ในกระบวนการทดสอบซอฟต์แวร์คือการทดสอบ integration, system, และ acceptance
  • Workflow ของ BDD มี 3 ขั้นตอน:
    1. สร้างตัวอย่างหรือสถานการณ์เพื่ออธิบายพฤติกรรมที่ต้องการ
    2. รันตัวอย่างเหล่านั้นเป็นการทดสอบอัตโนมัติ
    3. เขียนการทดสอบเพิ่มเติมตามความจำเป็น
  • การสร้างสเปค BDD ต้องเขียนฟีเจอร์และเขียนสถานการณ์โดยใช้ไวยากรณ์ Given, When, Then
  • Context เป็นตัวแปรที่ถูกส่งเข้าไปในทุกนิยามของขั้นตอน
  • การแทนค่าตัวแปร (Variable substitution) ช่วยลดจำนวนขั้นตอนที่จำเป็นและเพิ่มการนำกลับมาใช้ซ้ำ

หลังเรียนจบแล้วรู้สึกขอบคุณทีม IBM และผู้ที่สร้างหลักสูตรนี้ขึ้นมามากๆ เพราะเรียนจบแล้วรู้สึกว่าได้ประโยชน์ และหวังให้ Dev ,QA หรือ BA เองก็ดีได้มาเรียนหลักสูตรนี้กันก่อนได้ไปเริ่มทำงานจริง โดยเฉพาะทีมที่ทำงานเป็น Agile และมี Automated Test…


I’ve been taking a course on Introduction to Test and Behavior Driven Development because I wanted to expand my knowledge on TDD and BDD.

The course focuses on modern software development, incorporating testing to ensure the code works as expected. Test Driven Development (TDD) and Behavior Driven Development (BDD) are two approaches that help improve both development and testing efficiency.

What I found enjoyable about the course is how knowledgeable the professor is about testing. Even though the course is called Introduction to Test and Behavior Driven Development, it turns out that we had real assignments where we had to write tests ourselves. There were actual coding exams where we had to submit our test code for evaluation.

The professor taught everything, from the framework of TDD, BDD, writing tests from the inside out and outside in, creating Unit Tests to test internal functions, testing databases, testing API calls, mocking data, handling Test Coverage, using Gherkin syntax, Behavior Driven Development, and Python.

One part that stood out to me was Test Coverage. In the past, my manager instructed me to check if developers included Unit Tests with their submissions. At that time, I knew it was required but didn’t really understand how Unit Tests worked or what they should look like. When I was a developer, I didn’t do this either, and when I became a QA, I was told that Unit Tests were solely the developer’s responsibility.

Later, when developers showed me their submissions, they ran the tests and showed how many passed or failed. At that time, I didn’t fully understand it. After finishing this course, I finally learned how to know if the Unit Tests provided by developers really cover the code, and what tools should be used to highlight which parts of the code aren’t tested!

Another part I appreciated was learning how to write the Gherkin syntax. I used to see it in Jira boards with formats like “As a role…, when, then, background”. Now, after completing the course, I finally understand that this is BDD in action, and once you understand this, you can write both code and tests much more easily.

I now also understand why many QA professionals transition to BA or SA roles so easily — it’s because they’ve mastered this knowledge.

Here’s a quick summary of what I’ve learned:

  • Testing ensures that the code we build works as expected.
  • There are four levels of software testing: unit, integration, system, and acceptance.
  • Test cases guide the design of the code in both BDD and TDD.
  • BDD focuses on the system’s behavior from the outside in, while TDD focuses on how it works from the inside out.
  • Red/Green/Refactor workflow in TDD has three steps: write a failing unit test, write enough code to pass it, then refactor the code to improve its quality.
  • Nose is a Python test runner that adds color to test results and can call the code coverage tool.
  • Test fixtures set up the known state before and after each test.
  • Factories and fakes are useful for creating and managing large test datasets.
  • Patching is a mocking technique that allows developers to change how a function call behaves.
  • Mock objects are objects that mimic the behavior of real ones, with control over how they work.
  • BDD ensures that applications behave as intended, using integration, system, and acceptance testing.
  • BDD workflow has three steps: create examples/scenarios, run them as automated tests, and write additional tests if needed.
  • When writing BDD specifications, we use Given, When, Then syntax.
  • Context is a variable passed into each step definition.
  • Variable substitution reduces the number of steps needed and maximizes reusability.

After finishing the course, I’m very grateful to the IBM team and everyone involved in creating this course. I feel that it’s truly beneficial and would recommend it to developers, QAs, or BAs to take this course before starting work.

https://coursera.org/share/4420a3a647d27415de423a777ed752a6

CategoriesInspiration...My self-ImprovementToday..what i learn

โจรสลัด…..เรื่องนิทานในวัยเด็ก : The Treasure Hunt: From Childhood Dreams to Adult Realities

เด็กๆเคยชื่นชอบการ์ตูนแนวโจรสลัดผจญภัย พล็อตเรื่องของการตามล่าหาสมบัติ โดยเฉพาะสมบัติที่ไม่มีใครรู้ว่ามันมีหน้าตาเป็นอย่างไร แต่จำได้ดีว่าสนุกไปกับพล็อตเรื่องเหล่านี้ได้โดยไม่ต้องคิดอะไรมาก พร้อมทั้งเอาใจช่วยให้ตัวละครเอกเหล่านั้นออกตามหาสมบัติจนเจอ

วันเวลาผ่านไปจากเด็กกลายเป็นผู้ใหญ่ นิทานเรื่องการหาสมบัติเป็นได้แค่การ์ตูนหลอกเด็ก ที่ทำให้เราได้รู้ว่าสมบัติเหล่านั้นไม่มีอยู่จริง

แต่……..เจ้าพล็อตเดิมมันก็โผล่มาให้เราเจอกับตัวเองในชีวิตช่วงนี้

ตัวละครโจรสลัดคนที่ตามหาสมบัติก็ไม่ใช่ใครที่ไหนไกล แต่กลับเป็นคนอย่างเราๆที่ยังเชื่อในการลงมือทำอะไรสักอย่าง โดยไม่รู้ว่าเราจะทำมันได้สำเร็จหรือไม่

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

นึกได้….ก็รู้สึกชื่นชมกับคนสร้างเรื่องราวโจรสลัดล่าสมบัติเหล่านี้ขึ้นมา ที่ทำให้เรื่องราวของโลกความจริงที่น่ากลัว กลายมาเป็นความน่าตื่นเต้นพร้อมกับกำลังท้าทายพวกผู้ใหญ่ผู้ที่มีจิตใจโจรสลัดได้ออกไปผจญภัยตามล่าหาสมบัติกัน

เอาใจช่วยให้ผู้ใหญ่ทุกคนที่มีหัวใจโจรสลัดได้เจอกับสมบัติในแบบของตัวเองเข้าสักวัน

(English translation) 

Children once loved pirate adventure cartoons with plots about treasure hunts, especially treasures whose appearance no one knew. They vividly remember enjoying these plots without much thought, rooting for the main characters to find the treasure.

As time passed, from children to adults, the tale of treasure hunting became just a children’s cartoon, teaching us that such treasures don’t exist in reality.

But… the old plot has resurfaced in our lives at this moment.

The pirate character searching for treasure isn’t someone far away but rather people like us who still believe in taking action without knowing if we will succeed.

For example, myself, who is learning English every day. If we compare fluent English skills, like a native speaker, to the treasure, then the person trying to learn these skills every day without knowing if they will succeed is definitely a pirate.

Reflecting on this, I feel admiration for the creators of these pirate treasure hunt stories. They turned the scary realities of the world into something exciting, challenging adults with a pirate spirit to embark on adventures to find their treasures.

Wishing all adults with a pirate heart to one day find their own treasure.

CategoriesInspiration...My self-ImprovementToday..what i learn

You got an Olympus OM-D E-M10 Mark IV: 1 unit.

อยู่ๆก็รู้สึกว่าอยากมีงานอดิเรกขึ้นมาสักอย่าง เพราะหวังให้งานอดิเรกมาช่วยให้เราไม่ต้องเคร่งเครียดกับงานกับการเรียนมากจนเกินไป เลยเป็นที่มาให้ได้ไปซื้อกล้องเพื่อเอาไว้ถ่ายทอดเรื่องราวมุมมองต่างๆที่เราอยากสื่อสารออกไป

หวังว่าภาพที่เราถ่าย จะมีคนชอบในสไตล์แบบนี้นะ…


(English translation) Out of the blue, I felt like I wanted a hobby, hoping it would help me not to stress too much about work and studies. This led me to buy a camera to capture and share different perspectives and stories that I want to tell.

I hope you will enjoy the photos in this style that i take!

CategoriesToday..what i learn

Saying “No” without explicitly saying “No”

ระหว่างนั่งเรียนหัวข้อเกี่ยวกับ Project Management มีอยู่หนึ่งหัวข้อที่เรียนแล้วสะดุดใจมาก คือเรื่องของการสอนวิธีปฏิเสธโดยไม่พูดคำว่า “ไม่” อย่างชัดเจน (Saying “No” without explicitly saying “No”)

ตัวอย่างเช่นในกรณีที่มีคนมาขอให้ทำอะไรให้ แล้วหากเราไม่อยากทำ เราจะมีหลักในการปฏิเสธประมาณไหนได้บ้าง ไปดูกัน

1.ไม่ใช่เรื่องเร่งด่วนของฉันในเวลานี้ (It’s not a priority for me at this time.)

2.ชีวิตสั้นเกินไปที่จะทำสิ่งที่คุณไม่รัก (life is too short to do things you don’t love)

3.สัญชาตญาณของฉันบอกว่าฉันไม่เหมาะกับสิ่งนี้ (my instincts tell me I’m not suitable for this)

4.คุณควรทำสิ่งนี้เอง คุณจะทำได้ดีมาก (you should do this yourself, you’d be awesome at it.)

5.ฉันขอเลือกทางเลือกอื่น (I would prefer another option.)

6.คุณใจดีมากเลยที่นึกถึงฉัน แต่ฉันไม่สามารถทำได้ (you’re so kind to think of me, but I can’t.)

7.ฟังดูเยี่ยมมากเลย แต่ฉันไม่สามารถรับปากนะ ว่าจะทำได้ (sounds great, but I can’t commit.)

8.ฉันขอบคุณมากที่คุณถาม แต่ฉันติดงานอื่นอยู่ (I really appreciate you asking, but I’m booked with other things.)

9.ไม่ใช่สิ่งที่ฉันถนัด ขอโทษด้วยนะ (it’s not my thing. I’m sorry.)

10.ฟังดูน่าสนใจ แต่ฉันต้องขอผ่าน (sounds tempting but I’ll have to pass.)

อ่านจบแล้วประทับใจ ถึงขนาดเอามา Post ลงในช่องทางนี้ เผื่อเอามาใช้ปฏิเสธในอนาคตต่อไป (^___^”)

CategoriesEnglish...My PracticedToday..what i learn

อยากไปเกียวโต…

วันนี้นั่งเรียนกับครูสอนภาษาอังกฤษที่เป็นคนญี่ปุ่น เธอได้เล่าบอกเกี่ยวกับทางการญี่ปุ่น ที่จำกัดการก่อสร้างอาคารใหม่ในเมืองเกียวโต ให้ไม่มีขนาดสูงจนเกินไป และให้มีการจัดการตบแต่งร้าน ให้ไม่มีสีสันฉูดฉาดเกินไป เพื่อให้คงอัตลักษณ์ความเป็นเมืองเกียวโตไว้

(ดูภาพได้จาก 7-11 และ Starbuck จากเมืองเกียวโต)

มีครั้งหนึ่งผมได้ไปเมืองเกียวโต เลยเล่าเรื่องความประทับใจกับความตรงเวลาของรถไฟและรถบัส ที่มาตรงเวลาเสมอ เมื่อเทียบเวลากับหน้าเว็บไซต์ Expedia ในตอนนั้น

เธอจึงเล่าให้ฟังอีกว่า สิ่งที่เข้าใจนั้น มันไม่เป็นอย่างนี้ไม่ทุกเมือง อย่างเช่นเมืองที่เธออยู่ เพราะเมื่อรถไฟมาช้า จะไม่มีคน Complain มากเหมือนเมืองใหญ่ๆ หรือเมืองที่มีนักท่องเที่ยวเยอะอย่างเช่นเกียวโต เธอยังเล่าต่ออีกว่า ถึงขนาดมีวลีสอนเด็กหรือคนทำงาน “ว่าหากนัดกันไปไหน ให้ไปถึงก่อน 5 นาที” (เธอพูดภาษาญี่ปุ่นเป็นวลีคำนี้ให้ฟัง แต่ผมแกะภาษาญี่ปุ่นออกมา ไม่ออก)

พอคุยจบ ทำให้อยากไปเกียวโตอีกสักครั้งเลย…..


Today, I had an English lesson with a Japanese teacher. She told us about how the Japanese government limits the construction of new buildings in Kyoto so they aren’t too tall, and they manage the decoration of shops to ensure they aren’t too flashy, preserving the city’s unique character.

(You can see examples of this at the 7-11 and Starbucks in Kyoto!)

Once, I visited Kyoto and shared my experience of being impressed by the punctuality of the trains and buses, which always arrived on time compared to the schedule on Expedia’s website.

She then explained that this isn’t the case in every city. For example, in her city, if a train is late, people don’t complain as much as in big cities or tourist-heavy places like Kyoto. She also mentioned a phrase that teaches kids and workers, “If you have an appointment, arrive 5 minutes early.” (She said this phrase in Japanese, but I couldn’t quite catch it.)

After our conversation, it made me want to visit Kyoto again…

CategoriesInspiration...My self-ImprovementToday..what i learn

Coursera : Project Initiation: Starting a Successful ProjectCoursera :

ต่อกันที่ตอนที่ 2/6 ของ Google Project Management ที่ตอนนี้มาว่ากันด้วยเรื่องการจัดการ Project ในส่วนของการเริ่มต้น

หลักๆเลย หัวข้อนี้จะสอนเกี่ยวกับ
-หลักการ SMART (Specific , Measurable , Attainable , Relevant , Time-bound)
-OKR
-Scope creep
-ข้อจำกัด 3 ประการกับการจัดการ Project (Time , Cost , Scope)
-การวัดผลสำเร็จของ Project
-รู้จักกับผู้มีส่วนได้ส่วนเสียทั้งหมดที่เกี่ยวข้องกับ Project (Stakeholders , team roles and responsibilities)
-การใช้ Tools เพื่อการจัดการการทำงานร่วมกัน
-มอบหมายงานแต่ละตำแหน่งด้วย RACI Chart

แม้จะเป็นหัวข้อหนึ่งที่ยาว แต่ระหว่างเรียนก็ตั้งใจเรียน เรียนแบบไม่เร่งรีบ ค่อยๆซึมซับ ค่อยๆจดลงไป เพราะที่ผ่านมาตัวเองมี Pain เกี่ยวกับเรื่องการบริหารจัดการ Project เนื่องจากหัวหน้าในตอนนั้นคาดหวังว่าเราจะจัดการทีมได้ดี แต่ผลที่ออกมามันไม่ดีเลย และก็จาก Pain ตัวนี้เอง ที่ทำให้ตัวเราอยากปิด Gap เรื่องนี้มากๆ เลยยิ่งใส่ใจในทุกๆเรื่องที่ทีมอาจารย์ฯสอน

เบื้องต้นก็อยากจะเขียนแหล่ะว่าหลักการแต่ละอย่างมันทำอะไร แต่คิดว่าหากเขียนไปมันคงยาว เอาเป็นว่าหากอยากรู้ ก็เอา Keywords ไปค้นหาแล้วอ่านตามต่อจะดีกว่า น่าจะได้ความรู้ที่ครบถ้วนกว่านี้ เอาเป็นว่าใครอยากเรียนรู้เรื่องการบริหาร Project จาก Google ก็มาลงเรียนกันได้เลย

https://www.coursera.org/account/accomplishments/verify/L5R95EGSAE46

The true delight is in the finding out rather than in the knowing.

Isaac Asimov
CategoriesTechnology...My interestedToday..what i learn

CodingThailand : Kubernetes (k8s) สำหรับ Web Developer

นั่งเรียนเรื่อง Kubernetes มา 3 วัน กับอาจารย์เอก CodingThailand เกี่ยวกับการทำให้ระบบ server ของเรารองรับ Zero Downtime สำหรับการ Update Version ของ App เรา กับอีกเรื่องเป็นเรื่องเกี่ยวกับการ Auto Scale หรือทำให้ระบบของเรารองรับการขยายตัวเอง เช่น เมื่อเกิดเหตุการณ์ที่มีคนเข้ามาใช้งานเยอะๆในเว็บ ภายในช่วงเวลาหนึ่ง แล้ว CPU หรือ Ram สูงถึงค่าที่เรากำหนดไว้ ให้ไปเรียก Service ตัวอื่นมาช่วยกันรองรับ Load ในเวลานั้น

ความสนุกที่สุดในคอร์สนี้ น่าจะเป็นตอนที่เปิด Dashboard เพื่อ Check Service (pods) ของเรา ที่กำลัง Run อยู่ แล้วเห็นว่าจังหวะที่เรา Apply app version ใหม่เข้ามา ตัว App เดิม มันไม่ล่มจริงๆ (ตามภาพ)

คือจังหวะนี้ (จังหวะ Update Version ของ App เรา ) หากลูกค้าเข้ามาเรียกหน้า App ของบริษัท บางคนจะได้ App Version ที่ 1 บางคนจะได้ App version ที่ 2 ปนๆกันไป จนกว่า App Version ใหม่ทยอยเกิดขึ้นมาครบทุกตัวและปิด App version เก่าทั้งหมดทิ้งไป นอกจากนั้นก็จะเป็นเรื่องการสร้าง Services : Frontend,Backend,Database และใช้ Config file ให้แต่ละตัวคุยกันได้

หลังเรียนเสร็จ เริ่มมีความคิดว่า “ยิ่งเรียน ยิ่งไม่รู้” เพราะหากเราจะเรียนให้รู้ในเรื่องนี้ให้เข้าใจมากจริงๆ คือมันต้องขุดลงไปให้ลึก หรือเรียนเรื่องการ Config ให้รองรับงานในแต่ละแบบให้เป็น ซึ่งกว่าจะทำให้งานมันดีพอ กับ Production ได้คงต้อง Take อีกหลาย Course แน่ๆเลย…

But need alone is not enough to set power free: there must be knowledge.

Ursula K. Le Guin
CategoriesMusic...that i like

宇多田ヒカル「Keep Tryin’」

I DON’T CARE ABOUT ANYTHING
With a carefree expression
I was always, always praying
Asking for too much
I’m not easily satisfied
So I’ll KEEP TRYING

The ten o’clock comedy show
Helps me relax after work
But being alone kind of sucks
I think that feeling’s important, too

It’s becoming more tiresome than last year
There’s a prize that only challengers can win
I want it

I DON’T CARE ABOUT ANYTHING
I was a little late this morning,
but from now on I’ll try my best
I’ll expect a lot
But I’m not a fool
So I’ll KEEP TRYING

Actually, I’m hungrier than anyone
Even if I hide my confused feelings
The mirror reflects my timid face each morning
I want to get rid of it

A wish on a moonlit night is a beautiful thing
It’ll be my target, jump in the mud
LADY, LET’S GO

I DON’T CARE ABOUT ANYTHING
While striking a cool pose
I battled telling the truth
You worry about your important life so much
Take a break

“Time is money”
Don’t say you’ll be a government official in the future
Don’t you have any dreams?
“Money over love”
It doesn’t matter that your darling is a salaryman
If there’s love

I DON’T CARE ABOUT ANYTHING
With a carefree expression
I was always, always praying
Asking for too much
I need more and more to be satisfied
So I’ll KEEP TRYING

I try to stay afloat
But the world’s ebb and flow is pretty intense
No matter the time
The only thing that won’t change in value is you

The boy will always,
Always be my secret love
You can’t put a price
You can’t put a price
On passion, passion
Dad, KEEP TRYING, TRYING
Mom, KEEP TRYING, TRYING
Big brother, Train Conductor, Bride KEEP TRYING, TRYING

CategoriesTechnology...My interestedToday..what i learn

Skooldio : Tactical Domain Driven Design

เลือกเรียนในหัวข้อนี้ เนื่องจากคำโปรยที่พูดเรื่องของการพัฒนาโซลูชันที่หากไม่สอดคล้องกับปัญหาทางธุรกิจ จะทำให้ระบบยากต่อการปรับปรุงหรือทำให้โปรเจคนั้นไปต่อได้ยาก โดยคอร์สนี้โฟกัสที่ Domain Driven Design ที่เน้นการเขียนโค้ดให้สอดคล้องกับโดเมนธุรกิจ

ในระหว่างที่เรียนไป ก็ยังสับสน เพราะส่วนตัวไม่ได้มาทางการเขียน Code ในแนว OOP หรือเริ่มโปรเจคจาก DDD มากขนาดนั้น คาดว่าหลังจากนี้คงต้องกลับมาเรียนซ้ำเพื่อเพิ่มความรู้เกี่ยวกับเรื่องนี้ให้เข้มข้นขึ้น และคิดว่าหากจะเรียนจนถึงขนาดนำมาถ่ายทอดได้ขนาดนี้ คงต้องใช้เวลาอีกสักพัก

https://www.skooldio.com/certificate/4442a44f-3fe8-4d78-a747-adadc3dc07d1

Everybody gets so much information all day long that they lose their common sense.

Gertrude Stein.
CategoriesTechnology...My interestedToday..what i learn

Skooldio : OOP The Right Way

คอร์ส “OOP The Right Way” เป็นคอร์สการสอนพื้นฐานของ Concept การเขียนโปรแกรมในรูปแบบ Object-Oriented Programming (OOP) และการนำไปประยุกต์ใช้กับการพัฒนาซอฟต์แวร์ขนาดใหญ่ ที่มีทีมงานในการพัฒนาหลายทีม

ผู้บรรยาย ได้บรรยายครอบคลุมตั้งแต่ความเป็นมา ความแตกต่างจากการเขียนโปรแกรมในรูปแบบอื่นๆ ปัญหาที่ OOP สามารถนำไปแก้ไข โดยยกตัวอย่าง Real World Case Study และการออกแบบระบบที่ดีตามแนวคิด OOP

ระหว่างที่เรียน มีการยกตัวอย่างการเขียน OOP ด้วยภาษา Type Script มาให้ผู้เรียนจะได้เรียนรู้ร่วมไปด้วย

เป็นคอร์สที่เรียนจบแล้ว อยากกลับมาเรียนซ้ำอีกครั้ง….

https://www.skooldio.com/certificate/f4369b9e-f84a-4fa7-8942-aad69e64532f

True ignorance is not the absence of knowledge, but the refusal to acquire it.

Karl R. Popper