Making a board game for the first time

I always have board game ideas popping up in my brain incessantly during go to work. Over the years, I’ve tried to pick up a topic and discovered that the idea couldn’t be easily completed. I call my friend who had opened a game shop together during our school days, which he later succeeded in building board games. Then, I joined his team, Lunar Gravity as a hobby. I get a lot of interesting experiences from making the first small game called Sheeptopia.

Image for post

The idea is straightforward, but it’s incredibly difficult to finish. I’m used to working on publishing the game in a digital form and mobile application. I thought making a board game and printing it on paper would be much simpler. I discovered that these two things couldn’t be compared. There are a lot of differences in the steps and methods.

I have realised that before we finish one game, there may be many more projects, or you may finish another project before the first project we intend to do. My friend said it was normal. Now he has about 200 unfinished games in his notebook !!!.

Time to finish a small game and big game. It’s no different. In the middle of the year, I consulted with a friend that we could have a couple of games this year. At the beginning of the game creation process, everything was very smooth. I feel like we can do more games. We have done 70% so fast, but the last part of the rest is taken so long. I feel like this process is never ended. This is not good enough. There is a very high probability that we will not be able to finish one game and have to do another game instead lol.!!!

Image for post

We decided to create a small game first to catch up on the Thailand Board Game Show 2020 at the end of this year. It seems that we spent months doing a small game. We have no time to do other games at all. The last 30% of the game before it is finished took a lot longer than I thought. We have to test and solve it several times, keep testing and solved it, even though the last week we were still fixing it with the feeling like it is not good enough, it can be better.

The balancing doesn’t guarantee fun. We’ve been drafting characters and editing them, testing them all along. Later playing with real players, we discovered that the popularity ratings have fallen on the characters that we have added on the last week and have no time to test it, people who played the previous version also like the new one that added unbalancing cords.

Image for post
Lunar Gravity Sheep Characters

The player is the last jigsaw to completes the game. Before the Thailand Board Game Show, my friend and I continued to help each other complete the game until late at night. When we finished the craft version, I felt like this was an ok party game; however, the feeling after finish the event at the end of the day was completely different.

The moment that people react to our games, enjoy the game, laughing and read the names of each sheep we came up with. I felt it all seemed very lively, and that’s when I thought this is was the last 10% to complete the game. It is the last process to decide that the game is really complete.

Image for post

Lastly, thank you to the organizers and all our friends at Thailand Board game Show 2020. Thank you, everyone, for coming to other game designers and us, to give a beneficial suggestion and buy our games. These are very supportive and encouraging for us.

We, the Lunar Gravity team, still have 200 new games !!!!……
…..That could be done only one game next year lol !!!

? KULAP Story: More Than a Passion, More Than a Dream

I believe that you guys have heard a lot of innovation, technical and events from KULAP members. Today I would like to represent our nature, our vision, and how we work this out with fun and remain professional. Meanwhile, I will share the other dimension of 2019 success story and what we aim for 2020.

Read full content >> https://medium.com/kulapofficial/kulap-story-more-than-a-passion-more-than-a-dream-926592dc6c39

DEVELOPMENT OF MATHEMATICAL MODELLING OF POPULATION MOVEMENT FOR EPIDEMIOLOGICAL STUDY

2012  publication descriptioniccci 2012

publication descriptionThe simplest modelling for analyzing infectious disease called the SIR model ignores population demography such as births, deaths and migration. In fact people have interaction between subpopulation all the time and carriers of disease increase from one person to another. This research aims to simulate the migration population of Thailand to estimate infectious diseases in short and long term for one year. We added three terms of demography, statistic of emigration and immigration of population for migration rate by province, birth and death rate of Thailand and festive migration in Thailand holiday into the model. The model was evaluated against the Thai epidemic of H1N1 in 2009 on both levels of regions and provinces. We found that the spread of infectious predicted by the model was two week slower than the actual report. While the number of sick people predicted by the model was significantly different from the data. The week of peak number of infectious predicted by the model was within two week difference compared with the actual report. The research has demonstrated the importance of population movement in modelling of infectious disease. The model still requires further adjustments to reach high level of accuracy for quantitative prediction.

Picture resource Designed by jcomp / Freepik

Distance Learning ที่ University of London

สวัสดีค่ะทุกคน เนื่องจากเมื่อสัปดาห์ที่ผ่านมาหญิงได้รับทุน Global MBA Scholarship ของ University of London ซึ่งเป็นมหาวิทยาลัยที่มีมาตรฐานระดับโลก โปรแกรมการเรียนการสอนมีความยืดหยุ่นสูง มีระบบที่น่าสนใจในการรองรับนักเรียนที่เป็นชาวต่างชาติ ซึ่งหลังจากที่หญิงได้เล่าถึงมหาวิทยาลัยไปบางส่วน ก็มีเพื่อนๆหลายคนให้ความสนใจ วันนี้หญิงเลยจะขอเล่าต่อ และรวบรวมขั้นตอนในการสมัครเข้าเรียนกับทางมหาวิทยาลัย สรุปแบบหน้าเดียวเพื่อเป็นแนวทางให้กับทุกๆคนนะคะ

รายละเอียดทุกอย่างจะเป็นภาษาอังกฤษอยู่ในเว็บไซด์ของมหาวิทยาลัยตาม URL https://london.ac.uk/

เรียนได้ทุกที่ทุกเวลา

  • เรียนที่ลอนดอน : เข้าไปนั่งเรียนกับเพื่อนๆที่ลอนดอนได้เลย
  • เรียนที่แคมปัส : มหาวิทยาลัยลอนดอนมีวิทยาเขต และมีสถาบันที่เป็นตัวแทนอยู่ทั่วโลก เราสามารถเลือกบินไปเรียนในประเทศที่ใกล้เคียงได้ค่ะ
  • เรียนผ่านระบบออนไลน์ : หากเรียนผ่านระบบ online เราจะต้องติดต่อสถานที่สอบในประเทศที่เราอยู่ ซึ่งเราสามารถตรวจสอบรายชื่อสถานที่สอบในแต่ละประเทศจากเว็บไซด์ของมหาวิทยาลัยนั่นเอง https://london.ac.uk/current-students/examinations/examination-centres

มีคอร์สให้เลือกมากมาย

คอร์สที่เราสามารถเรียนแบบ distance learning ไม่ได้มีเฉพาะ MBA นะคะ เข้าไปดูคอร์สที่เราสนใจได้ที่นี่เลย https://london.ac.uk/courses

ทั้งนี่ทั้งนั้น ในบางรายวิชาของบางสาขาอาจจะต้องมีการเดินทางไปต่างประเทศด้วยนะคะ

มีใบรับรองระดับนานาชาติ

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

Pay as you go

สามารถแบ่งจ่ายเป็นรายวิชาได้ เช่น MBA ระยะเวลาการเรียน 1-5 ปี หลังจากที่เราลงทะเบียนครั้งแรกเค้าจะรักษาสถาณะของเราไปถึง 5 ปี ในแต่ละปีเราจะลงกี่วิชาก็ได้ เราสามารถเลือกจ่ายเฉพาะวิชาที่เราจะเรียนในปีนั้นๆได้ค่ะ

ที่จริงมีเยอะกว่านี้ เอาไว้ค่อยเอามาเพิ่มให้นะคะ 😀

ต่อไปเรามาดูเงื่อนไขและขั้นตอนการสมัครกันดีกว่า ในที่นี้จะขอยกตัวอย่างจาก คอร์ส Global MBA (Entry 1)

หลังที่เรากดเข้าในรายละเอียดของคอร์ส https://london.ac.uk/courses/global-mba?utm_medium=Referral&utm_source=mba-microsite

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

เงื่อนไขการรับเข้าเรียน

  • จะต้องได้ second-class honours bachelor degree หรือ เทียบเท่าจากสถาบันที่ได้รับการยอมรับ
  • จะต้องมีประสบการณ์ใน manager role 3 ใน 5 ปี

คำว่า second-class honours เป็นระดับเกรดของที่อังกฤษค่ะ ซึ่งหญิงได้ไปขุดค้นมาให้เพื่อนๆเรียบร้อยแล้ว และน่าจะใช้อ้างอิงได้สำหรับคอร์สนี้ รวมไปถึงคอร์สอื่นๆของ UoL ด้วยค่ะ

Screen Shot 2561-11-01 at 14.41.55

เอกสารหลักฐานต่างๆ

  • เอกสารสำหรับยืนยันตัวตน เช่น ID Card , Passport หากแต่งงานหรือเปลี่ยนชื่อ ต้องแนบด้วยเอกสารที่แปลแล้วและได้รับการรับรอง
  • CV หรือ resume
  • Work reference เนื้อหาของ work reference มีรายละเอียดในนี้นะคะ https://london.ac.uk/applications/how-apply/supplying-evidence/global-mba-references-and-documentary-evidence
  • ปริญญาฉบับแปลที่ได้รับการรับรอง และ Transcript ที่แสดงเกรด

การรับรองเอกสาร

เค้าจะรับการรับรองเอกสารจากหน่วยงานที่เค้ากำหนดเท่านั้นนะคะ ตาม link นี้ค่ะ https://london.ac.uk/applications/how-apply/supplying-evidence#get-your-documents-verified

แต่ว่าตอนนี้ที่ British Council ไม่ได้มีบริการรับรองใบปริญญาให้เหมือนเมื่อก่อนแล้วนะคะ สามารถใช้วิธี Notary Public ได้ค่ะ

ส่วนเอกสารที่มีตราครุฑ เราสามารถติดต่องานรับรองเอกสารของทางกงสุลได้ ตอนหญิงไปทำ หญิงไปที่สาขา MRT คลองเตย เดินทางสะดวกดีค่ะ

ผลสอบภาษาอังกฤษ

  • IELTS: at least 6.5 overall, with 6.0 in the written test.
  • TOEFL iBT: at least 92 overall, with 22+ in reading and writing and 20+ in speaking and listening.

ถ้าหากเราไม่มีผลสอบ หรือสอบไม่ผ่านแต่เราเคยทำงานที่อังกฤษ หรือในบริษัท international ไม่ต่ำกว่า 18 เดือนเราสามารถขอใบรับรองจากบริษัทในส่วนนี้มายื่นได้ค่ะ ทั้งนี้ทั้งนั้นขึ้นอยู่กับการพิจารณาของทางมหาวิทยาลัยเป็นรายบุคคลไป

คร่าวๆประมาณนี้ค่ะ

การขอทุน

ทางมหาวิทยาได้มีรายละเอียดการขอทุนตามนี้เลยค่ะ https://london.ac.uk/applications/funding-your-study

ซึ่งในแต่ละทุนจะมีวิธีการสมัครและเงื่อนไขแตกต่างกันไป อาจจะมีการให้เขียนบทความเพิ่มเติม คล้ายๆ SoP 500-1000 words.

สุดท้ายนี้หญิงหวังว่าบทความนี้จะมีประโยชน์สำหรับคนที่ต้องการจะเรียนต่อต่างประเทศหรือ distance learning นะคะ

ขอให้ทุกคนโชคดีและขอบคุณมากๆค่ะ :))))

การใช้ Crontab บน CentOS 7

Crontab คือ Automate system task บน CentOS ซึ่งทำงานอัตโนมัติตามเวลาที่เรากำหนด สามารถใช้ประโยชน์กับงานที่ต้องทำซำ้ๆ ยกตัวอย่างเช่น ต้องการลบ log file บน server ทุกวันเวลาเที่ยงคืน เป็นต้น

การติดตั้ง Crontab

1.Connect ผ่าน SSH และทำการ Update Software เป็นเวอร์ชั่นล่าสุด

sudo yum update

2.ทำการตรวจสอบ และ ติดตั้ง cronie package โดยปกติ cron utility จะถูกติดตั้งมาแล้ว เราสามารถ verify และ confirm ด้วยคำสั่ง

sudo rpm -q cronie

หากยังไม่ได้ ติดตั้ง ให้ใช้คำสั่งดังนี้

sudo yum install cronie

3.ทำการ check ว่า service ทำงานหรือไม่

sudo systemctl status crond.service

กรณีที่ Crontab ทำงานเป็นปกติ จะแสดงผลลัพธ์ Active: active (running)

การใช้งาน Crontab

1.สามารถแก้ไขเปลี่ยนแปลง Crontab ได้ใน /etc/crontab ใช้คำสั่งแสดงสิ่งที่อยู่ในไฟล์

sudo cat /etc/crontab

ภายในจะมีคำอธิบายและการใช้ crontab ดังนี้

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=""

# For details see man 4 crontabs

# Example of job definition:
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * user-name command to be executed

# run-parts
01 * * * * root run-parts /etc/cron.hourly
02 5 * * * root run-parts /etc/cron.daily
22 5 * * 0 root run-parts /etc/cron.weekly
42 5 1 * * root run-parts /etc/cron.monthly

2.Option ของ crontab สามารถดูได้ใน Help ซึ่งจะมี Option ที่มีประโยชน์ ต่างๆดังนี้

Usage:
 crontab [options] file
 crontab [options]
 crontab -n [hostname]

Options:
 -u   define user
 -e         edit user's crontab
 -l         list user's crontab
 -r         delete user's crontab
 -i         prompt before deleting
 -n   set host in cluster to run users' crontabs
 -c         get host in cluster to run users' crontabs
 -s         selinux context
 -x   enable debugging

ตัวอย่างการใช้งาน Crontab

ตัวอย่าง ให้ทำการลบ log file ที่เก่ากว่า 5 วัน เวลาเที่ยงคืน

1. ใช้คำสั่ง crontab -l เพื่อตรวจสอบ list Crantab ของ User นั้นๆ

crontab -l

2. หากไม่มีให้เพิ่ม crontab job ด้วยคำสั่ง crontab -e

crontab -e

3. เพิ่ม job เช่น

0 * * * * find /yourfile/logs/ -mtime +5 -exec rm {} \;

คำสั่งนี้จะทำการลบ log file ที่เก่ากว่า 5 วัน ในเวลาเที่ยงคืนของทุกๆวัน

4. ทำการ save file
5. Restart crontab ด้วยคำสั่ง

sudo systemctl restart crond.service

หรือใช้คำสั่งเพิ่ม job แบบบรรทัดเดียว โดยไม่ต้องสร้าง script file ซึ่งตัวอย่างนี้จะมีประโยชน์สำหรับ สร้าง job ผ่าน Build&Deployment Framework

(crontab -l ; echo "0 * * * * find /yourfile/logs/ -mtime +5 -exec rm {} \;") | crontab -

จากนั้นทำการ Restart crontab

Challenge : ให้ลองสร้าง script แสดง Text และใช้ crontab ในการ run script ทุกๆ 1 ชั่วโมง

References

  • https://www.ibm.com/support/knowledgecenter/th/ssw_aix_71/com.ibm.aix.cmds1/crontab.htm
  • https://www.rosehosting.com/blog/automate-system-tasks-using-cron-on-centos-7/

ELK Stack: 01. ELK คืออะไร

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

ELK Stack ประกอบด้วย Elasticsearch, Logstash และ Kibana ซึ่งเป็น Open Source ที่พัฒนาโดย Elastic และทั้งสาม product นี้ทำงานร่วมกันอย่างมีประสิทธิภาพ

Elasticsearch เป็นระบบการจัดการข้อมูล ที่สามารถค้นหา , วิเคราะห์, และเก็บข้อมูลต่างๆ ที่เกิดขึ้นเป็น Log search tools ที่้สามารถเข้าถึงข้อมูลแบบ real-time

Logstash คือเครื่องมือในการรวบรวม และแปลงข้อมูล โดยจะประกอบไปด้วย Inputs คือการรับข้อมูลในรูปแบบต่าง และทำการ Filters วิเคราะห์ เปลี่ยนแปลงข้อมูล และสร้าง Outputs เพื่อส่งต่อข้อมูลไปยัง Elasticsearch

Kibana คือ user interface ของ ELK ที่ช่วยให้ผู้ใช้สามารถจัดการกับข้อมูลได้ง่ายยิ่งขึ้น

Screen Shot 2560-10-19 at 5.21.45 PM.png

Figure 1 : ELK System Concept

ในที่นี้เราจะกล่าวถึงการติดตั้ง Log Server ด้วย ELK ซึ่งมี concept ในการทำงานดังรูป Figure 1 โดย Beats จะทำการ Ship ข้อมูลไปยัง Logstash จากนั้นจึงวิเคราะห์และเปลี่ยนแปลงข้อมูลเพื่อส่งต่อไปยัง Elasticsearch และแสดงผลของ Log Data ที่ Kibana

To be continue…

ELK Stack : 02. ตัวอย่างการติดตั้ง Log Server ด้วย ELK บน Centos7

ELK Stack : 02. ตัวอย่างการติดตั้ง Log Server ด้วย ELK บน Centos7

การติดตั้ง Elastic Stack

สามารถทำตามขั้นตอนการติดตั้ง ทั้งหมดจากทางเว็บไซด์ของ Elastic ในที่นี้เราจะทำการติดตั้ง  Elasticsearch ,x-pack ,kibana และ logstash ตามลำดับ โดยสามารถแยก server หรือลองลงทั้งหมดในเครื่องตัวเองก่อนก็ได้ค่ะ

เราจะทำการติดตั้ง Elasticsearch ด้วย rmp

1. ติดตั้ง Java ด้วย version 8 ขึ้นไป

yum -y remove java*
yum install java-1.8.0-openjdk -y
java -version

2. อัพเดตและอัพเกรด Linux

yum -y update
yum -y upgrade

3. ติดตั้ง Elasticseach

rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch

สร้างไฟล์ elasticsearch.repo ใน /etc/yum.repos.d/

vim /etc/yum.repos.d/elasticsearch.repo
[elasticsearch-5.x]
name=Elasticsearch repository for 5.x packages
baseurl=https://artifacts.elastic.co/packages/5.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md
sudo yum install elasticsearch

4. Running elasticsearch

sudo /bin/systemctl enable elasticsearch.service
sudo systemctl start elasticsearch.service

การ check status และการ stop service

sudo systemctl status elasticsearch.service
sudo systemctl stop elasticsearch.service

การตรวจสอบการทำงานของ elasticsearch

curl http://localhost:9200

ผลลัพธ์ที่ได้จะมีลักษณะดังนี้

{
  "name" : "Cp8oag6",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "AT69_T_DTp-1qgIJlatQqA",
  "version" : {
    "number" : "5.6.3",
    "build_hash" : "f27399d",
    "build_date" : "2016-03-30T09:51:41.449Z",
    "build_snapshot" : false,
    "lucene_version" : "6.6.1"
  },
  "tagline" : "You Know, for Search"
}

5. การ set configuration ของ elasticsearch
elasticsearch จะ load configuration จาก /etc/elasticsearch/elasticsearch.yml
ตัวอย่างการ Configuring Elasticsearch

vim /etc/elasticsearch/elasticsearch.yml
cluster.name:   "yourClusterName" 
network.host:   0.0.0.0

path.data: /var/lib/elasticsearch 
path.logs: /var/log/elasticsearch

discovery.zen.minimum_master_nodes: 2
discovery.zen.ping.unicast.hosts: [host1,host2]
bootstrap. memory_lock: true

การติดตั้ง Kibana

1. อัพเดตและอัพเกรด Linux

yum -y update
yum -y upgrade

2. ติดตั้ง Kibana

rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch

สร้างไฟล์ kibana.repo ใน /etc/yum.repos.d/

vim /etc/yum.repos.d/kibana.repo
[kibana-5.x]
name=Kibana repository for 5.x packages
baseurl=https://artifacts.elastic.co/packages/5.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md
sudo yum install kibana

4. Running Kibana

sudo /bin/systemctl enable kibana.service
sudo systemctl start kibana.service

การ check status และการ stop service

sudo systemctl status kibana.service
sudo systemctl stop kibana.service

5. การ set configuration ของ kibana
Kibana จะ load configuration จาก /etc/kibana/kibana.yml
ตัวอย่างการ Configuring Kibana

vim /etc/kibana/kibana.yml
server.name: yourServerName
server.port: 5601      # port
server.host: "localhost"
elasticsearch.url: http://localhost:9200 
elasticsearch.username: username
elasticsearch.password: password

เนื่องจาก Kibana คือ  web application ในขั้นตอนนี้เราจะสามารถเปิด kibana ผ่าน port ที่เราได้ตั้งไว้ใน configuration file ตัวอย่างเช่น localhost:5601 หรือ http://YOURDOMAIN.com:5601

ในการใช้งานครั้งแรกจะต้องมีการกำหนด index pattern ซึ่งเราสามารถใช้ Sample Data

ตัวอย่างการ check index

curl 'localhost:9200/_cat/indices?v'

หลังจากกำหนด index pattern และหากมี log เกิดขึ้น Kibana จะแสดงผลดังนี้

tutorial-discover.png

การติดตั้ง Logstash

1. อัพเดตและอัพเกรด Linux

yum -y update
yum -y upgrade

2. ติดตั้ง Logstash

rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch

สร้างไฟล์ logstash.repo ใน /etc/yum.repos.d/

vim /etc/yum.repos.d/logstash.repo
[logstash-5.x]
name=Elastic repository for 5.x packages
baseurl=https://artifacts.elastic.co/packages/5.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md
sudo yum install logstash

3. Running Logstash

sudo systemctl start logstash.service

4. ตัวอย่างการทดลองสร้าง Event

cd logstash-5.6.3
bin/logstash -e 'input { stdin { } } output { stdout {} }'

5. การ Set configuration ของ Logstash

การ Set YML ของ logstash สามารถเข้าไป set ใน /etc/logstash/

vim /etc/logstash/logstash.yml

การ Set configuration ของ Logstash set ใน  /etc/logstash/conf.d

vim /etc/logstash/conf.d/logstash.conf

More Information

  • https://www.elastic.co/
  • https://qbox.io/blog/welcome-to-the-elk-stack-elasticsearch-logstash-kibana