Image
By lew Founder on Tag: Ruby, Stripe, Programming
Ruby

Fable Tales และ Anna Mason ทีมงาน Stripe รายงานถึงการจัดฟอร์แมตซอร์สโค้ดของ Stripe ทั้งหมดในภาษา Ruby เมื่อปี 2024 รวม 62,213 ไฟล์ คิดเป็น 25 ล้านบรรทัดซึ่งน่าจะเป็นซอร์สโค้ด Ruby ที่ใหญ่ที่สุดในโลก แต่โค้ดกลับไม่มีมาตรฐานกลางในการจัดฟอร์แมตทำให้มีลายมือต่างกันไป

ก่อนหน้านี้ Stripe พยายามใช้ formatter มาก่อน โดยเลือก prettier-ruby แต่ไม่ประสบความสำเร็จเพราะทำงานช้าเกินไป บางไฟล์ที่ขนาดใหญ่มากๆ ถึงกับแครชไปเลย ขณะที่โปรแกรม rubocop ที่ใช้ lint ก็ไม่ได้ทำหน้าที่ formatter โดยตรง แถมมีกฎให้คอนฟิกจำนวนมาก ทำให้แต่ละคนคอนฟิกไม่ตรงกัน

By wittawasw Contributor on Tag: Ruby, Programming
Ruby

ทีมพัฒนา Ruby ประกาศปล่อยภาษา Ruby เวอร์ชัน 4.0.0 อย่างเป็นทางการ ตามธรรมเนียมของชุมชน Ruby ที่จะออกอัปเดตเวอร์ชันใหม่ในวันคริสต์มาสของทุกปี

Ruby 4.0.0 เป็นการอัปเดตใหญ่ที่ต่างจากทุกปีตรงที่มีการเปลี่ยนสโลแกนดั้งเดิมที่ใช้ว่า "programmer happiness" (ความสุขของโปรแกรมเมอร์) เป็น "A language where people gather, a site where people are visible." (ภาษาที่ผู้คนมารวมกัน และเป็นพื้นที่ที่ผู้คนได้แสดงออก) เพื่อสื่อถึงระบบนิเวศของชุมชนนักพัฒนา Ruby ที่มีความสร้างสรรค์และเปิดกว้างเป็นจุดขายร่วมด้วย แทนการใช้แค่ความง่ายของ syntax เป็นจุดขายเพียงอย่างเดียว

By mk Founder on Tag: JetBrains, Ruby, IDE, Programming
JetBrains

JetBrains ยังเดินหน้าเปิด IDE ในเครือให้ใช้งานฟรีแบบ non-commercial หลังจากประกาศไปก่อนหน้านี้หลายตัว เช่น RustRover (Rust), WebStorm (JavaScript/TypeScript), Rider (Unreal) และ CLion (C++)

รอบนี้เป็นคิวของ RubyMine IDE สำหรับเขียนภาษา Ruby ด้วยเหตุผลเดียวกันว่าต้องการเปิดกว้างให้ชุมชนนักพัฒนาเข้ามาใช้งานเครื่องมือของ JetBrains ให้มากที่สุด สำหรับงานพัฒนาแอพส่วนตัว งานอดิเรก และภาคการศึกษา

By lew Founder on Tag: AMD, Programming, Basecamp, Ruby
AMD

David Heinemeier Hansson หรือ DHH ผู้สร้าง Ruby of Rails ประกาศเลิกใช้แมคเป็นเครื่องพัฒนาเมื่อต้นปีที่ผ่านมา ตอนนี้เขาก็ออกตามหาเครื่องสุดคุ้มสำหรับการพัฒนา โดยออกมาเชียร์เครื่อง Beelink SER8 เนื่องจากประสิทธิภาพดีในราคาประหยัด

SER8 ใช้ชิป AMD Ryzen™ 7 8745HS รองรับแรมสูงสุด 256GB และสตอเรจ 8TB แต่เครื่องมาตรฐานแรม 32GB และสตอเรจ 1TB นั้นราคาอยู่ที่ 499 ดอลลาร์เท่านั้น

By lew Founder on Tag: Ruby, Security, GitHub
Ruby

ไลบรารี ruby-saml ไลบรารีที่เป็นส่วนประกอบสำคัญของการทำ single sign-on บริการจำนวนมาก มีช่องโหว่จากความผิดพลาดในการ parse ค่า XML เปิดทางให้แฮกเกอร์สามารถปลอมตัวเป็นผู้ใช้อื่นได้

ช่องโหว่นี้ถูกพบจากโครงการรายงานช่องโหว่ของ GitHub ที่กำลังพิจารณาย้ายมาใช้ไลบรารี ruby-saml หลังจากเคยใช้งานมาตั้งแต่ปี 2014 แต่ถอดออกไปใช้ไลบรารีของตนเอง เมื่อพิจารณานำกลับมาใช้อีกครั้งจึงเปิด test environment ให้นักวิจัยเข้ามาทดสอบ

By lew Founder on Tag: Rails, Ruby, Open Source, Redis
Rails

Ruby on Rails ออกเวอร์ชั่น 8.0 ชูฟีเจอร์สำคัญคือการรวมเอา Kamal 2 พรอกซี่สำหรับการ deploy โครงการอย่างรวดเร็ว ต้องการเพียง SSH key จากเซิร์ฟเวอร์เท่านั้น ขณะที่ฝั่งแอปพลิเคชั่นเองมีพรอกซี่ Thruster สำหรับการบีบอัดข้อมูลและแคชในตัว ทำให้โดยรวมไม่ต้องใช้ nginx เลย

ฝั่งข้อมูลในการทำงานนั้น Rails 8 ไม่ต้องการ Redis สำหรับ PubSub, Cahce และ Queue แล้ว โดยอาศัยโครงการ Solid ที่เป็น adapter ฐานข้อมูลหันมารองรับ SQLite ทั้งหมด โดยโครงการภายในของ 37signals เองก็ใช้ SQLite บน production หลายตัว เช่น Campfire และ Writebook

By wittawasw Contributor on Tag: Ruby, Rails, Development, Programming
Ruby

Ruby on Rails เว็บเฟรมเวิร์คที่ได้รับความนิยมอย่างสูงในงานสาย startup เปิดตัวเวอร์ชัน 8.0.0 Beta 1 เป็นที่เรียบร้อยเมื่อวันที่ 27 กันยายน 2567 โดยมีสโลแกนใหม่ของการอัปเดตครั้งนี้ว่าเพื่อการ deploy แอป โดยไม่ต้องใช้ PaaS (Platform as a Service)

ใน Rails 8.0.0 Beta 1 มีฟีเจอร์สำคัญดังนี้:

By wittawasw Contributor on Tag: Ruby, Rails
Ruby

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

By wittawasw Contributor on Tag: Ruby, Programming
Ruby

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

By wittawasw Contributor on Tag: Ruby, WebAssembly, Programming
Ruby

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

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

By wittawasw Contributor on Tag: Ruby, Rails
Ruby

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

By mk Founder on Tag: Ruby, Security, Programming
Ruby

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

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

By mk Founder on Tag: Ruby, Programming, Shopify
Ruby

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

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

By mk Founder on Tag: Ruby, Rails, Node.js, Development, JavaScript
Ruby

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

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

By lew Founder on Tag: Security, NPM, Python, Ruby, JavaScript
Security

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

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

By lew Founder on Tag: Ruby, Programming
Ruby

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

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

By mk Founder on Tag: Google Cloud Functions, Google Cloud, Serverless, Google, .NET, Ruby
Google Cloud Functions

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

By lew Founder on Tag: Ruby, Open Source, Programming
Ruby

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

By lew Founder on Tag: GitHub, Ruby
GitHub

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

By lew Founder on Tag: Ruby, Open Source, Programming
Ruby

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

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