Tags:
Topics: 
Node Thumbnail

Ruby on Rails เว็บเฟรมเวิร์คที่ได้รับความนิยมค่อนข้างสูงในงานสาย start up ขณะนี้ได้พัฒนามาถึงเวอร์ชั่น 7.1.2 ได้เผยแพร่ milestone สำหรับการอัพเกรดใหญ่เป็นเวอร์ชั่น 8.0.0 ผ่าน github ของโครงการ โดยมีรายละเอียดของ feature เพิ่มที่น่าสนใจดังนี้

Tags:
Node Thumbnail

ตามธรรมเนียมปฏิบัติของชุมชนนักพัฒนา Ruby ที่จะออก update ทุกวันคริสต์มาสของทุกปี คริสต์มาสปีนี้เวอร์ชัน Ruby 3.3.0 ก็ได้ถูกประกาศหลุดจากสถานะ Release Candidate (RC) เป็นพร้อมใช้งาน โดยในรอบปีที่ผ่านมา แนวทางการพัฒนาของ Ruby ยังมุ่งไปในทางเพื่อเพิ่ม performance เป็นหลัก ซึ่งในเวอร์ชัน 3.3.0 นี้เอง ก็ได้มีการเพิ่มและปรับปรุงที่น่าสนใจดังนี้

Tags:
Node Thumbnail

เมื่อวันที่ 25 ธันวาคม 2565 กลุ่มผู้พัฒนาได้ประกาศปล่อยภาษา Ruby เวอร์ชั่น 3.2.0 ตามธรรมเนียมของชุมชนผู้พัฒนาที่จะออกอัพเดตใหญ่ทุกวันคริสต์มาส

ไฮไลท์ของการอัพเดตครั้งนี้อยู่ที่การเริ่มรองรับการพอร์ตไป WebAssembly ผ่าน WebAssembly System Interface (WASI) ซึ่งจะทำให้โค้ดของ CRuby (ภาษา Ruby ที่ใช้ C เป็น interpreter) สามารถเรียกใช้งานได้บนเว็บเบราเซอร์หรือบนแพลตฟอร์มที่รองรับ WebAssembly และประกาศให้ YJIT ที่เป็น JIT(Just-In-Time) compiler ใหม่ให้อยู่ในสถานะพร้อมใช้บน production จากเดิมที่อยู่ในสถานะ experimental

Tags:
Topics: 
Node Thumbnail

บริษัทเอกชน 8 บริษัทที่ใช้งาน Ruby on Rails เป็นหลัก ได้แก่ Cookpad, Doximity, Fleetio, GitHub, Intercom, Procore, Shopify, และ 37signals ประกาศจัดตั้งมูลนิธิไม่แสวงผลกำไร The Rails Foundation โดยให้คำอธิบายไว้ว่ามูลนิธินี้จะมุ่งเน้นพัฒนาและปรับปรุงสภาพแวดล้อม (ecosystem) โดยรวมให้ดีขึ้นทั้งหมดและดึงดูดนักพัฒนารายใหม่ให้เข้ามาใช้มากขึ้น

มูลนิธิจะได้รับเงินทุนตั้งต้น (seed funding) 1,000,000 USD จากทั้ง 8 บริษัทและค่าบำรุงรายปีรวมกันปีล่ะ 400,000 USD ในปีถัดไปทุกปี มีตัวแทนแต่ล่ะบริษัทนั่งเป็นบอร์ดบริหาร และมี David Heinemeier Hansson ผู้สร้าง Ruby on Rails จาก 37signals เป็นประธานบอร์ด

Tags:
Node Thumbnail

ระบบจัดการแพ็กเกจซอฟต์แวร์ยอดนิยมหลายตัว เช่น NPM, PyPI เริ่มบังคับนักพัฒนาเจ้าของแพ็กเกจต้องยืนยันตัวตนแบบ MFA เพื่อป้องกันปัญหา supply chain attack นักพัฒนาโดนแฮ็กบัญชี แล้วถูกฝังมัลแวร์แพร่กระจายในวงกว้าง

RubyGems ระบบจัดการแพ็กเกจของภาษา Ruby เป็นรายล่าสุดที่เริ่มบังคับนักพัฒนาล็อกอินด้วย MFA แต่ยังจำกัดเฉพาะแพ็กเกจ (gems) ยอดนิยม 100 อันดับแรกเท่านั้น

Tags:
Node Thumbnail

ภาษา Ruby ออกเวอร์ชัน 3.1.0 ตามธรรมเนียมการออกรุ่นใหม่ทุกวันคริสต์มาส ของใหม่ที่สำคัญในเวอร์ชันนี้คือ JIT (just-in-time) compiler ตัวใหม่ที่เรียกว่า YJIT

ใน Ruby 3.0 มีการเพิ่ม JIT มาก่อนแล้ว โดยใช้ชื่อว่า MJIT และช่วยให้ Ruby 3.0 มีประสิทธิภาพเพิ่มขึ้นถึง 3 เท่าจาก Ruby 2.0

YJIT เป็นการพัฒนา JIT ไปอีกขั้น เป็นโครงการที่พัฒนาโดยบริษัท Shopify ที่ใช้ภาษา Ruby ภายในบริษัทอยู่แล้ว แนวคิดของมันคือใช้เทคนิคที่เรียกว่า Basic Block Versioning (BBV) ช่วยให้ประสิทธิภาพดีขึ้นจาก MJIT อีกราว 20-39% ขึ้นกับเบนช์มาร์คที่ใช้เปรียบเทียบ

Tags:
Node Thumbnail

Ruby on Rails ออกเวอร์ชันใหญ่ 7.0 ซึ่งมีการเปลี่ยนแปลงสำคัญ 2 เรื่องคือ ไม่ต้องผูกกับโลกของ Node.js อีกแล้ว และเปลี่ยนระบบ front-end มาเป็นตัวใหม่คือ Hotwire

David Heinemeier Hansson หรือ DHH ผู้สร้าง Rails อธิบายว่าโครงสร้างของภาษา JavaScript ในอดีตเป็นปัญหาของโปรแกรมเมอร์มาก ทางออกจึงเป็นการเขียนภาษาอื่นแล้วแปลงเป็น JavaScript (เรียกว่า transpiling เช่น CoffeeScript หรือ Babel) ที่ช่วยให้เขียนโค้ดง่ายขึ้น แต่ก็ต้องแลกมาด้วยความซับซ้อนที่เพิ่มขึ้น

Tags:
Node Thumbnail

Alex Birsan รายงานถึงการโจมตีองค์กรขนาดใหญ่จำนวนมากด้วยการสร้างแพ็กเกจไลบรารีเลียนแบบชื่อไลบรารีในองค์กรแล้วไปวางตามบริการดาวน์โหลดไลบรารีไม่ว่าจะเป็น RubyGems, npm, หรือ PyPI

องค์กรขนาดใหญ่จำนวนมากมักมีไลบรารีเฉพาะทางของตัวเองใช้งานภายในเป็นเรื่องปกติ และหลายครั้งชื่อไลบรารีเหล่านี้ก็หลุดออกมาสู่โลกภายนอก เช่น Paypal เคยทำไฟล์ package.json ที่ใช้ภายในหลุดออกมาอยู่บน GitHub ทำให้รู้ว่าบริษัทมีการใช้งานไลบรารีภายในเช่น pplogger, auth-paypal, wurfl-paypal, analytics-paypal เป็นต้น หรือแม้แต่แอปเปิลก็เคยทำรายชื่อแพ็กเกจเหล่านี้หลุดออกมาเช่นกัน

Tags:
Node Thumbnail

โครงการภาษาโปรแกรม Ruby ออกรุ่น 3.0 ตัวจริงตามที่ประกาศว่าจะออกวันคริสตมาส กลายเป็นจุดตัดของการอัพเกรดภาษาที่เข้ากับเวอร์ชั่น 2.x ไม่ได้อีกต่อไป

ทางโครงการระบุว่าเวอร์ชั่น 3.0.0 นี้มีเป้าหมาย 3 ประการ ได้แก่

Tags:
Node Thumbnail

Google Cloud Functions บริการประมวลผลแบบ serverless ของฝั่งกูเกิล (ที่เทียบได้กับ Amazon Lambda ของฝั่ง AWS) ประกาศรองรับรันไทม์อีก 2 ภาษาคือ .NET Core 3.1 และ Ruby

ประกาศนี้ทำให้ตอนนี้ Cloud Functions รองรับภาษาทั้งหมด 6 ภาษาคือ Java 11, Node.js (8/10/12), Python (3.7/3.8) และ Go

การเพิ่มจำนวนภาษาที่รองรับในรอบนี้ ทำให้ Cloud Functions ทัดเทียมกับคู่แข่ง Lambda ที่รองรับทั้งหมด 7 ภาษา (6 ภาษาแรกเหมือนกัน เพิ่ม PowerShell มาอีกหนึ่งภาษา) ในขณะที่ Azure Functions ของไมโครซอฟท์รองรับ .NET Core 3.1 (C#/F#), Node.js, Java, Python, PowerShell, TypeScript

Tags:
Node Thumbnail

Yukihiro Matsumoto ผู้สร้างภาษา Ruby ยืนยันว่าจะออก Ruby 3 ในวันที่ 25 ธันวาคมหรือวันคริสตมาสปีนี้ หลังจากก่อนหน้านี้มีกำหนดปล่อย Ruby 3 พร้อมกับการแข่งขันโอลิมปิกในโตเกียวแต่โอลิมปิกเลื่อนออกไป

Tags:
Topics: 
Node Thumbnail

GitHub รายงานถึงการอัพเกรด Ruby ที่ GitHub ใช้งานเป็นหลัก รวมโค้ดกว่า 400,000 บรรทัด โดยมีความเปลี่ยนแปลงสำคัญคือการแจ้งเตือนการยกเลิกรองรับ Hash แทน keyword argument ใน Ruby 3 แม้ว่าจะยังใช้งานได้ใน Ruby 2.7 ก็ตาม แต่ GitHub ยืนยันว่าจะใช้โค้ดแบบไม่มีคำเตือน deprecated ทำให้ต้องแก้ไขโค้ดจำนวนมาก

Tags:
Node Thumbnail

Ruby ออกเวอร์ชั่น 2.7.0 เมื่อวันคริสตมาสที่ผ่านมา โดยเพิ่มฟีเจอร์หลัก 4 รายการ ได้แก่

  • Pattern Matching รองรับการอ่านค่าตัวแปรจากชุดข้อมูลโดยดูจากรูปแบบข้อมูลรอบข้าง ฟีเจอร์นี้ยังเป็นระดับทดลอง (experimental)
  • ปรับปรุงคอนโซล irb ใน irb รองรับการแก้ไขโค้ดหลายบรรทัดได้แล้ว ทำให้แก้โค้ดได้ซับซ้อนขึ้น
  • บีบหน่วยความจำ ฟีเจอร์ Compaction GC รองรับการบีบพื้นที่หน่วยความจำในกรณีที่มีการรันหลายเธรดแล้วการจองหน่วยความจำกระจัดกระจาย ทำให้โปรแกรมใช้หน่วยความจำเกินจำเป็น และทำงานช้าลง สามารถเรียกฟังก์ชั่น GC.compact มาบีบลงได้
  • แยก argument แบบ keyword ออก การเรียกฟังก์ชั่นโดยมีอาร์กิวเมนต์แบบระบุตำแหน่งและแบบระบุชื่อ (keyword argument) จะถูกแยกออกจากกัน โดยหากใช้ผสมแบบเดิมจะเริ่มเตือนในเวอร์ชั่นนี้ และจะถอดออกสมบูรณ์ใน Ruby 3.0
Tags:
Node Thumbnail

Google App Engine ประกาศรองรับภาษา Ruby ในสภาพแวดล้อมแบบ Standard Environment แล้ว หลังเปิดใช้งานแบบ Flexible Environment มาตั้งแต่ปี 2016 นับเป็นภาษาที่ 7 ของ Standard Environment

Standard Environment เป็นการรันแอพพลิเคชันใน sandbox ของกูเกิลเอง โดยใช้ได้เฉพาะภาษาและเวอร์ชันที่กูเกิลกำหนดให้เท่านั้น ข้อดีคือราคาถูกกว่า ขยายเครื่องได้เร็วกว่า ส่วน Flexible Environment เป็นการรันใน Docker/VM ที่ยืดหยุ่นกว่าในเรื่องภาษา แต่ราคาก็แพงกว่า (เปรียบเทียบความแตกต่าง)

Tags:
Topics: 
Node Thumbnail

สองวันก่อนมีรายงานถึงโครงการโมดูล rest-client ในที่เป็นไลบรารีภาษา Ruby ถูกเพิ่มโค้ดเข้ามาในเวอร์ชั่น 1.6.13 และเป็นโค้ดมุ่งร้าย ที่จะดาวน์โหลดไฟล์จากอินเทอร์เน็ตเข้ามารันบนเครื่อง จากการสอบสวนพบว่า Matthew Manning ผู้ดูแลโครงการถูกแฮกบัญชีใน Rubygems จนคนร้ายสามารถอัพโหลดโมดูลขึ้นไปได้เอง

ทาง Rubygems สอบสวนเพิ่มเติมและพบว่าที่จริงแล้วมีโมดูลอีกนับสิบที่มีโค้ดแบบเดียวกัน แต่โมดูลส่วนมากเป็นการนำโค้ดโมดูลอื่นมาเพิ่มโค้ดมุ่งร้ายและอัพโหลดไปใหม่ในชื่ออื่น โดยโค้ดเหล่านี้ถูกดาวน์โหลดไปบ้างระดับร้อยครั้งต่อโมดูล รวมแล้วมีโค้ดถูกดาวน์โหลดทั้งหมดหลายพันครั้ง

Tags:
Node Thumbnail

ฟีเจอร์ย่อยของ macOS Catalina (OSX 10.15) นอกจากจะเปลี่ยน bash เป็น zsh แล้ว ยังมีการเปลี่ยนแปลงปลีกย่อยที่มีความสำคัญอยู่อีกหลายอย่าง ได้แก่

Tags:
Node Thumbnail

นับจากภาษา Ruby ออกเวอร์ชัน 2.0 ในปี 2013 เป็นต้นมา โครงการ Ruby เปลี่ยนมาใช้วิธีออกรุ่นใหม่ปีละครั้งในช่วงวันคริสต์มาสของทุกปี ซึ่งเวอร์ชันใหม่ของปีนี้นับมาถึง Ruby 2.6.0 แล้ว

ของใหม่ที่สำคัญใน Ruby 2.6 คือเริ่มทดลองใช้คอมไพเลอร์แบบ JIT (Just-In-Time) เพื่อประสิทธิภาพที่ดีขึ้น โดยวิธีการทำงานของ Ruby JIT จะแปลงโค้ดภาษา Ruby มาเป็นภาษา C ก่อน เพื่อให้คอมไพเลอร์ภาษา C ตัวอื่นๆ (เช่น GCC, Clang หรือ Microsoft VC++) แปลงโค้ดภาษา C เป็นเนทีฟอีกต่อหนึ่ง

Tags:
Node Thumbnail

บริการ AWS Lambda เปิดตัวเมื่อปี 2014 และเป็นผู้บุกเบิกการประมวลผลแบบ serverless ที่ไม่ต้องเปิดเครื่องค้างไว้รอรับคำสั่งตลอดเวลา ก่อนหน้านี้ Lambda รองรับโค้ดภาษา Java, Node.js, C#, Python และเมื่อต้นปีนี้คือ Go

ล่าสุด AWS Lambda ประกาศรองรับการนำเข้ารันไทม์ภาษาใดก็ได้แล้ว (custom runtime) พร้อมทั้งประกาศรองรับภาษาใหม่คือ Ruby, C++ และ Rust ผ่านระบบรันไทม์ใหม่นี้

Tags:
Node Thumbnail

เฟรมเวิร์ค Ruby on Rails ออกรุ่น 5.0 เพิ่มฟีเจอร์สำคัญสองอย่างได้แก่ Action Cable และ API mode

Action Cable เป็นเฟรมเวิร์คสำหรับการรองรับ WebSocket ใน Rails และเพื่อรองรับ WebSocket เซิร์ฟเวอร์สำหรับโหมดพัฒนาจะกลายเป็น Puma แทน Webrick

API mode โหมดสำหรับรัน Rails โดยไม่มีหน้าเว็บ ตัวเฟรมเวิร์คจะบางลงและทำงานกับ JSON เป็นหลัก

นอกจากนี้ Rails 5.0 ยังมาพร้อมกับ Turbolinks 5.0 เฟรมเวิร์คสำหรับการพัฒนาเว็บแอปพลิเคชั่นแบบหน้าเดียวโดยไม่ต้องโหลดหน้าเว็บใหม่

Tags:
Node Thumbnail

Google App Engine เริ่มรองรับการพัฒนาโปรแกรมด้วยภาษา Ruby แล้ว สถานะตอนนี้ยังเป็นขั้น Beta แต่นักพัฒนาก็สามารถใช้เฟรมเวิร์คยอดนิยมอย่าง Rails หรือ Sinatra ได้แล้ว

การใช้งาน Ruby บน App Engine ยังสามารถใช้แพ็กเกจ gcloud เพื่อเข้าถึงฟีเจอร์ต่างๆ ของ Google Cloud Platform (เช่น BigQuery หรือ Cloud Datastore) ได้ทันที นอกจากนี้กูเกิลยังเปิดซอร์สตัวซอฟต์แวร์ทั้งหมดที่ใช้รัน Ruby บน App Engine ต่อสาธารณะด้วย

ก่อนหน้านี้ App Engine รองรับการพัฒนาด้วยภาษา Python, Java, Go ตามด้วย PHP และ Node.js รวมทั้งหมด 5 ภาษา ส่วน Ruby นับเป็นภาษาที่หกครับ

Tags:
Node Thumbnail

ปัญหาความปลอดภัยจากการออกแบบของ Ruby on Rails (RoR) อาจจะทำให้หลายบริการตกอยู่ในความเสี่ยงที่แฮกเกอร์สามารถนำ cookie เดิมมาใช้งานซ้ำได้ เพราะการจัดเก็บข้อมูลซ้ำ ทำให้เว็บแอพพลิเคชั่นที่ไม่ระวัง กลับใส่ข้อมูลการล็อกอินเอาไว้ใน CookieStore ทำให้แฮกเกอร์ที่ดักจับ cookie จากเบราว์เซอร์ผู้ใช้ได้สามารถนำกลับมาใช้ใหม่ได้เรื่อยๆ แม้ว่าผู้ใช้จะล็อกเอาต์ไปแล้ว

Tags:
Topics: 
Node Thumbnail

เว็บไซต์หลักของภาษา Ruby (http://www.ruby-lang.org) เตรียมปรับโฉมใหม่แบบยกเครื่องฉลอง 20 ปี ใครมีไอเดียอยากเห็นเว็บใหม่เป็นแบบไหน ก็ส่งงานออกแบบเข้าร่วมประกวดได้ภายใน 15:00 นาฬิกาของวันที่ 8 พฤศจิกายนนี้ครับ (รายละเอียดทั้งหมด)

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

ที่มา: Ruby News

Tags:
Node Thumbnail

ช่องโหว่ของ Ruby on Rails ที่ถูกค้นพบในเดือนมกราคมปีนี้ กลายเป็นช่องทางสำคัญให้แฮ็กเกอร์เจาะเข้าไปยังเซิร์ฟเวอร์ที่ติดตั้ง Rails เอาไว้ และเปลี่ยนเซิร์ฟเวอร์เหล่านี้เป็น botnet สำหรับอาชญากรรมคอมพิวเตอร์ด้านอื่นๆ (เช่น มัลแวร์) ต่อไป

ช่องโหว่ตัวนี้ของ Rails มีความรุนแรงในระดับสูง (critical) เพราะเปิดโอกาสให้แฮ็กเกอร์ส่งโค้ดอันตรายเข้ามารันบนเซิร์ฟเวอร์ได้จากระยะไกล ทางทีมพัฒนา Rails ออกแพตช์แก้นานแล้วแต่ก็ยังมีเซิร์ฟเวอร์อีกจำนวนมากที่ยังไม่ได้อัพแพตช์ตาม และกลายเป็นเหยื่อของช่องโหว่นี้ในที่สุด

ผู้ใช้ Rails ควรอัพเกรดเป็นเวอร์ชัน 3.2.11, 3.1.10, 3.0.19, 2.3.15 ขึ้นไปครับ

Tags:
Node Thumbnail

หลังจากประกาศรุ่นพรีวิวมาได้พักใหญ่ ตอนนี้ Ruby 2.0 ก็ปล่อยรุ่นเสถียรตามสัญญาแล้วครับ โดยรายการของใหม่มีดังนี้

Tags:
Node Thumbnail

บั๊กใน Roby on Rails ที่ใช้โมดูล XML parameter เพื่อรับค่าพารามิเตอร์ในการโพสแบบ XML กำลังทำให้เว็บไซต์ที่รัน Ruby on Rails แทบทั้งหมดเจอปัญหา remote code execution หรือการรันโค้ดที่รับมาจากผู้ใช้

ปัญหาเกิดจากโมดูลสำหรับ parse XML นั้นรองรับค่าชนิด symbol และ yaml โดยโครงสร้างความปลอดภัยของภาษา Ruby นั้นไม่ควรให้ค่า symbol ถูกส่งมาจากภายนอกได้ รวมถึงค่าของ yaml นั้นสามารถใช้รันโค้ดบางส่วนได้โดยโครงสร้างของมันเอง จึงไม่ควรนำมาใช้รับค่าจากผู้ใช้ภายนอก

เว็บไซต์ที่ใช้ Ruby on Rails ทั้งหมด (มากกว่า 240,000 เว็บไซต์ทั่วโลก) ควรแพตซ์โค้ดที่ใช้งานอยู่เพื่อยกเลิกการรับค่าแบบ XML ออกไป หรือไม่เช่นนั้นอาจจะอัพเกรดโค้ดไปยังเวอร์ชั่นล่าสุด

Pages