คลังเก็บป้ายกำกับ: Java

Oracle เปิด Open Source ให้ Tribuo ชุด Machine Learning Library สำหรับ Java

Oracle ได้ออกมาประกาศเปิด Open Source ให้กับ Tribuo ชุด Machine Learning Library สำหรับภาษา Java โดยเฉพาะที่พัฒนาโดยทีม Oracle Labs ภายใต้ License แบบ Apache 2.0

Credit: Tribuo

เป้าหมายของ Oracle คือการทำให้การสร้างและใช้งาน Machine Learning Model ด้วยภาษา Java นั้นกลายเป็นเรื่องที่ง่ายดายยิ่งขึ้น โดยภายใน Tribuo นี้จะรองรับความสามารถพื้นฐานในการทำ Machine Learning อย่างเช่นอัลกอริธึมสำหรับ Classification, Clustering, Anomaly Detection และ Regression เอาไว้ รวมถึงยังมี Pipeline สำหรับการ Load และ Transform ข้อมูล รวมถึงการประเมินผลเพื่อใช้ในงานประเภท Prediction ได้ด้วย

นอกจากความสามารถพื้นฐานแล้ว Tribuo นี้ยังมีการจัดเก็บสถิติของข้อมูลที่ถูกป้อนเข้ามาด้วย ทำให้ Tribuo สามารถระบุช่วงของค่าในชุดข้อมูลได้ ทำการตั้งชื่อ Feature ได้ กำหนด Feature ID และ Output ID ไม่ให้ชนกันได้ ช่วยให้ทำงานง่ายขึ้น อีกทั้งยังสามารถรับรู้ได้เมื่อมีการป้อน Feature ใหม่ๆ เข้ามาในระบบ ทำง่ายต่อการทำงานประเภท Natural Language Processing หรือ NLP มากขึ้น รวมถึงยังทำความเข้าใจกับค่าของข้อมูลได้ด้วย เช่น ถ้าหากพบค่าที่เก็บข้อมูลเป็น Float ระบบก็จะทำการวิเคราะห์ว่าค่านั้นคือความน่าจะเป็น หรือเป็น Regression Value หรือเป็น Cluster ID และยังมีความสามารถอื่นๆ อีกมากมายนอกเหนือจากนี้

Oracle มองว่า Tribuo จะเข้ามาช่วยเติมเต็มช่องว่างให้กับตลาด Machine Learning สำหรับธุรกิจองค์กรได้ เช่น อาจใช้งานร่วมกับ TensorFlow เพื่อให้ Tribuo เสริมเรื่องการทำ Machine Learning เพิ่มเติม โดย Tribuo นี้ก็มีขนาดเล็ก สามารถใช้งานได้แม้บนอุปกรณ์คอมพิวเตอร์เพียงชุดเดียว โดยรองรับการทำงานร่วมกับ Java 8 เป็นต้นไป

Tribuo สามารถทำงานร่วมกับ TensorFlow ได้ และมี Interface เชื่อมต่อกับ XGBoost และ ONNX ได้ ทำให้สามารถนำโมเดลที่เคยมีอยู่บนระบบอื่นๆ มาใช้งานได้ทันที

Oracle ได้ใช้งาน Tribuo เองแล้วในบางผลิตภัณฑ์ เช่น Oracle Fusion Cloud ERP เพื่อทำระบบ Document Recognition

ผู้ที่สนใจรายละเอียดเพิ่มเติมเกี่ยวกับ Tribuo สามารถศึกษาข้อมูลได้ที่ https://tribuo.org/ และ https://github.com/oracle/tribuo ครับ

ที่มา: https://www.arnnet.com.au/article/682955/oracle-open-sources-java-machine-learning-library/

from:https://www.techtalkthai.com/oracle-open-sources-tribuo-java-machine-learning-library/

Java 15 ออกแล้ว เพิ่ม Garbage Collector ใหม่สองตัว ZGC และ Shenandoah

ออราเคิลออก Java 15 ตามรอบการออกรุ่นทุก 6 เดือน ของใหม่ที่สำคัญในรุ่นนี้คือ ZGC ซึ่งเป็น GC (garbage collector) ตัวใหม่ที่ทำงานเร็ว (low-latency) ลดระยะการหยุดทำงานของ GC ที่เป็นปัญหาเรื้อรังของ Java มาตั้งแต่แรกลง

นอกจาก ZGC แล้ว Java 15 ยังมี GC อีกตัวให้เลือกใช้งานคือ Shenandoah ที่เน้นการเป็น low-latency เช่นกัน (แต่ใช้คนละวิธีกับ ZGC) อย่างไรก็ตาม Java ยังคงใช้ GC หลักเป็นตัวเดิมคือ G1

ของใหม่อย่างอื่นได้แก่

  • Text Blocks การเขียนสตริงยาวๆ ในโค้ด ที่ทดสอบมาตั้งแต่ Java 13
  • Hidden Classes คลาสลับที่ไม่สามารถเรียกใช้ได้โดยตรง แต่ให้เฟรมเวิร์คเรียกใช้งานตอนรันไทม์ผ่าน reflection มันถูกสร้างขึ้นมาแทน sun.misc.Unsafe::defineAnonymousClass ซึ่งไม่ได้เป็น API มาตรฐาน
  • รองรับอัลกอริทึมการเข้ารหัสแบบ Edwards-Curve Digital Signature Algorithm (EdDSA)
  • หยุดรองรับสถาปัตยกรรม SPARC และระบบปฏิบัติการ Solaris แล้ว

No Description

Java 16 มีกำหนดออกช่วงเดือนมีนาคม 2021 จากนั้นจะเป็นคิวของ Java 17 ที่จะเป็นรุ่น LTS ตัวต่อไป ถัดจาก Java 11 ซึ่งเป็น LTS รุ่นปัจจุบัน

ในประกาศเปิดตัว Java 15 ออราเคิลยังให้ข้อมูลว่าหลังเปลี่ยนมาใช้รอบการออกรุ่นทุก 6 เดือน เราก็ได้เห็นฟีเจอร์ใหม่ๆ ทยอยออกมาอย่างต่อเนื่อง ต่างจากยุค Java 8/9 ที่ต้องใช้เวลานานกว่าจะออกได้แต่ละรุ่น และการมีฟีเจอร์มากๆ ในรุ่นเดียวทำให้บริหารจัดการได้ยากกว่ามาก

No Description

สัดส่วนบริษัทที่เข้ามาร่วมพัฒนา Java ยังมาจากออราเคิลเป็นหลัก อันดับสองคือ Red Hat ตามด้วย SAP, Arm, กลุ่มนักพัฒนาอิสระ (นับทั้งหมดรวมกัน) และ Tencent

No Description

ที่มา – JDK, Oracle, Oracle Blog

Topics: 

from:https://www.blognone.com/node/118457

กูเกิลอัพเดต Jib ระบบสร้างคอนเทนเนอร์สำหรับแอปจาวา สร้างปลั๊กอินรองรับเฟรมเวร์คใหม่ได้ รองรับ Spring Boot, Quarkus, GraalVM

กูเกิลอัพเดต Jib ซอฟต์แวร์ build คอนเทนเนอร์อิมเมจสำหรับแอปจาวาโดยไม่ต้องใช้ Docker ที่ออกมาตั้งแต่ปี 2018 เพิ่มฟีเจอร์ใหม่เป็นเฟรมเวิร์คพัฒนาส่วนขยาย เปิดทางให้เพิ่มฟีเจอร์ใหม่ๆ โดยกูเกิลเองก็พัฒนาส่วนขยายของตัวเอง คือการรองรับเฟรมเวิร์ค Spring Boot, Quarkus และรองรับ GraalVM

จุดแข็งของ Jib คือการ build คอนเทนเนอร์อิมเมจ โดยไม่ต้องดาวน์โหลดอิมเมจเริ่มต้น เช่น openjdk:11-jre-slim ซึ่งหลายครั้งมีขนาดใหญ่ และระบบ build อัตโนมัติก็มักไม่ได้แคชอิมเมจเอาไว้ทำให้การ build โดยไม่ต้องดาวน์โหลดใช้เวลาสั้นกว่ามาก

Jib นับเป็นหนึ่งในโครงการยอดนิยมของกูเกิล (ดาวบน GitHub 9,300 ดาว) โดยระบบ build คอนเทนเนอร์อิมเมจโดยไม่ต้องใช้ Docker ของกูเกิลยังมีอีกตัวคือ kaniko ที่ใช้ build จาก Dockerfile เน้นการใช้งานจากภายใน Kubernetes

ที่มา – Google

No Description

Topics: 

from:https://www.blognone.com/node/117907

ถึงยุคไมโครซอฟท์ทำ Java, ช่วยพอร์ต OpenJDK ไปรันบน Windows 10 on ARM

วิศวกรไมโครซอฟท์กำลังพอร์ต Java Development Kit (OpenJDK) ไปรันบน Windows 10 on ARM โดยเริ่มจาก Java 15 ที่จะออกในเดือนมิถุนายนนี้

ตอนนี้โค้ดที่พอร์ตอยู่ระหว่างการเสนอไปยังโครงการ OpenJDK ต้นน้ำ (JEP 388) โดยเป็นความร่วมมือระหว่าง ไมโครซอฟท์กับ Red Hat ซึ่งปัจจุบัน Red Hat เป็นผู้ดูแลโครงการ OpenJDK ร่วมกับ Oracle

ผู้สนใจสามารถดาวน์โหลดไบนารีได้จาก GitHub ของไมโครซอฟท์ (openjdk-aarch64) โดยไมโครซอฟท์บอกว่าทดสอบแล้วกับ Apache Maven, Apache Ant, Gradle และ Visual Studio Code Java Extension Pack (ซึ่งตัว VS Code ก็รองรับ Windows on ARM เรียบร้อยแล้ว)

เมื่อปีที่แล้ว ไมโครซอฟท์เพิ่งซื้อกิจการบริษัท jClarified ผู้พัฒนา AdoptOpenJDK เพื่อเสริมทีมงานด้าน Java สำหรับงานฝั่งเซิร์ฟเวอร์

ที่มา – InfoWorld

from:https://www.blognone.com/node/117445

AWS เปิดตัว App2Container แปลงแอป Java/.NET เป็นคอนเทนเนอร์พาขึ้นคลาวด์ ทั้ง Kuberntes และ ECS

AWS เปิดตัวโปรแกรม App2Container โปรแกรมสำหรับแปลงแอป Java และ .NET ที่อาจจะรันบน VM ให้กลายเป็น แอปแบบคอนเทนเนอร์อัตโนมัติ พร้อมสร้างคอนฟิกสำหรับการย้ายแอปขึ้นคลาวด์ไม่ว่าจะเป็น Kubernetes หรือ AWS ECS

App2Container รองรับแอปแบบ ASP.NET (.NET 3.5 ขึ้นไป) ที่รันบน IIS 7.5 ขึ้นไป หรือแอป Java ทั้งที่รันบน JBoss, Apache Tomcat, Spring Boot, IBM WebSphere, Oracle WebLogic หรือเซิร์ฟเวอร์อื่น

การติดตั้งต้องมี AWS CLI ก่อนจึงติดตั้งได้ และหากต้องการติดต่อกับคลาวด์ AWS ก็ต้องมีคอนฟิก IAM เมื่อติดตั้งแล้ว App2Container สามารถหาแอป Java หรือ .NET ที่รันอยู่ในเครื่อง วิเคราะห์การทำงาน โปรแกรมจะแยกไฟล์ของแอปพลิเคชั่นออกมาแล้วสร้าง Dockerfile, อิมเมจของคอนเทนเนอร์, คอนฟิก ECS task, Kubernetes Deployment, CloudFormation template เรียกว่าหากทำงานได้ตามที่วางไว้ก็ย้ายขึ้นคลาวด์ได้ทันที

ที่มา – AWS Blog

No Description

Topics: 

from:https://www.blognone.com/node/117283

ผลสำรวจนักพัฒนา พบ JavaScript เป็นภาษาที่มีการใช้งานสูงสุด

JetBrains ผู้พัฒนา IDE และสร้างภาษา Kotlin เปิดเผยผลสำรวจ The State of Developer Ecosystem ประจำปี 2020 ซึ่งเป็นการรายงานปีที่ 4 จากการสอบถามนักพัฒนา 19,696 คน ใน 18 ประเทศ มีประเด็นที่น่าสนใจดังนี้

  • Python แซง Java ในแง่ภาษาที่มีการใช้งานในช่วง 12 เดือน แต่ถ้าวัดภาษาหลักที่ใช้งาน Java ยังสูงกว่า
  • JavaScript ยังเป็นภาษาอันดับหนึ่งที่มีการใช้งาน (70% ของผู้ตอบแบบสำรวจ)
  • Go, Kotlin และ Python เป็น 3 อันดับภาษา ที่นักพัฒนามีแผนจะใช้งานในอนาคตมากที่สุด

alt="Prog Lang"

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

ดูรายละเอียดผลสำรวจทั้งหมดได้ที่นี่

ที่มา: JetBrains ผ่าน Slashdot

from:https://www.blognone.com/node/116892

Duolingo ย้ายแอพ Android จาก Java เป็น Kotlin ทั้งหมดแล้ว จำนวนโค้ดลดลงไป 30%

Duolingo แอพสอนภาษาต่างประเทศชื่อดัง เล่าประสบการณ์การย้ายแอพเวอร์ชัน Android จากที่เขียนด้วยภาษา Java มาเป็น Kotlin เสร็จสมบูรณ์แล้ว 100%

Duolingo ระบุว่าใช้เวลาย้ายจาก Java เป็น Kotlin ทั้งหมด 2 ปี (เริ่มทำช่วงต้นปี 2018) เหตุผลที่ย้ายเป็นเพราะ Kotlin เขียนง่ายกว่า ดูแลโค้ดง่ายกว่า ตัดข้อกังวลเรื่องปัญหาแครช (Duolingo บอกว่าข้อความ commit ยอดฮิตช่วงก่อนหน้านี้คือ Fix NullPointerException crash ซึ่งตอนนี้ไม่มีอีกแล้ว)

No Description

ทีมพัฒนาของ Duolingo เคยมีประสบการณ์ย้ายแอพ iOS มาเป็น Swift และย้ายเว็บมาเป็น TypeScript มาก่อนแล้ว จึงเข้าใจปัญหาและความเสี่ยงของการย้ายระบบเป็นอย่างดี กระบวนการทำงานเริ่มต้นจากการศึกษา Kotlin จากเอกสารต่างๆ แล้วนำมาพรีเซนต์กันในทีม จากนั้นเริ่มแจกงานย้ายโค้ด Java เป็น Kotlin ให้โปรแกรมเมอร์ทุกคนแบบเจาะจง และกำหนดตำแหน่ง “Kotlin checker” ให้คนที่มีประสบการณ์เขียน Kotlin ช่วยแนะนำคนอื่นๆ ในทีมด้วย

ทีม Duolingo ยังแชร์เทคนิคการแปลง Java เป็น Kotlin อีกหลายอย่าง เช่น การแปลงไฟล์หนึ่งไฟล์ให้แยกเป็น 3 commit เพื่อให้ตรวจสอบข้อผิดพลาดในแต่ละขั้นตอนได้ง่าย, การกำหนดว่าไฟล์ไหนควรแปลงก่อนหลัง ตามความถี่ที่ใช้บ่อย, การทำตารางคะแนนแข่งกันภายในทีมเพื่อดูว่าใครแปลงโค้ดได้เยอะกว่า เป็นต้น

ผลของการแปลงโค้ด Java เป็น Kotlin ทำให้จำนวนบรรทัดลดลงไปเฉลี่ยราว 30% และในบางกรณีอาจลดลงถึง 90%, ทีมงานมีความสุขมากขึ้น และมีประสบการณ์ Kotlin มากพอจนสามารถเขียน Kotlin สำหรับงาน backend ควบคู่ไปกับ Python และ Java ได้ด้วย

No Description

ผู้เขียนเล่าประสบการณ์ของ Duolingo เป็นคนไทย ชื่อคุณ Art Chaidarun

ที่มา – Duolingo, Android Developers

from:https://www.blognone.com/node/116655

Google Cloud Functions บริการประมวลผล Serverless รองรับ Java 11 LTS แล้ว

Google Cloud Functions บริการประมวลผลแบบ serverless ของฝั่งกูเกิล ที่เปิดตัวครั้งแรกปี 2016 และออกรุ่นเสถียรปี 2018 ประกาศรองรับ Java 11 แล้ว (ยังมีสถานะเป็น Beta)

Java 11 ถือเป็นแพลตฟอร์ม Java รุ่นซัพพอร์ตระยะยาว (LTS) รุ่นต่อจาก Java 8 ที่นิยมใช้กันแพร่หลาย การที่ Cloud Functions รองรับ Java 11 ช่วยให้แอพพลิเคชันสำหรับลูกค้าองค์กร รองรับฟีเจอร์ใหม่ๆ ของภาษารุ่นใหม่ด้วย

กูเกิลยังบอกว่าเฟรมเวิร์คยอดนิยมของโลก Java อย่าง Spring Cloud Function และ Micronaut ก็รองรับ Cloud Functions เรียบร้อยแล้วเช่นกัน

ปัจจุบัน Cloud Functions รองรับการรันแอพพลิเคชันด้วยภาษา Java 8, Java 11, Node.js 8, Node.js 10, Python 3.7, Go 1.11 และ Go 1.13

ที่มา – Google

No Description

from:https://www.blognone.com/node/116582

Java ฉลองครบ 25 ปี, Oracle ยืดระยะซัพพอร์ต Java SE 8 ให้ถึงสิ้นปี 2030

Oracle ประกาศฉลอง Java อายุครบ 25 ปี (เปิดตัวครั้งแรกปี 1995) ด้วยสโลแกน “Our World. Moved by Java.” และประกาศยืดอายุซัพพอร์ตของ Java SE 8

  • Java SE 8 SE สำหรับผู้ใช้ทั่วไป (ฟรี) แผนเดิม หยุดอัพเดตเดือนธันวาคม 2020 เปลี่ยนเป็น อัพเดตให้ต่อเนื่องอย่างไม่มีกำหนดสิ้นสุด (indefinitely) โดยสัญญาว่าจะแจ้งก่อน 18 เดือนเมื่อกำหนดวันสิ้นสุดได้แล้ว
  • Java SE 8 เชิงพาณิชย์ (เสียเงิน) แผนเดิม อัพเดตและซัพพอร์ตให้ถึงเดือนมีนาคม 2025 เปลี่ยนเป็นเดือนธันวาคม 2030
  • Java Web Start ให้บริการซัพพอร์ตเชิงพาณิชย์ถึงเดือนธันวาคม 2030, ใช้งานส่วนตัวได้เท่าอายุของ Java SE 8 ที่ยังไม่กำหนดวัน
  • JavaFX แผนเดิม ซัพพอร์ตถึงเดือนมีนาคม 2022 ขยายเป็นเดือนมีนาคม 2025, ยืนยันว่ายังพัฒนาโครงการ OpenJFX ต่อไป

ปัจจุบัน Java ใช้ระบบการออกรุ่นใหม่ทุก 6 เดือน เวอร์ชันล่าสุดในตอนนี้คือ Java 14 แต่จะมีรุ่น LTS ที่มีระยะซัพพอร์ตยาวนานให้องค์กรใช้กัน โดย LTS รุ่นล่าสุดคือ Java 11 ที่ใช้ได้นานถึงปี 2026

ที่มา – Oracle (1), Oracle (2)

No Description

from:https://www.blognone.com/node/116350

รู้จัก Project Leyden โครงการใหม่ของ Oracle เพื่อแก้ปัญหา Java ทำงานช้า กินแรมมาก

Mark Reinhold หัวหน้าฝ่ายสถาปัตยกรรม Java ของ Oracle เสนอไอเดีย Project Leyden ที่ต้องการแก้ปัญหา Java เริ่มทำงานช้า, ต้องรอนานกว่าจะแตะระดับประสิทธิภาพเต็มที่ (time to peak performance) และใช้แรมมาก

แนวทางของ Project Leyden คือเสนอแนวคิดการคอมไพล์แอพพลิเคชันเป็น static image หรือ “อิมเมจปิด” ที่ไม่สามารถโหลดคลาสหรือไบต์โค้ดใดๆ เพิ่มได้อีกในตอนรัน เพื่อให้ตอนคอมไพล์สามารถรีดประสิทธิภาพได้อย่างเต็มที่ ลดคลาสที่ (รู้ล่วงหน้าว่า) ไม่ต้องใช้งานตอนรัน รวมถึงปรับแต่งประสิทธิภาพแบบ ahead-of-time (AOT) ได้อย่างจริงจัง

ผลคือขนาดของอิมเมจเล็กลง ระยะเวลาตอนเรียกโปรแกรมลดลง ระยะเวลาที่รันถึงระดับเต็มประสิทธิภาพสั้นลง

Reinhold บอกว่า Project Leyden ได้แรงบันดาลใจมาจากโครงการอื่นๆ เช่น GNU Compiler for Java และ GraalVM โดยสิ่งที่จะทำด้วยคือเพิ่มสเปกของ static image ลงในสเปกของ Java Platform เลย เพื่อให้ GraalVM ปรับมาอิงกับสเปกตัวนี้ด้วย นักพัฒนาจึงเลือกได้ว่าจะใช้ Leyden หรือ GraalVM เพราะเข้ากันได้บนสเปกเดียวกัน

ตัวของ Leyden จะไม่นำโค้ดของ GraalVM เข้ามาใช้ตรงๆ แต่จะพัฒนาจากฐานโค้ดของโครงการ JDK ในปัจจุบัน เช่น HotSpot VM, คอมไพเลอร์ jaotc เป็นต้น โครงการจะเริ่มพัฒนาโดยอิงจากฐานโค้ดของ Java 15 รุ่นที่กำลังพัฒนาอยู่ในปัจจุบัน แล้วแยกสายการพัฒนาออกมาต่างหาก โดยจะทยอยออกฟีเจอร์ทีละส่วนในอนาคต

Reinhold ยอมรับว่า Project Leyden ไม่ได้เหมาะสำหรับทุกคน เพราะข้อจำกัดเรื่องการเรียกคลาสเพิ่มเติมได้เลยระหว่างรัน ทำให้มันไม่เหมาะกับแอพพลิเคชันบางประเภท แต่เขาก็คิดว่าในงานบางอย่าง เช่น อุปกรณ์ฝังตัวหรือคลาวด์ ที่ต้องการประสิทธิภาพสูงๆ น่าจะคุ้มกับการทำโครงการ Leyden

ที่มา – OpenJDK via InfoWorld

Topics: 

from:https://www.blognone.com/node/116027