Archives
1091 articles, grouped by year and month
2026243
August
July
- Why Drupal Won't Show the Translate Tab: Content Translation Enablement and the Two-Layer Permission Model
- IIIF Image API Thumbnails Break with !w,h (sizeByConfinedWh): Level 1 Servers Are Not Guaranteed to Support It
- ๐คMigrating to transformers 5: SigLIP2 Moved Over, clip-japanese-base Was Deferred
- ๐ผCan MusicXML-to-MEI Conversion Be Done Mechanically? โ Actually Trying It with Verovio
- ๐The Invisible Text Layer of a Searchable PDF Is Misaligned in Vertical Text โ Identifying the Cause (the Source PDF's /Rotate) and Fixing It Without Re-OCR
- ๐๏ธBuilding a Local Omeka S Environment with ddev and Integrating It with IIIF Curation Platform
- ๐Even With an Org Domain on External DNS, You Can Assign a Subdomain to Cloudflare Pages for Free (One CNAME)
- Bulk-Registering Published IIIF Curations into Your Own IIIF Curation Platform for Cross-Collection Search
- Setting Up the IIIF Curation Platform Locally on macOS with Docker โ From Region Selection to a Search System
- ๐Fixing Unprintable Scanned PDFs Without Breaking the Invisible Text
- ๐Migrating a GitHub Pages Site to a New Custom Domain and Redirecting Old URLs Without Rework
- โ๏ธIngesting OSS-Generated CAD Data (STEP) into Archivematica and Confirming PRONOM Identification
- ๐ผ๏ธWhere Are the Image URLs for a Public Collection? A Structural Investigation of Metadata APIs, DAM Tokens, and Collection Policy
June
- ๐ฌRecording Demo Videos of a three.js / WebXR 3D App Yourself: The Essentials of canvas Recording and Automation
- ๐DH Weekly Topics โ 2026ๅนด6ๆ28ๆฅ้ฑ
- Recording How-To Demo Videos of a Native macOS App (Semi-)Automatically: vhs and a Self-Driving Demo Mode
- ๐พAnalyzing Disk Images with Sleuth Kit and Brunnhilde on macOS (How It Differs from Copying a Folder)
- ๐๏ธCharacterizing a Set of Files by Running Brunnhilde on macOS (Format Identification with Siegfried)
- ๐ฆ Verifying ClamAV on macOS, and How an EICAR Test File Gets Quarantined by Resident Antivirus
- ๐๏ธWhen You Rearrange Backlog Files into Folders and Bundle Them into One SIP in Archivematica, Where Are the Original and Rearranged Structures Recorded?
- ๐ฅDataAccessioner: A Tool That Fixes Checksums and Technical Metadata at Accessioning Time
- ๐Appraisal via Archivematica's Backlog, and the Appraisal Tab Removed in the Development Version
- ๐DH Weekly Topics โ 2026ๅนด6ๆ21ๆฅ้ฑ
- ๐Adding i18n to an Entire OSS React App: react-i18next Setup, Japanese Localization, Testing, and Splitting the Work into PRs
- ๐ฆTurning Digital Archive SIP Creation into a Native macOS App โ A Record of Development, Signing, and Release
- ๐DH Weekly Topics โ 2026ๅนด6ๆ14ๆฅ้ฑ
- ๐DH Weekly Topics โ 2026ๅนด6ๆ7ๆฅ้ฑ
- ๐Mirador Carries the Zoom Across Pages โ preserveViewport Defaults and the @latest Pitfall
- ๐ฌMaking Technical Explainer Videos in a Clone of My Own Voice โ Marp Hand-Drawn Figures, a Recording Teleprompter, ElevenLabs PVC ร v3, and Masking Seams with a Lingering Pause
- When a Docker Major Upgrade Took Down the Reverse Proxy (Traefik): An Incident Log
May
- ๐DH Weekly Topics โ 2026ๅนด5ๆ31ๆฅ้ฑ
- ๐บ๏ธNotes from migrating an aggregation- and search-heavy app's data layer from Firestore to Postgres (Neon)
- ๐Pitfalls of redirecting all paths to an external domain with vercel.json
- ๐Next.js 16: useRouter().push() silently no-ops in production โ pushState workaround
- ๐An Upload-Only, Least-Privilege Key via Bucket Policy on DDN EXAScaler Access S3
- ๐DH Weekly Topics โ 2026ๅนด5ๆ24ๆฅ้ฑ
- ๐Porting Kuzushiji Character Detection and Classical-Japanese OCR to JS/Next.js Without Python โ ONNX Quantization and Library Extraction
- ๐บ๏ธWorld Historical Gazetteer: The Linked Places Format Standard That Connects Historical Data
- ๐๏ธStanford ORBIS: A Network Model That Computes Travel in the Ancient Roman World by 'Time and Cost'
- โ๏ธSailing Letters: Building a Corpus of Captured-Ship Letters via Diplomatic Transcription
- ๐ฎ๐นThe Venice Time Machine: The Technology for Reading 1,000 Years of Historical Documents with AI, and Its Lessons
- Scripting Tropy 1.18 โ Project files, HTTP API, and an upstream PR
- Implementing an LLM Router Agent-Based RAG: An 8-Tool Design and 5 Traps Hit on Cloudflare Workers + Azure OpenAI
- ๐ผ๏ธValidating IIIF Presentation 3.0 Manifests with iiif-prezi3 โ Compared with the Official Validator
- ๐๏ธUpdating the Layer Slideshow Plugin for Mirador 4
- ๐ฌAnnotating IIIF Video โ A Mirador Annotation Editor Video Hands-on
- โ๏ธAnnotating IIIF Images โ A Mirador Annotation Editor Hands-on
- ๐งฉODD, XSLT, and Processing Model in TEI โ Sorting Out the Three Layers: Schema Definition, Transformation, and Rendering Declarations
- ๐How Calil's Cross-Library Search Works: Staged Result Retrieval with search and polling
- ๐ผ๏ธReading Digital Historical Sources with IIIF and Web Annotation โ An IMMARKUS Hands-on
- ๐From DOCX to TEI/XML โ TEI Tools, Right in Your Browser
- ๐Review Passed but the App Isn't on the App Store โ Setting App Availability After the Fact via the App Store Connect API
- ๐DH Weekly Topics โ 2026ๅนด5ๆ17ๆฅ้ฑ
- ๐Submitting a macOS App to the Mac App Store โ App Store Connect API Steps and the Diffs from iOS
- Dependabot Cooldown and GitHub Actions SHA Pinning โ Supply Chain Defense for a Personal Blog
- ๐Avoiding Plaintext in ~/.aws/credentials โ Managing IAM User Keys with aws-vault and the macOS Keychain
- ๐บ๏ธNotes on Optimizing Delivery of Gigapixel-Class High-Resolution Images with Serverless IIIF
- ๐Retrofitting Firebase auth and a JSONkeeper-compatible API onto codh-mirror so IIIF Curation editing actually works โ walking back the earlier `won't work` claim
- ๐ชฃRewriting JSONkeeper on Cloudflare Workers + D1 โ A 360-Line Hono + jose Replacement for the IIIF Curation Viewer's Save Backend
- ๐ชฃDeploying JSONkeeper on PythonAnywhere with HTTP API Only โ A Self-Hosted Save Backend for the IIIF Curation Viewer
- ๐Reproducing the Vertical-Layout Page of Cing gisun-i Lao Kida with TEI/XML and XSLT โ Encoding Manchu Script, Hangul Phonetic Gloss, and Warigaki Translation
- ๐บAdding Japanese Captions to Silent Demo Videos in Bulk with Claude Code
- ๐ณBuilding a Personal Tech Blog Membership on Cloudflare Workers + better-auth + Stripe
- ๐ Aligning vdiff.js Default Mode and UI with the Site Design โ Swapping the Default with a One-Byte Patch
- ๐ชSetting up a dedicated GitHub Pages repository for a temporary CODH-tool mirror โ including the missing kuromoji dictionary in Soan
- ๐ชEmbedded apps under `static/` get overwritten with the 404 page by Nuxt 2 generate, and how to retire the old Service Worker
- ๐ชRestoring CODH's vdiff.js from the Wayback Machine to Temporarily Bring Back The Tale of Genji's Face Comparison Feature
- ๐DH Weekly Topics โ 2026ๅนด5ๆ10ๆฅ้ฑ
- ๐Building a macOS App That Turns a Folder of Page Images Into a Single TEI/XML โ From Apple Vision OCR to Developer ID Distribution
- ๐บ๏ธServing IIIF Historic Maps as WMTS โ Built on Allmaps, Integrated into a Next.js Portfolio
- ๐Connecting OpenDrift Drift Simulation with a Calendar and Tidal Calculation App: GeoJSON Bridge Design
- ๐Drift Simulation in the Kuroshio Region Using OpenDrift and OSCAR Climatology
- Aligning IIIF 3D Viewer with Presentation API 4 โ converting legacy manifests at runtime
- Auto-Updating a Statistics Page from TEI/XML Transcription Data via CI/CD โ A Case Study from the Kouigenjimonogatari Text DB
- Probing the Public APIs of the Tohoku University Digital Archives โ Exporting per-setSpec Excel via OAI-PMH
- ๐ฅresearchmap Achievement Registration: Options for Individual Researchers and a Playwright Implementation
- A YAML-Driven Next.js Admin Console โ Multiple Sites, Multiple Actions
- Building an Org-Wide Admin Console with GitHub App + Cloudflare Access
- Why Drupal's Automatic Updates Wasn't Running: `Unattended background updates` Is Disabled by Default
April
- ๐กDefending Against Bot Pivots with AWS WAF Geo Allowlists and ASN-Based IPSets
- ElevenLabs v2 vs v3 for Japanese Tech Narration โ A/B Comparison Using a Voice-Cloned Synthetic Voice
- Mirador 4.0.0 hides supplementing annotations from the Annotations panel โ a `filteredMotivations` gotcha
- Building an Access-Controlled IIIF Digital Archive โ Cantaloupe + S3 + Elasticsearch + Next.js, Gated by Cloudflare Access
- ๐ Auto-filling Chouseisan attendance with Playwright, deciding answers via Claude Code's Google Calendar MCP
- Comparing NDL Koten OCR-Lite and Cloud Vision API on a Jiaxing Tripitaka 'Mahฤprajรฑฤpฤramitฤ Sลซtra' โ Observations across 105 Images
- ๐ผ๏ธMigrating an IIIF Image Server from Cantaloupe to serverless-iiif
- ๐Retiring a Stale Service Worker After a Framework Migration Using a Kill-Switch SW
- Routing an Externally Managed Subdomain to Cloudflare Workers โ Adding AWS CloudFront + WAF as a Front Layer
- Stopping Bot Scraping with AWS WAF โ Geo Block, JA3 Fingerprint, and UA Block in Stages
- ๐DH Weekly Topics โ 2026ๅนด4ๆ19ๆฅ้ฑ
- Retrofitting CloudFront + WAF onto an Existing Reverse-Proxy Origin: Practical Patterns
- Generating CiNii Articles Links from a Researcher Number โ How the NII Researcher ID Works
- ๐DH Weekly Topics โ 2026ๅนด4ๆ12ๆฅ้ฑ
- ๐คExposing vLLM on mdx.jp Through Cloudflare Tunnel as an OpenAI-Compatible API
- ๐Serving LLM-jp-4 32B Thinking on mdx.jp A100 x2 with vLLM and Using It via an OpenAI-Compatible API
- ๐งชRunning LLM-jp-4 Locally on a MacBook Pro M4 Max 128GB with Ollamaโs OpenAI-Compatible API
- Securing SSH with Cloudflare Zero Trust
- Fixing Upload Failures with S3-Compatible Storage
- Securely Exposing Academic Servers with Cloudflare Tunnel
- How Name Servers Work
- Elasticsearch โ Static JSON / D1 Migration โ You Don't Need a Search Engine for Small Datasets
- Migrating a Next.js App to Cloudflare Pages to Downgrade Vercel Pro to Hobby
- Migrating from AWS Amplify to Cloudflare Pages โ Reducing a Next.js API Server from $23/month to $0
- Investigating and Cleaning Up Google Drive Shared Drive Storage with rclone
- ๐DH Weekly Topics โ 2026ๅนด4ๆ5ๆฅ้ฑ
- ๐ถRetargeting Mixamo Walk Animation onto an Avaturn Avatar: From Blender CLI to Three.js Runtime
- ๐๏ธCantaloupe IIIF Image Server Performance Tuning
- ๐ฅฝBuilding a Meta Quest VR Viewer with Next.js + React Three Fiber: @react-three/xr v6 Implementation Notes
- ๐Dynamically Generating Excel Templates with Cross-Sheet Dropdown Validation Using ExcelJS in Next.js API Routes
- ๐๏ธBacking Up Omeka S in a Docker Environment
March
- ๐ฏIIIF VR Viewer: Experiencing Cultural Resources at Real Scale with WebXR and A-Frame
- ๐Calling NDLOCR-Lite as a Python Library Instead of CLI
- ๐คDeploying a YOLOv5 Model to Hugging Face Hub & Spaces
- KotenOCR Android Development Log โ Migrating from Flutter to Kotlin
- ๐DH Weekly Topics โ 2026ๅนด3ๆ28ๆฅ้ฑ
- ๐Physical Dimensions Ruler Plugin for Mirador 4
- ๐จRedesigning 3 iOS App Icons with AI: From Flat to Modern iOS Style
- Bulk-Editing 508 Zenn Articles with Playwright and Internal API for Migration Redirects
- Building a Custom Hugo Theme with Tailwind CSS v4 and Submitting to Hugo Themes Gallery
- ๐Handling App Store Rejection and Resubmission Entirely via API
- ๐จA Reusable Prompt Template for Generating iOS App Icons with AI
- ๐กNo Firebase Needed: Operating an iOS App with Apple-Native Tools Only
- Pitfalls of Converting TEI XML Standoff Annotations to Inline, and a DOM-Based Solution
- ๐บHow to Upload VTT Subtitle Files in YouTube Studio
- ๐บDeveloping "IIIF AR": An iOS App for Placing IIIF Images at Real Scale in AR
- ๐ง Diagnosing and Fixing Memory-Related Crashes in an iOS OCR App
- ๐KotenOCR: Fixing Duplicate Detections in Modern-Script OCR Mode (Adding NMS and Class Filtering)
- ๐ผ๏ธFixing Universal Viewer 4.x "Unknown content type" Error with Local Hosting
- ๐ฌHow to Upload English Subtitles (VTT Files) in YouTube Studio
- โฐObserved Timing: Apple Sales Reports API Data Availability and YouTube API Quota Reset
- ๐คAuto-Generating Bilingual Video Subtitles with Claude Code and Publishing via IIIF v3 Manifests
- ๐ฌDigital Tale of Genji Video Subtitle Project: Publishing Bilingual Subtitles with IIIF v3 Manifests
- ๐KotenOCR v1.3.0: Dual OCR Modes for Classical and Modern Japanese Text
- ๐Building an Automated DH Tool Awareness System with Playwright, RSS, and AI
- ๐DH Weekly Topics โ 2026ๅนด3ๆ21ๆฅ้ฑ
- โกParallelizing OCR Recognition on iOS with Swift Concurrency for up to 6.7x Speedup
- ๐Building a Cultural Heritage Explorer App with Japan Search API
- ๐How Japan Search's Image Similarity Search API Works
- ๐KotenOCR: An Offline iOS App for Recognizing Classical Japanese Cursive Script
- ๐๏ธComparing Local Archiving Methods for Yahoo News Articles (SingleFile, Playwright, ArchiveBox, WARC, yt-dlp)
- ๐ธFully Automating App Store Screenshot Generation with Python and Xcode UI Tests
- ๐Building an NDC Book Classifier with LoRA: Fine-Tuning a Japanese LLM on Library Data
- ๐Automating researchmap KAKENHI-Achievement Linking with Playwright
- ๐Achieving Up to 7.6x Faster Image Delivery by Optimizing Cantaloupe IIIF Server Cache
- ๐Why Contentful's Publish Button Is Greyed Out โ A Locale Configuration Pitfall
- ๐คFixing 6 GitHub Issues in Parallel with Claude Code: Worktrees and Agents
- ๐Improving Google Search Console Indexing Issues with schema.org Structured Data
- ๐CATMA: A Guide to Web-Based Text Annotation and Analysis
- ๐Datawrapper: A Data Visualization Tool for Researchers and Journalists
- ๐ฌFlourish: An Interactive Data Storytelling Platform
- ๐FromThePage: Crowdsourcing Transcription for Historical Documents
- ๐ธ๏ธGephi Lite: Browser-Based Network Visualization for Digital Humanities
- ๐Hypothes.is: An Open-Source Web Annotation Tool Compliant with W3C Standards
- ๐๏ธInternet Archive: Leveraging the World's Largest Digital Archive
- ๐Kepler.gl: An Open-Source Tool for Beautiful Large-Scale Geospatial Data Visualization
- ๐Mirador: The Optimal Open-Source Viewer for IIIF Image Comparison and Analysis
- ๐Observable: Data Visualization Notebooks by the Creator of D3.js
- ๐๏ธOmeka: A Platform for Digital Collections and Online Exhibitions
- ๐บ๏ธPalladio: A Guide to Humanities Data Visualization
- ๐RAWGraphs: A No-Code Data Visualization Tool for Digital Humanities
- ๐พReplayWeb.page: A Browser-Based Web Archive Replay Tool
- ๐StoryMapJS: A Guide to Map-Based Storytelling
- ๐ท๏ธTaguette: A Free Open-Source Qualitative Data Analysis Tool
- ๐TEI Publisher: A Platform for Publishing TEI XML Digital Editions
- โณTimelineJS: Create Interactive Timelines from Spreadsheets
- โ๏ธTranskribus: AI-Powered Handwritten Text Recognition for Historical Documents
- ๐ผ๏ธUniversal Viewer: The Definitive IIIF-Compliant Multimedia Viewer
- ๐Voyant Tools: A Browser-Based Text Analysis Platform for Digital Humanities
- ๐Wikidata Query Service: Exploring Knowledge Graphs with SPARQL
- ๐Fast TEI/XML Deployment on Vercel: Automating XSLT Transformation with saxon-js
- TETRAS-IIIF: Annotation, Video, and Multi-User Extensions for Mirador 4
- IIIF Georeference Viewer: Visualizing Georeferenced Content on Interactive Maps
- Mirador: A Feature-Rich IIIF Viewer for Comparing and Annotating Images
- Tify: A Lightweight, Fast IIIF Document Viewer
- Universal Viewer: A Multi-Format IIIF Viewer for Images, Audio, Video, and 3D
- ๐บ๏ธFixing Custom Marker Lag on Zoom in MapLibre GL JS with GeoJSON Layers
- How I Used Claude Code's Parallel Agents to Auto-Generate Videos from 882 Blog Posts
- ๐How to Submit an iOS App Update for Review Using the App Store Connect API
- ๐ฐComplete Guide to Adding a Tip Jar (In-App Purchase) to Your iOS App with App Store Connect API
- ๐Upgrading from Astro 4 to 5 โ A Migration Log
- ๐ธFixing the White Bar at the Bottom of Chrome Headless Screenshots
- ๐Fast TEI/XML Deployment on Vercel: Automating XSLT Transforms with saxon-js
- ๐ญAuto-Generating VRM Character Animation Videos with Three.js + Puppeteer
- ๐Migrating to DTS (Distributed Text Services) 1.0 โ Updating a TEI/XML Text API
- ๐Improving DTS Viewer โ Multiple Citation Trees, Hierarchical Navigation, and XML Browser Display
- ๐Tech Stack for a RAG App That Searches Historical Documents with AI
- ๐Submitting an iOS App for Review Using Only the App Store Connect API
- ๐Adding a CETEIcean-Powered TEI Preview to the DOCX โ TEI/XML Converter
- โก5x Faster XSLT Processing: Migrating from Saxon-JS to Saxon-HE
- ๐Introducing ethers-i18n: Multilingual Error Messages for ethers.js
- ๐Animating IIIF Scroll Paintings with AI Video: A Video Annotation Approach
- How to Bulk Unpublish Hatena Blog Articles (AtomPub API)
- ๐Building a DOCX to TEI/XML Conversion Tool in the Browser Using the TEI Garage API
February
- ๐Exporting Web Annotations via the Hypothes.is API and Converting to TEI/XML
- ๐Trying "oitei" - An Automatic Conversion Tool from OpenITI mARkdown to TEI XML
- ๐ฌOperating GakuNin RDM API with Node.js โ From Project Creation to GitHub + Vercel Auto-Deploy
- ๐I Created a Japanese Tutorial for ethers.js v6
- ๐ฝAnnotorious Drawing Mode Breaks Only in Production Build
- ๐GakuNin RDM Search API (`/api/v1/search/`) Investigation Memo
- ๐DH Weekly Topics โ 2026ๅนด2ๆ22ๆฅ้ฑ
- ๐ฅBulk Managing Google Groups Members via API Without Google Workspace Admin Privileges
- ๐กVerifying Non-DC Metadata Registration in Archivematica -- Embedding EAD Using source-metadata.csv
- ๐Verification of Digital Archive Construction Using the AtoM REST API
- ๐Developing a Plugin to Extend the AtoM REST API
- ๐ฅStarting Alfresco with Docker and Experiencing the Records Management Lifecycle via REST API
- ๐Development of a Text Comparison Tool Using IIIF Manifests
- ๐Improved the Drupal GitHub Webhook Module
- ๐Bulk Deleting Unnecessary Sites Using Netlify CLI
- ๐Performing Module Updates and Core Upgrades from the Drupal 10 Admin Interface
- ๐กReplacing Only the Window Title of External Manifests in Mirador 4
- ๐Cause and Fix for `localStorage.getItem is not a function` Error in Next.js 15
- ๐Three Pitfalls When Adapting a SPARQL Client to Apache Jena Fuseki
- ๐Snorql -- Published a Browser UI for Easily Exploring Multiple SPARQL Endpoints
- ๐Mirador Viewer Embedding Configuration
- ๐ฆInvestigating PLY Files Not Being Output in IIIF Manifest Items with Omeka S IIIF Server Module
- ๐ทDeveloping a 3D Gaussian Splatting Viewer - Browser Implementation Using Spark.js
- โจThe World of 3D Point Cloud Data: Organizing the Relationship Between PLY, Gaussian Splatting, and Potree
- ๐How to Use the KAKEN OpenSearch API
- ๐Three.js + React Three Fiber: Resolving Rough GLTF Model Texture Display
- ๐Nuxt Content + trailingSlash: Links to Static Files Return 404 - Problem and Solution
- ๐ฌAdding Linked Places Format Support to IIIF Georeference Viewer
January
- ๐กDeveloping and Publishing a Rotation Plugin for Mirador 4 on npm
- ๐ฌImplementing IIIF Content Search API on Static Sites - Client-Side Search with Service Workers
- ๐ฌThe Pitfall of JavaScript Operator Precedence - Investigating a Vercel Build Error
- ๐ธBuilding a Web App to Download and Display GLB Files Using the Sketchfab API
- ๐ODD Editing Tips: Part 1
- ๐Why AUTH_URL Is Required in Production for Next Auth (Auth.js v5)
- ๐Publishing a YOLOv11x Model on Hugging Face
- ๐Serving IIIF Images via Web Tile Map Service
- ๐Nuxt 3 Project Package Update Summary
- ๐IIIF Georeference to XYZ Tiles
- ๐Auto-Generating English Subtitles and Audio for Videos with Azure OpenAI Whisper + Speech Services
- ๐Introduction to Dataspaces with Eclipse EDC - Experiencing Data Exchange Flows in a Local Environment
- ๐How to Use @elastic/react-search-ui with React 19 + Next.js 15.5
- ๐ฅDraco Compression of GLB Files - 87% Size Reduction and Impact on Precision
- ๐Displaying Over 3 Million Point Cloud Data Points Smoothly in a Browser - Building a Potree LOD Viewer
- ๐ธRecord of Migrating mirador-annotations to Mirador 4.x
- ๐mirador-rotation-plugin Feature Enhancements
- ๐Integrating Next.js + next-auth with GakuNin RDM via OAuth2
- โจ[AWS Amplify] Pitfalls When Setting Up Custom Domains with Sakura Internet Domains
2025172
December
- โณDydra JSON-LD Serialization Behavior and Workaround
- ๐How to Navigate to the Detail Page of a File Uploaded via the GakuNin RDM Waterbutler API
- ๐Pinata V3 API Group Feature Implementation Guide
- ๐ปDrupal Update Procedure on Sakura Rental Server
- ๐Created a Tool to Extract Opening Pages of Each Volume from IIIF Manifests
- ๐ฅInvestigation Record of 404 Errors with CloudFront + App Runner
- ๐How to Correctly Load Local JSON Files in Nuxt 4 SSG
- ๐Implementing a Multilingual Historical Map with MapLibre GL JS + Rekichizu
- ๐Constraint Design for IIIF-Compatible Facsimile Description Using TEI ODD
- ๐ODD Chain Tutorial
- ๐ปCustomizing the TEI Classical Text Viewer to Display Illegible Sections (gap)
- ๐How to Highlight Arbitrary Regions in Mirador 4
- ๐How to Simultaneously Specify Canvas and Highlight Search Terms in Mirador 4
- ๐ฌJapanese Localization of RAWGraphs 2.0
November
- ๐Language Switching Implementation Guide with Next.js + next-intl
- ๐Creating Pyramidal Tiled TIFFs with vips and Comparing Compression Methods
- ๐Performance Improvement for Annotation Display
- ๐Annotating Tilted Characters and IIIF Image Cropping
- ๐Elasticsearch/OpenSearch Data Migration Guide Between Clusters
- ๐โโ๏ธDocker + GitHub Actions Deployment Configuration
- ๐ฅHow to Create Distortion-Free Thumbnails from 360-Degree Videos and Photos
- ๐How to Programmatically Determine Whether Insta360 Video Files Contain GPS Information
- ๐ปComplete Restoration of Deep Zoom Images: Converting Tile Images to BigTIFF
- ๐ทBDRC Tibetan OCR: Introduction and Implementation Examples of a Tibetan OCR Tool
- ๐Marker Position Offset Issue in Cesium 1.135.0 and Its Solution
- ๐ปProtoweb: A Time Machine to Experience the Internet of the 90s
- โจPracticing Long-Term Digital Preservation with OCFL - An Introductory Guide
- ๐Using a Hex Editor on Mac: HexEd.it as an Alternative to HxD
- ๐Finding Hidden File Format Issues with DROID: An Essential Tool for Digital Preservation
October
- โจDevelopment of an IIIF Image Coordinate Editor with Auto-Navigation
- ๐กOdeuropa Visualization: A Platform for Visualizing Scent Data Using SKOS Vocabularies and SPARQL
- ๐How to Build an Independent Author Database in Omeka S
- ๐จComplete Guide to Annotation Coordinate Conversion in Leaflet-IIIF
- ๐Complete Guide to Migrating an Omeka-S Docker Environment to Another Server
- ๐ฆDistinguishing Between RDFS and SHACL: Understanding the Relationship Between range and propertyShape
- ๐ทDeveloping an RDF Metadata Management System Integrating GakuNin RDM and Dydra
- ๐Investigating the Vocabulary Hierarchy of Odeuropa Explorer
- ๐Guide to Registering RDF Data to Dydra via API
- ๐Declarative Multi-Format Conversion with TEI Processing Model
- โณHow to Control the Viewing Direction of Mirador from External Parameters
- ๐ญOdeuropa: The World of Linked Data for Extracting Scents from Historical Documents
- ๐Achieving Japanese Full-Text Search with the MroongaSearch Module for Omeka-S
September
- ๐Azure OpenAI GPT-4 vs Document Intelligence: Comparative Evaluation of Japanese Vertical Text OCR
- ๐LLM-Based Manuscript Paper OCR Performance Comparison: Verification of Vertical Japanese Recognition Accuracy
- ๐Challenges and Solutions for Preserving Order in PDF Transparent Text Extraction
- ๐Guide to Publishing TEI/XML Files on GitHub
- ๐ธTEI ODD File Customization: A Case Study with NDL Classical Book OCR
- ๐Converting ODD to RNG/HTML Using the TEI Garage API
- ๐Development of the NDL Kotenseki OCR-Lite Next.js Version
August
- ๐A Scalable OCR Processing System Using NDL Classical Japanese OCR Lite on Azure Container Apps
- ๐Omeka S Theme Updates and Module Modifications
- ๐How to Register the PROV-O Ontology in Omeka S
- ๐ฌImage Collection Management Tool: Technical Architecture Explained
- ๐"Image Collection Management" Tool Usage Guide
- ๐IIIF Georeference Viewer Migration to MapLibre GL and Feature Improvements
- ๐Multilingual Support for Omeka S Themes
- ๐How to Dynamically Convert File Paths on Azure Storage Using Cantaloupe Delegate Scripts
- ๐Researching How to Use Omeka S
- ๐Implementation Guide for TEI XML Schema Combining RELAX NG and Schematron
- ๐บSetting Up the WDB Module on Drupal 10 in a Docker Environment
- ๐Creating Project-Specific RNG Files Using Generative AI
July
- ๐Introducing Omeka S Docker: A Modern and Secure Solution for Digital Collections
- ๐I Built a Prototype IIIF 3D Viewer
- ๐กTrying Out the Viewer from the "Pre-modern Japan-Asia Relations Digital Archive"
- ๐Next.js 15 Compatible Multilingual and Dark Mode SSG Template
- ๐How to Implement sitemap.ts When Using output: 'export' in Next.js 15
- ๐กNext.js x Search UI x Fuse.js Search Application
- ๐Testing IIIF Authentication API 2.0
- ๐Trying Text Annotation with Recogito
- ๐ฅIntroducing GitHub File History Analyzer: A Tool for Analyzing File Edit History with AI
- ๐Trying Out Transkribus
- ๐Trying grlc (git repository linked data API constructor)
- ๐Trying Odeuropa-Related Tools
- ๐Added Route Registration Feature to "Rekichizu x Next.js"
- ๐Trying DToC: Dynamic Table of Contexts
- ๐ฌHandling Insufficient Disk Space in Ontotext GraphDB Desktop Edition
- ๐ฝTrying AllegroGraph
June
- ๐Fixing the 'ref' Bug in DHConvalidator
- ๐ฅBuilding an MCP Server for Searching the Koui Genji Monogatari Text DB
- ๐จBuilding an API Server for Searching the Koui Genji Monogatari Text DB
- ๐Creating a Castle Generation Command as a Minecraft Mod [Fabric 1.21 + Claude]
- ๐NFT Support for the Digital Cultural Heritage Management System (Prototype)
- ๐Creating TEI/XML Files from IIIF Manifest Files Using NDL Kotenseki OCR-Lite
- ๐Prototyping a Digital Cultural Heritage Management System Using Blockchain and Pinata IPFS
- ๐ธPart 2: Creating Annotated IIIF Manifest Files and TEI/XML Files Using NDL Classical Book OCR-Lite
- ๐Describing Hierarchical Table of Contents with Omeka S IIIF Server Module
- ๐Registering Resources (Items and Images) in Omeka S Using an MCP Server
- ๐Applying Filters to created and changed Fields in Drupal's JSON:API
- โณDTS Viewer Update: Pagination Support
- ๐Using Pagination in IIIF Collections with IIIF Presentation API v2
May
- ๐ฅHow to Allow Non-Admin Users to Access Configuration Pages in Drupal
- ๐Creating Annotated IIIF Manifest Files and TEI/XML Files Using NDL Klasseki OCR-Lite
- ๐Creating a CSV File Containing a List of Image URLs from a IIIF Manifest File
- ๐Using the JSON Field Module to Handle JSON Format Fields in Drupal
- ๐Hosting TEI/XML Files on S3-Compatible Object Storage
- ๐ฝUpdating the DTS (Distributed Text Services) API for the Koui Genji Monogatari Text DB
- ๐Investigating and Resolving Disk Pressure Caused by Docker [Ubuntu 22.04 Case Study]
- ๐Improvements to the Polygon Annotation Support Tool for IIIF Images
- ๐Developing a DTS (Distributed Text Services) Viewer
- ๐Creating Polylines Using the Polygon Tool in Annotorious v2
April
- ๐How to Specify Initial Sort Order in Elasticsearch Search UI
- ๐Handling CORS for Express Deployed on Vercel Using vercel.json
- ๐Adding Normalization Rules in Archivematica's Preservation Planning
- ๐ทHow to Implement IP Address Restrictions for MDX.jp Object Storage
- ๐Prototyping a TEI/XML File Creation App Using Google Cloud Vision API and GakuNin RDM
- ๐Added Route Registration Feature to the "Rekichizu x Next.js" Site
- ๐ธHow to Disable Browser Language Detection in Nuxt i18n
- ๐Using Rekichizu with Next.js
- ๐An Example of Representing IIIF Polygon Annotations in TEI/XML
- ๐Building a Tool for Adding Polygon Annotations to IIIF Images
- ๐บHow to Add Dark Mode Using Tailwind CSS V4 with Next.js 15 App Router
- ๐Handling the Error: Do not use <img>. Use Image from 'next/image' instead.
March
- ๐Omeka S Module Update Information (2025-03-27)
- ๐Scrolling to a Specific Element Using CETEIcean and XPath
- ๐ฆMirador 4 Plugin Development: Enabling Initial Angle Settings in the Image Rotation Plugin
- ๐Rotating Images and Specifying Regions on Initial Load in Mirador 4
- ๐กBuilding a Proxy Server for mdx I Object Storage
- ๐ฆUsing the Universal Viewer npm Package in Next.js
- ๐ปSearching Files in Linked Storage Using the GakuNin RDM API
- ๐ทAdding mdx.jp Object Storage to GakuNin RDM Storage
- โณPrototyping a TEI/XML File Editing Environment Using LEAF Writer and GakuNin RDM
- ๐ฆUsing Filters with the GakuNin RDM (OSF) API
- ๐Nuxt Content: Addressing 'Cannot find name queryContent'
- ๐ฃUpdates to the IIIF Georeference Extension Visualization Tool
- ๐Using Route 53 DNS Records with Sakura Rental Server (Shared SSL)
- ๐Application of DTS (Distributed Text Services) dts:wrapper When Building Search Systems from TEI/XML
- ๐ฆA Sample App Displaying Images with Mirador and Text with CETEIcean
- โณSharing Private Sites in Omeka S
- ๐Registering Objects Using the AtoM (Access to Memory) API
- ๐ปRunning AtoM (Access to Memory) with Docker
- ๐Cases Where ImageMagick May Not Work Properly for Creating Pyramidal TIFFs?
- ๐Running ArchivesSpace with Docker
- ๐โโ๏ธStoring Omeka S Files in mdx.jp Object Storage
- ๐Serving IIIF Images Using mdx.jp Object Storage and IIP Image (IIIF Image Server)
- ๐How to Mount mdx.jp Object Storage as a File System Using s3fs
- ๐Investigating Partial Match Search with AND Conditions Across Fields in Algolia
- ๐ฅHow to Convert Word Files to TEI XML: A Guide to Using the TEIgarage API
- ๐ธUsing Drupal's Sortableviews Module to Reorder Content and Save the Result to a Field
- ๐ทDeveloping a Viewer with Next.js + CETEIcean + React TEI Router
- ๐ฆNext.js for Drupal BASE_PATH Issue and Fix (Using patch-package)
- ๐Trying the Search API Algolia Module for Drupal
- ๐คRegistering Data with Drupal's JSON:API Using Username and Password
February
- ๐Building a Multilingual Static Site with Next.js
- ๐ฅHow to Get Coordinates of Sub-Images from a Larger Image
- ๐Enabled Email-Based Registration in the Mirador 3 Firebase-Linked Annotations Plugin
- ๐Creating TEI/XML from VTT Files
- ๐กUsing clover-iiif with Next.js
- ๐Downloading Annotations Created with the mirador-annotations Plugin in Mirador 3
- ๐Developed a Firestore Adapter for the Mirador 3 mirador-annotations Plugin
- ๐จChanging the Pagination Limit in Algolia
- ๐Prototyping an API for Retrieving Variant Character Lists
- ๐Using @react-three/fiber and drei with Next 15 (Using React 19)
- ๐Uploading Large Files to Omeka S
January
- ๐A Program to Create TEI/XML Files with OCR Results from IIIF Manifest Files
- ๐Created a Similar Text Search App for the Koui Genji Monogatari
- ๐จCORS Configuration for Omeka S Image Server
- ๐Creating AIPs with Archivematica for Files in Alfresco
- ๐Starting Alfresco Governance Services Community Edition
- ๐Editing TEI/XML Files Using XSLT
- ๐Processing Dataverse Data with Archivematica
- ๐ญReal-Time Preview of TEI/XML Using VSCode and XSLT
- ๐ญCreating PDFs from TEI/XML of the Koui Genji Monogatari Text Database
- โจTrying Local Authentication with @sidebase/nuxt-auth
- ๐โโ๏ธAuthenticating with Drupal Using Nuxt 3 and @sidebase/nuxt-auth
- ๐ทOmeka S: Finding Themes Compatible with the Advanced Search Module
- ๐Using Drupal OAuth with NextAuth.js
- ๐Building a Digital Collection Using AppSheet
- ๐กTrying Azure Logic Apps
- ๐Creating Apps with Azure OpenAI Assistants API Using Gradio and Next.js
- ๐กTrying Kompakkt Standalone Viewer
- ๐ปHow to Upload Media to Omeka S Using Python
- ๐Trying Annotations in Sketchfab
2024260
December
- โจConverting OBJ Files to glTF and GLB Files
- ๐กTrying aleph-r3f
- ๐Trying the Aleph 3D Viewer
- ๐Cantaloupe: Serving Images Stored in Microsoft Azure Blob Storage
- ๐ฆBuilding an NDLOCR Gradio App Using Azure Virtual Machines
- ๐Created a Gradio App to Try ndlocr_cli (NDLOCR ver.2.1) Application
- ๐Trying Out CollectionBuilder
- ๐ฆAuthenticating with GakuNin RDM Using Nuxt 3 and @sidebase/nuxt-auth
- ๐Building a RAG-based Chat Using Azure OpenAI, LlamaIndex, and Gradio
- ๐ญUsing the "Tale of Genji in Textbooks LOD"
- ๐Trying Out Peripleo
- ๐Trying Out "Rekichizu" (Historical Maps)
- ๐Developed a Simple Viewer for CSV Files Published on the Internet
- ๐ฅBuilding a Gradio App Using NDL Kotenseki OCR-Lite
- ๐Trying Out Geocoding Libraries
- ๐Specifying Viewing Direction in the Omeka S IIIF Server Module
- ๐บUsing IIIF Manifest Files Stored in mdx.jp Object Storage from NestJS
November
- ๐บNotes on LLM-Related Tools
- ๐บMinor Modifications to openai-assistants-quickstart
- ๐ฅUsing NDL Classical Book OCR-Lite (ndlkotenocr-lite) on Mac OS
- ๐ทUsing processing_config in Archivematica Transfers
- ๐Connecting GakuNin RDM and figshare
- ๐ธUsing GakuNin RDM from Next.js
- ๐ธUploading Files and More Using the GakuNin RDM API
- ๐Authenticating with ORCID, The Open Science Framework, and GakuNin RDM Using NextAuth.js
- ๐Using OldMaps Online
- ๐ฅUsing Knight Lab's TimelineJS and StoryMapJS from Next.js
- ๐Building a Character Detection Model Using YOLOv11x and the Japanese Classical Character Dataset
- ๐Training YOLOv11 Classification (Kuzushiji Recognition) Using mdx.jp
- ๐Getting a List of Properties for a Specific Vocabulary in Omeka S
- ๐ฅLinking to Other Items Using the Custom Vocab Module in Omeka S
- ๐ฅRunning a Local LLM Using mdx.jp 1GPU Pack and Ollama
- ๐ธAchieving Parallel Display of IIIF and TEI Using XSLT
- ๐Creating a Transparent Text PDF from a Single Page Using Google Cloud Vision API
- ๐ทUsing the Zotero API from Next.js
October
- ๐ฆCustomizing the LEAF Writer Editor Toolbar
- ๐จA Python Library for Visualizing the Contents of Archivematica METS Files
- ๐Using LEAF Writer from Next.js
- ๐Using Roma to Restrict Allowed Values for Tag Attributes
- ๐Using Roma to Restrict Attributes for Tags According to Your Project
- โจUsing the GakuNin RDM API
- ๐Connecting GakuNin RDM with Zotero
- ๐Adding mdx.jp Object Storage to Archivematica
- ๐ฅDifferences Between ShExC and ShExJ
- ๐Differences Between ShEx and SHACL
- ๐บTrying the Model Viewer Module for Omeka S
- ๐How to Use the Files/Markers Tabs in the @samvera/ramp Viewer
- โจAddressing the resumptionToken Bug in Omeka S OAI-PMH Repository
- ๐(Non-Standard) Outputting Delete Records with the Omeka S OAI-PMH Repository Module
- ๐Adding a Table of Contents to Videos Using iiif-prezi3
- ๐Setting Subtitles on Videos Using iiif-prezi3
- ๐Adding Annotations to Videos Using iiif-prezi3
- ๐Connecting GakuNin RDM with Amazon S3 and Processing Files with Archivematica
- ๐บCreating IIIF v3 Manifests for Video Using iiif-prezi3
- ๐Using URL Segments Starting with Underscores in Next.js
- ๐Addressing a Bug in setFilter of @elastic/search-ui
- ๐A Program to Create a Visual Overview Page of Omeka S Themes
- ๐Trying Out rico-converter
- ๐Building an Inference App Using Hugging Face Spaces and YOLOv5 Model (Trained on KaoKore Dataset)
- ๐ฌResolving ModuleNotFoundError: No module named 'huggingface_hub.utils._errors'
- ๐Publishing 3D Models in Omeka S
- ๐Manipulating CVAT Data Using Python
- ๐Handling the CSRF: Value is required and can't be empty Error in Omeka S
September
- ๐ฆ[2024 Edition] Building an IIIF Image Server with AWS Serverless Applications
- ๐Using Custom Permissions in Drupal Custom Modules
- ๐GitHub Repository for DTS API for TEI/XML Files Published in the Koui Genji Monogatari Text DB
- ๐Creating a DTS API for TEI/XML Files Published by the Koui Genji Monogatari Text DB
- ๐Trying Out DTS (Distributed Text Services)
- ๐The Relationship Between DTS and CTS
- ๐Trying Out the MyCapytain Library
- ๐Trying Canonical Text Services
- ๐ฅDescribing Annotations Using SVG in IIIF Presentation API v3
August
- ๐ทAvoid Japanese Folder Names When Registering Metadata to Folders in Archivematica
- ๐Performing Similar Image Search Using GUIE (Google Universal Image Embedding) Pre-trained Models
- ๐I Created a Drupal Module to Trigger GitHub Actions
- ๐กCreated a Sample Repository Using @elastic/search-ui with Nuxt
- ๐Mirador Repository with Vertical Text Support for the Text Overlay Plugin
- ๐Archivematica Sample Data
- ๐โโ๏ธVerifying the Behavior of Normalization in Archivematica
- ๐กSpecifying Sort Order in Drupal Facets
- ๐Exporting Tropy Data to Omeka S
- ๐Preventing Unpublished Content from Being Indexed by Drupal's Search API
- ๐Sample Program Using the Annotorious OpenSeadragon Plugin
- ๐คSetting Field-level Visibility (Public/Private) in Drupal
- ๐Drupal: Troubleshooting Cache Clear Errors
- ๐บApplying Google Cloud Vision to Image Files to Create IIIF Manifests and TEI/XML Files
- ๐Handling Errors When Updating Omeka S from v4.0.4 to v4.1
- ๐ฅUpdating Omeka S
July
- ๐ทExporting Only Specific Items and Selected Fields Using Omeka S BulkExport
- ๐Registering RDF Data to Dydra Using Python
- ๐Deleting All Files in OpenAI Storage
- ๐Bringing a Specified Marker to the Front in nuxt3-leaflet
- ๐LEAF Writer: Adding Mirador
- ๐ฝBug in Omeka S IIIF Server Module [3.6.19, 3.6.20]
- โณA Library for Creating RDF Files from VSDX Files
- ๐Handling concurrent.futures.process.BrokenProcessPool
- ๐ปUsing Node.js to Validate JSON:API Compliance
- ๐Trying Out virtual-museum-tour-threejs
- ๐Fetching All Records from an OAI-PMH Repository Using Python
- ๐บRetrieving the URL of Site Pages Where Items Are Published in the Omeka S OaiPmh Repository Module
- โณBulk Deleting Multiple Content Items Using the Drupal REST API
- ๐ปAdding Images to IIIF Manifest Files for Audio Materials
- ๐IIIF Audio/Visual: Describing Multiple VTT Files
- ๐ฅApp Development Using Zotero's API and Streamlit
- ๐จDisplaying Audio Files with Subtitles in an IIIF Viewer
- ๐Uploading Multiple Files to mdx.jp Object Storage
- ๐Converting Audio Published on the NDL Historical Sound Archive to mp4
- ๐Customizing Ramp
- ๐Running Ramp Locally
- โณTrying the Mirador 3 Annotations Plugin with an IIIF Manifest Specified via URL Parameters
- ๐Delivering IIIF Images Using mdx.jp Object Storage and Cantaloupe Image Server
- ๐Using mdx Object Storage (Using Cyberduck)
- ๐กUsing Scroll View in Mirador 3
- ๐Reverse Proxy Settings for Drupal Running with Docker + Traefik
- ๐กRedirecting to HTTPS with Traefik
- ๐โโ๏ธSurvey of IIIF-Compatible Viewers
- ๐ญLarge Videos Not Playing in Chrome
- ๐ธDifference Between production and development in Omeka S SetEnv APPLICATION_ENV
- ๐ฅOperating Multiple HTTPS-Enabled Containers with Traefik
- ๐Fixing Issues with the Omeka S GoogleAnalytics Module
- ๐Redirecting Using Amazon S3 and Route 53
- ๐Configuring CORS for Docker-based Omeka S
- ๐Commands for Batch Replacing IIIF Canvas URIs
- ๐Configuration Example for Using BulkImport in Omeka S
- ๐Bug in the BulkImport Module for Omeka S
- ๐ฝCORS Error with Omeka S IIIF Server Module
- ๐Service with name "Omeka\Acl" could not be created
- ๐'session.name' is not a valid sessions-related ini setting
June
- ๐ฝLEAF Writer: How to Add Sample Data
- ๐LEAF Writer: How to Use the Image Viewer
- ๐LEAF Writer: CSS Customization
- ๐ฃLEAF Writer: Customizing Schemas
- ๐Google Spreadsheet + GAS (Google Apps Script) onEdit Executing Twice
- ๐Understanding the Relationship Between RDF, Turtle, JSON-LD, and IIIF Manifest Files
- ๐Partial Update to TEI/XML Published in the Koui Genji Monogatari Text Data Repository
- ๐LEAF Writer: Entity Lookup for Japan Search
- ๐LEAF Writer: Adding Japanese UI
- โณPublished the Mirador 4 Version of mirador-sync-windows Repository
- ๐Mirador 4 Plugin Development: Rotating Images at Arbitrary Angles
- ๐โโ๏ธPublishing a Customized Mirador 4 as an npm Package
- ๐โโ๏ธExamining Zoom, Scale, and Rotation Behavior in Mirador 4
- ๐Running LEAF-Writer in a Local Environment
- ๐จPublishing Materials on Zenodo
- ๐กVerifying the Behavior of Mirador 2 Plugins
- ๐Handling nbdev Errors on macOS
- ๐Applied Examples of Data Description Using Linked Data
- ๐Developing a Zoom Disable Plugin for Mirador 3 (4)
- ๐Using prefix.cc
- ๐ฌNotes on Adding and Visualizing RDF Data
- ๐ญRetrieving RDF from URIs Using Content Negotiation in Python
- ๐Created an M3 Version of mirador-sync-windows
- ๐Trying iiif-prezi3
- ๐Running Archivematica with Docker
- ๐กFixing Japanese Filename Conversion in Archivematica
- ๐Trying Out mirador-sync-windows
- ๐กConverting Toji Hyakugo Monjo WEB Data to IIIF
- ๐คTrying Parts of https://wikidata.reconci.link/
- ๐Adding Classes and Properties Using the Omeka S CustomOntology Module
- ๐กReleased v4.1.0 of Omeka-S-module-FixCjkSearch
- ๐ฝAccent Sensitivity in Omeka S Partial Match Search
- ๐Examining the Contents of the DHC Format
- ๐ปNotes on Using Zotero
- ๐Trying Out a3m
- ๐โโ๏ธHow to Handle CSP Errors in Strapi
- ๐How to Handle When SSH Connection to Sakura VPS Becomes Unavailable
- ๐Rebuilding and Restarting Containers with docker-compose
- ๐Trying Strapi's Data Transfer
- ๐Drupal: Setting Pre-filled Values Using the Prepopulate Module
- ๐Creating RDF Data Using Microsoft Visio
- ๐Using "ARC2 RDF Graph Visualization" from Python
- ๐Trying tropy-plugin-iiif
- ๐Trying Out @iiif/parser
- ๐Handling Shared Memory Shortage When Running ndlocr_cli and Other Issues
- ๐Publishing Videos with Omeka S
- ๐Disk Space After Installing ndlocr_cli with Docker
May
- ๐Logging into Drupal Programmatically
- ๐Bulk Exporting Registered Content in CSV Format from Drupal
- ๐Searching Including Private Posts with WordPress REST API
- ๐กTriggering GitHub Actions from Drupal Events
- ๐กInference App Using a YOLOv5 Model (Character Region Detection)
- ๐Getting a List of Untranslated Nodes in Drupal
- ๐ฆLaunching Jupyter Lab on mdx
- โจFixing an Inference App Using Hugging Face Spaces and a YOLOv5 Model (Trained on NDL-DocL Dataset)
- ๐Handling ultralyticsplus: ValueError: Invalid CUDA 'device=0' requested...
- ๐บConverting IIIF Curation Lists to TEI Facsimile Elements
- ๐Prototyping entity-lookup Using the Japan Search Utilization Schema
- ๐Trying cwrc's wikidata-entity-lookup
- ๐Trying the CWRC XML Validator API
- ๐RELAX NG and Schematron
- ๐TEI Publisher ODD Configuration Examples (1)
- ๐Using the Docker Version of TEI Publisher
- ๐Formatting XML Strings in Python
- ๐บHow to Convert CMYK Color Images Without Color Inversion
- ๐จCounting Triples in an RDF Store 2: Co-occurrence Frequency
- ๐โโ๏ธCounting the Number of Triples in an RDF Store
- ๐Case-Insensitive Search in Drupal's Search API
- ๐Trying Out TEIGarage
- ๐(Machine Translation) The TEI Archive
- ๐Prototyping Digital Archive Tools: Mainly IIIF Usage Support
April
- ๐ฃHandling the Error: Input value "page" contains a non-scalar value
- ๐ฃBulk Deleting S3 Buckets Using AWS CLI
- โจTrying NDLTSR (NDL Table Structure Recognition)
- ๐จAn Example Analysis of Texts Published in "SAT Daizokyo Text Database 2018"
- ๐Parsing XML Strings in Node.js
- ๐กAdding Links to Publications on researchmap
- ๐LlamaIndex+GPT4+gradio
- ๐Creating an Inline Marker Tool with Editor.js
- ๐ฝChanging the max-width of Editor.js
- ๐Checking Which Users Belong to a Specific Group on a Linux System
- โจReleased ver 4.0.2 of the Omeka S Theme Using Bootstrap 5
- โณPartial Match Search with the Advanced Search Module in Omeka S
- ๐Specifying Items to Display in Omeka S Search Results
- ๐จCreating a Custom Search Page in Omeka S
- ๐Using the API of the Curriculum Guidelines Code Recommendation App
- ๐Prototype of a Course of Study Code Recommendation App
- ๐Using the researchmap API
- ๐Using the Course of Study LOD
- ๐TEI/XML Visualization Example: Map Display Using Leaflet
- ๐บConverting Japanese Calendar Dates to Western Calendar Using HuTime Calendar Conversion Service
March
February
- ๐Trying Out METSFlask
- ๐Trying the Access to Memory RESTful API
- ๐Trying the ArchivesSpace RESTful API
- ๐กDifferences Between DACS and ISAD(G)
- ๐Differences Between Omeka Classic and Omeka S
- ๐ฆTrying ArchivesSpace's OAI Repository
- ๐Trying Access to Memory's OAI Repository
- ๐Trying Out AIPscan
- ๐Using the Media Arts Database SPARQL Endpoint with Yasgui
- ๐Limiting Filter Properties in Omeka S Advanced Search
- ๐Tips for Using sidebase/nuxt-auth in a Production Environment
- ๐คAdding Japanese Translation to a Documentation Site Built with Sphinx
- ๐ญConfiguring S3 for Archivematica's AIP Processing and Storage
- ๐Copying Build Results to Sakura Rental Server Using GitHub Actions and SCP
- ๐Resolving mysqldump: not found in MariaDB
- ๐ญOmeka S Bulk Import Module: Usage Guide (February 2024 Edition)
- ๐Workaround When Presentation API v2 Manifests Cannot Be Displayed in Mirador 3
- ๐Updating the IIIF Viewers Module for Omeka S
- ๐Created a Simple TEI/XML File Viewer Using Next.js
- ๐How to Fix the 413 Request Entity Too Large Error in nginx-proxy
- ๐โโ๏ธConfiguring Amazon S3 as a Processing Source and AIP Storage Destination in Archivematica
- ๐ปAn Example of Specifying Image Frames in Universal Viewer
January
- ๐ฃHow to Access S3 Buckets and Enable SSL Communication Using Docker-based Cantaloupe
- ๐Trying Out File Information Tool Set (FITS)
- ๐กTrying the Docker Version of Cantaloupe
- ๐Drupal: Registering Files from URLs Using the Feeds Module
- ๐ฅHow to Bulk Delete Files in Drupal
- ๐Sending Email Notifications for GitHub Actions Results: Using Gmail
- ๐ฝHandling Private Files in Omeka S
- ๐Sending Emails via Amazon SES from Omeka S on Amazon Lightsail
- ๐Created a Page to Visually Browse Omeka S Themes
- ๐Aligning the Collated Tale of Genji with Modern Japanese Translations in Digital Genji Monogatari
- ๐ญTrying ro-crate-py
- ๐ฆLinking a GitHub Repository with Zenodo
- ๐ธTrying OAuth2 Authentication for REST Resources Using Drupal's simple_oauth Module
- ๐กTrying the Drupal Social Auth GitHub Module
- ๐Testing Drupal REST Resource Cookie Authentication Using Postman
2023197
December
- ๐Trying the Drupal JSON Web Token Authentication Module
- ๐Investigation of the Drupal REST & JSON API Authentication Module
- ๐คUpdating Drupal on Sakura Rental Server
- ๐กDrupal Module Development: Searching with Variant Characters in Mind
- ๐Troubleshooting Errors When Running lando start
- ๐Drush Command Cheat Sheet
- ๐ฝPagination Error When Using JSON:API Search API in Drupal
- ๐Usage Example of the Image Map Editor in Oxygen XML Editor
- ๐Georeferencing with Allmaps
November
- ๐บNuxt3 x Vuetify x Cesium
- ๐Trying Nuxt 3 and Decap CMS
- ๐ทHandling AttributeError: 'ImageDraw' object has no attribute 'textsize'
- ๐Restarting Virtuoso on EC2 Using Amazon SNS
- ๐Resolving SAM Error: Running AWS SAM Projects Locally Requires Docker
- โจTrying Leaflet Marker Cluster with Nuxt 3 and Composition API
- ๐Example of Creating a Page Using Universal Viewer v4
- ๐ฅNuxt3 x Vuetify x Cytoscape
- ๐ฆCantaloupe: Running as a Service
- ๐กCantaloupe: Serving Images Stored in Amazon S3
- ๐Drupal: Registering Multiple Values and Skip Processing Using the Feeds Tamper Module
- ๐Drupal: Displaying UUIDs
- ๐TEI Publisher: Visualization Examples from the TEI Publisher Demo Collection (Part 1)
- ๐ฆVue.js: Handling Panes with iframes When Using Splitpanes
- ๐Formatting and Syntax Highlighting XML in Nuxt3
- ๐Schemas Convertible from TEI ODD: RNG, XSD, DTD, and More
- ๐Using Roma to Limit Tags for Your Project and Generate Documentation
- ๐Using Versioning Machine (VM5.0) with Visual Studio Code (VSCode)
- ๐Created a Python Library to Convert Freehand Annotations to Rectangles
October
- ๐Making Field Values Selectable in Drupal
- ๐Enabling Search by ID and Title When Referencing Other Content in Drupal
- ๐ฅDrupal: Handling Errors When Updating the `uid` Field via API
- ๐Handling "Some resources have been omitted because of insufficient autho..." in Drupal
- ๐ฝConverting JSON-LD Data to RDF/XML and Turtle Using EASY RDF
- ๐[Omeka S Module Introduction] BulkExport: Adding Export Functionality to Item Detail Pages
- โณDisabling Autotune in Amazon OpenSearch Service
September
- ๐Installing drush on Drupal Built with Lando
- ๐How to Disable Twig Cache in Drupal 10.1.0 and Later
- โณEnabling HTTPS for Archivematica on EC2
- ๐ธTrying the IIIF Content State API
- ๐ปTrying Cantaloupe Access Control
- ๐Adding Values to info.json in Cantaloupe
- ๐Trying Cantaloupe Overlays
- ๐Enabling the Cantaloupe Admin Panel
- ๐Enabling HTTPS for Cantaloupe on EC2
- ๐Created Notebooks Using NDLOCR and NDL Classical Japanese OCR ver.2
- ๐ทHandling "two factor auth enabled..." on PyPI
- ๐ฆLaunching Cantaloupe, a IIIF Image Server, on EC2
- ๐ทDisplaying Images Referenced by URL in Drupal Views
August
- ๐ญRunning NDL Classical Japanese OCR on mdx
- ๐ทTrying Mirador 2's Physical Document Ruler
- ๐Mirador 3 Plugin Development: Adding Vertical Text Support to the Text Overlay Plugin
- ๐Notes on Extracting Latitude and Longitude from Google Maps Short URLs
- ๐Trying the mirador-annotations Plugin and SimpleAnnotationServer with Mirador 3
- ๐ก[Omeka S Module Introduction] Advanced Search Adapter for Solr
- ๐ฌVisualizing Item Counts by Latest Update Year for the Japan Search Utilization Schema
- ๐ฆAccessing a Specific AWS S3 Bucket Using Cyberduck for macOS
- ๐ฆSetting Up GitHub 2FA Using a Browser Extension
- ๐Error When Running npx nuxi typecheck
- ๐ฅCommands for Restarting Virtuoso When It Stops
- ๐ปUtilizing Exhibition Information Stored in the Cultural Japan RDF Store
- ๐บMirador 3 Plugin Development: Creating a Layer Slideshow
July
- ๐About ALTO (Analyzed Layout and Text Object) XML
- ๐Watching URL Query Changes with watch in Nuxt3
- ๐ฌI Created a Sample Repository Using CETEIcean and Nuxt 3
- ๐ธHow to Check How Fields Are Indexed in Apache Solr
- ๐ป[Omeka S Module Introduction] Scripto: Performing Transcription and Translation
- ๐[Omeka S Module Introduction] IiifPresentation: Adding IIIF Presentation API
- ๐Omeka S Module Introduction: HistoryLog - Recording Change History
- ๐ญUpdated Mirador to 2.7 in the Omeka Classic IIIF Toolkit
- ๐ฅBatch Registering Data to Omeka Classic IIIF Toolkit
- ๐Mirador 3 Plugin Development: Copying a Window
- ๐Trying QuickStatements on wikibase.cloud
- ๐ทTrying Out WikibaseSync
- ๐กUsing the Wikibase API
- ๐Trying Dataverse
- ๐ฅTrying wikibase.cloud
- ๐Health Checking Virtuoso Running on Amazon EC2
- ๐Using the onClose Prop
- โณZooming to Meet Viewport Constraints in Mirador 3
- ๐Using zoomTo in OpenSeadragon to Satisfy Viewport Constraints
- ๐Difference Between `fitBounds` and `fitBoundsWithConstraints` in OpenSeadragon (OSD)
- ๐Highlighting LaTeX in Monaco Editor
- ๐ฅHighlighting TeX with Ace.js
- ๐Building a Django CI/CD Environment from GitHub to EC2 Using GitHub Actions (2023 Edition)
- ๐django-simple-history: Recording Model Edit History in Django
- ๐Implementing Partial Match Filters in Django Rest Framework (DRF)
June
- โจHow to Bulk Delete Collections in Omeka Classic
- ๐ฆGuide to the IIIF Mirador 2 Annotation Interface
- ๐โโ๏ธTrying Out bagit-python
- ๐Getting the File Path of an Uploaded File Using Django's ModelForm
- ๐Connecting Django with AWS OpenSearch
- ๐ฅBulk Registration with Django REST Framework
- โจUsing JWT in Django (djangorestframework-simplejwt)
- ๐Using the Archivematica API to Perform Transfer Through AIP Download
- ๐ฃSetting Default Sort Order for Items Displayed on Per-Item-Set Pages in Omeka S
- ๐กSorting and Pagination in Strapi v4 GraphQL
- ๐โโ๏ธEnabling OpenAPI in Drupal
- ๐กUsing OpenSeadragon and OpenSeadragon SVG Overlay with Nuxt3
- ๐Handling CORS Errors with Drupal's JSON:API
- ๐บTroubleshooting JSON:API Related Errors
- ๐Disable UI: Using Drupal as a Headless CMS
- ๐How to Use Drupal JSON:API (include and Multilingual Support)
- ๐Content Registration and Multilingual Support Using Drupal Key Auth
- ๐ฆTrying Wagtail
- ๐Causes and Solutions When Browse Does Not Work in Archivematica
- ๐Bulk Deleting Amazon ECR Repositories
- ๐Customizing Views for Custom Models in Django REST Framework JSON:API (DJA)
- ๐Adding Custom Models to Django REST framework JSON:API (DJA)
- ๐Trying Django REST Framework JSON:API (DJA)
May
- ๐Specifying the ImageMagick Path When Installing Omeka S on Sakura Rental Server
- ๐ฅCreating a REST API Using OpenAPI and AWS CDK (OpenSearch Connection and Custom Domain)
- ๐Integrating Strapi with Amazon OpenSearch
- ๐Configuring Strapi's REST API
- ๐ฅCreating PDF Files from IIIF Manifest Files
- ๐ฆHow to Upload and Update Files Using the GitHub GUI
- ๐About the Image Server Configuration for Omeka S
- ๐AWS CDK x CloudFront x S3 x Basic Auth x index.html Support x Custom Domain
- โณHow to Register IIIF Images as Media in Omeka S
- ๐ธCreating an Anonymous File Uploader Using Google Drive and Google Apps Script
April
- ๐ฃSending Google Spreadsheet Update Notifications to GitHub
- ๐Auth0 Provider and Strapi Tutorial
- ๐Fixing TypeError: array_keys()... in Drupal
- ๐กDrupal: An Example of Searching Nested Fields
- ๐Drupal: Example of Bulk Registration and Updates Using Feeds
- ๐Strapi: How to Filter Results by Deeply Nested Fields
- ๐Drupal: Adding Content Types and Fields Using Custom Modules
- โจDrupal: Linking Content of Different Content Types to Each Other
- ๐Checking ORCID RDF Data
- ๐Drupal: Creating Custom REST Resources
- ๐Creating a Custom API Using Drupal's RESTful Views
- ๐กDisplaying the Total Number of Results in Drupal Views
- ๐Adding Google Analytics 4 gtag.js to Omeka S
- โจConverting TEI XML to LaTeX Using TEI Critical Apparatus Toolbox
- ๐Prototype of an XML File Validation Tool Using JPCOAR Schema (v1)
- ๐ญText Selection Using VueUse (Nuxt 3)
- โจSearch Using Drupal Search API in Next.js for Drupal (Faceted Search, etc.)
- ๐ฃDoes Contentful Full-Text Search Require Search Terms of 2 or More Characters?
- ๐ฌHow to Bulk Delete Content in Drupal
- ๐โโ๏ธConnecting Drupal with Amazon OpenSearch Service
- ๐Trying GraphQL with Drupal
- ๐กAdding GraphQL to Strapi
- ๐ญBug Fixes and Feature Additions to the NDL Classical Book OCR Tutorial Using Google Colab
- ๐Creating IIIF Presentation API v3 Manifest Files Using Omeka S
- ๐Registering Taxonomies and Adding Them to Content in Drupal Using Python
- ๐Updating and Deleting Drupal Content Using Python
- ๐Adding Content to Drupal Using Python
- ๐ฃRunning Strapi on Amazon Lightsail (SSL, Custom Domain)
- ๐[Omeka S Theme Development] Updated the Bootstrap 5 Omeka S Theme
- ๐I Created Digital Archive Tools Centered on IIIF
- ๐Creating RDF from Excel
- ๐จTrying to Create a ShEx File
- ๐Obtaining Persistent Identifiers with w3id.org and Redirecting to Snorql
March
- ๐Bidirectional Interaction Between Vue 3 and Babylon.js (Part 2)
- ๐Loading .glb Files with Nuxt3 x babylon.js
- ๐Bidirectional Interaction Between Vue 3 and Babylon.js
- ๐Changing Annotation Colors in IIIF Curation Viewer
- ๐กWeb Application for NDL Classical Book OCR Using Hugging Face Space
- ๐กRunning NDL Classical Japanese OCR on Amazon EC2 CPU Environment
- Comparison of Nuxt.js and Next.js
- What Is a Canonical URL? (canonicalUrl)
- ๐Implementing Exact Non-Match Search with Fuse.js (Explained by GPT-4)
- ๐How to Extract respStmt name Values from TEI/XML Files (Explained by GPT-4)
- ๐Omeka Classic and Omeka S: Feature Comparison (Explained by GPT-4)
- ๐Omeka S User Permissions and Access to Private Resources
- ๐ทUpdating Vocabularies Created with Omeka S Custom Ontology
- ๐โโ๏ธTrying Leaflet Marker Cluster with Nuxt 3
- ๐Memo on Using nbdev
- ๐ธPartially Implementing Exact Non-Match Search with Fuse.js
- ๐ฌ[Omeka S Module Introduction] Bulk Import: Batch Registration of Metadata and Images Using CSV Files (2023-03 Edition)
February
- ๐โโ๏ธRunning NDL Classical Text OCR Using Amazon SageMaker Studio
- โณ[Babylon.js x Vue] Passing Click Events to Vue
- ๐ฅTrying the Babylon.js Vue Tutorial with Nuxt 3
- ๐Running ArchivesSpace as a Unix Daemon
- ๐บSetting Up ArchivesSpace on Amazon Lightsail
- ๐Japanese Translation Example of the Archivematica AIP README File
- ๐ฃTrying the Archivematica API (Archivematica API - Transfer)
- ๐Using Japan Search Web Parts with Next.js
- ๐Trying the Archivematica API (Storage Service API)
- ๐Setting Up Archivematica on Amazon EC2
- โจHosting Nuxt 3 SSR on Vercel (+ Enabling CORS)
- ๐Creating IIIF Manifest Files Using a Headless CMS
- ๐ฌProgram for Batch Image Registration to Omeka S
- ๐Using Babylon.js with Nuxt3 and Vuetify Together
January
- ๐Publishing Images Using IIIF Image API Level 0
- ๐Created a Program to Calculate Edit Distance for TEI/XML Files Containing app Elements
- ๐How to Use IIIF Presentation Validator in a Local Environment
- ๐NDL Classical Text OCR Using Google Colab
- ๐[Omeka S Module Introduction] BulkExport: Bulk Data Export
- ๐ธCollaborative Editing of TEI/XML Files Using Visual Studio Live Share (Not Limited to XML)
- ๐Validating XML Files Using the JPCOAR Schema
- ๐ฅTrying the jingtrang Library for RELAX NG Schema: Creating RNG Files
- ๐Trying the jingtrang Library for RELAX NG Schema: Validation
- ๐Converting Word to TEI/XML
- ๐Trying to Register an Image on OpenSea
- ๐ฆTrying to Add Images and a IIIF Manifest to IPFS
- ๐ฆCreating a Customized RNG File Using Roma: Restricting Available TEI Tags
- ๐ธAn Example Workflow for Creating TEI/XML from Excel
2022188
December
- ๐Created a Custom OpenSeaDragon Viewer for Use in TEI Viewers
- ๐ปIntroducing an IIIF Viewer in Nuxt3 with SSR
- ๐ฅScript for Initial Setup of Omeka S on Amazon Lightsail (Adding the Easy Admin Module)
- ๐Omeka S Module Development: FixCjkSearch - Fixing Full-Text Search Issues with Japanese in Omeka S
- โจDeploying Nuxt 3 on Amazon Lightsail: Using pm2
- ๐[Omeka S Module Introduction] Folksonomy: Social Tagging
- ๐Trying Out Gatsby CETEIcean
- ๐Trying Out TEI Boilerplate
- ๐จOmeka S 4.0.0 Release Candidate Has Been Published
- ๐Restricting API Access in Omeka S
- ๐TODO Memo for EC2 Server Setup
November
- ๐ฅInvestigating Customization Methods for Snorql for Japan Search
- ๐Using the Japan Search SPARQL Endpoint with Yasgui
- ๐จ[Omeka S Module Introduction] Mapping Module
- ๐โโ๏ธ[Omeka S Module Introduction] Timeline Module
- ๐[Omeka S Module Introduction] IIIF Search Module
- ๐จ[Omeka S Module Modification] IIIF Search Module
- ๐ฆRunning Tesseract on Google Colab (with Japanese Support)
- ๐ฃ[Omeka S Module Introduction] "Extract Ocr" - A Module for Performing OCR on PDF Files
- ๐โโ๏ธWorkaround for HuggingFace Trainer() Not Starting When Using Vertex AI Workbench
- ๐Installing the Mroonga Search Module (Note: This Did Not Work Successfully)
- ๐กTrying the ResourceSync Python Library
- ๐[Omeka S Module Development] Adding Features to Sitemaps
- ๐[Omeka S Module Introduction] Sitemaps
- ๐Trying the IIIF Auth API
- ๐Omeka S Module Introduction: Data Type RDF
- ๐ฝIntroduction to "FairCopy": A TEI Text Creation Support Tool
- ๐Registering ICA RiC-O Vocabulary in Omeka S
- ๐ฆHow to Use the Text Markup Tool "CATMA"
- ๐Trying the MediaWiki TEI Extension (Result: Did Not Work)
- โจA Python Package for Interacting with the Omeka S REST API
- ๐[Omeka S Module Introduction] Custom Vocab
October
- ๐Retrieving Birth and Death Years of Historical Figures from Wikidata
- ๐[TEI x JavaScript] Removing Unintended Whitespace in Nuxt 3
- ๐Dealing with AttributeError in ultralytics/yolov5
- ๐ญAn Example of Manipulating JSON Files with Nuxt 3's server/api
- ๐Script for Initial Setup of Omeka Classic on Amazon Lightsail
- ๐Omeka S: Adding Properties via the REST API Is Not Supported
- ๐ญAn Example of Deploying Nuxt 3 to Netlify and AWS
- ๐Double-Sided Ruby Annotations Using python-docx
- ๐จAn Example Method for Converting TEI/XML Files to Vertical-Writing PDF
- ๐Prototype npm Package for Displaying Popups on Selected Text
September
- โณConverting TEI/XML Files to EPUB Using Python
- ๐[Omeka S Module Development] Updating IIIF Viewers
- ๐ธSupporting Drag & Drop for IIIF Icons
- ๐Creating a GitHub Release Script for Omeka S Module Development
- ๐กHow to Extract and Process Only Text Strings from XML Files
- ๐I Created an API That Returns a List of Items Containing a Specified IIIF Manifest in Cultural Japan
- ๐Retrieving Thumbnail Images and Content URLs from the Japan Search Utilization Schema
- ๐A Script to Remove Omeka on Amazon Lightsail
- ๐How to Customize the Default Settings of the BulkImport Module
- ๐Batch Download Script for Omeka S Modules
- ๐[Memo] MapTiler Light and Dark Themes
- ๐ฅOmeka S Theme Development: Fixed a Bug in the Bootstrap 5 Omeka S Theme
- ๐ฅScript for Initial Setup of Omeka S on Amazon Lightsail
- ๐ฅSpecifying the Initial Specification to Display in Swagger UI Demo via GET Parameter
- ๐ฝOutput Content of IIIF Manifests (Version 2) from the Omeka S IIIF Server
August
- ๐How to Set the xml:id Attribute with BeautifulSoup
- ๐[Omeka S] Created a Foundation S Theme That Works Around the Japanese Search Bug
- ๐บ[Omeka S] Handling Bulk Import Bugs (Including Installation from Source Code)
- ๐ฃ[Memo] How to Use Virtuoso
- ๐กHow to Manually Restart or Stop Virtuoso from the Command Line
- ๐ธSimilar Image Search Using VGG16
- ๐ฌSimilar Image Search Using an Autoencoder
- ๐[RDF] Configuring URI Access to Redirect to the Snorql Interface
- ๐ฃReturning JSON from Hugging Face Spaces
- ๐Building a Virtuoso RDF Store Using AWS EC2
- ๐ญHow to Register and Delete RDF Files in Virtuoso RDF Store Using curl and Python
- ๐Building an Inference App Using Hugging Face Spaces and a YOLOv5 Model (Trained on the NDL-DocL Dataset)
July
- ๐ปDumping Elasticsearch Data to Local
- ๐ญBuilding a Layout Extraction Model Using the NDL-DocL Dataset and YOLOv5
- ๐กGetting a Google Drive Folder ID from a Path Using Google Colab
- ๐Conversion and Visualization of the NDL-DocL Dataset (Document Image Layout Dataset)
- ๐Hosting Hugging Face Models on AWS Lambda for Serverless Inference
- ๐ปI Created a Program to Extract Differences Between Two Texts
- ๐Trying Omeka Classic as a Headless CMS
- ๐ฅCreated an Image Comparison Tool Using Mirador 3
- โจBulk Registration of Annotations Using the IIIF Toolkit for Omeka Classic
- ๐ฅBuilding an Omeka Classic Site Using Amazon Lightsail (Including Custom Domain + SSL)
- ๐NDL OCR Now Supports Ruby (Furigana) Text Extraction
- ๐ฌAggregations with Different Keys and Values (Labels and IDs) in Elasticsearch
- ๐Bug and Fix for Omeka S Bulk Import
June
- ๐กCreated a Video on How to Use the NDLOCR App with Google Colab
- ๐Scheduled Backup of Omeka S Data Using AWS Copilot
- ๐จCreated a Program to Download Data from Omeka Classic
- ๐กCreated a Program to Download Omeka S Data
- ๐How to Add the mirador-image-tools Plugin to Mirador 3 and Bundle It into a Single JS File for Distribution
- ๐คI Created an IIIF Image API Tool Using Nuxt 3 and Vuetify 3
- ๐File Upload (Python) and Download (PHP)
May
- ๐ทCreating Microsoft Word Files with python-docx: Using Templates and int2kanji
- ๐ญ[Omeka S Module] How to Disable Image API in the IIIF Server Module
- ๐ฅ[Omeka S Theme] Partial Mapping Module Support for Bootstrap 5 Theme
- ๐ฌ[Omeka S] How to Use the "IIIF Viewers" Module for Multiple IIIF-Compatible Viewers
- ๐Registering DC-NDL (National Diet Library Dublin Core Metadata Description) as a Vocabulary in Omeka S
- ๐Sample Notebook for Fetching Google Spreadsheet Data from Google Colab
- ๐Memo: Specifying a Profile When Running sam deploy
- ๐กResolving "Error building docker image" During Local Development with AWS SAM
- ๐ฌSimple Backup of Omeka S Using gdrive
- ๐ฝUsing gdrive in a LAMP environment started with Amazon Lightsail
- ๐ฆUsing gdrive in a LAMP Environment on Amazon Lightsail
- ๐คWhat to do when
- ๐How to Fix "An error occurred in Google Drive": Script to Empty Shared Drive Trash
- ๐ฅRunning gcv2hocr on Google Colab: Creating Searchable PDFs with Transparent Text Using Google Vision API
- ๐How to Delete Files on Google Drive Using Google Colab
- ๐ฅCreated Version 2 of the NDLOCR App Using Google Colab
- ๐ทFixing the GitHub Repository Demonstrating Mirador 3 Usage with Nuxt 2
April
- ๐Updating the NDLOCR App Using Google Colab: Adding Single Input Dir Mode
- ๐Execution Time for NDLOCR Using Google Colab
- ๐คExample of Running SPARQL Queries Against the Japan Search RDF Store Using Google Colab
- ๐ฅRunning the NDL Lab Automatic Figure/Table Extraction Program Using Google Colab
- ๐Running NDLOCR App with Google Colab (Image Input and Result Saving via Google Drive)
- ๐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)
- ๐Running the NDLOCR Application Using Google Cloud Platform Compute Engine
- ๐Using The New York Public Library API
- ๐How to Register, Update, and Delete researchmap Achievements Using CSV Files
- ๐Added TEI/XML Download Functionality to the "NDL OCR x IIIF" App
- ๐Experiments on Image Sizes Supported by serverless-iiif
- ๐Usage Example of Leaflet with Vue 3 (Including Coordinate Range Retrieval)
- ๐ฅCreated a Sample Repository for Using OpenSeadragon with Vue3
- ๐ท[Omeka S] How to Set Custom Identifiers in the IIIF Server Module
- ๐[Omeka S] How to Configure Attribution in the IIIF Server Module
- โจCreated a Sample Repository for Running XSLT in Node.js
- ๐Setting Focus on a Text Field Inside a Dialog When Opening It in Vuetify
- ๐How to Enable Hot Reload for the static Directory in Nuxt.js
- ๐Introduction to IIIF Presentation API Validation Methods with Practical Examples
- ๐About Image Size Limits for Dynamic Tile Image Generation in the Omeka S Image Server Module
- ๐GCP: Handling Errors When Creating AI Platform Notebooks
- ๐How to Delete a Feature Store in GCP Vertex AI
- ๐Viewing OCR Results from the NDL Next Digital Library in a IIIF Viewer
- ๐ฌ[Development Guide] I Created an App to View OCR Results Published by the National Diet Library's Next-Generation Digital Library in an IIIF Viewer
- ๐ฅAn App for Viewing OCR Results from the NDL "Next-Generation Digital Library" in an IIIF Viewer
March
- ๐Creating Pyramid Tiled TIFF Files Using AWS Lambda + Docker + pyvips
- ๐Creating Pyramid Tiled TIFF Files Using AWS Lambda + Docker + pyvips
- ๐ฝHow to Use pyvips and Create Pyramid Tiled TIFF Files
- ๐[Memo] How to Use Maplat
- ๐I Created a Calendar Search App
- ๐Building an Object Detection API (Flask + YOLOv5) Using AWS Lambda
- ๐Building an Object Detection API Using AWS Lambda (Flask + YOLOv5)
- ๐[Omeka S Theme Development] Published a Bootstrap 5 Theme for Omeka S
- ๐[Omeka S Module] How to Use Clean Url
- ๐Building an Annotation Environment Using Omeka Classic + IIIF Toolkit
- ๐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
- ๐บCreated a Summary Article and Zenn Book Explaining How to Use Omeka.net (Classic)
- [Summary Article] How to Use Omeka.net (Classic)
- ๐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
- ๐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
- ๐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
- ๐Generating IIIF Collections Using the Omeka S IIIF Server Module
- ๐Building an IIIF Image Server with AWS Serverless Application
- [For Developers] Setting Up a Search Application Development Environment Using AWS x Nuxt.js x Elasticsearch
- Registering Resource Classes with Bulk Import and Editing Settings
- Created a Program for Batch Updating File Owners in Google Drive
- [Memo] Created a Program for Batch Deleting Folders on Google Drive
- How to Install Omeka S Modules
- Batch Updating Metadata Using CSV Files with Bulk Import
- Notes on Japanese Full-Text Search in Omeka S and the Mroonga Search Module
- Created a Sample Program for Analyzing TEI/XML Files with Python
- Created a Program for Batch Downloading Images from IIIF Manifest Files
- ๐Using an External Image Server with the Omeka S IIIF Server Module
- How to Use the Omeka S XML Viewer Module
- [Pinned Post] Welcome to the Digital Archive Systems Technical Blog
- How to Use the Omeka S Mirador Module
- Summary of Articles About Omeka S
February
- How to Fix Errors with gdown
- Created a Program to Generate TEI facsimile Elements from IIIF Manifest Files
- ๐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()
- [Omeka S Development] Created a Program to Generate CSV Files for Registering Dummy Data in Omeka S
- [Omeka S Module Introduction] How to Use the Mapping Module (Especially Batch Registration via the CSV Import Module)
- [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 IIIF Content Search API URIs to IIIF Manifests
- [Omeka S Module Info] Bug in the Clean Url Module and Temporary Fix
202129
September
August
- [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 1: Registering Flat Tables of Contents)
- [Feature Development] Bug Fix for License Property in the Omeka S IIIF Server Module
- [Translation] How to Add Table of Contents Information in the Omeka S IIIF Server Module
- How to Embed Mirador 3 in a Specific Area of a Page
- How to Add a Line Break Before the lb Tag in Oxygen Auto-Formatting
- Created a Repository Demonstrating How to Use Mirador 3 with Nuxt.js
- [Omeka S Tips] Notes on Using the BulkImport Module on Windows
- [Omeka S Tips] About Auto-Adding New Items to Each Site
- [Omeka S Module Introduction] Numeric Data Types: Enabling Range Search for Date Data, and More
July
- Created a GitHub Repository Demonstrating How to Use vis.js with Nuxt.js
- [Omeka S Module Introduction] Metadata Browse: Adding Links to Search for Items with the Same Metadata
- [Omeka S Module Customization] OaiPmhRepository: Creating Custom Vocabularies
- ๐Omeka S Module: Advanced Search Plus - Extending Advanced Search Functionality
- [FOSS Memo] CollectiveAccess
- ๐Omeka S Module: Custom Ontology - Adding Custom Vocabularies
- [Omeka S Tips] How to Add Existing Standard Vocabularies
- [App Introduction] Introducing IIIF pocket
- [Omeka S Manual Translation] Resources > Items
- [Omeka S Tips] How to Set Language Attributes for Metadata
- [Omeka S Module Introduction] Item Sets Tree
- [Omeka S Module Introduction] IIIF Server / Image Server / Universal Viewer
- Reference Materials for Introducing Omeka S
- Introduction to the IIIF Collection of IIIF Manifests Aggregated by Cultural Japan
- Created a Repository Demonstrating How to Use Mirador 3 with Vue
- [Feature Development] Adding a Setting to Disable Image API in the Omeka S IIIF Server Module