Codefest #1 (ต่อ)

by m3rLinEz 6. July 2006 02:40
อ่าา วันนี้สอบ MECH เสร็จเรียบร้อยแล้ว ก็ ... ทำไม่ค่อยได้ ตามที่คาดการณ์ไว้ TvT (ถึงแม้ข้อสอบจะโคดเหมือนการบ้านก็ตาม ... )

จดบันทึกเรื่อง Codefest ต่อ ก่อนจะลืม ...

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

อีกอย่างที่พิเศษสำหรับเจ้ากิจกรรมมาราธอนสองวันนี้คือ มันไม่ปิดไฟตอนกลางคืน ! อยากนอนตอนไหนก็นอน แต่ส่วนใหญ่ก็สลบคาที่ประมาณตี 3 กว่าๆ .... ที่นอนก็ปูเสื่อนอนในห้องทำงานนั่นแหละ

เราตื่นมาอีกรอบตอน 8 โมงเช้า ... เจอศพกองอืดมากมาย หลายคนก็เริ่มทำงานกันต่อแล้ว ... ก็บิดขี้เกียด งัวเงียๆซักพัก แล้วก็ไปอาบน้ำกลับมาโค้ดต่อ จนถึงเที่ยงก็หยุดงานทุกอย่าง แล้วก็รอพรีเซนต์ผลงานและกลับบ้าน


บรรยากาศรวมๆห้องทำงาน


ที่นอนสุดสมถะ


๊อูัับันตูพร้อมวอลเปเปอร์ของ CodeFest (ถังขยะเบ่อเริ่มนั้นใช้ได้จริงๆนะ)


คนดังในค่ายนี้ก็มีพี่ป้อก เค้าเป็นคนบรรยายเรื่อง Ruby on Rails ในงาน Blognone ด้วย (แต่เราไม่ได้ไป) งานที่เค้าทำคือระบบติดตามยานพาหนะ

สำหรับเราแล้วสิ่งที่ทำให้โปรเจกนี้ดูน่าสนใจคือ มันใช้ YAWS เป็น Web Server และภาษาที่ใช้เขียน Web Application ที่ทำงานบน Server-side นั้น เป็นภาษาแบบ Functional Language ที่ชื่อ Erlang

ภาษาโปรแกรมพวก PASCAL, C, C++ แบบที่พวกเราเขียนๆกันอยู่โดยทั่วไปนี่ เรียกว่าภาษาแบบ Imperative คือมันเป็นการบอกคอมพิวเตอร์ว่าต้องทำงานยังไง ส่วนภาษาแบบ Functional นี่ มันจะเป็นการบอกว่าจะให้หาอะไรมากกว่า ที่เห็นแตกต่างกันชัดๆคือ ภาษาแบบ Functional จะไม่มีลูป ! ยกตัวอย่างภาษา Functional ตัวนึงชื่อ Haskell เอามาเขียน Quicksort

Quicksort in Haskell

qsort []     = []
qsort (x:xs) = qsort (filter (< x) xs) ++ [x] ++ qsort (filter (>= x) xs)
[edit]

Quicksort in C

qsort( a, lo, hi ) int a[], hi, lo;
{
int h, l, p, t;
if (lo < hi) {
l = lo;
h = hi;
p = a[hi];
do {
while ((l < h) && (a[l] <= p)) 
l = l+1;
while ((h > l) && (a[h] >= p))
h = h-1;
if (l < h) {
t = a[l];
a[l] = a[h];
a[h] = t;
}
} while (l < h);
t = a[l];
a[l] = a[hi];
a[hi] = t;
qsort( a, lo, l-1 );
qsort( a, l+1, hi );
}
}
เอามาจาก http://www.haskell.org/haskellwiki/Introduction

สั้นต่างกันเห็นๆ ...''

แล้วที่เค้าใช้ YAWS เป็น Web Server นี่ เพราะว่ามันรับโหลดได้สูงกว่า Apache ราวๆ 20 เท่า (ที่ Benchmark มา เค้าพบว่า Apache เดี้ยงตอน request มาพร้อมกัน 4000 อัน แต่อี YAWS นี่รับได้ถึง 80000) พอรู้ตรงนีี้ขึ้นมาแล้ว อย่างแรกที่นึกถึงเลยคือเว็บประกาศผลเข้าเตรียมฯ ถ้าเอา YAWS + ErLang มาใช้แทน Apache + PHP นี่ น่าจะรองรับจำนนวนคนได้สบายๆ งานอื่นก็เหมือนกัน เช่นประกาศผลเอนต์ หรือเว็บลงทะเบียนจุฬา เป็นต้น

ส่วนโปรแกรมที่ Client เค้าใช้ JavaScript ผนวกกับ GoogleMapAPI มาแสดงผล ซึ่งมันโอเคมากเลยว่ะ (ชักอยากหัดเขียน ErLang ไม่รุจะว่างลองเมื่อไหร่)

ใครอยากดูรูปเพิ่ม หรืออยากดูคลิป VDO แก๊นแนะนำตัวเองแบบเร็วๆ (พูดเร็วมาก) ลองไปดูที่ http://www.tosf.org/codefest (ณ เวลาที่เขียนนี่ เว็บเค้าดาวน์อยู่ พรุ่งนี้อาจจะใช้ได้ปกติ) เผอิญไปถึงงานเลตมาก ถึงปุ๊บ วางกระเป๋าเสื้อผ้าเสร็จ ก็ต้องแนะนำตัวเลย (แบบ Panic จัด)

ปีหน้าเค้าคงจะจัดอีก เป็นอะไรที่น่าไปนะ โดยเฉพาะคนที่เขียน C เป็นระดับนึง และอยากทำความรู้จักกระบวนการทำงานแบบ Open Source .. ไม่จำกัดอายุ เข้าได้ตั้งแต่เด็กหัวเกรียน -> คนจบแล้วทำงานแล้ว

Tags: , , Category: General

Comments (6) -

sonteenzz
7/6/2006 2:51:45 AM #

อ่านแล้ว ทั้งอยากไปมั่ง
และอยากลองไอ Erlang ว่ะ

chakrit
7/6/2006 4:32:52 AM #

เคยเหนไอแบบ functional มานานละ แต่ไม่นึกว่ามานจะสั้นขนาดนี้ - -' แต่มันคงซับซ้อนน่าดู

เคยลอง ruby on rails ทีนึงก็รู้สึกว่ามันเหมือนเอา functional กับ implementation มาผสมกันนะ

น่าสนใจๆ ปีหน้าไปมั่ง ^^"

wiennat
wiennat
7/6/2006 6:58:22 PM #

LightTPD + fcgi ก็น่าสนนะ

N!ckyZ+
N!ckyZ+
7/11/2006 12:16:13 AM #

บลาๆๆ เด๋วนี้ครูเลิกเขียนเป็นdiaryภาษาอังกฤษแล้วหร๋อ ??

พระเจ้า**
7/13/2006 10:18:39 PM #

ไม่รู้เรื่องอย่างแรงง่า
แต่ชอบถังขยะ สวยๆ

jemmy
jemmy
7/21/2006 5:54:34 PM #

อยากไปมั่งอ่าๆๆๆ
ใช้ซีใช่ป่ะ เดี๋ยวไปอ่านดู

Add comment




biuquote
  • Comment
  • Preview
Loading






Most comments

RecentComments

Comment RSS