Khi tích hợp xterm.js vào một ứng dụng macOS bằng SwiftUI, nhà phát triển thường gặp vấn đề mất kết nối SSH mỗi khi chuyển đổi giữa các view vì SwiftUI sẽ tạo lại toàn bộ cây view và, do đó, hủy đi WKWebView chứa terminal. Nguyên nhân kỹ thuật là vòng đời của view (và của WKWebView được khai báo trong @State hoặc var body) được gắn liền với vòng đời của đối tượng SwiftUI, khiến phiên SSH được khởi tạo bên trong web view bị hủy cùng với view đó. Hậu quả là người dùng phải xác thực lại và mất mọi trạng thái terminal đã làm việc, gây gián đoạn làm việc và trải nghiệm không mượt mà. Để khắc phục, cần tách riêng ba vòng đời: giữ kết nối SSH và đối tượng renderer (xterm.js) trong một đối tượng độc lập như @StateObject hoặc ObservableObject, trong khi chỉ giữ WKWebView là một view đơn giản không sở hữu trạng thái. Bài học là khi nhúng thành phần web vào giao diện native, luôn quản lý tài nguyên backend ngoài scope của view và sử dụng cơ chế quan sát trạng thái của SwiftUI để chúng tồn tại xuyên qua các thay đổi navigation.
Why read it: Bài này hướng dẫn cách duy trì kết nối SSH ổn định khi tích hợp terminal vào ứng dụng macOS bằng SwiftUI.
Answer 3 short questions to earn reward points for this article. Only do it if you want the points.
3 questions · under a minute · optional
Source: https://playfulprogramming.com/posts/keeping-a-web-backed-ssh-terminal-alive-across-swiftui-navigation. 8 Sync News only summarizes and links out; content copyright belongs to the authors and original sources.
Đang tải bình luận…
OpenPubkey SSH (OPKSSH) là công cụ cho phép đăng nhập SSH bằng single sign‑on (OpenID Connect) thay vì quản lý khóa SSH dài hạn, và vừa được mã nguồn mở dưới giấy phép Apache 2.0 sau khi Cloudflare tặng код từ việc mua lại BastionZero cho dự án OpenPubkey. Công cụ hoạt động bằng cách nhúng OpenID ID Token, mở rộng bằng khóa công khai qua giao thức OpenPubkey, vào trường mở rộng của chứng chỉ SSH, chỉ cần thay đổi hai dòng trong sshd_config sử dụng AuthorizedKeysCommand mà không cần sửa mã khách hàng hoặc máy chủ. Thay thế khóa SSH tĩnh bằng khóa tạm thời, hết hạn và gắn liền với danh tính (ví dụ: địa chỉ email) thay vì khóa công khai thô, OPKSSH nâng cao bảo mật, dễ sử dụng và khả năng truy vết truy cập. Điều này cho thấy việc tích hợp SSO vào SSH có thể đạt được với cấu hình tối thiểu, mang lại lợi ích về quản lý danh tính và giảm rủi ro từ khóa vĩnh viễn. Đồng quyên góp công cụ nội bộ dưới giấy phép cho phép mở rộng cộng đồng và thúc đẩy việc áp dụng rộng rãi các phương pháp xác thực hiện đại.
OPKSSH giúp đăng nhập SSH đơn giản hóa bằng single sign-on thay vì quản lý khóa SSH dài hạn, nâng cao bảo mật và khả năng hiển thị quyền truy cập.
iOS 27 và Xcode 27 đã chính thức phát hành với build 27A266a và Swift 6.4, đưa ra yêu cầu mới cho nhà phát triển như câu hỏi phân loại độ tuổi, tài sản trang sản phẩm mới và hạn sử dụng SDK tháng 4/2027. Xcode 27 loại bỏ hỗ trợ x86_64 mặc định nhưng bổ sung các agent mạnh mẽ có thể khởi chạy simulator, chạy app, chụp màn hình và sử dụng Gemini models. Swift 6.4 mang lại hiệu năng LLDB nhanh hơn với lệnh task tree mới, conformances Hashable bổ sung và một thay đổi ngắt nguồn, trong khi SwiftUI giới thiệu pattern debounced search với task(id:). Đáng chú ý là ArrangementView API mới cho iPhone Duo và hệ thống bảo mật filesystem layer mới cho coding agents.
Bài viết này cung cấp cập nhật quan trọng về iOS 27, Xcode 27 và Swift 6.4, giúp lập trình viên nắm bắt những thay đổi ảnh hưởng đến công việc phát triển ứng dụng.
Immurok là thiết bị đọc vân tay không dây giúp bảo mật sudo, SSH login, TOTP codes và cả AI coding agent. Thiết bị sử dụng công nghệ vân-touch để xác thực nhanh chóng, đáng tin cậy trên hệ điều hành Linux. Trong quá trình sử dụng trong một tuần, Immurok hoạt động ổn định với độ trễ chỉ khoảng 0.2 giây khi xác thực. Thiết bị hỗ trợ nhiều phương thức bảo mật đa dạng, từ đăng nhập hệ thống đến xác thực ứng dụng AI, phù hợp cho lập trình viên cần bảo mật đa tầng.
Immurok mang đến giải pháp bảo mật vân tay tiện lợi và đáng tin cậy cho nhiều dịch vụ quan trọng trên Linux.
Bối cảnh tập trung vào các tin công nghệ mới nhất từ Apple TV, thiết bị gập foldables và Microsoft Office. Nguyên nhân kỹ thuật xuất phát từ sự phát triển của Apple TV với khả năng hỗ trợ độ phân giải cao và cải tiến giao diện, trong khi Microsoft Office tích hợp nhiều tính năng AI để tăng năng suất. Hệ quả người dùng sẽ trải nghiệm trải nghiệm giải trí mượt mà hơn trên TV và làm việc hiệu quả hơn với tài liệu. Điều đáng học là xu hướng tích hợp AI vào các ứng dụng văn phòng và thiết bị gia đình đang trở nên phổ biến, đặc biệt với các công nghệ như SwiftUI cho Apple TV và Copilot trong Microsoft Office.
Bài này mang đến những thông tin độc đáo và cập nhật về xu hướng công nghệ từ cả gã khổng lồ và công ty nhỏ giúp lập trình viên có cái nhìn toàn cảnh.
Nhiều lập trình viên cần một công cụ giữ phiên terminal tồn tại khi làm việc từ xa, chạy đồng thời nhiều agents mã nguồn và quản lý bố cục cửa sổ linh hoạt. Herdr được viết bằng Rust và tập trung vào mô hình plugin đơn giản với cấu hình dựa trên TOML, tmux vẫn là lựa chọn truyền thống được triển khai bằng C và có hệ thống session‑window‑pane ma trận lâu năm, trong khi Zellij cũng dùng Rust nhưng cung cấp bố cục linh hoạt qua layout file và một kho plugin mở rộng đang phát triển. Do sự khác biệt về ngôn ngữ triển khai và cách xử lý sự kiện, Herdr tiêu thụ bộ nhớ thấp hơn khi chạy nhiều agents đồng thời, tmux cung cấp ổn định cao nhất trên các hệ thống cũ nhưng có giới hạn trong việc tùy chỉnh layout động, Zellij cân bằng giữa hiệu năng và khả năng mở rộng nhưng còn trẻ về ổn định trong môi trường sản xuất. Từ đó, nếu ưu tiên là hiệu năng nhẹ và cấu hình đơn giản, Herdr là phù hợp; nếu cần sự ổn định và cộng đồng lớn, tmux vẫn là lựa chọn an toàn; còn muốn thử nghiệm layout phong phú và plugin hiện đại, Zellij đáng để xem xét.
Bài này giúp lập trình viên chọn công cụ terminal tối ưu cho persistent session và remote work.
Các tác giả cho rằng sự xuất hiện của các AI coding agent khiến việc phát triển GUI gốc trở nên nhanh chóng và rẻ tiền, nên không còn lý do để đầu tư vào việc xây dựng terminal user interface (TUI). Lý do kỹ thuật là các framework TUI như Ratatui, Textual và Bubbletea luôn thua kém so với các công cụ native về cuộn trang, kéo‑thả, chọn văn bản và khả năng tiếp cận. Để chứng minh, tác giả liệt kê bảy ứng dụng SwiftUI do AI tạo ra cho mục đích cá nhân: trình xem markdown, giao diện SageMath, trình phát nhạc có tích hợp LLM agent, wiki tự lái, trình theo dõi thực phẩm, bộ giám sát nhiệt độ và điều khiển Apple TV. Kết luận là các lập trình viên nên tập trung vào CLI và đầu tư vào việc học SwiftUI/Swift phù hợp với các agent, đồng thời sử dụng Makefile để biên dịch mà không cần Xcode. Điều đáng học là khi công cụ AI giảm chi phí phát triển GUI gốc, đầu tư vào TUI sẽ mang lại lợi ích hạn chế so với việc tận dụng khả năng của native UI.
Đọc bài này để hiểu tại sao AI coding agents đang thay thế TUI bằng native GUI development nhanh chóng và hiệu quả hơn.
SwiftUI cần các layout thích nghi khi cửa sổ thay đổi kích thước, đặc biệt trên macOS, iPadOS và tvOS. Bài viết chỉ ra cách dùng containerRelativeFrame() để tính toán chiều rộng và chiều cao của view dựa trên kích thước của container thay vì dùng các giá trị cố định. Khi áp dụng, các phần full‑width, các stack thẻ ngang và các tỷ lệ tùy chỉnh sẽ tự động điều chỉnh theo geometry của container, tránh hiện tượng layout vỡ khi thay đổi kích thước. Điều này giúp code SwiftUI ngắn gọn hơn và giảm việc viết lại các constraint thủ công. Vì vậy, nếu bạn muốn UI luôn đáp ứng mọi kích thước màn hình, nên thử containerRelativeFrame() trong dự án hiện tại.
ContainerRelativeFrame() giúp bạn tạo layouts SwiftUI linh hoạt, tự động điều chỉnh kích thước dựa trên container mẹ cho mọi thiết bị.
Lỗ hổng RCE nghiêm trọng chưa được vá (CVE-2026-59310) trong VMware vCenter Syslog Server đang bị khai thác để triển khai công cụ SSH ngược, nhằm duy trì quyền truy cập và truy cập từ xa.
Lập trình viên phát triển hệ thống quản lý ảo hóa VMware cần hiểu về nguy cơ exploit này để xây dựng các giải pháp bảo mật tích hợp, phòng ngừa tấn công từ lỗ hổng này trong ứng dụng hoặc hệ thống liên kết với vCenter.
Read the news here, practice coding, follow structured courses and train for IELTS on our sibling products — all connected through one 8 Sync account.
The ecosystem home: product overviews, blog and full pricing.
ExploreLearn along a clear roadmap: videos, auto-graded quizzes, certificates and mentors who ship for a living.
View the roadmap1,000+ DSA problems in Vietnamese, auto-graded across 7 languages — many FREE, right in your browser.
Practice for freeAI grading for all four IELTS skills with detailed rubric feedback.
Try it freeA 22 MB AI IDE for Vietnamese devs.
Download freeOrganizational memory for AI agents.
ExploreAI that staffs your Fanpage and qualifies leads for you.
Try it