Codecademy เว็บสอนการเขียนโปรแกรมแบบโต้ตอบ (มี interpreter ให้เล่นผ่านเว็บ) ได้เพิ่มหลักสูตรการเขียนโปรแกรมด้วยภาษา Python แล้ว
แต่เดิมนั้น Codecademy มีเพียงแค่หลักสูตรเขียนเว็บด้วยเทคโนโลยีฝั่ง client-side เท่านั้น (HTML, JavaScript, CSS) สำหรับ Python ถือเป็นหลักสูตรแรกที่ไม่ได้เจาะจงไปยังเทคโนโลยีเว็บโดยตรง ซึ่งนับเป็นนิมิตหมายอันดีที่จะได้เห็นภาษาอื่นๆ อีกมากมายในอนาคตครับ
เข้าไปเริ่มต้นเรียน Python ได้เลยทันที งานนี้ฟรีทุกอย่างถ้ามีเวลาให้ครับ
ที่มา: TechCrunch
ไมโครซอฟท์ประกาศขยายขีดความสามารถของแพลตฟอร์ม Windows Azure อีกหลายอย่าง
ในส่วนของ Azure ที่เป็น PaaS แบบเดิม ไมโครซอฟท์เพิ่มไลบรารีภาษา Python และ Java เข้ามา (จากเดิมที่รองรับ .NET, PHP, Node.js) ออกปลั๊กอินสำหรับ Eclipse/Java, รองรับ MongoDB, ใช้งาน Memcached สำหรับภาษาที่ไม่ใช่ตระกูล .NET และรองรับ Apache Solr/Lucene
สำหรับงานด้านเว็บก็มี Windows Azure Web Sites ที่รองรับเฟรมเวิร์คด้านการพัฒนาเว็บหลายตัว เช่น ASP.NET, PHP, Node.js รวมไปถึง CMS ยอดนิยมอย่าง WordPress, Joomla!, Drupal, Umbraco, DotNetNuke โดยเชื่อมต่อกับ MySQL หรือ Windows Azure SQL ก็ได้
ข่าวนี้เก่าไปหลายเดือน แต่น่าจะเป็นประโยชน์สำหรับคนที่อยากรู้ว่าบริการยอดฮิตอย่าง Instagram สามารถรองรับโหลดปริมาณมหาศาลจากผู้ใช้ทั่วโลกได้อย่างไร
เรื่องนี้มีอธิบายไว้ในบล็อก Instagram Engineering
เซิร์ฟเวอร์
ระบบปฏิบัติการเซิร์ฟเวอร์เป็น Ubuntu 11.04 โดยทีมงานบอกว่า Ubuntu รุ่นก่อนๆ มีปัญหากับ EC2 แต่ในรุ่นนี้ไม่มีแล้ว
Load Balancing
เดิมที Instagram ใช้เซิร์ฟเวอร์ NGINX สองตัว สลับกันแบบ DNS Round-Robin
จากที่ได้มีผู้แจ้งปัญหาการชนกันของ hash ในงาน 28C3 เมื่อปลายปีที่ก่อน ตอนนี้ Python ก็ได้ออกอัพเดตแก้ปัญหานี้แล้วครับ
ปัญหาการชนกันของ hash นี้ทำให้ผู้โจมตีสามารถสร้างข้อมูลที่มีแนวโน้มว่าจะใช้ key ชนกันได้ ทำให้ระบบต้องเสียเวลามากขึ้นในการค้นหาข้อมูลจาก hash table ที่มี key ชนกัน ซึ่งทำให้สามารถนำไปสู่การโจมตีแบบ DoS ได้ในที่สุด ปัญหานี้ถูกแก้โดยการเปลี่ยนไปใช้ฟังก์ชัน hash แบบสุ่มสำหรับ Python และแก้ไขไลบรารี Expat XML ที่เขียนบน C
อัพเดตนี้มีเป็น installer ให้สำหรับ Python 2.7.3 และ 3.2.3 ส่วนเวอร์ชัน 2.6.8 และ 3.1.5 ต้องดาวน์โหลดโค้ดไปคอมไพล์กันเองนะครับ
นอกเหนือจากภาษายอดนิยมอย่าง C++, Java แล้ว กลุ่มภาษาที่กำลังมาแรงน่าจับตามองคงหนีไม่พ้น PHP, Python และ Ruby ที่ต่างยึดพื้นที่การใช้งานในด้านต่างๆ เป็นของตัวเอง
บล็อกของ Udemy ซึ่งเป็นวิทยาลัยออนไลน์ในต่างประเทศ ได้สร้าง infographic ข้อมูลของภาษาทั้ง 3 เปรียบเทียบกัน ผมคัดข้อมูลที่น่าสนใจบางส่วนมาไว้ตรงนี้ ข้ามไปดูที่รูปสำหรับข้อมูลเต็มๆ ได้ในข่าวเลยครับ
ช่วงนี้มีงาน VMworld 2011 ของบริษัท VMware ดังนั้นจะมีข่าวผลิตภัณฑ์ใหม่ๆ สายนี้ออกมาค่อนข้างเยอะ คัดมาเฉพาะข่าวสำคัญๆ บางส่วนนะครับ
ในที่สุด Django 1.3 ก็มาจนได้ โดย Django 1.3 นั้นจำเป็นต้องทำงานร่วมกับ Python 2.4 ซึ่งนับเป็นเวอร์ชั่นสุดท้ายของ Django แล้วที่ทำงานร่วมกับ Python 2.4 เนื่องจาก Django 1.4 จะเปลี่ยนไปทำงานร่วมกับ Python 2.5 แทน (release notes - ดาวน์โหลด)
ที่มา - Django Blog
ฟีเจอร์ที่เพิ่มเข้ามาใหม่ใน Django 1.3 มีดังนี้
หลังจากไมโครซอฟท์เริ่มถอนตัวออกจากภาษาในกลุ่ม dynamic เช่น Python และ Ruby ก็สัญญาว่าจะเริ่มส่งเครื่องมือสำหรับการใช้ภาษาเหล่านี้ให้กับชุมชนโอเพนซอร์ส วันนี้ไมโครซอฟท์ก็เปิดตัว Python Tools for Visual Studio Beta หรือ PTVS ที่งาน PyCon 2011
PTVS จะมาพร้อมกับเครื่องมืออย่างครบถ้วนเช่น Intellisense, การเบราซ์โค้ด, รวมถึงการพัฒนาและดีบั๊กบนคลัสเตอร์ และมันใช้งานได้ทั้ง IPython ที่รันบนแพลตฟอร์ม .NET และ CPython
Bluebream ออกรุ่น 1.0 released (18 มกราคม 2554) แล้วหลังจากเป็นเบต้ามานานส่วนทางด้าน Grok ก็ออกรุ่น 1.3 ในเวลาไล่ๆกัน (20 มกราคม 2554) ทั้งคู่เป็น python web application framework ที่พัฒนาบน Zope3 ใช้ Zope toolkit (ZTK) เป็นหลัก
แม้ Python 3 จะยังไม่ได้รับความนิยมมากนัก แต่ก็ยังมีการพัฒนาต่อเนื่อง (พร้อมกับกำหนดการหยุดซัพพอร์ต Python 2.x ที่ใกล้เข้ามาเรื่อยๆ) ใน Python 3.2 beta 1 ที่น่าจะมีฟีเจอร์เท่าๆ กับตัวจริงแล้วก็มีฟีเจอร์ที่น่าสนใจเพิ่มเข้ามาสองเรื่องคือ การรับประกัน ABI และระบบประมวลผลแบบ Executor
การระบประกัน ABI จะช่วยให้ส่วนขยายของ Python ไม่ต้องคอมไพล์ใหม่ทุกครั้งที่มีรุ่นใหม่ออกมา โดยมีข้อจำกัดคือผู้พัฒนาส่วนขยายจะต้องใช้โครงสร้างข้อมูลและฟังก์ชั่นตามที่กำหนดเท่านั้น ที่แน่ๆ คือสามารถ รวมไลบรารีของ Python ได้เพียงสองไฟล์คือ Python.h
และ pyconfig.h
พร้อมกับต้องประกาศมาโคร Py_LIMITED_API
เพื่อซ่อนฟังก์ชั่นที่ไม่รับประกันความเข้ากันได้ระหว่างรุ่นไปทั้งหมด
ActiveState ผู้พัฒนาซอฟต์แวร์เพื่ออำนวยความสะดวกในการพัฒนาภาษาสคริปต์ได้เปิดตัว ActivePython Amazon EC2 AMI สำหรับการพัฒนาแอพลิเคชั่นด้วยภาษาไพธอนบนกลุ่มเมฆประมวลผลของอเมซอน
ทาง ActiveState ระบุว่าสินค้าใหม่นี้ไม่ได้เป็นคู่แข่งกับ Google App Engine โดยตรงเพราะ App Engine นั้นจำกัดการประมวลผลอยู่ที่แต่ละครั้งของการเรียกขอข้อมูลเท่านั้น และการคิดราคาก็เป็นการคิดราคาต่อครั้งที่มีการเรียกใช้โดยตรง ขณะที่ EC2 ของอเมซอนนั้นเราสามารถเลือกซื้อทรัพยากรสำหรับการประมวลผลจากอเมซอนได้อย่างอิสระ
ก่อนหน้านี้มีข่าวมาสักพักแล้วว่าไมโครซอฟท์เริ่มเปลี่ยนนโยบายการสนับสนุนภาษา dynamic โดยการลดทรัพยากรที่ทุ่มลงมาสู่โครงการเช่น IronPython และ IronRuby ลงไปเรื่อยๆ แต่วันนี้ก็ชัดเจนแล้วว่าไมโครซอฟท์คืนโครงการนี้เป็นโครงการโอเพนซอร์สอย่างสมบูรณ์ใน CodePlex
ไมโครซอฟท์ระบุว่าการเปลี่ยนแปลงนี้จะทำให้
ดูหัวข่าวแล้วน่าจะเดากันได้ ต่อไปนี้เราสามารถใช้คำสั่งเหล่านี้ได้แล้ว!
$ google picasa create --title "My album" ~/Photos/vacation/*.jpg $ google blogger post --blog "My blog" --tags "python, googlecl, development" my_post.html $ google calendar add "Lunch with Jason tomorrow at noon" $ google docs edit --title "Shopping list" --editor vim
Google Command Line หรือ GoogleCL เป็นโปรแกรมอำนวยความสะดวกที่เขียนด้วย Python และต่อเชื่อมกับ Gdata library ภาคภาษา Python
มีแบบ .deb ให้ดาวน์โหลดสำหรับคนใช้ Debian/Ubuntu และถ้าใช้ลินุกซ์ค่ายอื่นก็โหลดเป็น tar.gz มาตามปกติ
หลังจากที่มาตรฐาน wsgi ได้รับการยอมรับในชุมชน python มากขึ้นเรื่อยๆ การเชื่อมต่อ python เข้ากับเว็บด้วยเส้นทางอื่นๆ ก็เสื่อมความนิยมไปอย่างต่อเนื่อง จนกกระทั่งรุ่นบุกเบิกอย่าง mod_python ก็ถูกถอดออกจากการสนับสนุนของ Apache Foundation ในที่สุด
การประกาศนี้มีขึ้นในการประชุมบอร์ดของ Apache Foundation เมื่อวานนี้ ส่งผลให้ mod_python เข้าสู่สถานะ Attic ซึ่งหมายความว่าจะไม่มีการพัฒนาโครงการนี้อีกต่อไป รวมถึงการแก้บั๊กต่างๆ ด้วย
ที่มา - Graham Dumpleton
หลังจากออก Django 1.0 ไปเมื่อเกือบ 1 ปีก่อน ตอนนี้ Django 1.1 ออกตามมาแล้วครับ
ของใหม่
Google App Engine Python SDK ออกรุ่น 1.2.3 แล้วครับ และที่มาเขียนข่าวเรื่องนี้ก็เพราะว่ามีบรรทัดหนึ่งที่น่าสนใจจากหน้า Release Notes:
Last but not least, the 1.2.3 release is full of other new stuff as well! Stay tuned to the blog for more updates or check the release notes for exciting info on:
สงครามศาสนาอีกสมรภูมิหนึ่งที่สู้กันดุเดือดคือโลกของ Version Control System (VCS หรือบางที่ก็เรียก Revision Control) โดยแนวโน้มของตลาดกำลังขยับจาก VCS แบบ client-server อย่าง CVS/SVN มาเป็น distributed VCS อย่าง Git, Bazaar (BZR) และ Mercurial (Hg)
ส่วนของโครงการ Python นั้นได้ประกาศออกมาแล้วว่าจะย้ายจาก SVN ไปเป็น Mercurial (Hg) โดย Guido van Rossum ผู้สร้าง Python เป็นคนเลือก (ตัวเลือกอีกอันคือ Bazaar) แต่ยังไม่ประกาศว่าจะย้ายเมื่อไร
Mercurial เขียนด้วย Python และถูกสร้างขึ้นมาใช้แทน BitKeeper สำหรับเคอร์เนลของลินุกซ์ (ซึ่งสุดท้ายแล้วแพ้ให้กับ Git ที่ Linus เป็นคนสร้างเอง) แต่โครงการใหญ่ๆ หลายอันก็ใช้ Hg เช่น Mozilla, OpenJDK, OpenSolaris และโครงการของซันแทบทั้งหมด
แม้ว่าภาษา Python จะมีความดีงามหลายๆ อย่างโดยเฉพาะตัว syntax ที่เข้าใจได้ง่ายมาก แต่โครงสร้างของ Python เองนั้นยังคงมีปัญหาในแง่ของประสิทธิภาพ และการทำงานแบบขนานบนคอมพิวเตอร์ที่มีหลายซีพียูอยู่
งานนี้กูเกิลในฐานะคนใช้ Python ระดับ "ตัวพ่อ" คนหนึ่ง (Guido van Rossum คนสร้าง Python ก็ทำงานที่กูเกิล) ก็เปิดโครงการพัฒนา Python ในชื่อโครงการ unladen-shallow โดยมีเป้าหมายคือ
IronPython ซึ่งเป็นหัวหอกของภาษาไดนามิคบน .Net Framework ได้ออกเวอร์ชัน 2.0 มาแล้วครับ
สำหรับเวอร์ชัน 2.0 นี้ถือเป็นการเปลียนแปลงครั้งใหญ่ คือเปลี่ยนจากทำงานบน CLI ไปเป็นทำงานบน Dynamic Language Runtime (DLR) แทน ซึ่ง DLR นี้ถูกออกแบบมาสำหรับพัฒนาภาษาไดนามิคบน .Net โดยเฉพาะ
จุดเปลี่ยนแปลงอื่นๆ จาก 1.1.2 ก็เช่น ปรับปรุงให้เข้ากันได้กับ Python 2.5 (จากเดิม 2.4.4), แก้บั๊กกว่า 500 จุด, มีตัว Installer มาให้, รองรับการทำงานกับ Silverlight และปรับปรุงให้ทำงานได้เร็วขึ้นครับ
สำหรับเวอร์ชัน 2.0 นี้ต้องอาศัย .NET 2.0 SP1 ครับ
หลังจากพัฒนากันมาอย่างยาวนาน Python 3.0 หรือที่รู้จักกันในชื่อ Python 3000 ก็เสร็จสมบูรณ์แล้ว
Guido van Rossum ผู้สร้างภาษา Python บอกว่า Python 3.0 นี้จงใจพัฒนาให้ "เข้ากันไม่ได้" (incompatible) กับเวอร์ชันก่อน (2.6 และสาย 2.x) ด้วยเหตุผลด้านโครงสร้างของภาษา รายการเปลี่ยนแปลงแบบคร่าวๆ มีดังนี้
* ที่ชัดเจนมากคือเปลี่ยน print จากเดิมเป็น statement กลายมาเป็นฟังก์ชัน
เดิม: print "The answer is", 22
ใหม่: print("The answer is", 22)เดิม: print x
ใหม่: print (x)
InfoWorld มีสกู๊ปเกี่ยวกับอนาคตของภาษาโปรแกรมแบบไดนามิก ว่าจะไปในทิศทางใด จำนวน 10 ข้อ
งาน DjangoCon ที่เพิ่งผ่านไป นอกจากเป็นการเปิดตัว Django 1.0 แล้ว ชุมชน Django ยังมาระดมสมองถึงทิศทางของ Django ในอนาคต โดยมีนักพัฒนาหลักทั้งสองคนคือ Adrian Holovaty และ Jacob Kaplan-Moss เป็นแกนนำ
หลังจากพัฒนากันมาเป็นเวลากว่า 3 ปี ในที่สุดวันนี้ก็มาถึง Django 1.0 ออกมาให้ได้ใช้งานกันแล้วครับ โดยเวอร์ชั่นนี้จัดเป็นการพัฒนาอย่างก้าวกระโดดนับตั้งแต่เวอร์ชั่น 0.96 Stable ซึ่งได้มีการ Commit ไปกว่า 4,000 ครั้ง แก้บั้กกว่า 2,000 จุด แก้ไขโค้ดโปรแกรมกว่า 350,000 บรรทัด และยังมีการเพิ่มเติมเอกสารประกอบการใช้งานใหม่อีกกว่า 40,000 บรรทัด
นอกเหนือจากประเด็นหลักอย่างเรื่องเสถียรภาพแล้ว หลายสิ่งหลายอย่างได้ถูกเพิ่มเติมและแก้ไขในเวอร์ชั่น 1.0 นี้ อาทิเช่น
Reddit เว็บไซต์ข่าวชื่อดังที่ให้ผู้อ่านเป็นคนส่งเรื่องและโหวตข่าว (ถึงจะโดน Digg กลบความดังไปเสียเยอะ) ได้ประกาศโอเพนซอร์สเอนจิน CMS ของตัวเองเมื่อวานนี้
ตัวโค้ดของ Reddit มีสัญญาอนุญาตเป็น Common Public Attribution License (CPAL) ซึ่งปรับแก้จาก Mozilla Public License เล็กน้อย โดยบอกว่าถ้านำ Reddit ไปใช้ในเว็บไซต์ที่เปิดให้คนทั่วไปเข้าชม ต้องประกาศว่าใช้โค้ดของ Reddit และเปิดเผยโค้ดส่วนที่แก้ไขจากเดิมด้วย
โครงการ Jython (เขียน syntax ด้วยภาษาไพธอน แต่แปลงออกมาเป็น Bytecode ของจาวา) สามารถใช้เฟรมเวิร์กสำหรับพัฒนาเว็บแอพพลิเคชันอย่าง Django ได้แล้ว (สำหรับคนที่ไม่รู้จัก Python/Django เทียบได้กับ Ruby/Rails)
สำหรับตอนนี้ขั้นตอนยังยุ่งยากเล็กน้อย คือต้องใช้ทั้ง Jython และ Django เวอร์ชันใหม่ล่าสุดจาก SVN และลงแพตช์อีก 2 ตัว (คาดว่าในอนาคตแพตช์นี้จะเข้า Django) ปัจจุบันยังสนับสนุนแค่ PostgreSQL ส่วน MySQL เห็นว่ามี experimental backend แล้ว แต่ทั้งหมดนี้เป็นสัญญาณอันดีว่าอีกไม่นาน Django บน Jython จะใช้งานได้อย่างสมบูรณ์