<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>Longsight Blog</title><description>Insights, tutorials, and case studies on open-source educational technology, Sakai LMS, and learning innovation.</description><link>https://www.longsight.com/</link><language>en-us</language><item><title>OneRoster TypeScript: a practical base for open source ed products</title><link>https://www.longsight.com/blog/oneroster-typescript-package/</link><guid isPermaLink="true">https://www.longsight.com/blog/oneroster-typescript-package/</guid><description>A first look at LongsightGroup/oneroster, an MIT licensed TypeScript package for OneRoster 1.2 CSV parsing, validation, diagnostics, and package writing.</description><pubDate>Tue, 30 Jun 2026 00:00:00 GMT</pubDate></item><item><title>QTI 3 TypeScript 0.9.5 adds secure delivery, PNP, and testable support</title><link>https://www.longsight.com/blog/qti3-095-secure-delivery-conformance/</link><guid isPermaLink="true">https://www.longsight.com/blog/qti3-095-secure-delivery-conformance/</guid><description>qti3 0.9.5 adds candidate-safe XML, server-side submissions, PNP resolution, package inspection, conformance fixtures, accessibility proof metadata, and a style-neutral Web Component player.</description><pubDate>Tue, 30 Jun 2026 00:00:00 GMT</pubDate></item><item><title>How CredTrail signs Open Badges 3.0 credentials</title><link>https://www.longsight.com/blog/credential-signing-stack/</link><guid isPermaLink="true">https://www.longsight.com/blog/credential-signing-stack/</guid><description>How CredTrail signs Open Badges 3.0 credentials with W3C Data Integrity, Ed25519, did:web, and Multikey.</description><pubDate>Thu, 04 Jun 2026 00:00:00 GMT</pubDate></item><item><title>A Native TypeScript QTI 3 Player</title><link>https://www.longsight.com/blog/qti3-ts/</link><guid isPermaLink="true">https://www.longsight.com/blog/qti3-ts/</guid><description>A strict TypeScript QTI 3 runtime and native Web Component player with typed models, response processing, scoring, saved state, fixtures, and Playwright-tested rendering.</description><pubDate>Wed, 20 May 2026 00:00:00 GMT</pubDate></item><item><title>Why We Built QFlow: Deno, QTI 3.0, and the Case for a New Authoring System</title><link>https://www.longsight.com/blog/qflow-qti-3-deno-authoring-system/</link><guid isPermaLink="true">https://www.longsight.com/blog/qflow-qti-3-deno-authoring-system/</guid><description>QTI 3.0 is mature, open-source runners exist, and institutions need authoring tools that keep assessment content portable. QFlow is the authoring tool we wanted for that work.</description><pubDate>Fri, 06 Mar 2026 00:00:00 GMT</pubDate></item><item><title>Sakai 25 Patch Highlights: February 2026</title><link>https://www.longsight.com/blog/sakai25-patch-highlights-february-2026/</link><guid isPermaLink="true">https://www.longsight.com/blog/sakai25-patch-highlights-february-2026/</guid><description>February’s Sakai patches focus on grading edge cases, more dependable quiz behavior, and a round of smaller usability fixes that make the platform feel steadier day to day.</description><pubDate>Fri, 27 Feb 2026 00:00:00 GMT</pubDate></item><item><title>Credentials Should Live Outside the LMS</title><link>https://www.longsight.com/blog/credtrail-open-source-badging-outside-the-lms/</link><guid isPermaLink="true">https://www.longsight.com/blog/credtrail-open-source-badging-outside-the-lms/</guid><description>CredTrail keeps badge issuing, verification, and portability outside the LMS.</description><pubDate>Thu, 12 Feb 2026 00:00:00 GMT</pubDate></item><item><title>Sakai 25 Patch Highlights: January 2026</title><link>https://www.longsight.com/blog/sakai25-patch-highlights-january-2026/</link><guid isPermaLink="true">https://www.longsight.com/blog/sakai25-patch-highlights-january-2026/</guid><description>January opens with tighter grading workflows, cleaner collaboration tools, and a handful of admin-safe fixes across both 25.x and 23.x.</description><pubDate>Thu, 29 Jan 2026 00:00:00 GMT</pubDate></item><item><title>Automating Accessibility with Playwright and axe</title><link>https://www.longsight.com/blog/automating-accessibility-with-playwright-and-axe/</link><guid isPermaLink="true">https://www.longsight.com/blog/automating-accessibility-with-playwright-and-axe/</guid><description>Our newer Sakai end-to-end suite lives in Playwright, so accessibility checks belong there too. Here is how we pair keyboard-first workflow tests with axe scans in a Java-based Playwright harness.</description><pubDate>Wed, 21 Jan 2026 00:00:00 GMT</pubDate></item><item><title>Sakai 25 Patch Highlights: December 2025</title><link>https://www.longsight.com/blog/sakai25-patch-highlights-december-2025/</link><guid isPermaLink="true">https://www.longsight.com/blog/sakai25-patch-highlights-december-2025/</guid><description>A focused set of fixes across grading, authoring, and integrations closes out the year for both 25.x and 23.x patch lines.</description><pubDate>Fri, 19 Dec 2025 00:00:00 GMT</pubDate></item><item><title>SCORM 2004 in Sakai: A REST Runtime That Holds Up</title><link>https://www.longsight.com/blog/scorm-2004-rest-runtime-in-sakai/</link><guid isPermaLink="true">https://www.longsight.com/blog/scorm-2004-rest-runtime-in-sakai/</guid><description>We replaced Wicket SJAX with Spring REST, added site-to-site import, and explain why SCORM 2004 remains our supported standard.</description><pubDate>Tue, 04 Nov 2025 00:00:00 GMT</pubDate></item><item><title>Sakai 25 Patch Highlights: October 2025</title><link>https://www.longsight.com/blog/sakai25-patch-highlights-october-2025/</link><guid isPermaLink="true">https://www.longsight.com/blog/sakai25-patch-highlights-october-2025/</guid><description>October fixes for Assignments, Discussions, course home, Lessons, and notification behavior across the 23.x and 25.x lines.</description><pubDate>Fri, 24 Oct 2025 00:00:00 GMT</pubDate></item><item><title>Converting Samigo JSP to Facelets</title><link>https://www.longsight.com/blog/converting-samigo-jsp-to-facelets/</link><guid isPermaLink="true">https://www.longsight.com/blog/converting-samigo-jsp-to-facelets/</guid><description>What it took to move Samigo authoring views from JSP to Facelets and why it matters for the JSF 4 path.</description><pubDate>Tue, 21 Oct 2025 00:00:00 GMT</pubDate></item><item><title>Sakai 25 Patch Highlights: September 2025</title><link>https://www.longsight.com/blog/sakai25-patch-highlights-september-2025/</link><guid isPermaLink="true">https://www.longsight.com/blog/sakai25-patch-highlights-september-2025/</guid><description>Visible Sakai 25.x fixes across Assignments, Gradebook, Lessons, Tests &amp; Quizzes, Resources, and course administration.</description><pubDate>Wed, 24 Sep 2025 00:00:00 GMT</pubDate></item><item><title>Leveling Up Canvas Imports in Sakai Lessons</title><link>https://www.longsight.com/blog/leveling-up-canvas-imports-in-sakai-lessons/</link><guid isPermaLink="true">https://www.longsight.com/blog/leveling-up-canvas-imports-in-sakai-lessons/</guid><description>Sakai Lessons now imports Canvas QTI packages with native translators, hardened XML parsing, and clearer diagnostics for admins.</description><pubDate>Fri, 19 Sep 2025 00:00:00 GMT</pubDate></item><item><title>Implementing Cross-Platform Push Notifications in Sakai</title><link>https://www.longsight.com/blog/push-notifications-blog-post/</link><guid isPermaLink="true">https://www.longsight.com/blog/push-notifications-blog-post/</guid><description>Implementation notes for cross-platform Sakai push notifications, including iOS Safari Web Push requirements, VAPID setup, service workers, and delivery edge cases.</description><pubDate>Thu, 10 Jul 2025 00:00:00 GMT</pubDate></item><item><title>Advancing Accessibility in Sakai: JAWS and drag-and-drop</title><link>https://www.longsight.com/blog/advanced-accessibility-in-sakai/</link><guid isPermaLink="true">https://www.longsight.com/blog/advanced-accessibility-in-sakai/</guid><description>What Sakai developers learned from JAWS and NVDA event handling, and how that changes accessibility testing.</description><pubDate>Thu, 05 Jun 2025 00:00:00 GMT</pubDate></item><item><title>Migrating from Nginx to Caddy</title><link>https://www.longsight.com/blog/migrating-from-nginx-to-caddy/</link><guid isPermaLink="true">https://www.longsight.com/blog/migrating-from-nginx-to-caddy/</guid><description>Caddy can make reverse proxy and Tomcat load-balancing setups shorter, easier to maintain, and secure by default.</description><pubDate>Wed, 23 Apr 2025 00:00:00 GMT</pubDate></item><item><title>Automating Accessibility Compliance with Cypress</title><link>https://www.longsight.com/blog/automating-accessibility-compliance-with-cypress/</link><guid isPermaLink="true">https://www.longsight.com/blog/automating-accessibility-compliance-with-cypress/</guid><description>Run axe checks inside Cypress so accessibility regressions fail locally and in CI before they reach users.</description><pubDate>Sun, 23 Mar 2025 00:00:00 GMT</pubDate></item><item><title>Powering UI with Lit Web Components</title><link>https://www.longsight.com/blog/powering-sakai-s-ui-with-lit-web-components/</link><guid isPermaLink="true">https://www.longsight.com/blog/powering-sakai-s-ui-with-lit-web-components/</guid><description>How Sakai uses Lit web components to keep LMS interface code smaller, reusable, and easier to share across tools.</description><pubDate>Fri, 10 Jan 2025 00:00:00 GMT</pubDate></item><item><title>Automating Regression Testing with Cypress and GitHub Actions</title><link>https://www.longsight.com/blog/automating-regression-testing-with-cypress-and-github-actions/</link><guid isPermaLink="true">https://www.longsight.com/blog/automating-regression-testing-with-cypress-and-github-actions/</guid><description>Run Cypress end-to-end tests in GitHub Actions so pull requests catch regressions before they reach production.</description><pubDate>Sat, 14 Dec 2024 00:00:00 GMT</pubDate></item></channel></rss>