Category Archives: Programming

one line factorial

def fac(i): return reduce(int.__mul__, xrange(1, i+1), 1)

Also posted in Python | Tagged | Leave a comment

ทำไมถึงควรเลือกใช้ Mercurial SCM

Distributed revision control เป็นเครื่องมือที่ Developer สมัยนี้จะต้องหามาใส่หัวให้ได้ Mercurial ก็เป็น DVCS ชนิดหนึ่งที่เป็นที่นิยมในตลาด ( หมายถึงตลาดโลก ในเมืองไทยหายากหน่อยนึง ) แต่หลายคนที่พยายามจะเปลี่ยนจาก Subversion มาเป๋น DVCS ก็ยังสับสน ว่าไอ้ที่มีอยู่หลายเจ้านั้น มีดียังไง ผมจะสรุปคร่าวๆโดยที่พยายามพูดถึงเจ้าอื่นให้น้อยที่สุด เพื่อไม่ให้เกิดดราม่า Mercurial สามารถทำงานได้ดี ในทีมที่มีหลายๆคน เพราะว่าแต่ละคนก็มี repo ของตัวเอง เนื่องด้วยแต่ละคนมี repo ของตัวเอง อิสระในการทำงานก็สูงกว่า ไม่ต้องกังวลว่าจะไปพังของใคร แล้วทำให้ทั้งระบบต้องหยุด สามารถทำงานแบบ Stand Alone แค่เพียง Check Out มา จะ Commit ก็ครั้งก็ได้ พอต่อเน็ตได้ค่อย Push ทีเดียว แต่ละ Rev. มีเลขกำกับ เหมือน SVN ต่างจาก Git [...]

Also posted in Python | Tagged , , | Leave a comment

จาวาเร็วส์

จาวาใครว่าเร็วส์ ทุเรศ ท่านผู้นำสมเพช แม่งค้าง ความดีบ่เบิกเนตร ใครขัด กูด่า ใครคิดเหตุผลอ้าง กูบล็อก เว็บกู

Also posted in สบายใจ | Tagged , | 2 Comments

Test Driven Development ด้วย Django Unit Testing (ตอนที่ 1)

Django มีสุดยอดแห่ง unit testing ที่ build in มาในตัว framework เรียบร้อยแล้ว, คนมักจะไม่ค่อยใส่ใจกับมันเท่าไรนักเพราะว่ามันมาแบบ “out of the box” แต่นั่นไม่ได้หมายความว่าเราจะละเลยส่วนั้นได้ เมื่อเราสร้าง Application ของเราเองขึ้นมา เพราะว่าเทสต์นั้นทำให้เรา “คิดออก” ว่าอะไรที่ควรจะทำให้เสร็จ เพราะฉะนั้นเราจะมาพูดเรื่องทำอย่างไรให้ Application สามรถทำงานได้เป็นอย่างดี เมื่อมาถึงตรงนี้แล้วผมจะพยายามแสดงให้เห็นว่า ทำยังไงจะใช้ TDD ใน Django Application เราจะสร้าง Project เล็กๆ และมี Application เพียงตัวเดียว และใช้ Unit testing เป็นตัวกำหนด ว่าจะออกแบบ algorithm และจะ implement class อย่างไร

Also posted in Django, Python | Tagged , , , | Leave a comment

Barcamp Bankhen Live

นั่งฟังเรื่องแรก Atom Server ของอาจารย์ภุชงค์ Intro เสียเกินครึ่ง แต่ก็ได้รู้เรื่องประวัติศาสตร์เสียมาก พูดเรื่อง Super Computer ที่เมืองจีน โดยพัฒนาโดยวิศวะกรของจีนเอง และยังพูดถึงเรื่อง CUDA ของ Nvidia ที่เปลี่ยนเรื่อง Program Design ไปเลย และ OpenCL ของ Apple ที่นำความสามารถของ GPU มาใช้ประมวลผล ใช้มือถือสร้าง Super Computer เนื่องจาก Balance ของ Power กับ Performance ได้ดีที่สุด แนวทางการโปรแกรมมิ่งแบบ Message Driven หลังจากนั้นมาพูดเรื่อง Blueprint CSS พูดไม่ได้เร็วเท่าไร แต่ไม่มีเรื่องจะพูดซะงั้น lol หลังจากนั้นมาได้เข้ามานั่งฟังเรื่อง Open Source Enterprises พูดเรื่องการ implement open source ค่าใช้จ่ายต่างๆ [...]

Tagged | Leave a comment

เร็วๆสุดๆ เพิ่มพลัง Website

ไปอ่านเรื่อง Page Speed Analysis: Search Engine Roundtable จากเว็บของ Sajal มาบันทึกไว้กันลืม เรื่องทำอย่างไนจะ Optimize หน้าเว็บให้สุดได้ http://www.webpagetest.org/

Tagged | 1 Comment

CodeAndroid

Entry แรกหลังจากกู้ Server กลับมาได้จากอาการ “โคอาล่าเป็นพิษ” หลังจากไป meeting ที่ SIS  มาได้ข้อสรุบว่า HTC ต้องการให้เหล่า Developer สร้าง App สำหรับคนไทยขึ้นมา เพื่อขยายฐานผู้ใช้ Android ในเมืองไทย ส่งผลต่อเนื่องถึงยอดขายของ HTC ในทางอ้อม หากมองในตอนนี้เห็นได้ชัดว่า  Android ไม่ได้เปรี้ยงปร้างเท่าที่ควรจะเป็น ส่วนหนึ่งคงเป็นเพราะมันไม่หล่อเหมือน  iPhone อันนี้เรื่องจริงต้องยอมรับ แต่ในระยะยาวก็ไม่แน่ เพราะ Android Open source และยังมี Google หนุนหลังเต็มที่ สำหรับตัวผมแล้วติดว่า โทรศัพท์ที่ใช้ Android ส่วนใหญ่ราคาไกล้เคียงกับ iPhone แต่ความสามารถนั้นสู้ไม่ได้ อย่างน้อยก็มัลติทัช แล้วก็เอฟเฟกต์วิ้งๆทั้งหลายแหล่ จะมีดีกว่าก็เพียงแต่มันไม่ยุ่งยาก จุกจิกกวนใจเหมือน iPhone ทำอะไรนิดอะไรหน่อยก็หมดประกัน ถ้า HTC Magic ราคาลงมาสัก 5000 อย่างนี้จะเลือกง่ายขึ้นเยอะ ด้าน [...]

Also posted in Android | Tagged , , , , | 1 Comment

ติดตั้ง Postgres ลงบน Ubuntu 9.04 อย่างง่ายและรวดเร็ว

ผมมีปัญหากับการติดตั้ง postgres มาตลอด เมื่อเปรียบเทียบกับ mysql แล้วพบว่ายุ่งยากมาก ลองใช้วิธีต่อไปนี้ทำให้ติดตั้ง postgres ภายในสามนาที!! sudo apt-get install postgresql pgadmin3 python-psycopg2 หลังจากรอขั้นตอนการติดตั้งจนเสร็จเรียบร้อยแล้วให้ตั้งรหัสผ่านให้กับ user postgres เพื่อไปติดตั้งส่วนอื่นๆต่อไปดังนี้ sudo -u postgres psql postgres=# password postgres postgres=# q ได้รหัสผ่านของ user postgres แล้ว!! อย่าลืมแก้ไฟล์ sudo nano /etc/postgresql/8.3/main/pg_hba.conf ตรงบรรทัด # “local” is for Unix domain socket connections only local all all ident sameuser # IPv4 local connections: [...]

Tagged , | Leave a comment

The Django template language

เกี่ยวกับเอกสารนี้ เอกสารนี้อธิบายรายละเอียดเกี่ยวกับไวยากรณ์ของ Django Template . หรือมีข้อสงสัยหรือปัญหาการใช้งาน โปรดอ่าน The Django template language: For Python programmers. Django template นั้นออกแบบมาอย่างสมดุลระหว่างความสามารถและความง่ายดาย. มันถูกออกแบบมาให้สามารถทำงานกับ HTML ได้สะดวก นั่นรวมถึง Text-Based อื่นๆด้วย. หลักการ ถ้าคุณเคยมีพื้นฐานการเขียนโปรแกรมที่ฝังโค้ดใน HTML แล้ว คุณจะรู้สึกเหมือนได้กลับบ้านอีกครั้ง การใช้ Django template จะเป็นอะไรที่ง่ายดาย แต่ถ้าหากคุณหวังว่าจะเห็นโค้ด Python ใน Django template แล้ว ต้องขอแสดงความเสียใจที่ทำให้ผิดหวัง The Django template มีฟังชั่นเหมือนกับภาษาโปรแกรมทั่วไป มี if tags เพื่อตรวจสอบเงื่อนไข มี for loop เอาไว้วนให้ปวดหัวเล่น Django template จะรันเพียง template [...]

Also posted in Django, Python | Tagged , , , | Leave a comment

จำนวนเฉพาะกับตะแกรงเอราทอสเทนีส

ไปอ่านเจอมา เขียนไว้กันลืม def primes(n): “”" primes(n) –> primes Return list of primes from 2 up to but not including n. Uses Sieve of Erasth. “”" if n < 2: return [] nums = range(2,int(n)) p = [] while nums: new_prime = nums[0] p.append(new_prime) for i in nums[1:]: if i % new_prime == 0: nums.remove(i) nums.remove(nums[0]) [...]

Also posted in Python | Leave a comment