ก๊วนซอฟท์แวร์ </softganz> SoftGang (Gang Software)

Web &amp; Software Developer Gang.

611 items|« First « Prev 19 20 (21/62) 22 23 Next » Last »|
โดย Little Bear on 4 ม.ค. 57 22:28

1. เลือกความเรียบง่ายมากกว่าความซับซ้อน

บัฟเฟตต์ แนะนำว่า “เมื่อลงทุน ควรคำนึงถึง … ความเรียบง่าย ชัดเจน อย่าพยายามหาคำตอบที่ซับซ้อน จากคำถามที่ซับซ้อน” จำไว้ว่า ความยากไม่มีในการลงทุน มองหาบริษัทที่มีประวัติยาวนาน และสามารถคาดเดาอนาคตของธุรกิจได้ ถ้าคุณไม่เข้าใจธุรกิจ … ก็อย่าซื้อหุ้น

2. ตัดสินใจลงทุนด้วยตัวคุณเอง

อย่าเชื่อโบรกเกอร์ นักวิเคราะห์ หรือผู้รู้ …จงเชื่อตัวคุณเอง เมื่อคุณพบที่ปรึกษาทางการลงทุนหรือนักลงทุนมืออาชีพ จงถามว่า “พวกคุณจะได้อะไรจากผม ???” ถ้าคำตอบไม่เป็นที่น่าพอใจ คุณก็ควรจะเดินหนีไปซะ การลงทุนแบบเน้นคุณค่าพิสูจน์แล้วว่า จะสร้างผลตอบแทนที่ดีมากในระยะยาว

โดย Little Bear on 3 ม.ค. 57 14:42

วันนี้เกิดเหตุ wintesla2003.com หยุดทำงาน โชคดีที่สั่ง reboot ผ่าน DA แล้วสามารถเข้าใช้ ssh ได้ (หลังจากที่เข้า ssh ไม่ได้มาเป็นปี ก็ยังงงอยู่ว่ามันเข้าได้ยังไง โชคดีก็คือไม่ต้องวิ่งไปที่ IDC)

หลังจาก reboot ก็ยังใช้งานไม่ได้ ขณะกำลังหาสาเหตุ ก็นึกได้ว่า server นี้เคยมีปัญหากับ MySql มาครั้งนึงแล้ว คือ partition ที่เก็บข้อมูลเต็ม พอลอง df ดูก็ปรากฎว่าเต็มอีกแล้วจริง ๆ ด้วย

หลังจากลองย้ายบาง folder ออกไป ก็สามารถใช้งานได้ แต่มีบางตารางเสียหาย เลยสั่ง repair ปรากฎว่าเดี้ยงอีก เต็มอีกเหมือนเดิม

เลยตัดสินใจ "ย้ายบ้าน MySql ไปไว้อีก partition"

คำสั่ง

cd /home
mkdir mysql
chown mysql:mysql mysql
cd mysql

perl -pi -e 's/mysqld=ON/mysqld=OFF/' /usr/local/directadmin/data/admin/services.status
/sbin/service mysqld stop

cp -Rp /var/lib/mysql/* .
cd /var/lib
mv mysql mysql_old
ln -s /home/mysql ./mysql

/sbin/service mysqld start
perl -pi -e 's/mysqld=OFF/mysqld=ON/' /usr/local/directadmin/data/admin/services.status

<a class="hashtag" href="/tags/once">#once</a> satisfied that mysqld is running and functioning correctly, remove the old data:

rm -rf mysql_old

ประมาณนี้ (แต่ผมไม่ได้ทำตามนี้เป๊ะ ๆ) คือ ย้ายข้อมูลไปไว้ใน /home แล้วทำ link จาก /var/lib/mysql ให้ชี้ไปที่ /home/mysql

ที่มา directadmin.com

โดย Little Bear on 23 ธ.ค. 56 17:49

SoftGanz Group โดยชื่อแล้วเป็นแก๊งซ์ (gang(z) ที่เขียนโปรแกรม (software) ตั้งแต่จัดตั้งแก๊งมา ก็มีสมาชิกอยู่ 1 คน คือผมเอง (ไม่รู้เหมือนกันว่าเป็นแก๊งได้ยังไง เอาเป็นว่า เป็นแก๊งที่มี 1 คน ก็แล้วกัน) ดังนี้การเขียนโปรแกรม ผมก็เขียนคนเดียว ไล่มาตั้งแต่ คุย requirement , system analyse , database design , php programming , javascript programming , css design , graphic design (บางครั้งก็มีคนอื่นออกแบบให้บ้าง ระยะหลังก็ลอกแบบเขาบ้าง ซื้อแบบเขาบ้าง แล้วแต่สะดวก)

โค๊ดส่วนใหญ่ เมื่อเขียนเสร็จ ตรวจสอบเองว่าผิดบ้างไหม (test เอง QC เอง) เสร็จปุ๊บ ก็อัพโหลดปั๊บเลย (แสดงว่าเป็น nightly build version ตลอด)

เรียกว่าทำทุกอย่างด้วยตัวคนเดียว ก็เลยไม่มีระบบอะไรทั้งนั้น

แต่พัฒนาระบบโปรแกรมที่มีขนาดใหญ่ ไม่สามารถทำอย่างที่ผมทำได้ ต้องมีทีม ต้องมีการวางระบบ งั้นลองมาดูกันว่า ทีมวิศวกรของ Facebook นั้นเขาออกแบบระบบในการพัฒนาโปรแกรมกันอย่างไร (ขออนุญาตนำต้นฉบับจาก blognone.com มาแปะไว้ด้านล่างนี้เลยนะครับ)

ต่อไปนี้เป็นบทความจาก blognone.com นะครับ


หมายเหตุ: ข่าวนี้เหมาะสำหรับคนที่สนใจเรื่องวิศวกรรมซอฟต์แวร์ และการจัดการโครงการซอฟต์แวร์ขนาดใหญ่ เพราะมีบทเรียนของ Facebook ให้เรียนรู้ แนะนำอย่างยิ่งให้อ่านต้นฉบับ (ซึ่งยาวมาก) ครับ

ทีมวิศวกรของ Facebook ใหญ่มาก คิดเป็นครึ่งหนึ่งของพนักงานทั้งบริษัท 2,000 คน โดยแบ่งเป็นทีมซอฟต์แวร์ และทีมดูแลระบบอย่างละครึ่ง (ประมาณทีมละ 400-500 คน) เพื่อให้เข้าใจง่าย ผมแบ่งเนื้อหาเป็น 2 ส่วนตาม 2 ทีมนี้นะครับ

ทีมวิศวกรซอฟต์แวร์

  • วิศวกรใหม่ของ Facebook จะต้องอบรมโครงสร้างและกระบวนการทำงานของบริษัท นานประมาณ 4-6 สัปดาห์ และมีคนไม่ผ่านอบรม ไม่รับเข้าทำงานประมาณ 10% อบรมเสร็จแล้วจะได้สิทธิ์เข้าถึง database ที่กำลังทำงานอยู่
  • วิศวกรทุกคนของ Facebook สามารถแก้โค้ดของซอฟต์แวร์ที่รัน Facebook ได้ตามใจชอบ ไม่จำกัดฝ่าย
  • Facebook มีผู้จัดการผลิตภัณฑ์ (product manager) น้อยมาก ฝ่ายบริหารและการตลาดไม่สำคัญเท่าวิศวกร
  • ผู้จัดการสั่งงานวิศวกรโดยตรงไม่ได้ ต้องใช้การล็อบบี้ คือเสนอไอเดียให้วิศวกร ซึ่งจะเลือกทำหรือไม่ทำก็ได้ ทำเป็นระยะเวลานานแค่ไหนก็ได้ ขึ้นกับวิศวกรแต่ละคน
  • วิศวกรจะทำทุกอย่างเองทั้งหมด ตั้งแต่โค้ดจาวาสคริปต์ไล่ลงไปถึงฐานข้อมูล รวมถึงการแก้บั๊กและดูแลโค้ดหลังใช้งานจริงแล้ว
  • Facebook ไม่มีทีม QA (เป็นหน้าที่ของวิศวกรเอง) และไม่ค่อยใช้ automated unit test (มีบ้างแต่ไม่เยอะนัก)
  • ในกรณีที่ต้องการดีไซเนอร์ วิศวกรก็ต้องไปขายไอเดียให้ดีไซเนอร์สนใจและยอมช่วยทำ แต่ส่วนมากวิศวกรของ Facebook นิยมทำงานระดับฐานราก มากกว่างานระดับอินเทอร์เฟซ
  • กระบวนการ commit โค้ดเข้าระบบ ต้องผ่านการรีวิวจากคนอื่นๆ อย่างน้อยหนึ่งคนเสมอ การส่งโค้ดโดยไม่รีวิวถือเป็นการประสงค์ร้าย และระบบถูกออกแบบมาให้คนอื่นๆ ช่วยกันรีวิวโค้ดได้ง่าย
  • โค้ดบางส่วนที่สำคัญมาก เช่น News Feed มีข่าวว่า Mark Zuckerberg จะเป็นคนรีวิวโค้ดด้วยตัวเองเสมอ
  • ตามธรรมเนียมแล้ว โค้ดของ Facebook รุ่นใหม่จะถูกนำขึ้นเซิร์ฟเวอร์จริงสัปดาห์ละครั้ง ทุกวันอังคาร
  • วิศวกรเจ้าของโค้ดที่จะส่งขึ้นเซิร์ฟเวอร์จริงในสัปดาห์นั้น จะต้องอยู่ที่บริษัทในวันอังคาร และต้องประจำอยู่ใน IRC ของบริษัทเพื่อเตรียมรับมือกับปัญหา

ทีมดูแลระบบเซิร์ฟเวอร์

  • ตอนนี้ Facebook มีเซิร์ฟเวอร์ประมาณ 60,000 ตัว
  • การเปลี่ยนแปลงโค้ดรุ่นใหม่จะแบ่งออกเป็น 3 ระดับกว้างๆ คือ p1 ทดสอบโค้ดใหม่เฉพาะภายใน p2 ปล่อยโค้ดใหม่ต่อสาธารณะในวงจำกัด และ p3 เปลี่ยนโค้ดหมดทั้งเว็บ
  • ชุดของเซิร์ฟเวอร์ที่เล็กที่สุดสำหรับทดลองโค้ดใหม่ ประกอบด้วยเซิร์ฟเวอร์ 6 ตัว
  • ทุกวันอังคาร ทีมระบบจะเริ่มทดสอบจาก 6 ตัวนี้ก่อน ถ้าผ่านก็จะไล่ระดับขึ้นไปเรื่อยๆ แต่ถ้าไม่ผ่าน วิศวกรจะต้องกลับไปแก้โค้ดใหม่ และเริ่มทดสอบจากชุดเล็กสุดเสมอ
  • ทีมดูแลระบบมีตัวชี้วัดหลายอย่าง ทั้งด้านเทคนิค และด้านพฤติกรรมของผู้ใช้ ถ้าหากโค้ดรุ่นใหม่ส่งผลให้พฤติกรรมของผู้ใช้เปลี่ยนไป ก็จะสามารถตรวจพบได้ทันที
  • เมื่อโค้ดผ่านการทดสอบทั้งหมดแล้ว จะถูกรวมเข้ากับโค้ดจริงที่จะปล่อยในวันอังคาร

ที่มา - blognone.com , FrameThink

โดย Little Bear on 11 ธ.ค. 56 18:09

Dan Muriello วิศวกร ได้เผยถึงแนวคิดในการสร้างปุ่ม “sympathize”  ในงาน Compassion Research Day ประจำปีของ Facebook ที่จัดขึ้นเมื่อวันที่ 5 ธ.ค.ที่ผ่านมาว่า เพราะผู้ใช้ Facebook นั้นใช้การกดไลค์ ในการแสดงความรับรู้สิ่งต่างๆบน Facebook และในบางครั้งการกดไลค์ก็นำมาซึ่งปัญหาได้ เพราะในบางครั้งพวกเขาเพียงต้องการแสดงให้เห็นว่า “ฉันได้อ่าน/เห็นสิ่งที่คุณแชร์แล้ว” แต่ไม่ได้ต้องการสื่อสารว่า “ฉันชอบสิ่งนี้”จริงๆ

บางส่วนบางตอนจาก Facebook เตรียมทดลองปุ่ม “sympathize” แสดงความเห็นใจหากกรณีไหนไม่ควรกดไลค์

โดย Little Bear on 6 ธ.ค. 56 16:59

เวลาต่ออินเตอร์เน็ตผ่าน WiFi แล้วมีเครื่องหมาย "ต๊กกะใจสีเหลือง" ที่ WiFi icon แล้วมักจะหาทางแก้ไม่ตกสักที ใช้เวลาเยอะมาก ลองโน่นลองนี่ไปเรื่อย บางครั้งก็แก้ได้ บางครั้งก็แก้ไม่ได้ แล้วแต่ละครั้งที่แก้ได้ ก็ไม่สามารถสรุปวิธีการแก้ปัญหาได้สักที

วันนี้ก็เจออีกแล้ว พอสั่ง connect WiFi ก็ต่อไม่ได้ พอต่อได้ก็เจอ Internet access limit ผ่านไปเกือบชั่วโมง จนในที่สุด ลองลบ WiFi connection (ที่เคยบันทึก key ไว้แล้ว) ทิ้งไป แล้วเริ่มต้น connect ใหม่

ผลปรากฏว่าใช้ได้แงะ ก็ยังไม่รู้ว่าจะใช้ได้ทุกครั้งหรือไม่? ไว้เจอปัญหานี้อีกที จะลองแก้ด้วยวิธีนี้ดู แล้วค่อยสรุปวิธีแก้ปัญหา

วิธีแก้ : ลบ WiFi connection แล้วเริ่ม connect และป้อน key เข้าไปใหม่

ปล. ด้านล่างนี้เป็นวิธีแก้ปัญหาจาก Wireless connection limited access only on my computer

  1. Use other adapter D-link; it's still not connected. Same problem. But no problem at all on other computer with windows 7 as well.
  2. Use static IP; not working
  3. cmd ipconfig /all; it doesn't mention about wireless at all.
  4. services.msc basically reseting WLAN autoconfig
  5. Use windows setting instead of smart wizard
  6. Change password encryption in router and restart it
  7. Reinstall the drivers
  8. Update the windows again (new update)
  9. Connect to other router
  10. ipconfig /dnsflush and /renew
โดย Little Bear on 3 ธ.ค. 56 20:01

หลายวันที่ผ่านมาสังเกตุพบว่าเครื่องอืด ๆๆ ไฟฮาร์ดดิส ก็ ติด ๆ ดับ ๆ ตลอด ส่วนใหญ่จะติดตลอดเวลา แถม top - wa ขึ้น 30-40% ตลอด ก็งงว่า process อะไรวะที่กำลังเขียนฮาร์ดดิส เลยลองหาโปรแกรมเพื่อมาดูการใช้งาน I/O บน Ubuntu ซะหน่อย ว่าเกิดอะไรขึ้น

โปรแกรมที่ใช้ดูก็มี

  1. iotop
  2. atop
  3. cat /proc/[PID]/io
  4. pidstat

ดูจาก atop พบว่า gvfs- มันทำงานตลอด กิน I/O เยอะมาก น่าจะตัวนี้แหละ

kill ซะเลย

ชงัดนัก รอดูผล - ปกติด รอดูอีกครั้งหลัง reboot - ???

โดย Little Bear on 3 ธ.ค. 56 14:01

ว่า JPEG ถูกบีบจนได้ไฟล์เล็กแล้ว แต่ JPEG Mini นั้น ยิ่งเล็กว่า ยิ่งผอมกว่า ถูกบีบด้วยเทคโนโลยีที่ทำให้ได้ไฟล์ที่เล็กลงกว่าเดิมถึง 20-80% สุดยอดแห่งการทำให้ไฟล์เล็กลงไปได้อีก แถมสามารถนำมาแสดงผลบนเว็บไซท์ได้เป็นปกติ

ทดลองได้ที่ free Web service หรือจะใช้บริการ http://jpegmini.com/server หรือจะดาวน์โหลด JPEGmini Mac app ก็ได้

ที่มา JPEGmini ผ่านทาง Siam HTML - สังคมของนักพัฒนาเว็บไซต์ในไทย

***

โดย Little Bear on 2 ธ.ค. 56 22:43

มึนอยู่พักใหญ่ หลังจากเขียนเสร็จก็ลองทดสอบบน iPad ปรากฏว่า span และ tag บางตัว ไม่รับ event click (และ event อื่นอีกหลายตัว)

สาเหตุ : เกิดมาจาก safari บน iPad นั้น DOM บางตัวไม่ได้ใส่ event click มาให้

ทางแก้ : ให้ใส่ event click เข้าไปเอง

ตัวอย่าง :

<span class="test-click" onclick="">Text</span>

<script>
$(document).on('click', '.test-click', function() {
 alert('On Click')
})
</script>
โดย Little Bear on 24 พ.ย. 56 16:50

12.30 น. ผมสั่ง remote reboot server พร้อมความกังวลทุกครั้งที่สั่ง reboot ว่าเครื่องจะเปิดขึ้นหรือเปล่า

12.40 น. นิ่ง ping ไม่เห็น เริ่มเหงื่อตก

12.50 น. เริ่มโทรหา NOC โทรเข้าสำนักงาน ไม่ติด โทรหา จนท.ที่ติดต่อกันอยู่ ได้เบอร์ใหม่ของมือถือ จนท. ดูแลห้อง IDC

13.10 น. จนป่านนี้ จนท. ยังไม่ยอมรับสาย โทรหา จนท. ที่ติดต่อกันอยู่อีกที คาดว่า จนท. ไปกินข้าวกระมัง?

14.00 น. ไม่มีวี่แววว่าใครจะรับสาย

14.30 น. ตัดสินใจบึ่งรถไป IDC (เจอ จนท. บอกว่าไปกินข้าว เพิ่งกลับมา)

14.50 น. เสียบจอ ถอดปลั๊ก (หากุญแจหน้าเครื่องไม่เจอ ไม่รู้ไปเก็บไว้ที่ไหน ลืมแว่นตา เพ่งแล้วเพ่งอีกว่าเครื่องเราเครื่องไหนวะ กลัวถอดสายผิดเครื่อง)

14.55 น. boot แล้ว กำลังตรวจสอบ harddisk /dev/sdb1 0.1% ผ่านไปเกือบนาที 0.2% ตายแน่เลย 10 ชั่วโมงก็ไม่รู้จะเสร็จไหม

14.57 น. CTRL+C , CTRL+D ข้ามไปเลย boot..... complete

15.00 น. web site running

15.05 น. กลับบ้าน

แก้คอนฟิกให้ไม่ต้องเข็ค harddisk ขณะเปิดเครื่องดีกว่า ไม่งั้นแย่แน่ ๆ

แก้ค่าในไฟล์ /etc/fstab

/dev/sdb1 /mntpoint ext3 defaults 1 2

แก้ค่าตัวเลขข้างหลังให้เป็น 0 0

/dev/sdb1 /mntpoint ext3 defaults 0 0

ยังไม่กล้า reboot ไว้ค่อยแวะเข้าไปที่ IDC แล้วค่อยลอง reboot นะ

Update : 2014-07-16

15.30 น. Server down อีกแล้ว

15.50 น. โทรเช็คกับ CAT ทราบว่าเขาเปลี่ยน UPS ทำให้เครื่องดับทั้งหมด OK ให้ช่วยกดเปิดสวิทช์ของ wintesla (เครื่องนี้พอไฟดับ จะไม่ start เอง ต้องมากดปุ่ม power)

15.52 น. Server softganz ยังไม่มา noc บอกว่าไฟ harddisk ติดค้างเลย คาดว่าจะเกิดอาการเดิมคือ เครื่องกำลัง check disk อยู่แน่เลย ให้ noc ช่วยเสียบจอ แต่ server เคสสั้น เสียบจอยาก เลยต้องวิ่งเข้าไปเอง

16.10 น. เอาจอเสียบเข้าไป ปรากฏว่าเป็นอย่างนั้นจริง กำลังเช็คได้ 13% อีกนานกว่าจะเสร็จ

16.20 น. ลองสั่งใหม่ ไม่ให้ check disk ตอนเปิดเครื่อง ด้วยคำสั่ง “tune2fs” ซึ่งเป็นคำสั่งสำหรับเปิดจำนวนการ mout (command to turn off mount count based)

sudo tune2fs -c 0 -i 0 /dev/sdDN

โดย “D” คือ represents the disk และ “N” represents the partition number of the file system

16.22 น. ลอง reboot คราวนี้ไม่เช็คแล้ว ลองปิดเครื่อง แล้วกดสวิทช์เปิดใหม่ ก็ไม่เช็คแล้ว หวังว่าคงหายนะ เพราะอีกไม่นานจะโดนปิดเครื่องเพื่อย้าย server ไปไว้อีกห้อง

16.40 น. กลับบ้านแล้ว

โดย Little Bear on 20 พ.ย. 56 12:32

iftop

iftop

vnstat

vnstat -u -i eth0
vnstat
vnstat -hours
vnstat --days

iptstate

iptstate

611 items|« First « Prev 19 20 (21/62) 22 23 Next » Last »|