Lehman Laws of Software Evolution

ช่วงนี้ต้องอ่าน Paper เตรียมนำเสนออาจารย์ แต่อ่านไปอ่านมา มันก็ไปอ้างอิง Paper อื่นๆด้วย เลยเอามาสรุปไว้ใน ฺBlog ดีกว่า กฎแห่งการเปลี่ยนแปลงอย่างต่อเนื่อง  (Law of Continuing Change:1974) An E-type program that is used must be continually adapted else it becomes progressively less satisfactory. Software ต้องมีการปรับเปลี่ยนแก้ไข ตลอดช่วงเวลาที่ใช้งาน (Software Life Cycle) จนกระทั่งเลิกใช้ อาจจะมีการเปลี่ยน Version ใหม่ หรือ รื้อปรับระบบใหม่ เพราะ คุ้มค่ามากกว่าที่จะยอมแก้ไข (เช่น การเปลี่ยนเทคโนโลยี จาก VB6 ไปเป็น ASP.Net) กฎแห่งความซับซ้อนที่เพิ่มขึ้น (Law of Increasing Complexity:1974) As a program is evolved its complexity increases unless work is done to maintain or reduce it. Software มองลงไปที่ Source Code ยิ่งเวลาผ่านไป มีการแก้ไขปรับปรุงอยู่ตลอด สิ่งที่ตามมา รูปแบบโครงสร้างของ Program จะลดลง (พูดง่ายๆ Code มันเน่าและ เป็น spaghetti) และความซับซ้อนเพิ่มขึ้น Software ควรมี Archtecture ที่ดี และมีการคิดอย่างถี่ถ้วนก่อนการแก้ไข เพื่อลดความซับซ้อน กฎแห่งการวางระเบียบตัวเอง (Law of Self-regulation:1974) The…

สรุปผลการทำ Nama Chocolate สไตล์ครัวดีบุ๊กกลิ้งกัลล

เรื่องมันเกิดจากน้องว่า น้อง Dev ที่ที่ทำงานอยากกิน Nama Chocolate หรืออีกชื่อ คือ Chocolate Royce ที่เป็นของฝากจากญี่ปุ่น เลยส่งสูตรให้ทำ พอวันถึงเมื่อวาน (วันจันทร์เป็นวันหยุดที่มีค่าสำหรับการเรียน ป โท) ผมก็ถามว่ายังเอาอยู่ไหม น้องๆ บอกว่าเอาโอเคจัดไปครับสำหรับ เหยื่อในการทำขนมหวานครั้งแรกของครัวดีบุ๊กกลิ้ง ได้เวลาของภาระกิจพ่อบ้านแล้ววววว ส่วนผสม ขั้นตอนการทำ บทสรุป Version ถัดไป  

Spin: Simple Traffic Light

หลังจากเรียน Lecture มาพักใหญ่คราวนี้ อาจารย์ได้ให้ลองเขียน Promela บน Spin โดยให้จำลองการทำงานของไฟจราจรขึ้นมาครับ มันดูไม่น่ายากนะ ลองเขียน Code เลย ได้ Version แรกมาแล้วครับ 1 int redLight = 0; 2 int yellowLight = 0; 3 int greenLight = 0; 4 5 proctype simpleTrafficLight() 6 { 7 //Start with redLight 8 redLight = 1; 9 do 10 ::(redLight ==1) -> 11 redLight = 0; 12 yellowLight = 0; 13 greenLight =1; 14 ::(greenLight ==1) -> 15 redLight = 0; 16 yellowLight = 1; 17 greenLight =0; 18 ::(yellowLight == 1) -> 19 redLight = 1; 20 yellowLight = 0; 21 greenLight =0; 22 od 23 } 24 25 26 init…

[CR] เครื่องต้มไข่

เครื่องนี้ผมไม่ได้ซื้อมานะครับ ของหัวหน้าครับซื้อมาครับ โดยมีคุณสมบัติ ดังนี้ ทำไข่ลวกได้ ทำไข่มะตูมได้ ทำไข้ต้มได้ สำหรับเครื่องมีส่วนประกอบ ดังนี้ ส่วนของหม้อนึ่ง + ตัว Control ตัว Switch ที่เอาไว้ปรับ mode การทำไข่ แก้วตวงครับ ด้านหลังมีเข็มไว้เจาะรูไข่ กันไข่แตกครับ (แต่ตอนผมทำไม่เคยเจาะเลย 555) ถาดรอง วางไข่ได้ 3 ฟอง ฝาปิดครับ ทดสอบจริง ผมลอง Mode ทำไข่ต้ม กับไข่ลวก สรุปว่าใช้เวลาเท่ากันครับประมาณ 7-8 นาที แต่ไอน้ำมันต่างกันครับ กินจริง ทดสอบผลการเข้าครัวครับ

Line Group สามารถทำ Poll ได้แล้วนะ

จริงผมก็ไม่รู้ว่า Line มี Feature นี้เลย (ไม่เคยสนใจพวก Release Note เลยนะเรา เค้าทมาก็ไม่อ่าน) กว่าจะมารู้ว่า Line ทำ Poll ได้ เนื่องจากว่าตอนงานกลุ่มมีปัญหาในการโหวตเลือกกัน โดยมีวิธีเลือก 3 ทาง โหวตและจดคะแนนบนกระดานเลย ใช้ Google Form และมีเสียงนึงบอกว่า Line น่าจะมีนะ หลังจากได้ยินว่า Line น่าจะมี ผมเลยลองถาม Google ดูพบว่า มีจริงด้วยยยยยยยยยย มาดูการใช้งานกันเลยดีกว่าครับ กดปุ่ม + อยู่ข้างๆที่เราเลือก Sticker แหละ มาเลือกที่ Poll กดปุ่ม + มาแอด Poll อันใหม่กันเลย สามารถใส่ตัวเลือก และกำหนดเงื่อนไขต่างๆ ได้เลยครับ ส่วนตัวผมว่ามีครบครันเลยนะครับ เลือกข้อเดียว เลือกหลายข้อ และมีแบบ Vote แบบไม่ประสงค์ออกนามด้วย (สงสัยเอามาป้องกันดราม่า ฮ่าๆ) ลองเอาไปใช้กันดูได้ครับ ที่ผมลองใช้ เลือก Paper สำหรับนำเสนอ อ ตอนเรียน ป โท เลือกร้านอาหาร สำหรับปิด Project เล็กๆของที่ทำงานที่ตัวเองดูแลอยู่ครับ มันมีข้อดีแล้ว ลองมาดูข้อจำกัดบางครับ ใช้ได้บน Mobile เท่านั้น พวก Line PC ไม่ Support นะครับ ใช้มาพบ Bug เล็กน้อย ตอนแสดงจำนวนคน Vote ดันกลายเป็นตัวแปร num ฮ่าๆ (แต่กดเข้าไปดูและ บวกกันเอง้างในแก้ขัดก่อนได้)  

Laravel 5.3 First Time

หลังจากไปทำงานเกี่ยวกับ Process ของ Business กับ จัดการตบตีกับ Legacy Code อยู่หลายปีเลย จากที่เขียน Blog ไว้ในเรื่อง สิ้นปี 2016 แล้วเหรอ ? ที่มีเรื่องที่ควรทำให้ได้ คือ การลองกลับมาเขียนภาษาฝั่ง web ครับ ตัวที่ผมเลือก คือ Laravel พอดีไปเจอสื่อการสอนของทาง SIPA ครับ ไหนๆ จะศึกษาและ ลอง Version ใหม่สุดๆ ดีกว่าครับ โดยผมได้ลอง Laravel 5.3 นะครับ ค่อยศึกษาตั้งแต่มกรา ยาวมาถึงตอนนี้เลย พอผมเรียนปริญญาโทด้วย ตอนนี้รู้สึกว่างานมันหนักมาครับ มาลองดูสิ่งที่เปลี่ยนไปดีกว่า Reference

IEEE 1074 เริ่มอ่านอย่างไร

หลังจากเปิดเทอม ป โท ได้ให้ Paper เยอะมากครับ วันนี้ผมมาสรุปตัว Paper IEEE 1074 คือ อะไร และมีวิธีการอ่านแบบ scan คร่าวๆ อย่างไรครับ IEEE 1074 คือ อะไร ผมมองว่าเป็น Check List ที่ผ่านการคิดค้นมาแล้ว หรือมองว่าเป็นกิจกรรม (Activity) มี่มีการจัดกลุ่มจัดหมวดหมู่แล้ว มาให้องค์กรต่าวๆ นำไปปรับใช้กับ SDLC ของที่ใช้อยู่ครับ (SDLC พวก Water Fall, Unifine Process, Agile ครับ) เพื่อทำให้ Software ของเราดีขึ้น อ่านคู่มือกัน ลอง Implement Implementing the standard Input Output 1.Gather requirements & Constraint for SPLCP Goal, , requirements & Constraint Mission Process Plan Old Workflow Evaluation Criteria 2.Select SPLCM requirements & Constrait SPLCM Candinate set of Model Evaluation Criteria (Update) 3.Develop SPLC SPLCM SPLC Activity List in IEEE1074 4.Establish SPLCP SPLC OPA SPLCP(Draft) 5.Validate SPLCP Evaluation Criteria SPLCP(Validate) SPLCP(Draft)

[C#] ลองใช้ Log4Net มาเก็บบันทึกของ Console App กัน

หลังจากสร้าง draft ทิ้งไว้นานมาแล้ว วันนี้มาลองรื้อบทความเก่าๆมาเขียนให้เสร็จครับ สำหรับ Blog ตอนนีเป็นการลองใช้ Log4Net กับ console app ครับ เอาหละมาลุยกันเลยครับ เตรียมตัว & ติดตั้ง สร้าง new project แบบ console app ติดตั้ง Apache log4net จากตัว nuget คลิกขวาที่ Project >> Manage Nuget Package >> Search “Nuget” >> Install ครับ สร้าง Configuration file สร้างไฟล์ไว้ที่นี่ สำหรับตัว Console App ลองเอา Config นี้มาใช้เลย <log4net> <appender name=”RollingFile” type=”log4net.Appender.RollingFileAppender”> <file value=”Logs\CommandLine.Log” /> <threshold value=”ALL” /> <appendToFile value=”true” /> <rollingStyle value=”Composite” /> <maximumFileSize value=”1MB” /> <maxSizeRollBackups value=”10″ /> <datePattern value=”yyyyMMdd” /> <layout type=”log4net.Layout.PatternLayout”> <conversionPattern value=”*%-10level %-30date %message [%logger] [%thread] %newline” /> </layout> </appender> <appender name=”ColoredConsoleAppender” type=”log4net.Appender.ColoredConsoleAppender”> <mapping> <level value=”ERROR” /> <foreColor value=”Red, highintensity” /> </mapping> <mapping> <level value=”WARN”…

[CR] Kinniku Gyudon @ La Villa Aree

Update 2024 ร้าน Kinniku Gyudon ย้ายไปแถวย่านพัฒนาการ 63 ตามไปกันได้คร้าบ สำหรับร้าน Kinniku Gyudon ผมและน้องไปกินกับประจำครับ เวลาที่ต้องไปเข้า Site งานแุถวสะพานควายครับ โดยร้านนี้ทำเลที่ตั้งอยู่ที่ La Villa Aree ชั้น 3 ครับ ลองมาดูบรรยากาศร้านกันก่อนเลย เมนูในร้านนี้เป็นข้าวราดหน้าต่างๆ มีพวกอูด้ง และของทานเล่นอย่างเกี้ยวซ่าครับ สำหรับอาหารแนะนำสำหรับผมนะครับ มีเมนู ดังนี้ สำหรับราคาถ้าเทียบกับคุณภาพแล้ว ใช้ได้เลยครับ อาหารจานละ 150-220 บาท ถ้าสั่งเป็น Set บวกอีก 50-60 บาทครับ อ๋อแล้วร้านมีคิด Vat 10% นะครับ Facebook Page : Kinniku Gyudon

[WordPress] A google maps api key is required. please update your mappress settings

หลังจาก Update Plug-in MapPress โดยเจ้า MapPress เป็น Plug-in ที่ช่วยจัดการแสดงแผนที่ Google Map และ Mark จุดต่างๆครับ หลัง Update เสร็จปรากฏว่าแผนที่หายหมดเลย สร้างใหม่ก็ไม่ได้ครับ โดย Google หักดิบใช้ทำ API-Key ครับ ส่วนที่ยังงานมาดูขตามขั้นตอน ดังนี้เลยครับ ทดลองสร้างแผนที่ แต่สร้างใหม่ไม่ได้ ดังรูป เข้าที่มาที่ MapPress >> Browse for API Key ครับ (สังเกตุดูครับ ว่าในกรอบสีน้ำเงิน ยังไม่มีรูปแผนที่ขึ้นครับ) เข้าไปที่ Google Developer Console ยอมรับเงื่อนไข สร้าง API Key ครับ กำหนดชื่อ กำหนด Domain ให้ตาม Pattern เลยครับ example.com/* ถ้ามี Sub-Domain ก็ใช้ *.example.com/* (example คือ ชื่อเว็บครับ) เอา Key ไปใช้งาน นำ Key ที่ได้ ไปแปะลง Plug-in ครับ ถ้าทำสำเร็จ ในกรอบสีน้ำเงินจะแสดงแผนที่ขึ้นมาครับ