โครงสร้างรอบหลุมดำบริเวณใจกลางของ M87
เมื่อสองปีที่แล้ว ทีมงาน Event Horizon Telescope (EHT) ได้เปิดเผยภาพถ่ายของหลุมดำมวลยิ่งยวด ณ ใจกลางของกาแล็กซี M87 เป็นครั้งแรก ซึ่งนับเป็นครั้งแรกที่เราสามารถทำการสังเกตการณ์มวลสารที่อยู่ในจานพอกพูนมวลรอบหลุมดำได้ (สามารถอ่านเพิ่มเติมได้ที่ [3])
อย่างไรก็ตาม ภาพของจานพอกพูนมวลรอบหลุมดำ ไม่ได้บอกเรื่องราวทั้งหมดเกี่ยวกับหลุมดำ และแท้จริงแล้วหลุมดำนั้นมีโครงสร้างที่กว้างใหญ่กว่านั้น นอกเหนือไปจากจานพอกพูนมวลไปอีกมาก
วันที่ 14 เมษายน 2021 ที่ผ่านมานี้ ทีมงาน EHT ได้ร่วมมือกับหอสังเกตการณ์ทั้งบนโลกและในอวกาศถึงกว่า 19 แห่ง และได้นำข้อมูลต่างๆ มารวมกัน เพื่อให้ได้ภาพที่ชัดเจนยิ่งขึ้นเกี่ยวกับหลุมดำที่อยู่ ณ ใจกลางของกาแล็กซี M87 นี้ พร้อมทั้งภาพที่บันทึกได้ในช่วงความยาวคลื่นอื่นๆ ที่สามารถบอกให้เราทราบเกี่ยวกับหลุมดำได้ดียิ่งขึ้นไปอีก
หลุมดำ ณ ใจกลางกาแล็กซี M87 นี้ นับเป็นหลุมดำมวลยิ่งยวด ที่มีมวลมากที่สุดหลุมหนึ่งในเอกภพ โดยมีมวลถึงกว่า หกพันห้าร้อยล้านเท่าของมวลดวงอาทิตย์ และอยู่ในใจกลางของกาแล็กซี M87 ที่ห่างออกไป 55 ล้านปีแสง
หลุมดำมวลยิ่งยวดเช่นนี้ จะมีมวลสารของดาวฤกษ์ที่บังเอิญโคจรเข้าไปใกล้เกินไป และถูกฉีกออกเป็นชิ้นๆ โดยแรงไทดัลอันมหาศาล ถูกเหวี่ยงออกไปรอบๆ กลายเป็นแก๊สร้อนที่หมุนวนไปรอบๆ หลุมดำ (คล้ายกับน้ำวนในอ่างอาบน้ำที่ถูกเปิดก๊อกออก) ในลักษณะที่เราเรียกว่าจานพอกพูนมวล (accretion disk) บริเวณของแก๊สร้อนในจานพอกพูนมวลนี้เอง ที่เป็นโครงสร้างที่ใกล้ชิดที่สุดของหลุมดำ ที่เราจะสามารถสังเกตเห็นได้ (ภาพคล้าย "โดนัท" สีส้ม ภาพล่างซ้าย)
แต่ในขณะที่มวลสารกำลังถูกเหวี่ยงและดูดเข้าสู่แรงโน้มถ่วงอันมหาศาลของหลุมดำ ก่อนที่จะตกลงสู่ขอบฟ้าเหตุการณ์ (Event Horizon) มวลสารบางส่วนจะถูก "ดีด" ออก และพุ่งออกไปบริเวณขั้วในการหมุนของจานพอกพูนมวล แก๊สที่พุ่งออกมาในลักษณะคล้ายกับ "เจ็ท" (Astrophysical Jet) นี้นั้น อาจจะประกอบไปด้วยไอออนที่มีประจุ และพุ่งออกมาด้วยความเร็วเข้าใกล้แสง และสามารถพุ่งออกไปเป็นระยะทางหลายพัน แสน หรือถึงล้านพาร์เซค ซึ่งทำให้เจ็ทที่ออกมาจากหลุมดำเหล่านี้นั้น สามารถมีขนาดใหญ่กว่ากาแล็กซีทั้งกาแล็กซีได้เลยทีเดียว
นอกไปจากนี้ พลังงานอันมหาศาลของอนุภาคในเจ็ทเหล่านี้นั้น สามารถเปล่งแสงออกมาในช่วงคลื่นวิทยุ ไปจนถึงรังสีแกมม่า
ซึ่งในภาพที่แนบมานี้ แสดงให้เห็นถึงโครงสร้างต่างๆ ของเจ็ท ในช่วงความยาวคลื่นวิทยุ (ซ้าย) คลื่นยูวี (กลาง) และรังสีพลังงานสูง เช่น รังสีเอ็กซ์ ไปจนถึงแกมมา (ขวา) ที่ประกอบขึ้นเป็นโครงสร้างขนาดใหญ่ที่ล้อมรอบหลุมดำมวลยิ่งยวดนี้อยู่ ซึ่งทั้งหมดนี้ เราสามารถไปดูในลักษณะของวีดีโอ แสดงเปรียบเทียบขนาดโดยการ "ซูมออก" จากหลุมดำ M87 ได้ที่ [4]
นอกไปจากนี้หลุมดำมวลยิ่งยวดเช่นนี้ อาจจะเป็นแหล่งกำเนิดที่สำคัญของรังสีคอสมิคพลังงานสูง ที่เต็มไปทั่วเอกภพ และกระทบเข้ากับโลกของเราอยู่ตลอดเวลา การศึกษาหลุมดำ M87 ในลักษณะนี้จะช่วยให้นักวิทยาศาสตร์สามารถตอบได้ว่าหลุมดำมวลยิ่งยวดเป็นแหล่งกำเนิดที่สำคัญเพียงใดต่อรังสีคอสมิค
นอกจากหลุมดำจะเป็นสิ่งที่น่าพิศวงของธรรมชาติแล้ว แรงโน้มถ่วงอันมหาศาลของมันยังเปรียบได้กับห้องปฏิบัติการชั้นดีที่เราจะสามารถทดสอบความเข้าใจในทฤษฎีสัมพัทธภาพของไอสไตน์ได้ การสังเกตการณ์ในลักษณะเช่นนี้ของทีมงาน EHT จะช่วยให้เราสามารถยืนยันความเข้าใจทางทฤษฎีของเราเกี่ยวกับแรงโน้มถ่วง และสามารถเปรียบเทียบกับสิ่งที่สามารถสังเกตได้จริง ที่กำลังเกิดขึ้น ณ วัตถุที่มีแรงโน้มถ่วงมากที่สุดแหล่งหนึ่งในเอกภพที่สามารถเป็นไปได้ และความเข้าใจนี้เองที่จะเป็นอีกก้าวหนึ่งที่จะนำเราให้เข้าใกล้สู่ความเข้าใจในกฎที่แท้จริงของธรรมชาติอีกก้าวหนึ่ง
ภาพ: The EHT Multi-wavelength Science Working Group; the EHT Collaboration; ALMA (ESO/NAOJ/NRAO); the EVN; the EAVN Collaboration; VLBA (NRAO); the GMVA; the Hubble Space Telescope; the Neil Gehrels Swift Observatory; the Chandra X-ray Observatory; the Nuclear Spectroscopic Telescope Array; the Fermi-LAT Collaboration; the H.E.S.S collaboration; the MAGIC collaboration; the VERITAS collaboration; NASA and ESA. Composition by J. C. Algaba
อ้างอิง/อ่านเพิ่มเติม:
[1] https://eventhorizontelescope.org/blog/telescopes-unite-unprecedented-observations-famous-black-hole
[2] https://iopscience.iop.org/article/10.3847/2041-8213/abef71
[3] https://www.facebook.com/matiponblog/photos/977309255812614
[4] https://www.youtube.com/watch?v=q2u4eK-ph40
同時也有2部Youtube影片,追蹤數超過17萬的網紅魏巍,也在其Youtube影片中提到,練習 Swift 語言中陣列的 reduce 方法。雖然現在弄懂了,可是我猜一段時間就會忘記,所以把現在知道的錄影錄下來教之後的自己......
「swift array」的推薦目錄:
- 關於swift array 在 มติพล ตั้งมติธรรม Facebook 的最佳貼文
- 關於swift array 在 Mai Nguyên - MaiNguyen.vn Facebook 的最佳貼文
- 關於swift array 在 โปรแกรมเมอร์ไทย Thai programmer Facebook 的精選貼文
- 關於swift array 在 魏巍 Youtube 的最讚貼文
- 關於swift array 在 魏巍 Youtube 的最佳貼文
- 關於swift array 在 How to create an empty array in Swift? - Stack Overflow 的評價
- 關於swift array 在 Getting the Next Element in a Swift Array - gists · GitHub 的評價
- 關於swift array 在 (2020) Swift Tutorial for Beginners: Lesson 16 Arrays - YouTube 的評價
swift array 在 Mai Nguyên - MaiNguyen.vn Facebook 的最佳貼文
𝐍𝐄𝐖 𝐀𝐑𝐑𝐈𝐕𝐀𝐋 - 𝐕𝐔̛̀𝐀 𝐋𝐄̂𝐍 𝐊𝐄̣̂ 𝐌𝐀𝐈 𝐍𝐆𝐔𝐘𝐄̂𝐍
Bang & Olufsen Beosound A1 thế hệ 2: Loa bluetooth thông minh đầu tiên, có trợ lý ảo Amazon Alexa, Pin lê đến 48h. Với kết nối không dây duy nhất là Bluetooth, làm thế nào để trợ lý ảo Alexa có thể hoạt động trên loa B&O A1 Gen 2? Chi tiết: https://bit.ly/BeosoundA1Gen2
A1 là mẫu loa di động đầu tiên có kích thước nhỏ nhất và giá dễ chịu nhất đến từ thương hiệu Bang & Olufsen. Sau nhiều năm kể từ thời điểm ra mắt, A1 đã dần bị lu mờ đi bởi sự xuất hiện của nhiều sản phẩm mới từ chính B&O và các công ty đối thủ. Để tìm lại vinh quang từng có cho A1, B&O đã cho ra đời thế hệ tiếp theo của mẫu loa này với hướng phát triển hoàn toàn mới.
So với thế hệ đầu tiên, B&O Beosound A1 Gen 2 đã có nhiều sự thay đổi quan trọng để tăng khả năng cạnh tranh trên thị trường, bao gồm: thiết kế mới nhỏ gọn hơn và có thể chống nước, các loa con được cải tiến, thời lượng pin cao hơn và đặc biệt là sự xuất hiện của trợ lý ảo Alexa.
Khi chú ý, chúng ta sẽ thấy A1 Gen 2 không hề có kết nối Wi-Fi. Vậy làm sao trợ lý ảo Alexa có thể hoạt động trên thiết bị này? Phương án mà B&O đưa ra chính là người dùng sẽ phải kết nối loa tới smartphone hoặc nguồn phát khác có thể sử dụng Alexa qua Wi-Fi. Trong quá trình thiết lập, người dùng có thể liên kết loa A1 Gen 2 với tài khoản Alexa của mình để kích hoạt trợ lý ảo này, sau đó đọc các câu lệnh điều khiển phổ biến như bật nhạc, đặt mua hàng trực tuyến...
Nói cách khác, loa phải luôn ở trong phạm vi kết nối Bluetooth của nguồn phát có Alexa. Dĩ nhiên, B&O đã trang bị cho A1 Gen 2 chuẩn Bluetooth 5.1 để đảm bảo quá trình kết nối luôn ổn định. Thông qua công nghệ microphone far-field, Alexa trên loa di động có thể được kích hoạt ở khoảng cách tối đa là 5m. Bên cạnh đó, một bản cập nhật phần mềm mới dự kiến ra mắt trong năm nay cho A1 Gen 2 sẽ giúp Alexa trở nên hữu dụng hơn.
Những điểm nhấn khác trên A1 Gen 2 được B&O đề cập bao gồm:
+ Hệ thống 3 microphone dạng array và hỗ trợ Microsoft Swift Pair, Google Fast Pair để đàm thoại tốt hơn, đặc biệt là khi họp trực tuyến.
+ Thời lượng pin được cải thiện: 18 tiếng khi nghe nhạc ở mức 70dB, 24 hoặc 48 tiếng khi nghe nhạc ở mức 55dB. Người dùng có thể theo dõi dung lượng pin còn lại qua đèn LED trên loa hoặc ứng dụng của Bang & Olufsen trên điện thoại.
+ Có thêm khả năng chống nước chuẩn IP67 để tăng thêm độ bền bỉ cho loa, giúp người dùng yên tâm sử dụng ở các môi trường và điều kiện thời tiết khác nhau.
+ Hệ thống loa con gồm 1 mid/woofer và 1 tweeter vòm lụa đã được chỉnh sửa để có thể phát ra âm thanh 360 độ một cách rõ ràng hơn. Song song đó, loa còn có thêm aptX Adaptive để có thể phát nhạc không dây chất lượng cao.
Theo Stereo.
Chuyên trang B&O: https://www.mainguyen.vn/b-o
swift array 在 โปรแกรมเมอร์ไทย Thai programmer Facebook 的精選貼文
Functional programming ชื่อไทยคือ “การโปรแกรมเชิงฟังก์ชั่น” ชื่อย่อ FP เป็นแนวคิดหนึ่งของการเขียนโปรแกรม (programming paradigm) ชื่อขึ้นต้นด้วย functional แต่ไม่ได้มีดีแค่ประกาศ function ปุ๊บเสร็จ แล้วเรียกใช้ มันมีเบื้องลึกมากกว่านั้นแน่ๆ
🤔 มันจะต่างจากการเขียนโปรแกรมทีละสเตป ตามลำดับก่อนหลัง มีการวนลูป ที่เน้นแก้ state ของโปรแกรมเป็นหลัก
แต่แนวทาง functional programming จะไม่แก้ state ของโปรแกรมเลย ไม่มีการวนลูบ (ใช้ recursion แทน)
ซึ่งแนวคิดก็ต้องเน้นสร้างฟังก์ชั่นนั่นแหละ แต่หลักสำคัญต้องออกแบบให้หลีกเลี่ยง side-effect (ผลข้างเคียง) ที่จะเกิดต่อ function ตัวเอง และตัวอื่น โดยมีหลักยึด 2 อย่างใหญ่คือ
👉 1) function ที่สร้างขึ้นมา เมื่อมีอินพุตค่าเดิมส่งไปหา (เป็นค่าอากิวเมนต์) ไม่ว่าจะกี่ครั้งก็ตาม function จะรีเทิร์นค่าออกมาเหมือนเดิมทุกครั้ง ...(ไอเดียมาจากฟังก์ชั่นในทางคณิตศาสตร์เลยครับ)
เช่น
func(1); // เรียกครั้งที่ 1 ก็จะได้ค่ารีเทิร์นออกมาเป็น 30
func(1); // เรียกครั้งที่ 2 ก็จะได้ค่ารีเทิร์นออกมาเป็น 30 เหมือนเดิม
func(1); // เรียกครั้งที่ 3 ก็จะได้ค่ารีเทิร์นออกมาเป็น 30 เหมือนเดิม
👉 2) function ต้องไม่ไปเปลี่ยนแปลงค่าของตัวแปรจำพวก global variable หรือ static variable หรือตัวแปรที่อยู่ข้างนอก function ...เพื่อไม่ให้ function อื่นได้รับผลกระทบ
ถ้า function ที่เราประกาศไว้ มีคุณสมบัติ 2 อย่างที่ว่านี้ ก็จะเรียกว่า pure function (ฟังก์ชั่นบริสุทธ์แท้ๆ) 👌
สำหรับอีกคุณลักษณะหนึ่งที่จะไม่กล่าวถึงไม่ได้เลยก็คือ
👉 3) First-class function และ Higher-order function
คำว่า first-class function มาจาก "first class citizen" ที่หมายถึง "พลเมืองชั้นหนึ่ง" ดังนั้น first-class function จะหมายถึง ฟังก์ชั่นเป็นพลเมืองชั้นหนึ่งจริงๆ เลยนะ
คุณสมบัตินี้ function จะถูกมองเป็นข้อมูลประเภทหนึ่ง ไม่ต่างจากข้อมูลตัวเลข สตริง บูลีน ด้วยเหตุนี้จึงสามารถนำ function ไปกำหนดค่าให้กับตัวแปรยังได้เลย เช่น
x = function(){ .....}
ส่วนคุณสมบัติ Higher-order function:
คุณสมบัตินี้หมายถึง เราสามารถใช้ function ส่งไปเป็นค่าอากิวเมนต์แก่ function ตัวอื่น หรือ function จะรีเทิร์นออกมาจาก function ตัวอื่นออกมาก็ได้ด้วย เช่น
- ส่ง function_A เป็นค่าอากิวเมนต์ไปให้ function_X(function_A);
- จากนั้น function_X() ก็จะสร้าง function_Y แล้วรีเทิร์นมันออกมาได้
😜 ===ประโยชน์ functional programming===
🔥 เอาไปเขียนโปรแกรมโดยไม่มีการวนลูป เช่น ไม่ต้องมานั่งเขียน for … หรือ while… วนลูป เพื่อเข้าถึงข้อมูลโครงสร้างพวก array , list ฯลฯ เป็นต้น
🔥 การทำ currying หมายถึงทำให้ฟังก์ชั่น จากเดิมที่มี parameter หลายตัวให้เหลือแค่ตัวเดียว ด้วยการส่งผลลัพธ์เป็น function ที่รับ Parameter ที่เหลือ ...ใช้เทคนิค closure
🔥 หรือจะทำ function Composition (เอาฟังก์ชั่นมาประกอบกัน)
🔥 หรือจะเอาไปใช้เขียนโปรแกรมแบบ parallel computing (โปรแกรมคู่ขนาน)
🔥 หรือจะเขียนโปรแกรมแบบ asynchronous โดยที่โค้ดหลักไม่ต้องรอการประมวลผลฝั่ง I/O ให้แล้วเสร็จ โค้ดหลักสามารถข้ามไปยังบรรทัดถัดไปก่อนได้เลย
🔥 Testability — ผลพลอยได้ก็คือ เอาแนวคิดนี้ไปใช้ทำ test function ได้ง่าย โดยแต่ละการ test จะเป็นอิสระต่อกัน เมื่อใช้วิธีการเดิมในการทดสอบ 10 ครั้ง ก็ควรได้ผลเหมือนเดิม 10 ครั้ง เป็นต้น
++++ 🤔 ++++++
เมื่อเปรียบเทียบกับแนวคิด OOP (โปรแกรมเชิงวัตถุ object-oriented programming)
ถ้าโจทย์ปัญหาเป็น parallel computing หรือ asynchronous การใช้แนวคิด functional programming ดูแล้วคล่องแคล่วปราดเปรียวไม่ยุ่งยาก
เนื่องจากแนวคิด functional programming ไม่มีอะไรซับซ้อนมากนัก เขียนโปรแกรมก็จะกระชับ ง่าย...ง๊าย เมื่อเทียบกับ OOP ที่โค้ดจะเยอะกว่า เพราะมี class มากมาย ยิ่งถ้า inheritance โดยให้มีการสืบทอดสมาชิกหลายชั้น ก็จะสับสนตาลาย มึนงงได้ คงต้องพึ่ง IDE ให้เป็นพี่เลี้ยงช่วยแนะนำว่ามีสมาชิกอะไรที่สืบทอดมา
แต่จุดเด่นเรื่อง OOP จะมีความเป็น Modularity ที่สูง โค้ดที่เขียนเป็นอ็อบเจ็กต์แต่ละตัวจะเป็นอิสระต่อกัน เนื่องจากข้อมูลหรือ state ซึ่งอยู่ภายในตัวอ็อบเจ็กต์เอง จะมีเป็นของใครของมัน ขณะเดียวกันแต่ละอ็อบเจ็กต์จะปฏิสัมพันธ์กันได้ สามารถเอาอ็อบเจ็กต์ที่มีอยู่แล้วมา reuse ใช้ได้ง่าย รวมทั้งถอดเข้าถอดออกขณะโปรแกรม run time
แล้วแต่สถานการณ์ว่าจะใช้แนวทางเขียนโปรแกรมแบบไหน
แต่ก็ยอมรับว่าบางทีเขียนแบบ functional programming ก็ยากต่อการทำความเข้าใจ เพราะโค้ดมันสั้นกระชับเกิ๊น
ยิ่งหลายภาษาโปรแกรมมิ่งสมัยใหม่ในปัจจุบันนี้ มีการแทรกแนวคิด functional programming เข้ามา นอกเหนือจากแนวคิด OOP เช่น JavaScript, Python, Java, C#, Swift, Kotlin แต่ก็อาจประยุกต์แนวคิดนี้ได้ไม่ 100% มากนัก
จะไม่เหมือนบ้างภาษาเช่น Haskell ที่มาพร้อมกับ immutable data structure หมายถึงข้อมูลที่ไม่สามารถแก้ไขค่าได้เลย จึงทำให้ function กลายเป็น functional programming แท้ๆ (pure function)
✍ สรุป แนวคิดนี้ไม่ได้เรื่องใหม่มีมานานก่อนบางคน ...อุ้แว ...อุ้แวเกิดเสียอีก แต่ตอนโน่นแนวคิดนี้ยังไม่ดังเปรี้ยงเหมือน OOP คนที่เขียนภาษา JavaScript รวมไปถึง Node.js ย่อมใช้หลักการนี้อย่างไม่รู้ตัว ยิ่งภาษาสมัยใหม่หลายตัวก็ยอมรับแนวคิด functional programming เข้ามาในภาษาเรียบร้อยแล้ว ไม่มีนี้ถือว่าแปลกมาก
--------
เขียนโดย โปรแกรมเมอร์ไทย thai programmer
swift array 在 魏巍 Youtube 的最讚貼文
練習 Swift 語言中陣列的 reduce 方法。雖然現在弄懂了,可是我猜一段時間就會忘記,所以把現在知道的錄影錄下來教之後的自己...
swift array 在 魏巍 Youtube 的最佳貼文
最完整的中文 iPhone 開發線上課程:
https://www.udemy.com/swift3-level1
(本短片為其中的一堂課程)
swift array 在 Getting the Next Element in a Swift Array - gists · GitHub 的推薦與評價
This works for me with Xcode 7/Swift 2.2: extension Array where Element: Hashable { func after(item: Element) -> Element? { if let index = self. ... <看更多>
swift array 在 (2020) Swift Tutorial for Beginners: Lesson 16 Arrays - YouTube 的推薦與評價
In this Swift tutorial series, you'll learn how to code even if you're a beginner with no programming experience.In this lesson, we are ... ... <看更多>
swift array 在 How to create an empty array in Swift? - Stack Overflow 的推薦與評價
... <看更多>
相關內容