[DB] DBeaver – เครื่องมือที่ช่วยให้การจัดการ Database เป็นเรื่องง่ายๆ

หลังจากเข้าไปดูปัญหาของหลายๆทีม พบว่า Tools ตัวเก่าอย่าง WinSQL มันเก่ามาก น่าจะ 15 ปี และ ถึงว่าเป็น Software ที่ใช้คุ้มค่าเกินราคาจริงๆครับ แต่ต้องซูฮกคนออกแบบด้วยทั้งตัว Protocal – ODBC และภาษา SQL จึงทำให้ Tools ตัวนี้ตายยากมากๆครับ แม้ว่าจะมีปัญหาจุกจิมากครับ ทั้งปัญหาการเอาผลลัพธ์ที่ได้จาการ Query ไปใช้ต่อ หรือการที่ User ต้องเชี่ยวมากจำ Column ได้แม่นครับ แต่หลังจากนี้ปัญหาจะหมดไปด้วยเจ้า DBeaver ครับ โดยเวอร์ชัน Community Edition ผมได้ลองใช้ และแนะนำในองค์กรครับ มันเพียงพอกับการใช้งานทั่วไป เช่น หัวข้อใน Blog นี้ เริ่มติดตั้งกันเลย มาลองเชื่อมต่อ DB2 มาลองใช้ DB ของ Microsoft บ้าง

[BPMN] มา Test BPMN ที่สร้างจาก Camunda กันครับ

หลังจากยุ่งกับงานประจำนานเลย ตอนนี้เริ่มกลับมาทำงาน Thesis แล้วครับ ถ้าใครสร้าง BPMN ด้วย Camunda ไปแล้วนั่น หาจะทดสอบมีได้หลายวิธีครับ เช่น แต่ถ้ามาดูที่ตัว Camunda มีตัวช่วยสำหรับ Test เหมือนกันครับ โดยมีตัวช่วย ดังนี้ สร้าง BPMN ก่อนครับ มาลุย Code กันดีกว่าครับ สำหรับ Tools ที่ผมใช้ IntelliJ กับ Camunda Test Project Template ครับ เมื่อ Generate Project มาแล้วจะพบตัว InmemoryH2Test กับ process.bpmn ไม่ต้องสนใจครับ เราสร้างใหม่อยู่แล้ว เมื่อได้ Unit Test เปล่าๆขึ้นมาแล้วให้ใส่คำสั่งลงไปใน Class simpleLoanTest  ครับ สร้าง Test initial @Before เพื่อบอกว่าก่อน Test ต้องมีการดึง BPMN Engine ออกมา เพื่อใช้งานก่อนครับ จากนั้นลุยสร้าง Test ตามเส้นทางที่กำหนดเลยครับ โดย @Test  เพื่อบอกว่าเป็น Test Case ครับ และ @Deployment  สำหรับบอกว่าเราจะทดสอบ BPM์N อันไหนครับ ในที่นี้เป็นไฟล์ simpleLoan.bpmn  ครับ ทดสอบ Run Unit Test ดูครับ หมายเหตุ : ผมยังเล่นกับแต่ User Task นะครับ แต่ส่วนอื่นๆ ยังไม่ได้ทดสอบนะครับ ERROR ที่พบ ถ้าพบ Error ENGINE-16004 Exception while closing command context: Can’t find scripting engine…

สรุปงาน .NET Conf 2018! BKK

วันนี้ผมมาแบบงง จริงๆมาเปลี่ยนที่ทำ Thesis และก็ฟังหัวข้อที่สนใจครับ ผมเลยอาจจะเก็บรายละเอียดมาไม่ครบนะครับ โดยสำหรับสถานที่จัดงานอยู่ที่ Launchpad ในถนนปั้น หรือ ซอยปั้น ห่างจาก BTS สุรศักดิ์ ไม่เกิน 500 เมตรครับ 09:30-10:20| What’s coming to C# Speaker: Will Fuqua A look in the future: Nullable reference types, recursive patterns, asynchronous streams and more. C# / TypeScript จากแนวโน้มของ stackoverflow insight 2017 ยังเป็นที่นิยมครับ dotnet strategy 2017 (WIN – WIN ครับ) โดยจะเป็นการ C# 7.x Feature C# 8.0 Feature สำหรับผมนะครับตัว Default Interface ไม่จำเป็นอย่าใช้ เพราะ มันมีโอกาศเกิด diamond inheritance problem ได้ครับ 10:40-11:30| Build Great Libraries using .NET Standard Speaker: Aaron Amm Theeranit 11:30-12:20| Code at scale Speaker: Joel Dickson Agoda ใช้ Flow ตาม Git เลยครับ แต่ Branch จากนั้นทำเสร็จ Pull Request Good Code…

[MS WORD] มาใส่เลขอ้างอิงให้กับสมการดีกว่า

บ่อยครั้งที่เราต้องทำเอกสาร มีพวกสูตรมากมายเต็มไปหมด แต่ต้องมาไล่ลำดับเหรอเหรอ จริงๆ MS Word มีตัวช่วยอยู่แล้วครับ สามารถเข้าไปดูวิธีการทำได้เลยครับ โดยมีขั้นตอน ดังนี้ครับ ขั้นตอน ขั้นตอนสามารถทำได้ตามรูปเลยครับ ถ้างงมีคำอธิบายด้านล่างครับ ผลลัพธ์ที่ได้ครับ

[SPRING] สร้าง Form Upload ไฟล์ และบันทึกข้อมูลครับ

หลังจากโดนมรสุมงานหนักมาตั้งแต่ต้นปีครับ กว่าจะได้กลับบ้านที่ก็ปาไป 3 ทุ่มกว่าๆ ถึง 4 ทุ่มและ เริ่มกลับมาทำ Thesis สักทีครับ สำหรับโจทย์ที่ผมเอามาเขียน Blog ครั้งนี้เป็นการ Upload File จากนั้น Save ที่ไฟล์ที่ Server ครับ พร้อมกับบันทึกข้อมูลที่ป้อนเข้ามาจาก User ครับ เตรียมตัว Just Coding ครับ สังเกตุดีๆ ผมมี Property ที่เกี่ยวกับ Multipart ชื่อ BPMNFile ครับ โดย Property นี้ ผมกำหนดเป็น @Transient  ครับ ซึ่งเป็นตัวที่บอก Hibernate ว่าไม่ต้องสร้าง Column นี้ลงที่ฐานข้อมูลครับ หน้าตาของระบบ (ผมไม่มีหัวการออกแบบเลยครับ 555) ปัญหาที่พบหละ ?  

Ingress Anomaly Bangkok 2018

หลังจากย้ายเกมส์ที่เล่นบนรถเมล์จาก Pokemon GO มาเป็น Ingress ซึ่งเป็นเกมส์แนว Location Based ครับ โดยเราจะได้รับบทเป็น Agent เป็นสายลับนั้นเองครับ สำหรับที่สนใจเกมส์สามารถไปอ่านต่่อได้ครับ เอ้าเรากลับมากันที่ Anormaly Bangkok โดยงาน Anormaly เป็น Event ที่ทางทีมผู้พัฒนาจัดให้ผู้เล่นเข้ามาทำกิจกรรมร่วมกันครับ โดยในปีนี้จัดในวันที่ 20-21 ตุลาคม 2561 ครับ โดยจะมีงาน 2 ส่วน งาน Recursion Prime งานนีัจะเล่นทำตามท้องเรื่องเลยครับ ที่ Agent ทั้ง 2 ฝ่ายต้องเข้ามาแย่งชิง แข่งขัน ตามกติกาที่ NIA กำหนดไว้ครับ โดยพื้นที่ในการแข่งขันถือว่ากว่ามากครับ เท่าที่ถามทาง POC มา เพราะปกติแต่ 1 ตารางกิโลเมตรครับ แต่ปีนี้พื้นที่ใหญ่ขึ้นนะครับ – ผมเข้าใจว่าเป็นพื้นที่เกาะรัตนโกสินทร์นะครับ โดยพื้นที่ที่ใช้แข่งเรียกว่า PlayBox ครับ สำหรับการแข่งขันมีการแข่ง 4 แบบ ในช่วงเวลาที่กำหนดครับ อันนี้ผมสรุปตามที่เข้าใจนะครับ งานนี้เวลาที่แข่งช่วง 11:00 – 14:00 ครับ ความซับซ้อนของการแข่งขัน คือ ในแต่ละช่วงเวลามีการแข่งขันมากกว่า 1 แบบครับ ขนานกันไปครับ ทำให้ฝ่ายวางแผนต้องคิดหนักเลย ส่วนเราเป็นหน่วยปฏิบัติการครับ ทำตามหน้าที่ก็พอครับ สำหรับผมเนื่องจากมาใหม่ เลยได้ดูแลพื้นที่ในส่วนของศาลาว่าการกรุงเทพฯครับ ซึ่งมีจำนวน 5 Portal ครับ พื้นที่รวมพล วางแผน และเติมพลังครับ ถึงจุด Registration แล้วครับ ^_^ จากที่บอกไปว่าการแข่งขันมันแค่ 3 ชั่วโมงครับ แต่จริงๆสงครามมันเริ่มต้นตั้งแต่ 7 โมงแล้วครับ ที่ทางฝ่าย Resistance เริ่มโจมตีเข้ามาครับ ส่วนเราทำยังไงก็ได้ให้เสาเป็นของฝ่าย Enlightment ก็พอครับ ความเข้มข้นอยู่ในช่วง…

[C#] DTO/Mapper Class Example

C# Logo

DTO คือ อะไร? DTO คือ Data Transfer Object พูดง่าย ๆ ก็คือเป็น object ที่ใช้ในการส่ง data กันในระบบครับ นอกจากนี้แล้ว การใช้ DTO ยังเป็นการ Limit ข้อมูล หรือมองว่าเป็นการกำหนด Pattern ให้กับ Request / Response กับระบบ และยังป้องกัน Over-posting Attack (คนร้ายเดา Field ได้ถูก แล้วลองส่ง Request เข้ามา) ถ้าไม่มี DTO ดักไว้ จะมีข้อมูลเกินเข้าไปมาได้ครับ จากตัวอย่าง CustomerDTO ของเราจะมี 6 Field แต่ตัว CreateCustomerDTO เรา Limit ไว้ 3 Field ถ้าแบบเดิมตอน Create เราไม่มี DTO มากัน Attacker สามารถเดา Field และส่งมาได้ครับ Mapper Class Example สำหรับผม Pattern ที่ใช้ DTO และในชั้น Repository ทำตัว Mapper Class ระหว่าง DTO กับ Model (Model Class ที่เป็นตัวแทนของ Table ใน Database ครับ ตัวอย่าง Class ที่ Map ระหว่าง DTO และ Data Mapper ใน pattern of enterprise application architecture…

[VM] เปลี่ยนเลข UUID ของ Virtual Disk ใน Virtual Box

พอดีมีงานทีต้องทำแบบฉุกเฉิน เนื่องจากน้องที่รับงานนี้อยู่ติดปัญหาจากความไม่เข้าใจในคำสั่งที่ใช้จัดการ Database ครับ ปล่อยปัญหาไปครับ ตอนนี้สิ่งที่ผมต้องรับมาแก้ไข หรือหา VM ที่ใกล้เคียงที่สุดมาขึ้น แต่ Copy VM มาขึ้นครับ ปรากฏว่า สาเหตุมันเกิดจากค่า UUID นั้น ซ้ำครับ เพราะมันเคยขึ้น Disk ของ VM นี้แล้วครับ โดย UUID มันเป็น ID ที่ใช้สำหรับใน Virtual Box โดยกำหนดไม่ให้ Virtual Disk  ซ้ำกันครับ โดยสำหรับการแก้ไขง่ายๆครับ กรณีที่ UUID ซ้ำ คือ การ Generate UUID ใหม่ครับ กำหนด uuid Windows Linux

[Mi Band3] เชื่อม Mi Band กับ Nike+ Run Club ครับ

หลังจากได้ติดกับในโปรของ Lazada ไป จนได้ Mi Band 3 มาในราคา 890 ไปครับ ซื้อมาแล้วก็ต้องใช้ครับ มารักสุขภาพครับ โดยผมจะลองเชื่อม Mi Band 3 กับ Nike Run Club ครับ โดยสิ่งที่ต้องมี Smart Device – เป็น Smart Phone / Tablet ที่มี OS เป็น Android หรือ IOS ก็ได้ครับ MiBand 3 App – Mi Fit App – Nike+ Run Club หลังมีของพร้อมลง App เรียบร้อยมาเชื่อม MiBand กับ Nike+ Run Club ครับ โดยมีขั้นตอน ดังนี้ Log-In เข้า MiBand 3 เชื่อมต่อให้เรียบร้อยครับ กดเข้าไปที่ Device MiBand 3 พอ Setting มากมายครับ เลื่อนลงมา หยุดที่ Discoverable ครับ กดเข้าไป จากนั่นเปิด Mode นี้ครับ เข้าไปที่ App Nike+ Run Club เปิด Setting ครับ จากนั้นหา Display Heart Rate ครับ กดเข้าไปเจอ Mi Band3 เลือกเลยครับ ^__^

[CUSE] เที่ยวลาดกระบังตามล่าหาลายเซ็นต์กรรมการภายนอก

จาก Blog ตอนที่แล้วทีได้สอบหัวข้อไป ผมได้ทำพลาดตามตัวอย่างเอกสารที่ได้พลาดมาจากเพื่อนครับ เลยทำให้เกิดภาระกิจล่าลายเซ็นครับ โดยการล่าลายเซ็นมาให้ครบ เพื่อที่จะยื่นเอกสารให้ทันวันที่ 5 ตุลาคมครับ เนื่องจากเวลาจำกัดผมเลยจัดแผนทีคิดว่าเสี่ยงอยู่เหมือนกันนะ เย็นวันจันทร์ผ่าฟันคุด วันอังคารช่วงเช้าไปทำงาน 6 โมง ช่วง 09:00 โมงมาหัวลำโพงครับ เพิ่งเคยเจอของแปลกนะเนี่ย เครื่องขายเสื้อ กับเสี่ยงเซียมซี ตั๋วรถไฟไปลาดกระบังครับ แต่จริงๆไปนั่งลงที่หัวตะเข้ มันจะใกล้กับจุดหมายปลายทาง คณะเทคโนโลยีสารสนเทศ ตรวจสอบเส้นทางการเดินทางได้ที่นี่ครับ  และสำหรับขบวน 367 : กรุงเทพ – ชุมทางฉะเชิงเทรา สามารถดูสถานีที่จอดได้ ได้ครับ เวลาว่างก็นั่งไล่ VB6 ไปพลางๆครับ ช่วงนี้งานเร่งเป็นพิเศษ และยังหาคนมาเสริมไม่ได้ น่าจะยาวไปถึงต้นปีหน้าเลย T__T รถไฟปู๊นๆครับ ส้วมรถไฟ อันนี้อะไรหว่า ช่วง 10:12 โมงนั่งรถไฟครั้งแรกไปลาดกระบังครับ (รถออกล่าช้าไป 2 นาทีครับ) นี่คือ บางกอก แดนศิวิไลซ์ ปู๊นๆ (BNK48 ก็มาครับ) ถึงที่หลายปลายทางแล้วครับ อันนี้ผมต้องจ่ายเพิ่ม 2 บาทนั่งจากลาดกระบัง >> ห้วตะเข้ครับ ถึงที่ล่าลายเซ็น แล้วครับ เติมพลังก่อนกลับไปทำงานครับ 40 บาทเองครับ เยอะมากกก นั่งรถไฟกลับมาทำงานต่อที่บริษัทตอนบ่าย 3 กว่าๆครับ กว่าจะได้ออกจากบริษัทอีกทีก็ 3 ทุ่มครับ