Skip to content

Instantly share code, notes, and snippets.

View iporsut's full-sized avatar
🏠
Working from home

Weerasak Chongnguluam iporsut

🏠
Working from home
View GitHub Profile
@iporsut
iporsut / exercise-testing.md
Created November 16, 2018 09:40
Exercise testing

Exercise: Stats

  • ให้สร้างฟังก์ชันที่หาค่าน้อยสุดใน slice ของตัวเลข
  • ให้สร้างฟังก์ชันที่หาค่ามากสุดใน slice ของตัวเลข
  • ให้สร้างฟังก์ชันที่หาค่าเฉลี่ยของตัวเลขที่อยู่ใน slice
  • สร้างฟังก์ชันเดียวที่ได้ค่าทั้งหมดนั้นกลับออกมาเป็น struct
func Min(nums []float64) float64
func Max(nums []float64) float64
func Average(nums []float64) float64
type Report struct {
@iporsut
iporsut / ep1.go
Last active September 23, 2018 08:17
Hangman The Series
package main
import (
"fmt"
)
func hangman(secretWord string, letters []rune) bool {
secrets := []rune(secretWord)
for _, s := range secrets {
var found bool
@iporsut
iporsut / vscode_setting.js
Last active July 23, 2018 15:38
Visual Studio Code user settings
{
// Controls the font size in pixels.
"editor.fontSize": 17,
// Controls the font family.
"editor.fontFamily": "Go Mono, Menlo, Monaco, 'Courier New', monospace",
// The number of spaces a tab is equal to. This setting is overridden based on the file contents when `editor.detectIndentation` is on.
"editor.tabSize": 8,
@iporsut
iporsut / advance_go_course_outline.md
Last active August 29, 2018 02:47
Advance Go Course Outline

Advance Go programming

เป้าหมาย

คอร์สนี้ผู้เรียนจะได้ฝึกทำ practical software ด้วย Go มากขึ้นโดยจะเน้นไปที่ Backend API , รูปแบบการวางโครงสร้างของ Application ที่ซับซ้อนมากขึ้น และ การใช้เครื่องมือช่วยต่างๆในการพัฒนาโปรแกรมด้วยภาษา Go

ระยะเวลา

ระยะเวลา 2 วัน วันละประมาณ 7-8 ชั่วโมง

จำนวนผู้เรียนต่อรอบ

5 คนขึ้นไปแต่ไม่เกิน 10 คน

@iporsut
iporsut / basic_go_course_outline.md
Last active November 9, 2018 06:32
Basic Go Course Outline

Basic Go programming

เป้าหมาย

เป้าหมายของคอร์สนี้คือให้ผู้เรียนได้เข้าใจคอนเซ็ปพื้นฐานของภาษา Go และทดลองใช้ standard package เพื่อพัฒนา system software เช่น Web application หรือ RESTful service และเขียน unittest เบื้องต้นได้

ระยะเวลา

ระยะเวลา 2 วัน วันละประมาณ 7-8 ชั่วโมง

จำนวนผู้เรียนต่อรอบ

5 คนขึ้นไปแต่ไม่เกิน 20 คน

@iporsut
iporsut / fizzbuzz.hs
Created June 11, 2018 00:24
QuickCheck FizzBuzz
{-# LANGUAGE TemplateHaskell #-}
import Test.QuickCheck
prop_fizz = forAll inputs (\n -> fizz n == "Fizz")
where
inputs = must [ divisibleBy 3
, not . divisibleBy 5
]
package main
import (
"database/sql"
"fmt"
"io"
"log"
"net/http"
)
@iporsut
iporsut / GitAndDocker.md
Last active September 13, 2024 07:44
อบรมการใช้งาน Git และ Docker เบื้องต้น

Git คืออะไร

Git คือ โปรแกรมระบบจัดการโค้ดโปรแกรม (Source Code Management System - SCM) ซึ่งระบบ SCM ส่วนใหญ่แล้วมีหน้าทีคือ

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

ข้อดีของ Git ที่ต่างจากโปรแกรมอื่น

module Main where
score xs = score' xs 0 0
score' _ acc 10 = acc
score' (10:b1:b2:xs) acc frame = score' (b1:b2:xs) (acc+10+b1+b2) (frame+1)
score' (r1:r2:b1:xs) acc frame | r1 + r2 == 10 = score' (b1:xs) (acc+10+b1) (frame+1)
score' (r1:r2:xs) acc frame = score' xs (acc+r1+r2) (frame+1)
main :: IO ()
package main
import (
"fmt"
)
func sum(nums []int) int {
s := 0
for _, n := range nums {
s += n