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.
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.
AI coding agents đã làm cho việc phát triển GUI native trở nên nhanh và rẻ, khiến đầu tư vào TUIs không còn hấp dẫn. Các công cụ TUI như Ratatui, Textual và Bubbletea luôn kém hơn về cuộn, kéo‑thả, chọn văn bản và khả năng truy cập so với bộ công cụ native như SwiftUI, điều được minh họa bằng bảy ứng dụng SwiftUI do AI tạo ra (trình xem markdown, front‑end SageMath, nhạc player có LLM tích hợp, wiki tự lái, bộ theo dõi thực phẩm, bộ giám sát nhiệt độ và điều khiển Apple TV). Các lý do thường được đưa ra để hỗ trợ TUI — mật độ hiển thị, truy cập qua SSH, tính truy cập và khả năng đa nền tảng — được phản bác weitgehend, trong khi CLI vẫn được giữ lại như công cụ hữu ích. Để tận dụng tối đa AI, nhà phát triển nên nắm vững các kỹ năng SwiftUI/Swift cụ thể như khai báo view, sử dụng @State và tích hợp LLM qua Combine, đồng thời áp dụng quy trình build dựa trên Makefile thay vì phụ thuộc vào Xcode. Khi áp dụng cách này, teams có thể giảm thời gian phát triển GUI từ hàng tuần xuống vài giờ, đồng thời tránh được các hạn chế cố有 của TUI.
Đọ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.
Bản cập nhật Rune 1.1 cung cấp phiên bản miễn phí cho mục đích cá nhân, cấp phép thương mại vĩnh viễn, bổ sung chỉ mục biểu tượng workspace, hỗ trợ Python toàn diện, trình soạn thảo Emacs cùng nhiều cải tiến đáng kể cho SSH workspace.
Lập trình viên nên đọc bài này vì Rune 1.1 mở rộng quyền sử dụng miễn phí cho cá nhân và thương mại vĩnh viễn, giúp bạn có thể thử nghiệm và phát triển dự án một cách dễ dàng hơn mà không lo về chi phí.
Xcode 27 Beta 2 và Swift 6.4 mang đến những thay đổi quan trọng về kiến trúc workspace, không chỉ là giao diện mới, được thử nghiệm trên ứng dụng sản xuất thực. Các kỹ sư iOS cần nắm bắt ngay những cập nhật này để tối ưu hiệu suất và tương thích.
Lập trình viên iOS nên đọc bài này để khám phá cách Xcode 27 Beta 2 và Swift 6.4 đã nâng cấp công cụ phát triển, từ cải thiện hiệu năng cho đến tính năng mới như cải thiện công cụ quản lý dự án và hỗ trợ cho các tính năng tương lai của iOS, giúp tiết kiệm thời gian và tối ưu hóa chất lượng mã trong dự án hiện tại.
Quản lý SSH key trên từng máy chủ khiến đội ngũ DevOps phải bỏ ra nhiều thời gian để tạo, phân phối và thu hồi key mỗi khi có thay đổi nhân viên hoặc thay thế máy chủ. Mô hình key tĩnh không hỗ trợ quay vòng tự động, kiểm soát truy cập chi tiết và ghi nhật ký tập trung, dẫn đến rủi ro bảo mật và khó đáp ứng các yêu cầu tuân thủ. Khi thay thế bằng Teleport, các tổ chức chuyển sang sử dụng chứng chỉ ngắn hạn được ký bởi CA nội bộ, đồng thời nhận được RBAC tích hợp, ghi lại phiên làm việc và truy cập nhật qua một điểm quản lý duy nhất. Điều này giảm đáng kể công việc vận hành, tăng khả năng phát hiện và phản hồi sự cố, đồng thời đơn giản hóa việc đáp ứng các chính sách bảo mật. Vì vậy, các nhóm nên cân nhắc đánh giá và tích hợp Teleport vào cơ sở hạ tầng thay vì tiếp tục duy trì hệ thống SSH key thủ công.
Đọc bài này giúp bạn tiết kiệm thời gian quản lý SSH keys phức tạp bằng cách chuyển sang giải pháp Teleport hiệu quả hơn.
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