Tag Archives: Singapore

[ไปฟังมา] Python Memory Model

เสาร์นี้กำลังจะมีงาน Google DevFests ที่สิงคโปร์ ทาง Python group ที่นี่เลยได้โอกาส เชิญ Wesley Chun ที่บินมาร่วมงานด้วย ให้จัดพูดซักหน่อย (ถ้าผมเข้าใจไม่ผิด เค้าอยู่ทีม App Engine)

ตัว Wesley Chun นี้ผมเคยดู presentation ของเค้าครั้งนึง จากงาน Google I/O 2011 อันนี้ครับ Google I/O 2011: Python@Google

วันนี้เค้าพาพูดถึงเรื่อง Memory Model ของ Python เช่น มีตารางบอกว่าแต่ละ type มี model แบบใด และก็มีแทรก quiz ง่ายๆ เกี่ยวกับการ assign ค่าในแบบต่างๆ บน Python ที่มักทำให้เกิด bug 

เช่น กรณีนี้

และเค้าก็เล่าถึง implement แปลกๆ ภายในตัว Python เช่น

เลขที่ใช้บ่อยจะมี instance เดียวเสมอ ถูกสร้างไว้ตั้งแต่แรก ส่วนเลขทศนิยมประหลาดๆ ถ้าถูกอ้างถึงทีก็จะถูกสร้าง object ใหม่ที (ใน Python เลขเป็น immutable type) (ตั้งใจจะถ่ายสไลด์มาให้ดูแต่ถ่ายไม่ทัน) เค้ายังเล่าว่าสาเหตุของเรื่องนี้ เกิดตั้งแต่สมัย Python เวอร์ชั่น 1 กว่าๆ  ที่ตอนนั้นกำลังสู้กับ​ Perl อยู่ในเรื่อง performance จึงเกิด optimization แบบนี้ขึ้น

อีกเรื่องหนึ่งที่เค้าพูดถึงคือ object reference count ที่เมื่อ object ถูก assign ให้ตัวแปรหนึ่งที ก็จะ +1 เวลาไม่ถูกอ้างถึงก็จะ -1 จนถ้าเป็น 0​ ก็จะโดน garbage collector เคลม memory กลับไป แล้วเค้าก็ลอง run command เช็ค reference count ให้ดูกับพวก object พื้นฐานต่างๆ เช่น 1, True, False ก็ได้เลขเป็นหลักสิบหลักร้อยเลยก็มี เพราะเค้ารัน Python shell บน ui ที่เขียนด้วย Python ด้วย

ท้าย presentation มีข้อสรุปนึงที่โดนใจ เค้าบอกว่าสาเหตุของ bug เกี่ยวกับเรื่องพวกนี้ส่วนใหญ่เกิดจาก mutability เห็นมั้ยครับ ขนาดคนใช้ ภาษาที่ mutate ตัวแปรได้ยังบอกอย่างงี้เลย จะไม่ให้พวกคนใช้ภาษา functional บ้า immutability ได้ไง

ภาพและเนื้อหาเหล่านี้ ไม่ได้ขออนุญาตเค้าเลย แต่คิดว่าคงไม่เป็นอะไร เพราะเค้าได้มีการส่งสไลด์ให้คนดูแล group ไป share ให้คนอื่นๆ เหมือนกัน แต่ตอนนี้ยังไม่เห็น share มา ถ้า share มาแล้ว ผมจะเอามาโพสให้อีกทีนะครับ

ปล. หลายๆ คนคงคาดหวังภาพ office Google ขอโทษด้วยนะครับ ไม่มีเวลาถ่ายเลย ไปถึงสายแล้ว เพราะหาตึกไม่เจอ แถมเข้ายากด้วย ต้อง scan บัตรรายคน

Advertisements

[ไปฟังมา] Collaborating with Stakeholders

อันนี้เป็นสไลด์จาก presentation จากงาน meetup ประจำเดือนตุลาคมของ Agile Singapore Group

เป็นเรื่องเกี่ยวกับ ความสำคัญของการสื่อสารระหว่างผู้มีส่วนร่วมในการพัฒนาระบบทั้งหมด เค้ากล่าวถึงว่า ทำไมเราซอฟแวร์/ฟีเจอร์ที่ทำขึ้นมา ถึงมักไม่ได้ใช้ หรือใช้ไม่ได้ และเราจะแก้ปัญหานี้ได้อย่างไร

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

บาร์แคมป์ สิงคโปร์ 7

ตามคำเรียกร้อง ไปงานกลับมาแล้ว จะมาเล่าให้ฟังกัน

วันนี้ตื่นสายนิดหน่อย และไปถึงงานหลังจากเค้าจบ session แรกไปแล้ว เพราะสถานที่ค่อนข้างไกลจากที่พักมาก North-east กับ South-west

มี schedule ให้ดูตามนี้

ตอนไปเกือบจะถึง เปิดดู schedule สงสัยว่านี่จะไม่ใช่งานของเรา เพราะมีแต่ topic management, startup ทั้งนั้นเลย เลย tweet บนนิดหน่อย

รูปนี้ไม่เกี่ยวกับงาน เห็นตึกที่กำลังก่อสร้างอยู่ตรงข้ามป้ายรถบัส เสาเฉียงๆ แปลกดี

Imag0113

 

ไปถึงงานไม่มีป้ายชื่อ มีแต่สติกเกอร์ขาวพร้อมปากกา ให้เขียนชื่อแล้วเอามาแป๊ะเสื้อเอาเอง

Topic ก็เขียนกันบนกระดาน vote กันบนกระดานนั้นเลย

 

Imag0118
Imag0122

อย่างที่บอกไปแล้ว ว่า topic มีแต่เรื่อง การลงทุน, startup, pitch สิ่งทีทำ จริงเข้าใจว่ามี dev ไปพอสมควร แต่เจอ topic แบบนี้ คงคิดว่าไม่มีคนฟังเลยไม่มีใครกล้าพูดอะไร คิดว่า dev คงจะเบื่อๆ กัน และครั้งต่อไป dev น่าจะน้อยลงเรื่อยๆ เพราะมันไม่หนุก

ลองคาดเดาสาเหตุ น่าจะเกิดจาก พวกคน management, founder, sale เป็นคนพูดเก่ง และอยากพูด อาจจะเพื่อผลประโยชน์ส่วนตัวหรืออะไรก็แล้วแต่ แต่ความยากพูดและความสามารถในการพูดเค้าสูงกว่าพวก dev แน่ๆ เหตุการณ์จึงออกมาเป็นแบบนี้

ลองไปดูแต่ละ session ที่ผม ได้เข้าไปฟังบ้าง ไม่ฟังบ้าง รู้เรื่องไม่รู้เรื่องบ้าง ละกัน

session นี้เข้าใจว่าเป็นคนจัด startup training

Imag0120

 

Lighting talk คนนี้เป็นคน organize BarCamp ที่พม่า

Imag0121

 

พักเที่ยงนั่งกินข้าวโรงอาหารเล็กๆ ใกล้ๆ มีคนสองคนมาขอนั่งด้วย เป็น investor ทั้งสองคนเลย คนนึงเป็นคน Texas อีกคนเป็นคนมาเล คนมาเลถามว่ามีเพื่อนที่กำลังจะทำ startup ที่ไทยมั้ย ใครมีไอเดีย ต้องการเงิน อยากได้ contact ก็ถามมาก็ได้ เค้าให้นามบัตรไว้

 

คนนี้พูดถึงแนวทางการทำ startup เช่น เราต้องชั่งน้ำหนักระหว่าง feedback และ strategic plan ที่วางไว้ตอนเริ่ม, หรือการ focus ในส่วนเล็กๆ ในตอนเริ่มต้น ตัวเค้าเองทำ startup web infrastructure เริ่มปี 03 เจ๊งปี 08 ช่วงนี้อยู่ในช่วงกลับมาและดีขึ้นเรื่อยๆ

Imag0124

 

คนนี้พูดเรื่อง technical หน่อย แต่ไม่อยู่เรื่องนี้เลย เลยอยู่ไม่จบ เค้าพูดเรื่อง การเลือก CDN แล้วก็เห็น ถกๆ กับคนฟังเรื่อง Amazon Cloudfront กับ S3 บลา บลา

Imag0125

 

คนนี้ประทับใจเป็นพิเศษ ถึงแม้ว่าจะไม่ใช่เรื่อง tech เรื่องของเค้าคือ Investing in Death คือ เค้าเป็นเหมือนพ่อค้าคนกลาง คอนโดฝังศพที่ Hongkong สองปีที่่ผ่านมา ได้ return 100%

Imag0129

 

คนนี้พูดเรื่อง Mobile App design ก็ไม่มีอะไรแปลกใหม่ เค้าย้ำๆ ว่าให้ทำ cycle prototype-feedback ให้ดีๆ ก่อนเริ่ม code อันนี้เห็นด้วยแค่บางส่วน คือ คิดว่ามันต้องเป็นทั้ง life cycle ช่วงอื่นก็สำคัญไม่แพ้ช่วง prototype ที่เค้าย้ำๆๆ

Imag0132

 

คนสุดท้ายที่ฟัง เห็นหัวข้อน่าสนใจ Web framework สำหรับเด็ก 6 ขวบ ไอ่เราก็คิดว่าเค้าทำ web framework ให้เด็ก 6 ขวบ เหมือนที่ community Haskell ตอนนี้กำลังพูดถึงสอนเด็กโปรแกรมด้วย Haskell กันอยู่ แต่ที่ไหนได้ เป็นการมาเล่าว่าเขียนเว็บง่ายนิดเดียว อะไรทำนองน้ั้น พอเค้าเริ่ม Scaffolding Rails ก็เลยลุกออกมา

Imag0135
Imag0136

 

ออกจาก session นั้นมาก็ออกจากงานเลยประมาณ 4 โมง

งานนี้ เป็นสวรรค์สำหรับคนมีไอเดีย มีความสามารถ ที่กำลังจะเปิดบริษัทโดยแท้ จะได้หาผู้ลงทุน และประสบการณ์จาก startup อื่นๆ

มางานนี้ยิ่งตอกย้ำความเข้าใจเกี่ยวกับประเทศนี้ว่า เป็นประเทศพ่อค้าและผู้ลงทุนอย่างแท้จริง เราว่าประเทศเราขาดบุคลากรแค่ไหน ประเทศเค้าความต้องการสูงกว่าแน่นอน เพราะมี investor ชาวต่างชาติเข้ามาผสมโรงด้วยเยอะ สังเกตดูจาก topic จะมี topic นึง ถามว่าจะทำ startup จะ in-house หรือ outsource ดี ส่วนตัวเพิ่งเคยได้ยิน outsource startup ครั้งแรกก็ที่นี่แหละ

สรุปไม่เสียหายกับการได้ไปดูบรรยากาศ แต่คราวหน้า ขอคิดก่อนละกัน