เป็นบทความจาก www.pawawit.com มี 3 ตอน นี่เป็นตอนที่ 2
ข้อคิดเพิ่มเติมจาก Buffett (นักลงทุนผู้ยิ่งใหญ่ตลอดกาล) ดังนี้
"ซื้อหุ้น Low-Tech ไม่ใช่ High Tech" ไอเดียนี้เป็นสิ่งที่ Buffett แนะนำ เพราะเขาเชื่อว่าสิ่งประดิษฐ์ Innovation ต่างๆ มักจะไม่ได้ให้รางวัลแก่คนประดิษฐ์ หรือ คนลงทุน แม้ในความเป็นจริงมันได้สร้างประโยชน์อย่างมหาศาลแก่มวลมนุษย์ก็ตาม
Buffett ยกตัวอย่างประเด็นนี้เหมือนการเลือกภรรยา คุณจะเลือกเที่ยวกับคนฟู่ฟ่า(เพราะมันทำให้คุณตื่นเต้น หรือตื่นตูมในช่วงเวลาสั้นๆ ...One Night Stand ฮ่า ฮ่า)... แต่คนที่คุณเลือกเอามาเป็นภรรยากลับเป็นผู้หญิงอีกแบบนึง ...ซึ่งแน่นอน ธุรกิจ Innovation ที่ซับซ้อนสามารถสร้างความหวือหวาได้ในระยะสั้น แต่โอกาส "แป๊ก" มันก็สูงตาม
เป็นบทความจาก www.pawawit.com มี 3 ตอน นี่เป็นตอนที่ 1
วันนี้ว่างๆ เลยเอาหนังสือ Buffet มาย่อยดู ...หนังสือ เล่มนี้ "How Buffett Does it" เผอิญ "ป๋ากึ้ง ซื้อมาฝากจากสิงค์โปร์ Trip" เพราะเฮียแก เห็นว่าผมชอบแนวทางของ Buffet แถมตลาดตอนนี้ เริ่มมีภาพขาขึ้นในภาพใหญ่ที่ชัดเจน ...เลยทำให้แนวทาง Buffett มันเริ่มชัดขึ้น ชัดขึ้น (แต่บางคน กลับมองว่า มืดลง มืดลง เพราะตลาดหุ้นบ้านเราเน่ามาตลอดสิบกว่าปีแล้ว แถมไม่ชอบเลขกลมซะด้วยซิ สังเกตได้ว่า รายย่อยปล่อยของออก ตอนนี้เทหุ้นกันเกือบหมด Port ไม่รู้จะเข้าหลัก Demand & Supply หรือเปล่า)
ขยายความกันเต็มๆ ว่า "ตอนนี้รายย่อย ขายทิ้งเอา ทิ้งเอา แต่ตลาดกลับขึ้นสวน ..รึว่า รายย่อยกำลังรู้อะไรที่ รายใหญ่ไม่รู้่ (ชักน่ากลัว ซะแล้วซิ) "ผมประกาศเลย ถ้ารายใหญ่คนไหน ได้มีโอกาสผ่านตา บทความผม จงไปซื้อเสื้อหนาวมาใส่ ..."หนาวแน่!!" ...เอ๋อ!! ว่าแต่ยังไม่รู้ว่าใครจะหนาวกันแน่ ฮิ ฮิ
จากประเด็นหนักๆ กลับมาประเด็นเบาๆ อย่าง Buffett กันดีกว่า (ในหนังสือเล่มนี้ อ่านค่อนข้างง่าย เพราะคนเขียนย่อย แนวคิดของ Buffett ออกมาเป็นข้อๆ ดังนี้)
1. เลือกความเรียบง่ายมากกว่าความซับซ้อน
บัฟเฟตต์ แนะนำว่า “เมื่อลงทุน ควรคำนึงถึง … ความเรียบง่าย ชัดเจน อย่าพยายามหาคำตอบที่ซับซ้อน จากคำถามที่ซับซ้อน” จำไว้ว่า ความยากไม่มีในการลงทุน มองหาบริษัทที่มีประวัติยาวนาน และสามารถคาดเดาอนาคตของธุรกิจได้ ถ้าคุณไม่เข้าใจธุรกิจ … ก็อย่าซื้อหุ้น
2. ตัดสินใจลงทุนด้วยตัวคุณเอง
อย่าเชื่อโบรกเกอร์ นักวิเคราะห์ หรือผู้รู้ …จงเชื่อตัวคุณเอง เมื่อคุณพบที่ปรึกษาทางการลงทุนหรือนักลงทุนมืออาชีพ จงถามว่า “พวกคุณจะได้อะไรจากผม ???” ถ้าคำตอบไม่เป็นที่น่าพอใจ คุณก็ควรจะเดินหนีไปซะ การลงทุนแบบเน้นคุณค่าพิสูจน์แล้วว่า จะสร้างผลตอบแทนที่ดีมากในระยะยาว
วันนี้เกิดเหตุ 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
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
Dan Muriello วิศวกร ได้เผยถึงแนวคิดในการสร้างปุ่ม “sympathize” ในงาน Compassion Research Day ประจำปีของ Facebook ที่จัดขึ้นเมื่อวันที่ 5 ธ.ค.ที่ผ่านมาว่า เพราะผู้ใช้ Facebook นั้นใช้การกดไลค์ ในการแสดงความรับรู้สิ่งต่างๆบน Facebook และในบางครั้งการกดไลค์ก็นำมาซึ่งปัญหาได้ เพราะในบางครั้งพวกเขาเพียงต้องการแสดงให้เห็นว่า “ฉันได้อ่าน/เห็นสิ่งที่คุณแชร์แล้ว” แต่ไม่ได้ต้องการสื่อสารว่า “ฉันชอบสิ่งนี้”จริงๆ
บางส่วนบางตอนจาก Facebook เตรียมทดลองปุ่ม “sympathize” แสดงความเห็นใจหากกรณีไหนไม่ควรกดไลค์
เวลาต่ออินเตอร์เน็ตผ่าน WiFi แล้วมีเครื่องหมาย "ต๊กกะใจสีเหลือง" ที่ WiFi icon แล้วมักจะหาทางแก้ไม่ตกสักที ใช้เวลาเยอะมาก ลองโน่นลองนี่ไปเรื่อย บางครั้งก็แก้ได้ บางครั้งก็แก้ไม่ได้ แล้วแต่ละครั้งที่แก้ได้ ก็ไม่สามารถสรุปวิธีการแก้ปัญหาได้สักที
วันนี้ก็เจออีกแล้ว พอสั่ง connect WiFi ก็ต่อไม่ได้ พอต่อได้ก็เจอ Internet access limit ผ่านไปเกือบชั่วโมง จนในที่สุด ลองลบ WiFi connection (ที่เคยบันทึก key ไว้แล้ว) ทิ้งไป แล้วเริ่มต้น connect ใหม่
ผลปรากฏว่าใช้ได้แงะ ก็ยังไม่รู้ว่าจะใช้ได้ทุกครั้งหรือไม่? ไว้เจอปัญหานี้อีกที จะลองแก้ด้วยวิธีนี้ดู แล้วค่อยสรุปวิธีแก้ปัญหา
วิธีแก้ : ลบ WiFi connection แล้วเริ่ม connect และป้อน key เข้าไปใหม่
ปล. ด้านล่างนี้เป็นวิธีแก้ปัญหาจาก Wireless connection limited access only on my computer
- 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.
- Use static IP; not working
- cmd ipconfig /all; it doesn't mention about wireless at all.
- services.msc basically reseting WLAN autoconfig
- Use windows setting instead of smart wizard
- Change password encryption in router and restart it
- Reinstall the drivers
- Update the windows again (new update)
- Connect to other router
- ipconfig /dnsflush and /renew
หลายวันที่ผ่านมาสังเกตุพบว่าเครื่องอืด ๆๆ ไฟฮาร์ดดิส ก็ ติด ๆ ดับ ๆ ตลอด ส่วนใหญ่จะติดตลอดเวลา แถม top - wa ขึ้น 30-40% ตลอด ก็งงว่า process อะไรวะที่กำลังเขียนฮาร์ดดิส เลยลองหาโปรแกรมเพื่อมาดูการใช้งาน I/O บน Ubuntu ซะหน่อย ว่าเกิดอะไรขึ้น
โปรแกรมที่ใช้ดูก็มี
- iotop
- atop
- cat /proc/[PID]/io
- pidstat
ดูจาก atop พบว่า gvfs- มันทำงานตลอด กิน I/O เยอะมาก น่าจะตัวนี้แหละ
kill ซะเลย
ชงัดนัก รอดูผล - ปกติด รอดูอีกครั้งหลัง reboot - ???
ว่า JPEG ถูกบีบจนได้ไฟล์เล็กแล้ว แต่ JPEG Mini นั้น ยิ่งเล็กว่า ยิ่งผอมกว่า ถูกบีบด้วยเทคโนโลยีที่ทำให้ได้ไฟล์ที่เล็กลงกว่าเดิมถึง 20-80% สุดยอดแห่งการทำให้ไฟล์เล็กลงไปได้อีก แถมสามารถนำมาแสดงผลบนเว็บไซท์ได้เป็นปกติ
ทดลองได้ที่ free Web service หรือจะใช้บริการ http://jpegmini.com/server หรือจะดาวน์โหลด JPEGmini Mac app ก็ได้
ที่มา JPEGmini ผ่านทาง Siam HTML - สังคมของนักพัฒนาเว็บไซต์ในไทย
***
มึนอยู่พักใหญ่ หลังจากเขียนเสร็จก็ลองทดสอบบน 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>