All categories

CATEGORY

Tech

703articles

Aligning IIIF 3D Viewer with Presentation API 4 — converting legacy manifests at runtime

I aligned IIIF 3D Viewer with the IIIF 3D Technical Specification Group's Presentation API 4 draft (Scene / PointSelector / WKTSelector / PerspectiveCamera). Existing manifests authored against IIIF Presentation 3 with a project-local 3DSelector / camPos extension are funnelled through a runtime converter so the rest of the pipeline only deals with v4. This post records the diff, the conversion rules, and the implementation outline.

iiif3dpresentation-apiweb-annotation

Auto-Updating a Statistics Page from TEI/XML Transcription Data via CI/CD — A Case Study from the Kouigenjimonogatari Text DB

How a statistics page that aggregates pages, lines, characters, and waka counts per chapter is generated from TEI/XML transcription data, and how the rebuild and redeployment are automated with GitHub Actions.

teixmldhgithub-actions

📥researchmap Achievement Registration: Options for Individual Researchers and a Playwright Implementation

researchmap provides an official write API and CSV/JSON/JSONL import for individual users, each with its own constraints. This article reviews the available options and presents a Playwright implementation that adds full automation and PDF attachment support.

researchmapplaywrightpythonautomation

A YAML-Driven Next.js Admin Console — Multiple Sites, Multiple Actions

Notes on extending an admin console so that adding sites and actions requires editing one YAML file rather than touching code, with a tabbed UI for multiple actions per site.

nextjscloudflaregithub-appyaml

Building an Org-Wide Admin Console with GitHub App + Cloudflare Access

Notes on building an admin console where non-engineers can trigger deploys and data updates for multiple database sites without GitHub or Vercel accounts. Combines GitHub App authentication with Cloudflare Access (Zero Trust), and walks through how PAT, OAuth App, and GitHub App differ.

githubgithub-appcloudflarecloudflare-access

Why Drupal's Automatic Updates Wasn't Running: `Unattended background updates` Is Disabled by Default

I assumed having Drupal's Automatic Updates module installed meant security updates would just land. They weren't. The cron-time policy `Unattended background updates` ships disabled by default, so the module was effectively idle. This post records the diagnosis, the configuration that finally let 10.6.3 → 10.6.7 apply automatically, and the 'not officially supported' warning that surfaces once you turn it on.

drupalautomatic-updatessecuritycron

ElevenLabs v2 vs v3 for Japanese Tech Narration — A/B Comparison Using a Voice-Cloned Synthetic Voice

I ran an experiment narrating Japanese tech-blog articles with a voice-cloned synthetic voice trained on my own speech, using ElevenLabs Voice Cloning + the eleven_v3 model. This post records an A/B comparison of v2 and v3 on identical narration material, plus operational notes.

elevenlabsvoice-cloningpodcastyoutube

Mirador 4.0.0 hides supplementing annotations from the Annotations panel — a `filteredMotivations` gotcha

I delivered IIIF Presentation 3 OCR text annotations with `motivation: "supplementing"`, and they showed up in Annona and other viewers but not in Mirador 4.0.0's Annotations side panel. Reverse-engineering the deployed Mirador bundle revealed that the released default for `config.annotations.filteredMotivations` is `['oa:commenting', 'oa:tagging', 'sc:painting', 'commenting', 'tagging']` — `supplementing` isn't in the allowlist. This post walks through how I found that, the `['commenting', 'supplementing']` array workaround, and the relevant spec / Cookbook references.

iiifmiradorannotationpresentation-api

Building an Access-Controlled IIIF Digital Archive — Cantaloupe + S3 + Elasticsearch + Next.js, Gated by Cloudflare Access

An implementation log for a digital archive that delivers historical photographs which cannot be made fully public, while still preserving the benefits of IIIF (spec-compliant high-resolution viewer, manifest delivery) for an authorized membership. The stack is Cantaloupe (IIIF server) + S3-compatible storage + Elasticsearch (search) + Next.js (UI) + Cloudflare Tunnel + Access. We also lay out where IIIF Auth API 2.0 would fit in for cross-host interoperability.

iiifcantaloupeelasticsearchnextjs

📅Auto-filling Chouseisan attendance with Playwright, deciding answers via Claude Code's Google Calendar MCP

A small CLI that automates attendance responses on Chouseisan (chouseisan.com) using Playwright. The decision part — whether each candidate slot should be ◯/△/× given the user's Google Calendar — is delegated to Claude Code via the claude.ai Google Calendar MCP. The workflow is split into three independent stages (fetch / fill / submit), and decision rules live in CLAUDE.md.

playwrightclaude-codemcpgoogle-calendar

Comparing NDL Koten OCR-Lite and Cloud Vision API on a Jiaxing Tripitaka 'Mahāprajñāpāramitā Sūtra' — Observations across 105 Images

We applied two OCR engines — Japan's National Diet Library NDL Koten OCR-Lite and Cloud Vision API DOCUMENT_TEXT_DETECTION — to 105 IIIF images of fascicles 571–575 of the Mahāprajñāpāramitā Sūtra in the Jiaxing Tripitaka held by Yūrenja (formerly the Hōonzō of Zōjōji), and compared the patterns of error in their outputs. NDL produced phantom kana lines on 12 pages; Vision picked up color charts, rulers, and shelf labels as if they were body text on all 105.

ocrndl-koten-ocrgoogle-vision-apiiiif

🖼️Migrating an IIIF Image Server from Cantaloupe to serverless-iiif

Notes on migrating a Cantaloupe-based IIIF image server running on EC2/Docker to a serverless setup on AWS Lambda + CloudFront (serverless-iiif by Samvera).

iiifawslambdacloudfront

Stopping Bot Scraping with AWS WAF — Geo Block, JA3 Fingerprint, and UA Block in Stages

A record of blocking bot scraping against a cultural-archive site using AWS WAF, combining Geo block, IPset, JA3 fingerprint, and UA block in stages.

awswafcloudfrontsecurity

Retrofitting CloudFront + WAF onto an Existing Reverse-Proxy Origin: Practical Patterns

An implementation log of migrating a group of services running on Docker + Traefik, with no downtime, to a CloudFront + WAF-protected setup. I cover naming for the origin-only subdomain, pitfalls with shared Security Groups, the case for starting WAF in COUNT mode, cache design for SPARQL/API traffic, and other recurring decision points.

awscloudfrontwafterraform

Generating CiNii Articles Links from a Researcher Number — How the NII Researcher ID Works

By prefixing a KAKENHI researcher number (8 digits) with 1000, you can mechanically generate a CiNii Articles URL. This also applies to populating university faculty information systems.

ciniikakenniiresearcher-info

🤖Exposing vLLM on mdx.jp Through Cloudflare Tunnel as an OpenAI-Compatible API

How I exposed a vLLM server running on mdx.jp through Cloudflare Tunnel and used it as an OpenAI-compatible API, including the practical pitfalls

cloudflaretunnelzero-trustvllm

🚀Serving LLM-jp-4 32B Thinking on mdx.jp A100 x2 with vLLM and Using It via an OpenAI-Compatible API

Notes from running the official LLM-jp-4-32b-a3b-thinking model on an mdx.jp A100 40GB x2 server and switching from a Transformers OOM to a vLLM deployment

aillmgpuvllm

🧪Running LLM-jp-4 Locally on a MacBook Pro M4 Max 128GB with Ollama’s OpenAI-Compatible API

Notes and measurements from running LLM-jp-4 8B locally on a MacBook Pro M4 Max 128GB and exposing it through Ollama’s OpenAI-compatible API

aillmmacollama

Securing SSH with Cloudflare Zero Trust

How to securely connect to a server via SSH without opening any ports, using Cloudflare Zero Trust Access

cloudflarezero-trustsshsecurity

Securely Exposing Academic Servers with Cloudflare Tunnel

How to securely expose Elasticsearch and Cantaloupe (IIIF) without opening any inbound ports, using Cloudflare Tunnel

cloudflaretunneldockerelasticsearch

How Name Servers Work

Explains the difference between name servers and DNS, the relationship between domain ownership and name servers, NS delegation, and the roles of registrars and registries

dnsnameservercloudflare

Elasticsearch → Static JSON / D1 Migration — You Don't Need a Search Engine for Small Datasets

Benchmarking Elasticsearch, Cloudflare D1, and Static JSON for full-text search across ~1,800 Japanese text records.

cloudflareelasticsearchd1sqlite

Investigating and Cleaning Up Google Drive Shared Drive Storage with rclone

How to use the rclone CLI to hierarchically investigate folder sizes in a Google Drive Shared Drive and identify unnecessary files for deletion.

google-driverclonecli

🗂️Cantaloupe IIIF Image Server Performance Tuning

Notes on reducing cold tile fetch time from 8.8s to 0.84s on a Cantaloupe IIIF server: pyramid TIFF conversion, JVM heap tuning, and CloudFront CDN setup.

iiifcantaloupeawscloudfront

📊Dynamically Generating Excel Templates with Cross-Sheet Dropdown Validation Using ExcelJS in Next.js API Routes

How to use ExcelJS data validation to generate Excel templates with dropdowns that reference data in other sheets, served from a Next.js API route.

nextjsexceljsexceltypescript

🗄️Backing Up Omeka S in a Docker Environment

A practical guide to backing up Omeka S running in Docker: extracting volumes, databases, and custom assets.

omekaomekasdocker

🏯IIIF VR Viewer: Experiencing Cultural Resources at Real Scale with WebXR and A-Frame

Development notes for a WebXR viewer that places IIIF images at real-world scale inside a virtual Edo-period townhouse, viewable in both browsers and VR headsets. Covers A-Frame + THREE.js third-person camera, VRM avatars, tile LOD, and issues encountered along the way.

webxraframethreejsjavascript

📖Calling NDLOCR-Lite as a Python Library Instead of CLI

How to import and call NDLOCR-Lite, a Japanese OCR engine published by the National Diet Library, directly from a Python script instead of using the CLI.

ndlocrocrpythonjapanese-ocr

KotenOCR Android Development Log — Migrating from Flutter to Kotlin

Development log of building the KotenOCR Android app with Flutter, then migrating to Kotlin Native. Performance benchmarks, API fix for 18x speedup, and framework selection with AI-assisted development.

flutterkotlinonnxruntimeocr

📏Physical Dimensions Ruler Plugin for Mirador 4

A Mirador 4 plugin that displays a physical scale ruler overlay using the IIIF Physical Dimensions service.

miradoriiifplugindigital-archives

🎨Redesigning 3 iOS App Icons with AI: From Flat to Modern iOS Style

A practical walkthrough of redesigning 3 iOS app icons using Gemini, evolving from flat design to modern iOS style with gradients and soft lighting. Includes prompts, results, and post-processing tips.

iosdesignaiprompt

Bulk-Editing 508 Zenn Articles with Playwright and Internal API for Migration Redirects

When migrating 900+ articles from Zenn to a self-hosted Hugo blog, I used Playwright and an undocumented API to bulk-replace article bodies with redirect notices.

zennplaywrightpythonseo

Building a Custom Hugo Theme with Tailwind CSS v4 and Submitting to Hugo Themes Gallery

A record of migrating from PaperMod to a custom Tailwind CSS v4-based Hugo theme and submitting it to the official Hugo Themes gallery.

hugotailwindcssthemecss

🔄Handling App Store Rejection and Resubmission Entirely via API

A record of handling a rejected App Store build by replacing the build, updating screenshots, and resubmitting entirely through the App Store Connect API.

iosappstoreconnectapiflutter

🎨A Reusable Prompt Template for Generating iOS App Icons with AI

A reusable prompt template for generating Apple HIG-compliant iOS app icons using AI image generation tools like Gemini, DALL-E, and Midjourney.

iosdesignaiprompt

🛡No Firebase Needed: Operating an iOS App with Apple-Native Tools Only

How to handle crash monitoring, analytics, update prompts, and review requests for an iOS app without sending user data to external services — using only Apple-native tools and open-source libraries. Based on real-world experience with an App Store-published app.

iosswiftprivacymetrickit

Pitfalls of Converting TEI XML Standoff Annotations to Inline, and a DOM-Based Solution

A record of a document structure corruption bug encountered while converting TEI XML standoff annotations to inline for a Vue.js viewer in the Digital Engishiki project, and the DOM-based solution.

teixmlpythonbeautifulsoup

📺How to Upload VTT Subtitle Files in YouTube Studio

Step-by-step guide to uploading VTT subtitle files for both the original and translation languages in YouTube Studio, with screenshots

youtubewebvttsubtitle

🗺Developing "IIIF AR": An iOS App for Placing IIIF Images at Real Scale in AR

A development log for "IIIF AR," an iOS app that places high-resolution IIIF Image API images at real-world scale on detected floor surfaces using ARKit, dynamically loading tiles as the camera approaches.

iosarkitiiifswift

🧠Diagnosing and Fixing Memory-Related Crashes in an iOS OCR App

Investigation and fixes for a 6.7% crash rate in KotenOCR, an iOS OCR app using ONNX Runtime with 6 models totaling ~230MB on disk.

iosswiftmemoryonnx

🖼️Fixing Universal Viewer 4.x "Unknown content type" Error with Local Hosting

Documenting the cause and fix for the "Unknown content type" error in Universal Viewer 4.x, resolved by self-hosting with a custom initialization.

iiifuniversal-viewernuxtdigital-humanities

🎬How to Upload English Subtitles (VTT Files) in YouTube Studio

Step-by-step guide for adding English VTT subtitle files to a YouTube video that already has Japanese subtitles

youtubewebvttsubtitle

Observed Timing: Apple Sales Reports API Data Availability and YouTube API Quota Reset

Documenting the actual observed timing of when Apple App Store Connect Sales Reports become available and when YouTube Data API v3 quota resets.

appstoreconnectapiyoutubepython

🤖Auto-Generating Bilingual Video Subtitles with Claude Code and Publishing via IIIF v3 Manifests

How to efficiently generate bilingual video subtitles using Claude Code's multimodal capabilities and ffmpeg scene change detection, then publish them via IIIF v3 manifests

claude-codeffmpegiiifwebvtt

🎬Digital Tale of Genji Video Subtitle Project: Publishing Bilingual Subtitles with IIIF v3 Manifests

A project adding Japanese/English bilingual subtitles to Digital Tale of Genji tutorial videos, published as IIIF v3 manifests

iiifwebvttdigital-humanitiesgenji

📜KotenOCR v1.3.0: Dual OCR Modes for Classical and Modern Japanese Text

KotenOCR v1.3.0 adds NDLOCR-Lite support for modern printed text OCR alongside the existing classical text (kuzushiji) mode, with one-tap mode switching and parallelized recognition for up to 6.7x speedup.

iosocrkuzushijindl

📚Building an Automated DH Tool Awareness System with Playwright, RSS, and AI

Automatically collecting DH tool information from X posts, RSS feeds, and GitHub API, then generating weekly summary articles with AI

digitalhumanitiesgithub-actionsplaywrightopenrouter

Parallelizing OCR Recognition on iOS with Swift Concurrency for up to 6.7x Speedup

Using withThrowingTaskGroup to parallelize OCR recognition in an iOS app, achieving 1.4x to 6.7x speedup depending on the number of detected text regions.

iosswiftconcurrencyocr

🔍Building a Cultural Heritage Explorer App with Japan Search API

Development notes on building JPS Explorer, an iOS/Android app for exploring Japanese cultural heritage using Japan Search APIs, with mobile-specific features and automated App Store submission

digitalhumanitiesjapansearchflutterios

🔍How Japan Search's Image Similarity Search API Works

Investigating the undocumented API behind Japan Search's image upload similarity search

digitalhumanitiesjapansearchapiimage-search

📜KotenOCR: An Offline iOS App for Recognizing Classical Japanese Cursive Script

KotenOCR is a free iOS app that runs the NDL Koten OCR-Lite model entirely on-device, enabling offline recognition of kuzushiji (classical Japanese cursive script) from photos.

iosocrkuzushijiswift

🗄️Comparing Local Archiving Methods for Yahoo News Articles (SingleFile, Playwright, ArchiveBox, WARC, yt-dlp)

A comparison of five methods (SingleFile, Playwright PDF, ArchiveBox, WARC, yt-dlp) for locally archiving Yahoo News articles and videos, covering output format, file size, and use cases

web-archivesinglefileplaywrightarchivebox

📸Fully Automating App Store Screenshot Generation with Python and Xcode UI Tests

How to build an end-to-end pipeline that captures simulator screenshots with XCUITest, generates marketing images with Python Pillow, and uploads them to App Store Connect via API -- all from a single shell script.

iosappstoreconnectpythonautomation

📚Building an NDC Book Classifier with LoRA: Fine-Tuning a Japanese LLM on Library Data

A hands-on tutorial on collecting bibliographic data from the National Diet Library Search API and fine-tuning a 1.8B Japanese LLM with LoRA to classify books by their NDC (Nippon Decimal Classification) category from title alone.

llmlorapythonnlp

🔗Automating researchmap KAKENHI-Achievement Linking with Playwright

researchmap does not support linking KAKENHI research projects to achievements via API or CSV import, so I created a Playwright script to automate the browser-based workflow.

researchmapplaywrightpythonautomation

🚀Achieving Up to 7.6x Faster Image Delivery by Optimizing Cantaloupe IIIF Server Cache

How cache configuration and parameter tuning of the Cantaloupe IIIF server achieved up to 7.6x faster tile delivery, with methods and results.

iiifcantaloupedockerperformance

🔓Why Contentful's Publish Button Is Greyed Out — A Locale Configuration Pitfall

How to diagnose and fix a greyed-out Publish button in Contentful caused by locale misconfiguration in a multilingual setup.

contentfulcmsi18n

🤖Fixing 6 GitHub Issues in Parallel with Claude Code: Worktrees and Agents

A record of using Claude Code's worktree and agent features to fix 6 GitHub Issues in parallel for a Nuxt.js TEI viewer project.

claude-codegithubnuxtjstei

🔍Improving Google Search Console Indexing Issues with schema.org Structured Data

Tackling 391 "Crawled - currently not indexed" pages in Google Search Console by implementing schema.org structured data (JSON-LD) on a digital humanities site.

seoschema.orgnuxtgoogle-search-console

📝CATMA: A Guide to Web-Based Text Annotation and Analysis

An introduction to CATMA, the web-based text annotation and analysis platform developed by forTextLab at the University of Hamburg.

catmatext-annotationtext-analysisdigital-humanities

📊Datawrapper: A Data Visualization Tool for Researchers and Journalists

Datawrapper is a data visualization tool for easily creating charts, maps, and tables. It supports 20+ chart types, choropleth maps, and provides responsive and accessible visualizations.

datawrapperchartmapdata-visualization

🎬Flourish: An Interactive Data Storytelling Platform

Flourish is a platform for creating interactive data visualizations including race charts, animated maps, and interactive stories. With 30+ templates, it is adopted by BBC, Google, and more. Free plan available.

flourishdata-visualizationanimationstorytelling

📜FromThePage: Crowdsourcing Transcription for Historical Documents

An overview of FromThePage, the crowdsourcing transcription platform for historical documents, and its applications in Digital Humanities.

fromthepagetranscriptioncrowdsourcingiiif

🕸️Gephi Lite: Browser-Based Network Visualization for Digital Humanities

An introduction to Gephi Lite, the browser version of the popular network visualization tool Gephi, and its practical applications in Digital Humanities research.

gephinetwork-visualizationgraph-analysisdigital-humanities

📝Hypothes.is: An Open-Source Web Annotation Tool Compliant with W3C Standards

Hypothes.is is an open-source annotation tool compliant with the W3C Web Annotation standard. It enables highlights and comments on any web page, used in education, research, and journalism. BSD licensed.

hypothesisannotationw3ceducation

🏛️Internet Archive: Leveraging the World's Largest Digital Archive

An overview of Internet Archive, the world's largest digital archive, and how it can be used in Digital Humanities research.

internet-archivewayback-machinedigital-archiveopen-access

🌍Kepler.gl: An Open-Source Tool for Beautiful Large-Scale Geospatial Data Visualization

An overview of Kepler.gl, Uber's large-scale geospatial data visualization tool, and how it can be used in Digital Humanities research.

kepler-glgeospatialgisdata-visualization

🔍Mirador: The Optimal Open-Source Viewer for IIIF Image Comparison and Analysis

An overview of Mirador, a IIIF image viewer developed by Stanford and Harvard, and its applications for comparative research in digital archives.

iiifmiradorviewercomparison

📊Observable: Data Visualization Notebooks by the Creator of D3.js

An introduction to Observable, the JavaScript-based data analysis and visualization notebook platform by D3.js creator Mike Bostock, and its applications in Digital Humanities.

observabled3jsdata-visualizationjavascript

🏛️Omeka: A Platform for Digital Collections and Online Exhibitions

An overview of Omeka, an open-source platform for managing digital collections and building online exhibitions, including Omeka S with Linked Data support for libraries, museums, and universities.

omekadigital-collectionsexhibitionlinked-data

🗺️Palladio: A Guide to Humanities Data Visualization

An introduction to Palladio, the data visualization tool developed by Stanford's Humanities+Design Lab for exploring historical and humanities data.

palladiostanforddata-visualizationmaps

📊RAWGraphs: A No-Code Data Visualization Tool for Digital Humanities

An introduction to RAWGraphs, a browser-based no-code visualization tool that transforms CSV/TSV data into 30+ chart types, and how it can be applied in Digital Humanities research.

rawgraphsdata-visualizationno-codedigital-humanities

💾ReplayWeb.page: A Browser-Based Web Archive Replay Tool

ReplayWeb.page is a tool for replaying WARC/WACZ web archives directly in the browser. It operates entirely client-side using Service Workers, requiring no server infrastructure.

web-archivewarcwebrecorderdigital-preservation

🌍StoryMapJS: A Guide to Map-Based Storytelling

Learn how to create interactive map-based stories using Knight Lab's StoryMapJS, with slide-based navigation and animated map transitions.

storymapjsstorymapknight-labmaps

🏷️Taguette: A Free Open-Source Qualitative Data Analysis Tool

An overview of Taguette, a free open-source qualitative data analysis tool, and how it can be used for text analysis in Digital Humanities.

taguettequalitative-analysisqdatext-analysis

📜TEI Publisher: A Platform for Publishing TEI XML Digital Editions

An overview of TEI Publisher, a platform for publishing TEI XML digital editions, and its applications in Digital Humanities.

teixmlpublishingdigital-edition

TimelineJS: Create Interactive Timelines from Spreadsheets

Learn how to create interactive timelines from Google Spreadsheets using Knight Lab's TimelineJS, no programming required.

timelinejstimelineknight-labstorytelling

✍️Transkribus: AI-Powered Handwritten Text Recognition for Historical Documents

An introduction to Transkribus, an AI-based handwritten text recognition platform supporting 100+ languages, and its applications in Digital Humanities research for transcribing historical documents.

transkribusocrhtrhandwriting

🖼️Universal Viewer: The Definitive IIIF-Compliant Multimedia Viewer

An overview of Universal Viewer, a IIIF-compliant multimedia viewer, and its applications in digital archives.

iiifuniversal-viewerviewerdigital-archives

🔍Voyant Tools: A Browser-Based Text Analysis Platform for Digital Humanities

An introduction to Voyant Tools, a browser-based text analysis platform offering word clouds, KWIC, co-occurrence analysis, topic modeling, and more for DH research.

voyant-toolstext-analysisnlpdigital-humanities

🔍Wikidata Query Service: Exploring Knowledge Graphs with SPARQL

Learn how to use Wikidata Query Service to search and visualize over 100 million items using SPARQL queries.

wikidatasparqllinked-open-dataknowledge-graph

📜Fast TEI/XML Deployment on Vercel: Automating XSLT Transformation with saxon-js

Fast TEI/XML Deployment on Vercel: Automating XSLT Transformation with saxon-js

teixsltvercelsaxonjs

TETRAS-IIIF: Annotation, Video, and Multi-User Extensions for Mirador 4

An overview of the TETRAS-IIIF ecosystem for Mirador 4: annotation editing (MAE), video annotation (MAEV), and multi-user collaboration (MMU).

iiifmiradorannotationvideo

IIIF Georeference Viewer: Visualizing Georeferenced Content on Interactive Maps

Introducing a viewer for IIIF Georeference Extension. Overlay historical maps and images on interactive maps.

iiifgisdigital-humanitiesnuxt

Mirador: A Feature-Rich IIIF Viewer for Comparing and Annotating Images

An introduction to Mirador, the IIIF viewer. Multi-window image comparison, annotations, plugin extensions, and more.

iiifmiradordigital-humanitiesviewer

Tify: A Lightweight, Fast IIIF Document Viewer

Introducing Tify, a lightweight and fast IIIF viewer with mobile support, full-text search, table of contents, and more.

iiiftifydigital-humanitiesviewer

Universal Viewer: A Multi-Format IIIF Viewer for Images, Audio, Video, and 3D

An introduction to Universal Viewer, a versatile IIIF viewer that supports images, audio, video, 3D, and PDF content.

iiifuniversal-viewerdigital-humanitiesviewer

🗺️Fixing Custom Marker Lag on Zoom in MapLibre GL JS with GeoJSON Layers

DOM-based custom markers (maplibregl.Marker) in MapLibre GL JS lag behind the map during zoom and pan. This article explains the cause and a solution using GeoJSON source with Circle/Symbol layers.

maplibrejavascriptgiswebgl

How I Used Claude Code's Parallel Agents to Auto-Generate Videos from 882 Blog Posts

Using Claude Code's parallel agent feature to auto-generate two-character dialogue videos from 882 tech blog posts — and hitting the top 2% usage limit.

claude-codeaivoicevoxyoutube

🔄How to Submit an iOS App Update for Review Using the App Store Connect API

A step-by-step guide to submitting an iOS app update for review entirely from the command line using the App Store Connect REST API—from build upload to review submission.

iosappstoreconnectapipython

💰Complete Guide to Adding a Tip Jar (In-App Purchase) to Your iOS App with App Store Connect API

Learn how to implement a Tip Jar feature in your iOS app using StoreKit 2 and the App Store Connect API — covering product registration, localization, pricing, screenshot upload, TestFlight distribution, and more, all from the command line.

iosappstoreconnectapipython

🚀Upgrading from Astro 4 to 5 — A Migration Log

Summary of changes required when upgrading from Astro 4 to Astro 5

astrojavascriptmigration

📸Fixing the White Bar at the Bottom of Chrome Headless Screenshots

When using Chrome Headless --screenshot to capture HTML as images, a white bar appears at the bottom. Here's the root cause and a reliable fix.

chrome-extensionpythontipsffmpeg

📜Fast TEI/XML Deployment on Vercel: Automating XSLT Transforms with saxon-js

How to automate TEI/XML to HTML conversion with saxon-js and deploy on Vercel. Includes a comparison of three Node.js XSLT libraries.

teixsltvercelsaxonjs

🎭Auto-Generating VRM Character Animation Videos with Three.js + Puppeteer

Implementation notes on building a pipeline that animates VRM models on headless Chrome using Three.js and @pixiv/three-vrm, combined with VOICEVOX lip sync, to auto-generate VTuber-style explainer videos.

threejsjavascriptpythonvrm

📜Migrating to DTS (Distributed Text Services) 1.0 ― Updating a TEI/XML Text API

A record of changes needed to migrate from DTS 1-alpha to 1.0: JSON-LD Context URL, Content-Type, parameter validation, waka Citation Tree support, and more.

dtsapiteidigitalhumanities

🔍Improving DTS Viewer ― Multiple Citation Trees, Hierarchical Navigation, and XML Browser Display

Implementing tree parameter support for multiple Citation Trees, hierarchical table navigation, and mediaType parameter for inline XML display in DTS Viewer.

dtsnextjsreactdigitalhumanities

📚Tech Stack for a RAG App That Searches Historical Documents with AI

Tech Stack for a RAG App That Searches Historical Documents with AI

nextjsragpineconeclaude

🚀Submitting an iOS App for Review Using Only the App Store Connect API

A step-by-step guide to completing nearly all tasks required for App Store review submission—metadata, screenshots, age ratings, build association, encryption compliance, pricing, and more—from the command line using the App Store Connect REST API.

iosappstoreconnectapipython

👁Adding a CETEIcean-Powered TEI Preview to the DOCX → TEI/XML Converter

Added a visual preview feature to the DOCX → TEI/XML converter using CETEIcean, allowing users to verify TEI tags render as expected directly in the browser.

teixmldigitalhumanitiesjavascript

5x Faster XSLT Processing: Migrating from Saxon-JS to Saxon-HE

Switching from npx xslt3 (Saxon-JS) to Java Saxon-HE reduced XSLT build time from 1m48s to 23s for a TEI XML digital humanities project.

xsltsaxonteidigitalhumanities

🌐Introducing ethers-i18n: Multilingual Error Messages for ethers.js

A lightweight i18n plugin for ethers.js error messages supporting 4 languages

ethereumethersjsi18ntypescript

🎞Animating IIIF Scroll Paintings with AI Video: A Video Annotation Approach

Introducing the IIIF Animated Viewer, which overlays AI-generated videos on specific regions of IIIF images.

iiifaiopenseadragonvideogeneration

How to Bulk Unpublish Hatena Blog Articles (AtomPub API)

How to effectively bulk unpublish published articles using the Hatena Blog AtomPub API

hatenapythonapi

📄Building a DOCX to TEI/XML Conversion Tool in the Browser Using the TEI Garage API

Building a DOCX to TEI/XML Conversion Tool in the Browser Using the TEI Garage API

teixmldigitalhumanitiesjavascript

👋Exporting Web Annotations via the Hypothes.is API and Converting to TEI/XML

Exporting Web Annotations via the Hypothes.is API and Converting to TEI/XML

apixmlannotationtei

📝Trying "oitei" - An Automatic Conversion Tool from OpenITI mARkdown to TEI XML

Trying "oitei" - an automatic conversion tool from OpenITI mARkdown to TEI XML

pythonxmlteidh

💬Operating GakuNin RDM API with Node.js — From Project Creation to GitHub + Vercel Auto-Deploy

Operating GakuNin RDM API with Node.js — From Project Creation to GitHub + Vercel Auto-Deploy

gitnodevercelapi

🎃I Created a Japanese Tutorial for ethers.js v6

I created a Japanese tutorial for ethers.js v6

blockchainjavascriptethereumweb3

😽Annotorious Drawing Mode Breaks Only in Production Build

Annotorious Drawing Mode Breaks Only in Production Build

javascriptnextjswebpackiiif

🕌GakuNin RDM Search API (`/api/v1/search/`) Investigation Memo

GakuNin RDM Search API (`/api/v1/search/`) Investigation Memo

djangoapirdmgakunin

🐥Bulk Managing Google Groups Members via API Without Google Workspace Admin Privileges

Bulk managing Google Groups members via API without Google Workspace admin privileges

google

🐡Verifying Non-DC Metadata Registration in Archivematica -- Embedding EAD Using source-metadata.csv

Verifying non-DC metadata registration in Archivematica -- embedding EAD using source-metadata.csv

archivematicadublincore

🌟Verification of Digital Archive Construction Using the AtoM REST API

Verification of Digital Archive Construction Using the AtoM REST API

atom

📑Developing a Plugin to Extend the AtoM REST API

Developing a Plugin to Extend the AtoM REST API

atom

🐥Starting Alfresco with Docker and Experiencing the Records Management Lifecycle via REST API

Starting Alfresco with Docker and Experiencing the Records Management Lifecycle via REST API

dockerapialfrescoedrms

🚀Development of a Text Comparison Tool Using IIIF Manifests

Development of a text comparison tool using IIIF manifests

iiif

📝Improved the Drupal GitHub Webhook Module

Improved the Drupal GitHub Webhook module

githubdrupal

📑Bulk Deleting Unnecessary Sites Using Netlify CLI

Bulk Deleting Unnecessary Sites Using Netlify CLI

netlify

🚀Performing Module Updates and Core Upgrades from the Drupal 10 Admin Interface

Performing Module Updates and Core Upgrades from the Drupal 10 Admin Interface

drupal

🐡Replacing Only the Window Title of External Manifests in Mirador 4

Replacing Only the Window Title of External Manifests in Mirador 4

iiifmirador

🐈Cause and Fix for `localStorage.getItem is not a function` Error in Next.js 15

Cause and Fix for `localStorage.getItem is not a function` Error in Next.js 15

nextjs

📝Three Pitfalls When Adapting a SPARQL Client to Apache Jena Fuseki

Three Pitfalls When Adapting a SPARQL Client to Apache Jena Fuseki

rdfvirtuososnorqlfuseki

👋Snorql -- Published a Browser UI for Easily Exploring Multiple SPARQL Endpoints

Snorql -- Published a Browser UI for Easily Exploring Multiple SPARQL Endpoints

rdfsparqllodsnorql

😊Mirador Viewer Embedding Configuration

Mirador viewer embedding configuration

iiifmirador

🦁Investigating PLY Files Not Being Output in IIIF Manifest Items with Omeka S IIIF Server Module

Investigating PLY files not being output in IIIF manifest items with Omeka S IIIF Server module

3domekaomekasomekasmodule

🐷Developing a 3D Gaussian Splatting Viewer - Browser Implementation Using Spark.js

Developing a 3D Gaussian Splatting Viewer - browser implementation using Spark.js

3d

The World of 3D Point Cloud Data: Organizing the Relationship Between PLY, Gaussian Splatting, and Potree

The World of 3D Point Cloud Data: Organizing the Relationship Between PLY, Gaussian Splatting, and Potree

3d

📖How to Use the KAKEN OpenSearch API

How to Use the KAKEN OpenSearch API

apiopensearchkaken

🎃Three.js + React Three Fiber: Resolving Rough GLTF Model Texture Display

Three.js + React Three Fiber: Resolving Rough GLTF Model Texture Display

threejs

🙆Nuxt Content + trailingSlash: Links to Static Files Return 404 - Problem and Solution

Nuxt Content + trailingSlash: links to static files return 404 - problem and solution

nuxtnuxt4

💬Adding Linked Places Format Support to IIIF Georeference Viewer

Adding Linked Places Format support to IIIF Georeference Viewer

iiiflpf

🐡Developing and Publishing a Rotation Plugin for Mirador 4 on npm

Developing and publishing a rotation plugin for Mirador 4 on npm

iiifmirador

💬Implementing IIIF Content Search API on Static Sites - Client-Side Search with Service Workers

Implementing IIIF Content Search API on Static Sites - Client-Side Search with Service Workers

iiif

💬The Pitfall of JavaScript Operator Precedence - Investigating a Vercel Build Error

The pitfall of JavaScript operator precedence - investigating a Vercel build error

nextjsreactvercel

😸Building a Web App to Download and Display GLB Files Using the Sketchfab API

Building a Web App to Download and Display GLB Files Using the Sketchfab API

nextjsthreejsglbsketchfab

🐈ODD Editing Tips: Part 1

ODD Editing Tips: Part 1

xmlrngteiodd

🔖Why AUTH_URL Is Required in Production for Next Auth (Auth.js v5)

Why AUTH_URL Is Required in Production for Next Auth (Auth.js v5)

nextjsauth

🕌Publishing a YOLOv11x Model on Hugging Face

Publishing a YOLOv11x Model on Hugging Face

yolohuggingface

📖Serving IIIF Images via Web Tile Map Service

Serving IIIF images via Web Tile Map Service

iiifwtms

📖Nuxt 3 Project Package Update Summary

Nuxt 3 project package update summary

nuxtnuxt3

🕌IIIF Georeference to XYZ Tiles

IIIF Georeference to XYZ Tiles

gisgdaliiifmaplibre

👋Auto-Generating English Subtitles and Audio for Videos with Azure OpenAI Whisper + Speech Services

Auto-Generating English Subtitles and Audio for Videos with Azure OpenAI Whisper + Speech Services

ttswhisper

🌟Introduction to Dataspaces with Eclipse EDC - Experiencing Data Exchange Flows in a Local Environment

Introduction to Dataspaces with Eclipse EDC - Experiencing Data Exchange Flows in a Local Environment

dataspaceedc

🐈How to Use @elastic/react-search-ui with React 19 + Next.js 15.5

How to Use @elastic/react-search-ui with React 19 + Next.js 15.5

nextjsreactelasticsearchreact19

🐥Draco Compression of GLB Files - 87% Size Reduction and Impact on Precision

Draco Compression of GLB Files - 87% Size Reduction and Impact on Precision

3diiifglbdraco

📝Displaying Over 3 Million Point Cloud Data Points Smoothly in a Browser - Building a Potree LOD Viewer

Displaying Over 3 Million Point Cloud Data Points Smoothly in a Browser - Building a Potree LOD Viewer

lodash3diiifpotree

😸Record of Migrating mirador-annotations to Mirador 4.x

Record of Migrating mirador-annotations to Mirador 4.x

reactmuiiiifmirador

🎃mirador-rotation-plugin Feature Enhancements

mirador-rotation-plugin Feature Enhancements

iiifmirador

🐕Integrating Next.js + next-auth with GakuNin RDM via OAuth2

Integrating Next.js + next-auth with GakuNin RDM via OAuth2

nextjsgakuninnii

[AWS Amplify] Pitfalls When Setting Up Custom Domains with Sakura Internet Domains

[AWS Amplify] Pitfalls When Setting Up Custom Domains with Sakura Internet Domains

dnsamplify

Dydra JSON-LD Serialization Behavior and Workaround

Dydra JSON-LD Serialization Behavior and Workaround

jsonrdfjsonlddydra

👋How to Navigate to the Detail Page of a File Uploaded via the GakuNin RDM Waterbutler API

How to Navigate to the Detail Page of a File Uploaded via the GakuNin RDM Waterbutler API

gakuninrdmgakuninodf

📘Pinata V3 API Group Feature Implementation Guide

Pinata V3 API Group Feature Implementation Guide

web3nftpinata

👻Drupal Update Procedure on Sakura Rental Server

Drupal update procedure on Sakura rental server

drupal

📝Created a Tool to Extract Opening Pages of Each Volume from IIIF Manifests

Created a Tool to Extract Opening Pages of Each Volume from IIIF Manifests

iiif

🐥Investigation Record of 404 Errors with CloudFront + App Runner

Investigation record of 404 errors with CloudFront + App Runner

aws

📖How to Correctly Load Local JSON Files in Nuxt 4 SSG

How to correctly load local JSON files in Nuxt 4 SSG

nuxtssgnuxt4

👌Implementing a Multilingual Historical Map with MapLibre GL JS + Rekichizu

Implementing a Multilingual Historical Map with MapLibre GL JS + Rekichizu

rekichizu

🙄Constraint Design for IIIF-Compatible Facsimile Description Using TEI ODD

Constraint Design for IIIF-Compatible Facsimile Description Using TEI ODD

xmlrngiiiftei

🐕ODD Chain Tutorial

ODD Chain Tutorial

tei

👻Customizing the TEI Classical Text Viewer to Display Illegible Sections (gap)

Customizing the TEI classical text viewer to display illegible sections (gap)

tei

🌟How to Highlight Arbitrary Regions in Mirador 4

How to Highlight Arbitrary Regions in Mirador 4

iiifmirador

🌟How to Simultaneously Specify Canvas and Highlight Search Terms in Mirador 4

How to Simultaneously Specify Canvas and Highlight Search Terms in Mirador 4

iiifmirador

💬Japanese Localization of RAWGraphs 2.0

Japanese localization of RAWGraphs 2.0

javascriptreacti18n

🚀Language Switching Implementation Guide with Next.js + next-intl

Language Switching Implementation Guide with Next.js + next-intl

nextjsi18n

🐕Creating Pyramidal Tiled TIFFs with vips and Comparing Compression Methods

Creating Pyramidal Tiled TIFFs with vips and Comparing Compression Methods

libvipsiiif

🚀Performance Improvement for Annotation Display

Performance improvement for annotation display

iiif

📌Annotating Tilted Characters and IIIF Image Cropping

Annotating tilted characters and IIIF image cropping

iiif

🌟Elasticsearch/OpenSearch Data Migration Guide Between Clusters

Elasticsearch/OpenSearch data migration guide between clusters

elasticsearchopensearch

🙆‍♀️Docker + GitHub Actions Deployment Configuration

Docker + GitHub Actions deployment configuration

dockergithub

🐥How to Create Distortion-Free Thumbnails from 360-Degree Videos and Photos

How to create distortion-free thumbnail images from 360-degree videos and photos

ffmpeg

📝How to Programmatically Determine Whether Insta360 Video Files Contain GPS Information

How to Programmatically Determine Whether Insta360 Video Files Contain GPS Information

gps

👻Complete Restoration of Deep Zoom Images: Converting Tile Images to BigTIFF

Complete restoration of Deep Zoom images: converting tile images to BigTIFF

pythonxml

🐷BDRC Tibetan OCR: Introduction and Implementation Examples of a Tibetan OCR Tool

BDRC Tibetan OCR: Introduction and Implementation Examples of a Tibetan OCR Tool

ocr

🐕Marker Position Offset Issue in Cesium 1.135.0 and Its Solution

Marker Position Offset Issue in Cesium 1.135.0 and Its Solution

cesium

👻Protoweb: A Time Machine to Experience the Internet of the 90s

Protoweb: A Time Machine to Experience the Internet of the 90s

ipres

Practicing Long-Term Digital Preservation with OCFL - An Introductory Guide

Practicing Long-Term Digital Preservation with OCFL - An Introductory Guide

ipresocfl

📘Using a Hex Editor on Mac: HexEd.it as an Alternative to HxD

Using a Hex Editor on Mac: HexEd.it as an Alternative to HxD

ipres

📘Finding Hidden File Format Issues with DROID: An Essential Tool for Digital Preservation

Finding Hidden File Format Issues with DROID: An Essential Tool for Digital Preservation

droidpronom

Development of an IIIF Image Coordinate Editor with Auto-Navigation

Development of an IIIF image coordinate editor with auto-navigation

iiifopenseadragon

🐡Odeuropa Visualization: A Platform for Visualizing Scent Data Using SKOS Vocabularies and SPARQL

Odeuropa Visualization: A Platform for Visualizing Scent Data Using SKOS Vocabularies and SPARQL

rdfsparqllodzennfes2025free

👌How to Build an Independent Author Database in Omeka S

How to build an independent author database in Omeka S

omekaomekaszennfes2025free

💨Complete Guide to Annotation Coordinate Conversion in Leaflet-IIIF

Complete guide to annotation coordinate conversion in Leaflet-IIIF

leafletiiifzennfes2025free

🐈Complete Guide to Migrating an Omeka-S Docker Environment to Another Server

Complete Guide to Migrating an Omeka-S Docker Environment to Another Server

dockeromekaomekaszennfes2025free

🦔Distinguishing Between RDFS and SHACL: Understanding the Relationship Between range and propertyShape

Distinguishing Between RDFS and SHACL: Understanding the Relationship Between range and propertyShape

rdfzennfes2025freerdfsshacl

🐷Developing an RDF Metadata Management System Integrating GakuNin RDM and Dydra

Developing an RDF Metadata Management System Integrating GakuNin RDM and Dydra

rdfdydrardmgrdm

📑Investigating the Vocabulary Hierarchy of Odeuropa Explorer

Investigating the Vocabulary Hierarchy of Odeuropa Explorer

githubrdfzennfes2025freeodeuropa

🔖Guide to Registering RDF Data to Dydra via API

Guide to Registering RDF Data to Dydra via API

rdfdydrazennfes2025free

🕌Declarative Multi-Format Conversion with TEI Processing Model

Declarative Multi-Format Conversion with TEI Processing Model

xmlxsltteiodd

How to Control the Viewing Direction of Mirador from External Parameters

How to control the viewing direction of Mirador from external parameters

iiifmiradorzennfes2025free

💭Odeuropa: The World of Linked Data for Extracting Scents from Historical Documents

Odeuropa: the world of Linked Data for extracting scents from historical documents

rdfsparqlzennfes2025free

👋Achieving Japanese Full-Text Search with the MroongaSearch Module for Omeka-S

Achieving Japanese Full-Text Search with the MroongaSearch Module for Omeka-S

omekaomekasomekasmodulezennfes2025free

📝Azure OpenAI GPT-4 vs Document Intelligence: Comparative Evaluation of Japanese Vertical Text OCR

Azure OpenAI GPT-4 vs Document Intelligence: Comparative Evaluation of Japanese Vertical Text OCR

azureocrllm

🐈LLM-Based Manuscript Paper OCR Performance Comparison: Verification of Vertical Japanese Recognition Accuracy

LLM-Based Manuscript Paper OCR Performance Comparison: Verification of Vertical Japanese Recognition Accuracy

ocrllm

😊Challenges and Solutions for Preserving Order in PDF Transparent Text Extraction

Challenges and solutions for preserving order in PDF transparent text extraction

pdfocr

📚Guide to Publishing TEI/XML Files on GitHub

Guide to Publishing TEI/XML Files on GitHub

githubxmlteihumanities

😸TEI ODD File Customization: A Case Study with NDL Classical Book OCR

TEI ODD File Customization: A Case Study with NDL Classical Book OCR

ocrrngteiroma

👌Converting ODD to RNG/HTML Using the TEI Garage API

Converting ODD to RNG/HTML using the TEI Garage API

teiromaoddteigarage

🌟A Scalable OCR Processing System Using NDL Classical Japanese OCR Lite on Azure Container Apps

A Scalable OCR Processing System Using NDL Classical Japanese OCR Lite on Azure Container Apps

dockerazureocr

🐙How to Register the PROV-O Ontology in Omeka S

How to register the PROV-O ontology in Omeka S

rdfurittlomeka

💬Image Collection Management Tool: Technical Architecture Explained

Image collection management tool: technical architecture explained

nextjss3gisgeo

🎉IIIF Georeference Viewer Migration to MapLibre GL and Feature Improvements

IIIF Georeference Viewer Migration to MapLibre GL and Feature Improvements

gisopenstreetmapiiifmaplibre

🎉Multilingual Support for Omeka S Themes

Multilingual support for Omeka S themes

omekaomekasomekastheme

🙄How to Dynamically Convert File Paths on Azure Storage Using Cantaloupe Delegate Scripts

How to dynamically convert file paths on Azure Storage using Cantaloupe delegate scripts

azureiiifcantaloupe

🎃Implementation Guide for TEI XML Schema Combining RELAX NG and Schematron

Implementation Guide for TEI XML Schema Combining RELAX NG and Schematron

xmlrngxpathtei

😺Setting Up the WDB Module on Drupal 10 in a Docker Environment

Setting Up the WDB Module on Drupal 10 in a Docker Environment

dockerdrupal

📑Creating Project-Specific RNG Files Using Generative AI

Creating Project-Specific RNG Files Using Generative AI

xmlrngteioxygen

🙆Introducing Omeka S Docker: A Modern and Secure Solution for Digital Collections

Introducing Omeka S Docker: A Modern and Secure Solution for Digital Collections

dockeriiifomekasglam

📌I Built a Prototype IIIF 3D Viewer

I Built a Prototype IIIF 3D Viewer

nextjs3diiifglb

💡Trying Out the Viewer from the "Pre-modern Japan-Asia Relations Digital Archive"

Trying Out the Viewer from the "Pre-modern Japan-Asia Relations Digital Archive"

dockerlaravelphpvue

🌟Next.js 15 Compatible Multilingual and Dark Mode SSG Template

Next.js 15 Compatible Multilingual and Dark Mode SSG Template

nextjstypescripttailwindssg

😎How to Implement sitemap.ts When Using output: 'export' in Next.js 15

How to Implement sitemap.ts When Using output: 'export' in Next.js 15

nextjsseossgsitemap

📚Testing IIIF Authentication API 2.0

Testing IIIF Authentication API 2.0

nextjsjsonjwtiiif

🔥Introducing GitHub File History Analyzer: A Tool for Analyzing File Edit History with AI

Introducing GitHub File History Analyzer: A Tool for Analyzing File Edit History with AI

aigithubpythonautomation

📖Trying Odeuropa-Related Tools

Trying Odeuropa-Related Tools

streamlithuggingfacetei

😽Trying AllegroGraph

Trying AllegroGraph

graphrdfsparqlgraphdb

🐈Fixing the 'ref' Bug in DHConvalidator

Fixing the 'ref' bug in DHConvalidator

pythonxmlteidocx

🐥Building an MCP Server for Searching the Koui Genji Monogatari Text DB

Building an MCP Server for Searching the Koui Genji Monogatari Text DB

npmswaggeropenapimcp

💨Building an API Server for Searching the Koui Genji Monogatari Text DB

Building an API Server for Searching the Koui Genji Monogatari Text DB

apielasticsearchswaggeropenapi

📝Creating a Castle Generation Command as a Minecraft Mod [Fabric 1.21 + Claude]

Creating a Castle Generation Command as a Minecraft Mod [Fabric 1.21 + Claude]

gradleminecraftfabriccursor

👋NFT Support for the Digital Cultural Heritage Management System (Prototype)

NFT support for the Digital Cultural Heritage Management System (prototype)

blockchainsolidityweb3nft

🗂Prototyping a Digital Cultural Heritage Management System Using Blockchain and Pinata IPFS

Prototyping a Digital Cultural Heritage Management System Using Blockchain and Pinata IPFS

nextjsethereumweb3pinata

🐙Describing Hierarchical Table of Contents with Omeka S IIIF Server Module

Describing hierarchical table of contents with Omeka S IIIF Server module

iiifomekaomekas

📌Using Pagination in IIIF Collections with IIIF Presentation API v2

Using Pagination in IIIF Collections with IIIF Presentation API v2

elasticsearchdrupaliiif

🔥How to Allow Non-Admin Users to Access Configuration Pages in Drupal

How to Allow Non-Admin Users to Access Configuration Pages in Drupal

drupal

📘Creating Annotated IIIF Manifest Files and TEI/XML Files Using NDL Klasseki OCR-Lite

Creating annotated IIIF manifest files and TEI/XML files using NDL Klasseki OCR-Lite

npmmonorepoiiiftei

📚Using the JSON Field Module to Handle JSON Format Fields in Drupal

Using the JSON Field Module to Handle JSON Format Fields in Drupal

jsondrupal

🌟Hosting TEI/XML Files on S3-Compatible Object Storage

Hosting TEI/XML Files on S3-Compatible Object Storage

nextjsdrupalteileafwriter

😽Updating the DTS (Distributed Text Services) API for the Koui Genji Monogatari Text DB

Updating the DTS (Distributed Text Services) API for the Koui Genji Monogatari Text DB

nodexmlteijsonld

🎃Investigating and Resolving Disk Pressure Caused by Docker [Ubuntu 22.04 Case Study]

Investigating and resolving disk pressure caused by Docker [Ubuntu 22.04 case study]

dockerelasticsearch

📖Creating Polylines Using the Polygon Tool in Annotorious v2

Creating Polylines Using the Polygon Tool in Annotorious v2

vuexmlannotationtei

👏How to Specify Initial Sort Order in Elasticsearch Search UI

How to Specify Initial Sort Order in Elasticsearch Search UI

typescriptelasticsearchsearchui

🐷How to Implement IP Address Restrictions for MDX.jp Object Storage

How to Implement IP Address Restrictions for MDX.jp Object Storage

omekamdxjp

🙌Prototyping a TEI/XML File Creation App Using Google Cloud Vision API and GakuNin RDM

Prototyping a TEI/XML File Creation App Using Google Cloud Vision API and GakuNin RDM

nextjsxmlteirdm

👋Added Route Registration Feature to the "Rekichizu x Next.js" Site

Added route registration feature to the "Rekichizu x Next.js" site

nextjsvercelgeojsonmaplibre

😸How to Disable Browser Language Detection in Nuxt i18n

How to Disable Browser Language Detection in Nuxt i18n

nuxti18nnuxt3

😺How to Add Dark Mode Using Tailwind CSS V4 with Next.js 15 App Router

How to Add Dark Mode Using Tailwind CSS V4 with Next.js 15 App Router

nextjs

📖Handling the Error: Do not use <img>. Use Image from 'next/image' instead.

Handling the Error: Do not use <img>. Use Image from 'next/image' instead.

nextjs

😎Rotating Images and Specifying Regions on Initial Load in Mirador 4

Rotating Images and Specifying Regions on Initial Load in Mirador 4

iiifopenseadragonmirador

💡Building a Proxy Server for mdx I Object Storage

Building a Proxy Server for mdx I Object Storage

nodeproxyexpresscors

🦔Using the Universal Viewer npm Package in Next.js

Using the Universal Viewer npm package in Next.js

nextjsiiifuniversalviewer

👻Searching Files in Linked Storage Using the GakuNin RDM API

Searching files in linked storage using the GakuNin RDM API

nextjsapirdmleafwriter

Prototyping a TEI/XML File Editing Environment Using LEAF Writer and GakuNin RDM

Prototyping a TEI/XML File Editing Environment Using LEAF Writer and GakuNin RDM

nextjsteirdmleafwriter

🦁Using Filters with the GakuNin RDM (OSF) API

Using Filters with the GakuNin RDM (OSF) API

apirdmgakuninosf

🕌Nuxt Content: Addressing 'Cannot find name queryContent'

Nuxt Content: Addressing 'Cannot find name queryContent'

nuxtnuxtcontentnuxt3

📚Using Route 53 DNS Records with Sakura Rental Server (Shared SSL)

Using Route 53 DNS Records with Sakura Rental Server (Shared SSL)

awssslsakura

🦁A Sample App Displaying Images with Mirador and Text with CETEIcean

A Sample App Displaying Images with Mirador and Text with CETEIcean

xmliiifteimirador

📚Registering Objects Using the AtoM (Access to Memory) API

Registering Objects Using the AtoM (Access to Memory) API

atompythonapi

👻Running AtoM (Access to Memory) with Docker

Running AtoM (Access to Memory) with Docker

atomdocker

📘Cases Where ImageMagick May Not Work Properly for Creating Pyramidal TIFFs?

Cases Where ImageMagick May Not Work Properly for Creating Pyramidal TIFFs?

imagemagicklibvipsiiif

📑Serving IIIF Images Using mdx.jp Object Storage and IIP Image (IIIF Image Server)

Serving IIIF Images Using mdx.jp Object Storage and IIP Image (IIIF Image Server)

dockers3iiifmdxjp

🌊Investigating Partial Match Search with AND Conditions Across Fields in Algolia

Investigating Partial Match Search with AND Conditions Across Fields in Algolia

elasticsearchalgolia

🐥How to Convert Word Files to TEI XML: A Guide to Using the TEIgarage API

How to Convert Word Files to TEI XML: A Guide to Using the TEIgarage API

pythonteidocxteigarage

🐷Developing a Viewer with Next.js + CETEIcean + React TEI Router

Developing a Viewer with Next.js + CETEIcean + React TEI Router

nextjsreactxmltei

🦁Next.js for Drupal BASE_PATH Issue and Fix (Using patch-package)

Next.js for Drupal BASE_PATH Issue and Fix (Using patch-package)

nextjsdrupal

🤖Registering Data with Drupal's JSON:API Using Username and Password

Registering Data with Drupal's JSON:API Using Username and Password

pythondrupal

🗂Building a Multilingual Static Site with Next.js

Building a multilingual static site with Next.js

nextjsreacti18n

🐥How to Get Coordinates of Sub-Images from a Larger Image

How to Get Coordinates of Sub-Images from a Larger Image

pythonopencv

👌Creating TEI/XML from VTT Files

Creating TEI/XML from VTT Files

pythoniiifteivtt

🙆Downloading Annotations Created with the mirador-annotations Plugin in Mirador 3

Downloading Annotations Created with the mirador-annotations Plugin in Mirador 3

iiifmirador

💨Changing the Pagination Limit in Algolia

Changing the Pagination Limit in Algolia

algolia

🗂Prototyping an API for Retrieving Variant Character Lists

Prototyping an API for Retrieving Variant Character Lists

vercelexpress

🗂Using @react-three/fiber and drei with Next 15 (Using React 19)

Using @react-three/fiber and drei with Next 15 (Using React 19)

nextjsreactthreejs

📑Created a Similar Text Search App for the Koui Genji Monogatari

Created a Similar Text Search App for the Koui Genji Monogatari

pythonocrhuggingfacetei

💨CORS Configuration for Omeka S Image Server

CORS Configuration for Omeka S Image Server

corsiiifomeka

📝Creating AIPs with Archivematica for Files in Alfresco

Creating AIPs with Archivematica for Files in Alfresco

pythonarchivematicamdxjpalfresco

👋Starting Alfresco Governance Services Community Edition

Starting Alfresco Governance Services Community Edition

dockertraefikalfrescoedrms

😎Editing TEI/XML Files Using XSLT

Editing TEI/XML Files Using XSLT

vscodexmlcopilotcursor

📖Processing Dataverse Data with Archivematica

Processing Dataverse data with Archivematica

dataversearchivematicardmmdxjp

💭Real-Time Preview of TEI/XML Using VSCode and XSLT

Real-Time Preview of TEI/XML Using VSCode and XSLT

vscodexmlxslxslt

💭Creating PDFs from TEI/XML of the Koui Genji Monogatari Text Database

Creating PDFs from TEI/XML of the Koui Genji Monogatari Text Database

texpdfxmlxslt

Trying Local Authentication with @sidebase/nuxt-auth

Trying Local Authentication with @sidebase/nuxt-auth

nuxtauthdrupalnuxt3

📘Using Drupal OAuth with NextAuth.js

Using Drupal OAuth with NextAuth.js

nextjsdrupal

🐡Trying Azure Logic Apps

Trying Azure Logic Apps

azure

🌊Creating Apps with Azure OpenAI Assistants API Using Gradio and Next.js

Creating apps with Azure OpenAI Assistants API using Gradio and Next.js

azurenextjsopenaigradio

👻How to Upload Media to Omeka S Using Python

How to Upload Media to Omeka S Using Python

pythoniiifomekaomekas

🐙Trying Annotations in Sketchfab

Trying annotations in Sketchfab

3dsketchfab

Converting OBJ Files to glTF and GLB Files

Converting OBJ files to glTF and GLB files

3d

💡Trying aleph-r3f

Trying aleph-r3f

reacttailwind3diiif

🙌Cantaloupe: Serving Images Stored in Microsoft Azure Blob Storage

Cantaloupe: Serving Images Stored in Microsoft Azure Blob Storage

dockerazuretraefikiiif

🦔Building an NDLOCR Gradio App Using Azure Virtual Machines

Building an NDLOCR Gradio App Using Azure Virtual Machines

azuregpuocrndl

🦁Authenticating with GakuNin RDM Using Nuxt 3 and @sidebase/nuxt-auth

Authenticating with GakuNin RDM using Nuxt 3 and @sidebase/nuxt-auth

nuxtrdmgrdm

🙆Building a RAG-based Chat Using Azure OpenAI, LlamaIndex, and Gradio

Building a RAG-based chat using Azure OpenAI, LlamaIndex, and Gradio

azuregpt4openaigradio

💭Using the "Tale of Genji in Textbooks LOD"

Using the "Tale of Genji in Textbooks LOD"

rdflodsnorqlyasgui

📌Trying Out Peripleo

Trying Out Peripleo

mapgisrdf

🙌Developed a Simple Viewer for CSV Files Published on the Internet

Developed a Simple Viewer for CSV Files Published on the Internet

csv

🔥Building a Gradio App Using NDL Kotenseki OCR-Lite

Building a Gradio app using NDL Kotenseki OCR-Lite

dockerocrgradio

👏Trying Out Geocoding Libraries

Trying Out Geocoding Libraries

pythongeocoding

😺Using IIIF Manifest Files Stored in mdx.jp Object Storage from NestJS

Using IIIF Manifest Files Stored in mdx.jp Object Storage from NestJS

s3nestjsiiifmdxjp

😺Notes on LLM-Related Tools

Notes on LLM-Related Tools

pythonllmllamaindexollama

😺Minor Modifications to openai-assistants-quickstart

Minor Modifications to openai-assistants-quickstart

nextjsrag

🐙Authenticating with ORCID, The Open Science Framework, and GakuNin RDM Using NextAuth.js

Authenticating with ORCID, The Open Science Framework, and GakuNin RDM Using NextAuth.js

nextjsnextauthoauthoauth2

📘Building a Character Detection Model Using YOLOv11x and the Japanese Classical Character Dataset

Building a Character Detection Model Using YOLOv11x and the Japanese Classical Character Dataset

pythonyolomdxjp

🙄Training YOLOv11 Classification (Kuzushiji Recognition) Using mdx.jp

Training YOLOv11 classification (kuzushiji recognition) using mdx.jp

pythonyolohuggingfacemdxjp

🔥Running a Local LLM Using mdx.jp 1GPU Pack and Ollama

Running a Local LLM Using mdx.jp 1GPU Pack and Ollama

llmllamaollamamdxjp

🙆Creating a Transparent Text PDF from a Single Page Using Google Cloud Vision API

Creating a transparent text PDF from a single page using Google Cloud Vision API

pythonpdfocr

🐷Using the Zotero API from Next.js

Using the Zotero API from Next.js

nextjsverceltailwindzotero

🦔Customizing the LEAF Writer Editor Toolbar

Customizing the LEAF Writer Editor Toolbar

xmlteileafwriter

Using the GakuNin RDM API

Using the GakuNin RDM API

apijsonapigakuninrdmgakunin

🐥Differences Between ShExC and ShExJ

Differences Between ShExC and ShExJ

rdf

🐕Differences Between ShEx and SHACL

Differences Between ShEx and SHACL

rdf

🐈How to Use the Files/Markers Tabs in the @samvera/ramp Viewer

How to Use the Files/Markers Tabs in the @samvera/ramp Viewer

iiifprezi

Addressing the resumptionToken Bug in Omeka S OAI-PMH Repository

Addressing the resumptionToken Bug in Omeka S OAI-PMH Repository

omekaomekasoaipmh

😎(Non-Standard) Outputting Delete Records with the Omeka S OAI-PMH Repository Module

(Non-Standard) Outputting Delete Records with the Omeka S OAI-PMH Repository Module

omekaomekasoaipmh

📚Adding a Table of Contents to Videos Using iiif-prezi3

Adding a Table of Contents to Videos Using iiif-prezi3

awsrekognitioniiifprezi

🌟Setting Subtitles on Videos Using iiif-prezi3

Setting Subtitles on Videos Using iiif-prezi3

iiifvttprezi

🚀Adding Annotations to Videos Using iiif-prezi3

Adding Annotations to Videos Using iiif-prezi3

awsrekognitioniiifprezi

🌊Using URL Segments Starting with Underscores in Next.js

Using URL Segments Starting with Underscores in Next.js

nextjs

🐈Addressing a Bug in setFilter of @elastic/search-ui

Addressing a Bug in setFilter of @elastic/search-ui

npm

🙄Trying Out rico-converter

Trying Out rico-converter

rdfrico

📌Building an Inference App Using Hugging Face Spaces and YOLOv5 Model (Trained on KaoKore Dataset)

Building an Inference App Using Hugging Face Spaces and YOLOv5 Model (Trained on KaoKore Dataset)

yolohuggingface

💬Resolving ModuleNotFoundError: No module named 'huggingface_hub.utils._errors'

Resolving ModuleNotFoundError: No module named 'huggingface_hub.utils._errors'

yolohuggingface

📚Manipulating CVAT Data Using Python

Manipulating CVAT data using Python

pythoncvat

🎉Handling the CSRF: Value is required and can't be empty Error in Omeka S

Handling the CSRF: Value is required and can't be empty Error in Omeka S

phpomekaomekas

🕌Using Custom Permissions in Drupal Custom Modules

Using Custom Permissions in Drupal Custom Modules

drupal

👌GitHub Repository for DTS API for TEI/XML Files Published in the Koui Genji Monogatari Text DB

GitHub Repository for DTS API for TEI/XML Files Published in the Koui Genji Monogatari Text DB

apixmlteidts

🚀Creating a DTS API for TEI/XML Files Published by the Koui Genji Monogatari Text DB

Creating a DTS API for TEI/XML files published by the Koui Genji Monogatari Text DB

vercelapixmltei

🌊Trying Out DTS (Distributed Text Services)

Trying Out DTS (Distributed Text Services)

xmlteidts

🎉Trying Out the MyCapytain Library

Trying Out the MyCapytain Library

xmlteidtscts

👋Trying Canonical Text Services

Trying Canonical Text Services

xmlteicts

🐥Describing Annotations Using SVG in IIIF Presentation API v3

Describing annotations using SVG in IIIF Presentation API v3

svgiiifmirador

👌Performing Similar Image Search Using GUIE (Google Universal Image Embedding) Pre-trained Models

Performing Similar Image Search Using GUIE (Google Universal Image Embedding) Pre-trained Models

pythonkagglegui

😊Sample Program Using the Annotorious OpenSeadragon Plugin

Sample program using the Annotorious OpenSeadragon Plugin

iiifopenseadragonannotorious

🤖Setting Field-level Visibility (Public/Private) in Drupal

Setting field-level visibility (public/private) in Drupal

drupal

😺Applying Google Cloud Vision to Image Files to Create IIIF Manifests and TEI/XML Files

Applying Google Cloud Vision to Image Files to Create IIIF Manifests and TEI/XML Files

pythonocriiiftei

🐥Updating Omeka S

Updating Omeka S

omekaomekas

🔖Registering RDF Data to Dydra Using Python

Registering RDF Data to Dydra Using Python

pythonrdfdydra

📝Deleting All Files in OpenAI Storage

Deleting All Files in OpenAI Storage

openairag

🐈Bringing a Specified Marker to the Front in nuxt3-leaflet

Bringing a Specified Marker to the Front in nuxt3-leaflet

nuxtleafletnuxt3

🚀LEAF Writer: Adding Mirador

LEAF Writer: Adding Mirador

xmlteileafwriter

🌟Handling concurrent.futures.process.BrokenProcessPool

Handling concurrent.futures.process.BrokenProcessPool

nbdev

👻Using Node.js to Validate JSON:API Compliance

Using Node.js to Validate JSON:API Compliance

jsonapi

🎉Trying Out virtual-museum-tour-threejs

Trying Out virtual-museum-tour-threejs

threejs

😺Retrieving the URL of Site Pages Where Items Are Published in the Omeka S OaiPmh Repository Module

Retrieving the URL of Site Pages Where Items Are Published in the Omeka S OaiPmh Repository Module

omekaomekasomekasmoduleoaipmh

Bulk Deleting Multiple Content Items Using the Drupal REST API

Bulk Deleting Multiple Content Items Using the Drupal REST API

pythondrupal

👻Adding Images to IIIF Manifest Files for Audio Materials

Adding Images to IIIF Manifest Files for Audio Materials

iiifopenaiwhisperdalle3

🙆IIIF Audio/Visual: Describing Multiple VTT Files

IIIF Audio/Visual: Describing Multiple VTT Files

iiifopenaiwhisperramp

🔥App Development Using Zotero's API and Streamlit

App Development Using Zotero's API and Streamlit

pythonstreamlitzotero

💨Displaying Audio Files with Subtitles in an IIIF Viewer

Displaying Audio Files with Subtitles in an IIIF Viewer

iiifopenaiwhisper

📘Uploading Multiple Files to mdx.jp Object Storage

Uploading Multiple Files to mdx.jp Object Storage

s3mdxs3cmd

👋Converting Audio Published on the NDL Historical Sound Archive to mp4

Converting audio published on the NDL Historical Sound Archive to mp4

ffmpegm3u8

🙆Customizing Ramp

Customizing Ramp

verceliiiframp

👌Running Ramp Locally

Running Ramp Locally

iiiframp

💡Using Scroll View in Mirador 3

Using Scroll View in Mirador 3

iiifmirador

💡Redirecting to HTTPS with Traefik

Redirecting to HTTPS with Traefik

traefik

💭Large Videos Not Playing in Chrome

Large Videos Not Playing in Chrome

iiifomeka

😸Difference Between production and development in Omeka S SetEnv APPLICATION_ENV

Difference between production and development in Omeka S SetEnv APPLICATION_ENV

omekaomekas

🐥Operating Multiple HTTPS-Enabled Containers with Traefik

Operating Multiple HTTPS-Enabled Containers with Traefik

dockertraefik

🙌Fixing Issues with the Omeka S GoogleAnalytics Module

Fixing Issues with the Omeka S GoogleAnalytics Module

omeka

🙄Redirecting Using Amazon S3 and Route 53

Redirecting Using Amazon S3 and Route 53

awss3route53

🙆Configuring CORS for Docker-based Omeka S

Configuring CORS for Docker-based Omeka S

dockeromeka

😽CORS Error with Omeka S IIIF Server Module

CORS Error with Omeka S IIIF Server Module

iiifomekaomekas

🍣LEAF Writer: Customizing Schemas

LEAF Writer: Customizing Schemas

xmlschemateiroma

📝Google Spreadsheet + GAS (Google Apps Script) onEdit Executing Twice

Google Spreadsheet + GAS (Google Apps Script) onEdit Executing Twice

gas

🎃Understanding the Relationship Between RDF, Turtle, JSON-LD, and IIIF Manifest Files

Understanding the Relationship Between RDF, Turtle, JSON-LD, and IIIF Manifest Files

rdfiiif

🐈Partial Update to TEI/XML Published in the Koui Genji Monogatari Text Data Repository

Partial update to TEI/XML published in the Koui Genji Monogatari text data repository

xmlteileafwriter

🙆‍♀️Publishing a Customized Mirador 4 as an npm Package

Publishing a Customized Mirador 4 as an npm Package

iiifmirador

🙆‍♀️Examining Zoom, Scale, and Rotation Behavior in Mirador 4

Examining Zoom, Scale, and Rotation Behavior in Mirador 4

iiifopenseadragonmirador

💨Publishing Materials on Zenodo

Publishing Materials on Zenodo

iiifzenodordm

📝Handling nbdev Errors on macOS

Handling nbdev Errors on macOS

nbdev

🐙Applied Examples of Data Description Using Linked Data

Applied examples of data description using Linked Data

rdfjpsorcid

📖Developing a Zoom Disable Plugin for Mirador 3 (4)

Developing a Zoom Disable Plugin for Mirador 3 (4)

iiifmirador

📘Using prefix.cc

Using prefix.cc

rdf

💬Notes on Adding and Visualizing RDF Data

Notes on adding and visualizing RDF data

rdfvision

💭Retrieving RDF from URIs Using Content Negotiation in Python

Retrieving RDF from URIs using Content Negotiation in Python

pythonrdfwikidata

👏Trying iiif-prezi3

Trying iiif-prezi3

pythoniiif

💡Fixing Japanese Filename Conversion in Archivematica

Fixing Japanese Filename Conversion in Archivematica

archivematica

🔖Examining the Contents of the DHC Format

Examining the contents of the DHC format

xmlteidhc

🙌Trying Out a3m

Trying out a3m

aipa3m

📑How to Handle When SSH Connection to Sakura VPS Becomes Unavailable

How to Handle When SSH Connection to Sakura VPS Becomes Unavailable

sshsakuravps

😎Rebuilding and Restarting Containers with docker-compose

Rebuilding and Restarting Containers with docker-compose

docker

🌟Trying Strapi's Data Transfer

Trying Strapi's Data transfer

cmsstrapi

🎉Trying Out @iiif/parser

Trying Out @iiif/parser

iiif

📘Handling Shared Memory Shortage When Running ndlocr_cli and Other Issues

Handling Shared Memory Shortage When Running ndlocr_cli and Other Issues

ocrndlocr

📚Publishing Videos with Omeka S

Publishing Videos with Omeka S

iiifomeka

🔖Disk Space After Installing ndlocr_cli with Docker

Disk space after installing ndlocr_cli with Docker

ocrmdx

👏Logging into Drupal Programmatically

Logging into Drupal Programmatically

drupal

🔖Searching Including Private Posts with WordPress REST API

Searching Including Private Posts with WordPress REST API

wordpressapi

🐡Triggering GitHub Actions from Drupal Events

Triggering GitHub Actions from Drupal Events

githubdrupalpipedream

🐡Inference App Using a YOLOv5 Model (Character Region Detection)

Inference App Using a YOLOv5 Model (Character Region Detection)

yologradio

🦔Launching Jupyter Lab on mdx

Launching Jupyter Lab on mdx

mdx

Fixing an Inference App Using Hugging Face Spaces and a YOLOv5 Model (Trained on NDL-DocL Dataset)

Fixing an Inference App Using Hugging Face Spaces and a YOLOv5 Model (Trained on NDL-DocL Dataset)

pythonyolohuggingfacegradio

👌Handling ultralyticsplus: ValueError: Invalid CUDA 'device=0' requested...

Handling ultralyticsplus: ValueError: Invalid CUDA 'device=0' requested...

yoloyolov8ultralytics

📘Prototyping entity-lookup Using the Japan Search Utilization Schema

Prototyping entity-lookup Using the Japan Search Utilization Schema

rdfteijps

🙌Trying cwrc's wikidata-entity-lookup

Trying cwrc's wikidata-entity-lookup

apixmlteiwikidata

🙆Trying the CWRC XML Validator API

Trying the CWRC XML Validator API

xmltei

📚RELAX NG and Schematron

RELAX NG and Schematron

xmlrnggpttei

👌Using the Docker Version of TEI Publisher

Using the Docker version of TEI Publisher

xmltei

👋Formatting XML Strings in Python

Formatting XML strings in Python

pythonxml

😺How to Convert CMYK Color Images Without Color Inversion

How to Convert CMYK Color Images Without Color Inversion

iiif

💨Counting Triples in an RDF Store 2: Co-occurrence Frequency

Counting Triples in an RDF Store 2: Co-occurrence Frequency

rdfsparqljps

🙆‍♀️Counting the Number of Triples in an RDF Store

Counting the Number of Triples in an RDF Store

rdfsparql

🙌Trying Out TEIGarage

Trying Out TEIGarage

tei

🍣Handling the Error: Input value "page" contains a non-scalar value

Handling the Error: Input value "page" contains a non-scalar value

drupal

🍣Bulk Deleting S3 Buckets Using AWS CLI

Bulk deleting S3 buckets using AWS CLI

awss3

💨An Example Analysis of Texts Published in "SAT Daizokyo Text Database 2018"

An Example Analysis of Texts Published in "SAT Daizokyo Text Database 2018"

htmlpython

🚀Parsing XML Strings in Node.js

Parsing XML Strings in Node.js

xml

🕌LlamaIndex+GPT4+gradio

LlamaIndex+GPT4+gradio

gpt4gradiollamaindex

📝Creating an Inline Marker Tool with Editor.js

Creating an inline marker tool with Editor.js

vuevue3

😽Changing the max-width of Editor.js

Changing the max-width of Editor.js

vuevue3

🐈Checking Which Users Belong to a Specific Group on a Linux System

Checking Which Users Belong to a Specific Group on a Linux System

gptgpt4

Partial Match Search with the Advanced Search Module in Omeka S

Partial match search with the Advanced Search module in Omeka S

omekaomekasomekasmodule

💨Creating a Custom Search Page in Omeka S

Creating a Custom Search Page in Omeka S

omekaomekas

📘Using the API of the Curriculum Guidelines Code Recommendation App

Using the API of the Curriculum Guidelines Code Recommendation App

huggingfacegradiojpcos

📑Prototype of a Course of Study Code Recommendation App

Prototype of a Course of Study Code Recommendation App

huggingfacefaissgradiolangchain

😎Using the researchmap API

Using the researchmap API

python

📑TEI/XML Visualization Example: Map Display Using Leaflet

TEI/XML visualization example: map display using Leaflet

leafletxmltei

📘Creating a Sitemap in Nuxt 3

Creating a sitemap in Nuxt 3

nuxtnuxt3

🔖Verifying OAuth Authentication Using Drupal's Simple OAuth and Postman

Verifying OAuth Authentication Using Drupal's Simple OAuth and Postman

oauthdrupal

📚Trying Out METSFlask

Trying Out METSFlask

archivematicametspremis

😎Trying the Access to Memory RESTful API

Trying the Access to Memory RESTful API

accesstomemory

📌Trying the ArchivesSpace RESTful API

Trying the ArchivesSpace RESTful API

archivesspace

🦁Trying ArchivesSpace's OAI Repository

Trying ArchivesSpace's OAI Repository

archivesspaceoaipmheadoai

🗂Trying Access to Memory's OAI Repository

Trying Access to Memory's OAI Repository

aoaioaipmhaccesstomemory

🌊Tips for Using sidebase/nuxt-auth in a Production Environment

Tips for Using sidebase/nuxt-auth in a Production Environment

nuxt

🤖Adding Japanese Translation to a Documentation Site Built with Sphinx

Adding Japanese Translation to a Documentation Site Built with Sphinx

sphinxarchivematica

🌟Copying Build Results to Sakura Rental Server Using GitHub Actions and SCP

Copying Build Results to Sakura Rental Server Using GitHub Actions and SCP

githubgithubactionsactionsscp

🎃Resolving mysqldump: not found in MariaDB

Resolving mysqldump: not found in MariaDB

mariadb

🚀Workaround When Presentation API v2 Manifests Cannot Be Displayed in Mirador 3

Workaround When Presentation API v2 Manifests Cannot Be Displayed in Mirador 3

iiifomekaomekasomekasmodule

📝Updating the IIIF Viewers Module for Omeka S

Updating the IIIF Viewers Module for Omeka S

moduleiiifomekaomekas

📚How to Fix the 413 Request Entity Too Large Error in nginx-proxy

How to fix the 413 Request Entity Too Large error in nginx-proxy

dockernginx

🍣How to Access S3 Buckets and Enable SSL Communication Using Docker-based Cantaloupe

How to Access S3 Buckets and Enable SSL Communication Using Docker-based Cantaloupe

awsec2s3iiif

👏Trying Out File Information Tool Set (FITS)

Trying Out File Information Tool Set (FITS)

dockerpdffits

🔖Sending Email Notifications for GitHub Actions Results: Using Gmail

Sending email notifications for GitHub Actions results: Using Gmail

githubactionsgmail

🙆Aligning the Collated Tale of Genji with Modern Japanese Translations in Digital Genji Monogatari

Aligning the Collated Tale of Genji with Modern Japanese Translations in Digital Genji Monogatari

pythonxmltei

💭Trying ro-crate-py

Trying ro-crate-py

rororcidbagitrocrate

🦁Linking a GitHub Repository with Zenodo

Linking a GitHub repository with Zenodo

githubzenodo

😸Trying OAuth2 Authentication for REST Resources Using Drupal's simple_oauth Module

Trying OAuth2 Authentication for REST Resources Using Drupal's simple_oauth Module

oauthoauth2drupal

🗂Testing Drupal REST Resource Cookie Authentication Using Postman

Testing Drupal REST Resource Cookie Authentication Using Postman

drupal

🗂Trying the Drupal JSON Web Token Authentication Module

Trying the Drupal JSON Web Token Authentication module

jwtdrupal

🤖Updating Drupal on Sakura Rental Server

Updating Drupal on Sakura rental server

drupal

🎃Troubleshooting Errors When Running lando start

Troubleshooting errors when running lando start

dockermaclando

🐕Drush Command Cheat Sheet

Drush Command Cheat Sheet

drupal

🙄Usage Example of the Image Map Editor in Oxygen XML Editor

Usage Example of the Image Map Editor in Oxygen XML Editor

xmlteioxygen

😺Nuxt3 x Vuetify x Cesium

Nuxt3 x Vuetify x Cesium

nuxtvuetifycesiumnuxt3

🎉Trying Nuxt 3 and Decap CMS

Trying Nuxt 3 and Decap CMS

nuxtcmsnuxt3decapcms

🐷Handling AttributeError: 'ImageDraw' object has no attribute 'textsize'

Handling AttributeError: 'ImageDraw' object has no attribute 'textsize'

pythonpillow

🎃Restarting Virtuoso on EC2 Using Amazon SNS

Restarting Virtuoso on EC2 using Amazon SNS

awspythonec2sam

📝Resolving SAM Error: Running AWS SAM Projects Locally Requires Docker

Resolving SAM Error: Running AWS SAM Projects Locally Requires Docker

awsdockersam

Trying Leaflet Marker Cluster with Nuxt 3 and Composition API

Trying Leaflet Marker Cluster with Nuxt 3 and Composition API

nuxtvuevue3leaflet

🐥Nuxt3 x Vuetify x Cytoscape

Nuxt3 x Vuetify x Cytoscape

nuxtvuevue3nuxt3

🦔Cantaloupe: Running as a Service

Cantaloupe: Running as a service

iiifcantaloupe

🐡Cantaloupe: Serving Images Stored in Amazon S3

Cantaloupe: Serving Images Stored in Amazon S3

awss3amazoniiif

🌟TEI Publisher: Visualization Examples from the TEI Publisher Demo Collection (Part 1)

TEI Publisher: Visualization Examples from the TEI Publisher Demo Collection (Part 1)

teiteipublisher

🦔Vue.js: Handling Panes with iframes When Using Splitpanes

Vue.js: Handling Panes with iframes When Using Splitpanes

vuevue3

😊Formatting and Syntax Highlighting XML in Nuxt3

Formatting and Syntax Highlighting XML in Nuxt3

nuxtxmltei

👏Using Versioning Machine (VM5.0) with Visual Studio Code (VSCode)

Using Versioning Machine (VM5.0) with Visual Studio Code (VSCode)

tutorialtei

🎉[Omeka S Module Introduction] BulkExport: Adding Export Functionality to Item Detail Pages

[Omeka S Module Introduction] BulkExport: Adding Export Functionality to Item Detail Pages

omekaomekasomekasmodule

Disabling Autotune in Amazon OpenSearch Service

Disabling Autotune in Amazon OpenSearch Service

awsopensearch

Enabling HTTPS for Archivematica on EC2

Enabling HTTPS for Archivematica on EC2

awsec2archivematica

👻Trying Cantaloupe Access Control

Trying Cantaloupe Access Control

iiifcantaloupe

📚Adding Values to info.json in Cantaloupe

Adding values to info.json in Cantaloupe

iiifcantaloupe

🎃Trying Cantaloupe Overlays

Trying Cantaloupe Overlays

iiifcantaloupe

🌟Enabling HTTPS for Cantaloupe on EC2

Enabling HTTPS for Cantaloupe on EC2

iiifcantaloupe

🐷Handling "two factor auth enabled..." on PyPI

Handling "two factor auth enabled..." on PyPI

pypi2fanbdev

🦁Launching Cantaloupe, a IIIF Image Server, on EC2

Launching Cantaloupe, a IIIF Image Server, on EC2

awsjavarubyec2

💭Running NDL Classical Japanese OCR on mdx

Running NDL Classical Japanese OCR on mdx

ocrndlmdxjp

🐷Trying Mirador 2's Physical Document Ruler

Trying Mirador 2's Physical Document Ruler

iiifmiradormirador2

🐈Notes on Extracting Latitude and Longitude from Google Maps Short URLs

Notes on Extracting Latitude and Longitude from Google Maps Short URLs

pythonmap

🐙Trying the mirador-annotations Plugin and SimpleAnnotationServer with Mirador 3

Trying the mirador-annotations Plugin and SimpleAnnotationServer with Mirador 3

annotationiiifmirador

🐡[Omeka S Module Introduction] Advanced Search Adapter for Solr

[Omeka S Module Introduction] Advanced Search Adapter for Solr

apachesolromeka

🦔Accessing a Specific AWS S3 Bucket Using Cyberduck for macOS

Accessing a Specific AWS S3 Bucket Using Cyberduck for macOS

awss3cyberduck

🦔Setting Up GitHub 2FA Using a Browser Extension

Setting Up GitHub 2FA Using a Browser Extension

github2faotp

🎉Error When Running npx nuxi typecheck

Error When Running npx nuxi typecheck

nuxt3

🐥Commands for Restarting Virtuoso When It Stops

Commands for Restarting Virtuoso When It Stops

virtuoso

👻Utilizing Exhibition Information Stored in the Cultural Japan RDF Store

Utilizing Exhibition Information Stored in the Cultural Japan RDF Store

rdfsparql

📘Watching URL Query Changes with watch in Nuxt3

Watching URL Query Changes with watch in Nuxt3

nuxt3

😸How to Check How Fields Are Indexed in Apache Solr

How to check how fields are indexed in Apache Solr

apachesolr

🔥Batch Registering Data to Omeka Classic IIIF Toolkit

Batch Registering Data to Omeka Classic IIIF Toolkit

pythoniiifomeka

🐙Mirador 3 Plugin Development: Copying a Window

Mirador 3 Plugin Development: Copying a Window

reactiiifmiradormirador3

🐕Trying QuickStatements on wikibase.cloud

Trying QuickStatements on wikibase.cloud

csvwikidatawikibase

🐷Trying Out WikibaseSync

Trying Out WikibaseSync

pythonwikidatawikibasewikibasesync

🐡Using the Wikibase API

Using the Wikibase API

pythonwikibase

🎃Trying Dataverse

Trying Dataverse

pythondataverse

🐥Trying wikibase.cloud

Trying wikibase.cloud

wikibase

👏Using the onClose Prop

Using the onClose Prop

react

Zooming to Meet Viewport Constraints in Mirador 3

Zooming to Meet Viewport Constraints in Mirador 3

mirador

🌟Highlighting LaTeX in Monaco Editor

Highlighting LaTeX in Monaco Editor

latexmonaco

🔥Highlighting TeX with Ace.js

Highlighting TeX with Ace.js

javascriptlatextexace

📘Building a Django CI/CD Environment from GitHub to EC2 Using GitHub Actions (2023 Edition)

Building a Django CI/CD environment from GitHub to EC2 using GitHub Actions (2023 edition)

awsdjangogithub

📘django-simple-history: Recording Model Edit History in Django

django-simple-history: Recording Model Edit History in Django

django

📌Implementing Partial Match Filters in Django Rest Framework (DRF)

Implementing partial match filters in Django Rest Framework (DRF)

django

🙆‍♀️Trying Out bagit-python

Trying Out bagit-python

pythonbagit

📚Getting the File Path of an Uploaded File Using Django's ModelForm

Getting the File Path of an Uploaded File Using Django's ModelForm

django

🎉Connecting Django with AWS OpenSearch

Connecting Django with AWS OpenSearch

djangopythonelasticsearchopensearch

🐥Bulk Registration with Django REST Framework

Bulk registration with Django REST framework

django

Using JWT in Django (djangorestframework-simplejwt)

Using JWT in Django (djangorestframework-simplejwt)

djangojwt

📚Handling CORS Errors with Drupal's JSON:API

Handling CORS Errors with Drupal's JSON:API

corsdrupal

😺Troubleshooting JSON:API Related Errors

Troubleshooting JSON:API Related Errors

drupaldrush

🔖How to Use Drupal JSON:API (include and Multilingual Support)

How to Use Drupal JSON:API (include and Multilingual Support)

drupaljsonapi

🙄Content Registration and Multilingual Support Using Drupal Key Auth

Content Registration and Multilingual Support Using Drupal Key Auth

pythondrupaljsonapi

🦁Trying Wagtail

Trying Wagtail

pythonwagtail

😎Causes and Solutions When Browse Does Not Work in Archivematica

Causes and solutions when Browse does not work in Archivematica

archivematica

📘Bulk Deleting Amazon ECR Repositories

Bulk deleting Amazon ECR repositories

awsecr

🗂Customizing Views for Custom Models in Django REST Framework JSON:API (DJA)

Customizing Views for Custom Models in Django REST Framework JSON:API (DJA)

djangopython

📖Adding Custom Models to Django REST framework JSON:API (DJA)

Adding Custom Models to Django REST framework JSON:API (DJA)

djangopython

🌟Trying Django REST Framework JSON:API (DJA)

Trying Django REST framework JSON:API (DJA)

djangopython

🔥Creating a REST API Using OpenAPI and AWS CDK (OpenSearch Connection and Custom Domain)

Creating a REST API Using OpenAPI and AWS CDK (OpenSearch Connection and Custom Domain)

awsopenapicdkopensearch

🦔How to Upload and Update Files Using the GitHub GUI

How to Upload and Update Files Using the GitHub GUI

github

👏About the Image Server Configuration for Omeka S

About the Image Server Configuration for Omeka S

iiifomeka

😊AWS CDK x CloudFront x S3 x Basic Auth x index.html Support x Custom Domain

AWS CDK x CloudFront x S3 x Basic Auth x index.html Support x Custom Domain

awsiaccdk

😸Creating an Anonymous File Uploader Using Google Drive and Google Apps Script

Creating an Anonymous File Uploader Using Google Drive and Google Apps Script

googlecloudgas

🍣Sending Google Spreadsheet Update Notifications to GitHub

Sending Google Spreadsheet update notifications to GitHub

cms

🐡Drupal: An Example of Searching Nested Fields

Drupal: An Example of Searching Nested Fields

drupal

👋Strapi: How to Filter Results by Deeply Nested Fields

Strapi: How to Filter Results by Deeply Nested Fields

strapi

🎃Drupal: Adding Content Types and Fields Using Custom Modules

Drupal: Adding Content Types and Fields Using Custom Modules

drupal

📌Drupal: Creating Custom REST Resources

Drupal: Creating Custom REST Resources

drupaliiif

💭Text Selection Using VueUse (Nuxt 3)

Text Selection Using VueUse (Nuxt 3)

nuxtvuevue3nuxt3

Search Using Drupal Search API in Next.js for Drupal (Faceted Search, etc.)

Search Using Drupal Search API in Next.js for Drupal (Faceted Search, etc.)

drupal

🍣Does Contentful Full-Text Search Require Search Terms of 2 or More Characters?

Does Contentful Full-Text Search Require Search Terms of 2 or More Characters?

contentful

💬How to Bulk Delete Content in Drupal

How to Bulk Delete Content in Drupal

drupaldrush

🙆‍♀️Connecting Drupal with Amazon OpenSearch Service

Connecting Drupal with Amazon OpenSearch Service

awsapidrupalsearch

😎Trying GraphQL with Drupal

Trying GraphQL with Drupal

graphqldrupal

🐡Adding GraphQL to Strapi

Adding GraphQL to Strapi

graphqlcmsstrapi

📑Registering Taxonomies and Adding Them to Content in Drupal Using Python

Registering Taxonomies and Adding Them to Content in Drupal Using Python

pythondrupal

🕌Updating and Deleting Drupal Content Using Python

Updating and deleting Drupal content using Python

pythondrupal

🙄Adding Content to Drupal Using Python

Adding Content to Drupal Using Python

pythondrupal

🍣Running Strapi on Amazon Lightsail (SSL, Custom Domain)

Running Strapi on Amazon Lightsail (SSL, Custom Domain)

awsnodepm2strapi

💨Trying to Create a ShEx File

Trying to create a ShEx file

rdf

🙄Loading .glb Files with Nuxt3 x babylon.js

Loading .glb Files with Nuxt3 x babylon.js

nuxtjavascript3dbabylon

🐙Bidirectional Interaction Between Vue 3 and Babylon.js

Bidirectional Interaction Between Vue 3 and Babylon.js

vue3babylon

🐡Web Application for NDL Classical Book OCR Using Hugging Face Space

Web Application for NDL Classical Book OCR Using Hugging Face Space

awsocrhuggingface

💡Running NDL Classical Japanese OCR on Amazon EC2 CPU Environment

Running NDL Classical Japanese OCR on Amazon EC2 CPU Environment

awsec2ocr

Comparison of Nuxt.js and Next.js

Comparison of Nuxt.js and Next.js

What Is a Canonical URL? (canonicalUrl)

What Is a Canonical URL? (canonicalUrl)

🕌Implementing Exact Non-Match Search with Fuse.js (Explained by GPT-4)

Implementing Exact Non-Match Search with Fuse.js (Explained by GPT-4)

javascriptsearchmismatcharraymethodfiltering

🐈How to Extract respStmt name Values from TEI/XML Files (Explained by GPT-4)

How to Extract respStmt name Values from TEI/XML Files (Explained by GPT-4)

pythonbeautifulsoupdataextractiontei

🐷Updating Vocabularies Created with Omeka S Custom Ontology

Updating Vocabularies Created with Omeka S Custom Ontology

omekaomekasomekasmodule

🙆‍♀️Trying Leaflet Marker Cluster with Nuxt 3

Trying Leaflet Marker Cluster with Nuxt 3

vue3leafletnuxt3

👏Memo on Using nbdev

Memo on Using nbdev

pythonnbdev

😸Partially Implementing Exact Non-Match Search with Fuse.js

Partially Implementing Exact Non-Match Search with Fuse.js

javascript

🙆‍♀️Running NDL Classical Text OCR Using Amazon SageMaker Studio

Running NDL Classical Text OCR Using Amazon SageMaker Studio

awsocr

[Babylon.js x Vue] Passing Click Events to Vue

[Babylon.js x Vue] Passing Click Events to Vue

vuebabylonnuxt3

🔥Trying the Babylon.js Vue Tutorial with Nuxt 3

Trying the Babylon.js Vue tutorial with Nuxt 3

babylonnuxt3

😺Setting Up ArchivesSpace on Amazon Lightsail

Setting Up ArchivesSpace on Amazon Lightsail

archivesspace

📚Using Japan Search Web Parts with Next.js

Using Japan Search Web Parts with Next.js

nextjs

🔖Trying the Archivematica API (Storage Service API)

Trying the Archivematica API (Storage Service API)

archivematica

Hosting Nuxt 3 SSR on Vercel (+ Enabling CORS)

Hosting Nuxt 3 SSR on Vercel (+ Enabling CORS)

nuxtvercelnuxt3

🌟Using Babylon.js with Nuxt3 and Vuetify Together

Using Babylon.js with Nuxt3 and Vuetify Together

nuxtbabylonnuxt3

😎How to Use IIIF Presentation Validator in a Local Environment

How to use IIIF Presentation Validator in a local environment

iiif

👋NDL Classical Text OCR Using Google Colab

NDL classical text OCR using Google Colab

pythonmachinelearningocrndlocr

📌Validating XML Files Using the JPCOAR Schema

Validating XML Files Using the JPCOAR Schema

pythonxmlxsdjpcoar

🐥Trying the jingtrang Library for RELAX NG Schema: Creating RNG Files

Trying the jingtrang Library for RELAX NG Schema: Creating RNG Files

pythonxmlrng

🐈Trying the jingtrang Library for RELAX NG Schema: Validation

Trying the jingtrang library for RELAX NG schema: validation

pythonxmlrngtei

🌊Trying to Register an Image on OpenSea

Trying to Register an Image on OpenSea

nftipfsmetamaskopensea

🦔Creating a Customized RNG File Using Roma: Restricting Available TEI Tags

Creating a Customized RNG File Using Roma: Restricting Available TEI Tags

tei

👻Introducing an IIIF Viewer in Nuxt3 with SSR

Introducing an IIIF Viewer in Nuxt3 with SSR

nuxtnuxt3iiif

Deploying Nuxt 3 on Amazon Lightsail: Using pm2

Deploying Nuxt 3 on Amazon Lightsail: Using pm2

amazonechoawspm2lightsail

📌Trying Out TEI Boilerplate

Trying Out TEI Boilerplate

tei

💨Omeka S 4.0.0 Release Candidate Has Been Published

Omeka S 4.0.0 Release Candidate Has Been Published

omekaomekas

🚀Restricting API Access in Omeka S

Restricting API Access in Omeka S

omekaomekas

👌TODO Memo for EC2 Server Setup

TODO Memo for EC2 Server Setup

awsec2

🔥Investigating Customization Methods for Snorql for Japan Search

Investigating customization methods for Snorql for Japan Search

rdfsparqlsnorql

🕌[Omeka S Module Introduction] IIIF Search Module

[Omeka S Module Introduction] IIIF Search Module

iiifomekaomekasomekasmodule

🦔Running Tesseract on Google Colab (with Japanese Support)

Running Tesseract on Google Colab (with Japanese Support)

pythoncolabtesseract

🍣[Omeka S Module Introduction] "Extract Ocr" - A Module for Performing OCR on PDF Files

[Omeka S Module Introduction] "Extract Ocr" - A Module for Performing OCR on PDF Files

omekaomekasomekasmodule

🙆‍♀️Workaround for HuggingFace Trainer() Not Starting When Using Vertex AI Workbench

Workaround for HuggingFace Trainer() not starting when using Vertex AI Workbench

pythonmachinelearningvertex

👌Installing the Mroonga Search Module (Note: This Did Not Work Successfully)

Installing the Mroonga Search Module (Note: This Did Not Work Successfully)

omekaomekasomekasmodule

🐡Trying the ResourceSync Python Library

Trying the ResourceSync Python Library

pythonresourcesync

🌟Trying the IIIF Auth API

Trying the IIIF Auth API

iiif

😽Introduction to "FairCopy": A TEI Text Creation Support Tool

Introduction to "FairCopy": A TEI Text Creation Support Tool

iiiftei

🦁How to Use the Text Markup Tool "CATMA"

How to Use the Text Markup Tool "CATMA"

teicatma

🌟Trying the MediaWiki TEI Extension (Result: Did Not Work)

Trying the MediaWiki TEI Extension (Result: Did Not Work)

mediawikiwikitei

📘[TEI x JavaScript] Removing Unintended Whitespace in Nuxt 3

[TEI x JavaScript] Removing Unintended Whitespace in Nuxt 3

javascriptnuxt3tei

😊Dealing with AttributeError in ultralytics/yolov5

Dealing with AttributeError in ultralytics/yolov5

yoloyolov5

💭An Example of Manipulating JSON Files with Nuxt 3's server/api

An Example of Manipulating JSON Files with Nuxt 3's server/api

nuxtapinuxt3

💭An Example of Deploying Nuxt 3 to Netlify and AWS

An Example of Deploying Nuxt 3 to Netlify and AWS

awsnetlifynuxt3

💨An Example Method for Converting TEI/XML Files to Vertical-Writing PDF

An Example Method for Converting TEI/XML Files to Vertical-Writing PDF

pdfcolabteidocx

🌟Prototype npm Package for Displaying Popups on Selected Text

Prototype npm Package for Displaying Popups on Selected Text

npm

😸Supporting Drag & Drop for IIIF Icons

Supporting Drag & Drop for IIIF Icons

iiif

🙆[Memo] MapTiler Light and Dark Themes

[Memo] MapTiler Light and Dark Themes

maptiler

🐥Specifying the Initial Specification to Display in Swagger UI Demo via GET Parameter

Specifying the initial specification to display in Swagger UI demo via GET parameter

swaggeropenapi

😽Output Content of IIIF Manifests (Version 2) from the Omeka S IIIF Server

Output Content of IIIF Manifests (Version 2) from the Omeka S IIIF Server

iiifomekaomekas

📑How to Set the xml:id Attribute with BeautifulSoup

How to Set the xml:id Attribute with BeautifulSoup

pythonbeautifulsoupxml

😺[Omeka S] Handling Bulk Import Bugs (Including Installation from Source Code)

[Omeka S] Handling Bulk Import Bugs (Including Installation from Source Code)

omekaomekas

🐡How to Manually Restart or Stop Virtuoso from the Command Line

How to Manually Restart or Stop Virtuoso from the Command Line

virtuoso

😸Similar Image Search Using VGG16

Similar Image Search Using VGG16

pytorchcolab

💬Similar Image Search Using an Autoencoder

Similar Image Search Using an Autoencoder

pytorchcolab

🚀[RDF] Configuring URI Access to Redirect to the Snorql Interface

[RDF] Configuring URI Access to Redirect to the Snorql Interface

rdfvirtuoso

🍣Returning JSON from Hugging Face Spaces

Returning JSON from Hugging Face Spaces

apiyolohuggingfacedetection

🐙Building a Virtuoso RDF Store Using AWS EC2

Building a Virtuoso RDF store using AWS EC2

awsec2rdfvirtuoso

💭How to Register and Delete RDF Files in Virtuoso RDF Store Using curl and Python

How to register and delete RDF files in Virtuoso RDF store using curl and Python

pythonrdfvirtuoso

🙆Building an Inference App Using Hugging Face Spaces and a YOLOv5 Model (Trained on the NDL-DocL Dataset)

Building an Inference App Using Hugging Face Spaces and a YOLOv5 Model (Trained on the NDL-DocL Dataset)

machinelearninghuggingface

👻Dumping Elasticsearch Data to Local

Dumping Elasticsearch data to local

elasticsearch

💭Building a Layout Extraction Model Using the NDL-DocL Dataset and YOLOv5

Building a layout extraction model using the NDL-DocL dataset and YOLOv5

colabyoloocrdetection

💡Getting a Google Drive Folder ID from a Path Using Google Colab

Getting a Google Drive Folder ID from a Path Using Google Colab

colabdrive

👌Hosting Hugging Face Models on AWS Lambda for Serverless Inference

Hosting Hugging Face Models on AWS Lambda for Serverless Inference

awslambdahuggingface

🔥Building an Omeka Classic Site Using Amazon Lightsail (Including Custom Domain + SSL)

Building an Omeka Classic Site Using Amazon Lightsail (Including Custom Domain + SSL)

omeka

💬Aggregations with Different Keys and Values (Labels and IDs) in Elasticsearch

Aggregations with Different Keys and Values (Labels and IDs) in Elasticsearch

elasticsearch

🐡Created a Video on How to Use the NDLOCR App with Google Colab

Created a Video on How to Use the NDLOCR App with Google Colab

ocrcolab

📑Scheduled Backup of Omeka S Data Using AWS Copilot

Scheduled Backup of Omeka S Data Using AWS Copilot

awsecscopilotomeka

🎉How to Add the mirador-image-tools Plugin to Mirador 3 and Bundle It into a Single JS File for Distribution

How to Add the mirador-image-tools Plugin to Mirador 3 and Bundle It into a Single JS File for Distribution

iiifmirador

🌊File Upload (Python) and Download (PHP)

File Upload (Python) and Download (PHP)

phppython

🐷Creating Microsoft Word Files with python-docx: Using Templates and int2kanji

Creating Microsoft Word Files with python-docx: Using Templates and int2kanji

pythondocx

🐙Sample Notebook for Fetching Google Spreadsheet Data from Google Colab

Sample Notebook for Fetching Google Spreadsheet Data from Google Colab

googlespreadsheetgooglecolabspreadsheet

🐙Memo: Specifying a Profile When Running sam deploy

Memo: Specifying a Profile When Running sam deploy

sam

💡Resolving "Error building docker image" During Local Development with AWS SAM

Resolving "Error building docker image" during local development with AWS SAM

sam

💬Simple Backup of Omeka S Using gdrive

Simple Backup of Omeka S Using gdrive

awslightsailomekaomekas

😽Using gdrive in a LAMP environment started with Amazon Lightsail

Using gdrive in a LAMP environment started with Amazon Lightsail

awsgdrive

🦔Using gdrive in a LAMP Environment on Amazon Lightsail

Using gdrive in a LAMP Environment on Amazon Lightsail

awsgdrive

🤖What to do when

What to do when

gascolab

🚀How to Fix "An error occurred in Google Drive": Script to Empty Shared Drive Trash

How to fix "An error occurred in Google Drive": script to empty shared drive trash

gascolab

🐥Running gcv2hocr on Google Colab: Creating Searchable PDFs with Transparent Text Using Google Vision API

Running gcv2hocr on Google Colab: Creating searchable PDFs with transparent text using Google Vision API

colabocrgcv

🎉How to Delete Files on Google Drive Using Google Colab

How to Delete Files on Google Drive Using Google Colab

colab

🐥Created Version 2 of the NDLOCR App Using Google Colab

Created Version 2 of the NDLOCR App Using Google Colab

colabocr

🙌Updating the NDLOCR App Using Google Colab: Adding Single Input Dir Mode

Updating the NDLOCR App Using Google Colab: Adding Single Input Dir Mode

colab

📚Execution Time for NDLOCR Using Google Colab

Execution time for NDLOCR using Google Colab

pythonmachinelearningcolabocr

🐥Running the NDL Lab Automatic Figure/Table Extraction Program Using Google Colab

Running the NDL Lab Automatic Figure/Table Extraction Program Using Google Colab

machinelearningcolab

👌Running NDLOCR App with Google Colab (Image Input and Result Saving via Google Drive)

Running NDLOCR App with Google Colab (Image Input and Result Saving via Google Drive)

machinelearningcolabocr

📝Setting Up an Omeka S Site Using Amazon Lightsail (Including Custom Domain and SSL)

🤖Building an Omeka S Site Using Amazon Lightsail (Including Custom Domain + SSL)

Building an Omeka S site using Amazon Lightsail (including custom domain + SSL)

awslightsailomekadigitalarchive

👋Running the NDLOCR Application Using Google Cloud Platform Compute Engine

Running the NDLOCR Application Using Google Cloud Platform Compute Engine

dockermachinelearningocr

👋Using The New York Public Library API

Using The New York Public Library API

apijsoncolab

🗂Experiments on Image Sizes Supported by serverless-iiif

Experiments on Image Sizes Supported by serverless-iiif

awslambdaimagemagickiiif

🚀Usage Example of Leaflet with Vue 3 (Including Coordinate Range Retrieval)

Usage Example of Leaflet with Vue 3 (Including Coordinate Range Retrieval)

vuevue3leaflet

🌟Setting Focus on a Text Field Inside a Dialog When Opening It in Vuetify

Setting Focus on a Text Field Inside a Dialog When Opening It in Vuetify

vuevuetify

😊How to Enable Hot Reload for the static Directory in Nuxt.js

How to enable hot reload for the static directory in Nuxt.js

nuxt

📚Introduction to IIIF Presentation API Validation Methods with Practical Examples

Introduction to IIIF Presentation API validation methods with practical examples

apiiiif

🙆GCP: Handling Errors When Creating AI Platform Notebooks

GCP: Handling Errors When Creating AI Platform Notebooks

aigcpvertex

📖How to Delete a Feature Store in GCP Vertex AI

How to Delete a Feature Store in GCP Vertex AI

aigcpvertex

📝Viewing OCR Results from the NDL Next Digital Library in a IIIF Viewer

📝Creating Pyramid Tiled TIFF Files Using AWS Lambda + Docker + pyvips

😽How to Use pyvips and Create Pyramid Tiled TIFF Files

How to Use pyvips and Create Pyramid Tiled TIFF Files

colablibvipsiiifpyvips

📑[Memo] How to Use Maplat

[Memo] How to Use Maplat

gismaplat

🙆I Created a Calendar Search App

I created a calendar search app

vue

📝Building an Object Detection API (Flask + YOLOv5) Using AWS Lambda

📑Building an Object Detection API Using AWS Lambda (Flask + YOLOv5)

Building an Object Detection API Using AWS Lambda (Flask + YOLOv5)

awsflaskpythonlambda

🙄[Omeka S Module] How to Use Clean Url

[Omeka S Module] How to Use Clean Url

omekaomekas

📝Summary Article and Zenn Book on Building an Annotation Environment Using Omeka Classic + IIIF Toolkit

📝Building an Annotation Environment with Omeka Classic + IIIF Toolkit: Overview

📝Building an Annotation Environment with Omeka Classic + IIIF Toolkit: Chapter 4 Adding Annotations

📝Building an Annotation Environment with Omeka Classic + IIIF Toolkit: Chapter 3 Registering a IIIF Manifest

📝Building an Annotation Environment with Omeka Classic + IIIF Toolkit: Chapter 2 Installing the IIIF Toolkit Plugin

Installing Omeka Classic

Installing Omeka Classic

omekaomekaclassic

[Summary Article] How to Use Omeka.net (Classic)

[Summary Article] How to Use Omeka.net (Classic)

omekaclassicomekaomekanet

📝How to Use Omeka.net (Classic): Chapter 7 Managing Users

📝How to Use Omeka.net (Classic): Chapter 6 Simple Pages

📝How to Use Omeka.net (Classic): Chapter 5 Exhibit Builder

📝How to Use Omeka.net (Classic): Chapter 4 Managing Tags

📝How to Use Omeka.net (Classic): Chapter 3 Adding Items

📝How to Use Omeka.net (Classic): Chapter 2 Sign Up and Plan Selection

📝How to Use Omeka.net (Classic): Chapter 1 Overview

🐈[Google Colab] Retrieving Article Lists Using the Hatena Blog AtomPub API

[Google Colab] Retrieving Article Lists Using the Hatena Blog AtomPub API

pythoncolabhatena

📝How to Use a Flask-based YOLOv5 Model Repository with Amazon ECR and AWS App Runner

🚀How to Use a Flask-Based YOLOv5 Model Repository with ECR and AWS App Runner

How to use a Flask-based YOLOv5 model repository with ECR and AWS App Runner

awsflaskmachinelearningyolo

📝Resolving "Health check on port XXXX" Error When Using AWS App Runner with ECR

🎉Health Check on Port Issue When Using AWS App Runner + ECR

Health check on port issue when using AWS App Runner + ECR

awsecrapprunner

[For Developers] Setting Up a Search Application Development Environment Using AWS x Nuxt.js x Elasticsearch

[For Developers] Setting Up a Search Application Development Environment Using AWS x Nuxt.js x Elasticsearch

nuxtelasticsearchaws

Registering Resource Classes with Bulk Import and Editing Settings

Registering Resource Classes with Bulk Import and Editing Settings

omekasomekasmoduleomeka

Created a Program for Batch Updating File Owners in Google Drive

Created a Program for Batch Updating File Owners in Google Drive

gas

[Memo] Created a Program for Batch Deleting Folders on Google Drive

[Memo] Created a program for batch deleting folders on Google Drive

colab

How to Install Omeka S Modules

How to Install Omeka S Modules

omekasomekasmoduleomeka

Batch Updating Metadata Using CSV Files with Bulk Import

Batch Updating Metadata Using CSV Files with Bulk Import

omekasomekasmoduleomeka

Notes on Japanese Full-Text Search in Omeka S and the Mroonga Search Module

Notes on Japanese Full-Text Search in Omeka S and the Mroonga Search Module

omekasomekasthemeomekasmoduleomeka

Created a Sample Program for Analyzing TEI/XML Files with Python

Created a Sample Program for Analyzing TEI/XML Files with Python

tei

Created a Program for Batch Downloading Images from IIIF Manifest Files

Created a Program for Batch Downloading Images from IIIF Manifest Files

iiif

📝Using an External Image Server with the Omeka S IIIF Server Module

How to Use the Omeka S XML Viewer Module

How to Use the Omeka S XML Viewer Module

omekasomekasmoduleteiomeka

[Pinned Post] Welcome to the Digital Archive Systems Technical Blog

[Pinned Post] Welcome to the Digital Archive Systems Technical Blog

How to Use the Omeka S Mirador Module

How to use the Omeka S Mirador module

iiifmiradoromekasomekasmodule

Summary of Articles About Omeka S

Summary of Articles About Omeka S

omekasomekasmoduleomeka

How to Fix Errors with gdown

How to Fix Errors with gdown

Created a Program to Generate TEI facsimile Elements from IIIF Manifest Files

Created a Program to Generate TEI facsimile Elements from IIIF Manifest Files

iiiftei

📝Deploying a YOLOv5 Model with Flask and Loading Custom Models

📝Configuring CORS Policy When Using the Omeka S IIIF Server Module

How to Get an Element with a Specific xml:id Value Using JavaScript querySelector()

How to Get an Element with a Specific xml:id Value Using JavaScript querySelector()

teimemo

[Omeka S Development] Created a Program to Generate CSV Files for Registering Dummy Data in Omeka S

[Omeka S Development] Created a Program to Generate CSV Files for Registering Dummy Data in Omeka S

omekasomeka

[Omeka S Module Introduction] How to Use the Mapping Module (Especially Batch Registration via the CSV Import Module)

[Omeka S Module Introduction] How to Use the Mapping Module (Especially Batch Registration via the CSV Import Module)

omekasomekasmoduleomeka

[Omeka S Module Development] Developed a Module to Add Various Export Links to the Item Detail Page

[Omeka S Module Development] Developed a module to add various export links to the item detail page

omekasomekasmoduleomeka

[Omeka S Module Development] Developed a Module to Add IIIF Content Search API URIs to IIIF Manifests

[Omeka S Module Development] Developed a Module to Add IIIF Content Search API URIs to IIIF Manifests

omekasomekasmoduleiiifomeka

[Omeka S Module Info] Bug in the Clean Url Module and Temporary Fix

[Omeka S Module Info] Bug in the Clean Url Module and Temporary Fix

omekasomekasmoduleomeka

Released a Chrome Extension for Searching Japan Knowledge

Released a Chrome Extension for Searching Japan Knowledge

chrome-extension

How to Enable Mirador 3 Image Tools (Image Rotation, etc.) by Default

How to Enable Mirador 3 Image Tools (Image Rotation, etc.) by Default

iiifmirador

[Omeka S Module Introduction] IIIF-Compatible Viewers Available for Omeka S

[Omeka S Module Introduction] IIIF-Compatible Viewers Available for Omeka S

iiifmiradoromekasomekasmodule

[Feature Development] Added Table of Contents Functionality to the Omeka S IIIF Module (Part 2: Registering Hierarchical Tables of Contents)

[Feature Development] Added Table of Contents Functionality to the Omeka S IIIF Module (Part 2: Registering Hierarchical Tables of Contents)

iiifomekasomekasmoduleomeka

[Feature Development] Added Table of Contents Functionality to the Omeka S IIIF Module (Part 1: Registering Flat Tables of Contents)

[Feature Development] Added Table of Contents Functionality to the Omeka S IIIF Module (Part 1: Registering Flat Tables of Contents)

iiifomekasomekasmoduleomeka

[Feature Development] Bug Fix for License Property in the Omeka S IIIF Server Module

[Feature Development] Bug Fix for License Property in the Omeka S IIIF Server Module

iiifomekasomekasmoduleomeka

[Translation] How to Add Table of Contents Information in the Omeka S IIIF Server Module

[Translation] How to Add Table of Contents Information in the Omeka S IIIF Server Module

translationomekasomekasmoduleiiif

How to Embed Mirador 3 in a Specific Area of a Page

How to Embed Mirador 3 in a Specific Area of a Page

iiifmirador

How to Add a Line Break Before the lb Tag in Oxygen Auto-Formatting

How to Add a Line Break Before the lb Tag in Oxygen Auto-Formatting

tei

Created a Repository Demonstrating How to Use Mirador 3 with Nuxt.js

Created a Repository Demonstrating How to Use Mirador 3 with Nuxt.js

iiifmirador

[Omeka S Tips] Notes on Using the BulkImport Module on Windows

[Omeka S Tips] Notes on Using the BulkImport Module on Windows

omekasmoduleomekastipsomeka

[Omeka S Tips] About Auto-Adding New Items to Each Site

[Omeka S Tips] About Auto-Adding New Items to Each Site

tipsomekasomeka

[Omeka S Module Introduction] Numeric Data Types: Enabling Range Search for Date Data, and More

[Omeka S Module Introduction] Numeric Data Types: Enabling Range Search for Date Data, and More

omekasomekasmodulerdfomeka

Created a GitHub Repository Demonstrating How to Use vis.js with Nuxt.js

Created a GitHub Repository Demonstrating How to Use vis.js with Nuxt.js

vuenuxtnetworktimeline

[Omeka S Module Introduction] Metadata Browse: Adding Links to Search for Items with the Same Metadata

[Omeka S Module Introduction] Metadata Browse: Adding Links to Search for Items with the Same Metadata

omekasomekasmoduleomeka

[Omeka S Module Customization] OaiPmhRepository: Creating Custom Vocabularies

[Omeka S Module Customization] OaiPmhRepository: Creating Custom Vocabularies

customizationomekasomekasmoduleoaipmh

📝Omeka S Module: Advanced Search Plus - Extending Advanced Search Functionality

[FOSS Memo] CollectiveAccess

[FOSS Memo] CollectiveAccess

memodigitalarchive

📝Omeka S Module: Custom Ontology - Adding Custom Vocabularies

[Omeka S Tips] How to Add Existing Standard Vocabularies

[Omeka S Tips] How to Add Existing Standard Vocabularies

omekastipsrdflinkeddata

[App Introduction] Introducing IIIF pocket

[App Introduction] Introducing IIIF pocket

culturaljapaniiifapplication

[Omeka S Manual Translation] Resources > Items

[Omeka S Manual Translation] Resources > Items

omekasmanualtranslationomeka

[Omeka S Tips] How to Set Language Attributes for Metadata

[Omeka S Tips] How to Set Language Attributes for Metadata

omekastipsomeka

[Omeka S Module Introduction] Item Sets Tree

[Omeka S Module Introduction] Item Sets Tree

omekasdigitalarchiveomekasmoduleomeka

[Omeka S Module Introduction] IIIF Server / Image Server / Universal Viewer

[Omeka S Module Introduction] IIIF Server / Image Server / Universal Viewer

iiifomekasomekasmoduleomeka

Reference Materials for Introducing Omeka S

Reference Materials for Introducing Omeka S

omekasomekasmoduleomeka

Introduction to the IIIF Collection of IIIF Manifests Aggregated by Cultural Japan

Introduction to the IIIF Collection of IIIF Manifests Aggregated by Cultural Japan

rdfculturaljapaniiif

Created a Repository Demonstrating How to Use Mirador 3 with Vue

Created a Repository Demonstrating How to Use Mirador 3 with Vue

miradoriiifvue

[Feature Development] Adding a Setting to Disable Image API in the Omeka S IIIF Server Module

[Feature Development] Adding a Setting to Disable Image API in the Omeka S IIIF Server Module

iiifomekasdigitalarchiveomekasmodule

IIIF Implementation of "Oki-ezu" (Raised Picture Maps)

IIIF Implementation of "Oki-ezu" (Raised Picture Maps)

iiifutdigitalarchives

IIIF Application Using Transmitted Light Images

IIIF Application Using Transmitted Light Images

iiifutdigitalarchives