<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Object images | museum-digital: blog</title>
	<atom:link href="https://blog.museum-digital.org/tag/object-images/feed/" rel="self" type="application/rss+xml" />
	<link>https://blog.museum-digital.org</link>
	<description>A blog on museum-digital and the broader digitization of museum work.</description>
	<lastBuildDate>Mon, 12 Jan 2026 17:16:14 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	

<image>
	<url>https://blog.museum-digital.org/wp-content/uploads/2020/01/cropped-mdlogo-code-512px-32x32.png</url>
	<title>Object images | museum-digital: blog</title>
	<link>https://blog.museum-digital.org</link>
	<width>32</width>
	<height>32</height>
</image> 
<atom:link rel="search" type="application/opensearchdescription+xml" title="Search museum-digital: blog" href="https://blog.museum-digital.org/wp-json/opensearch/1.1/document" />	<item>
		<title>State of Development, December 2025</title>
		<link>https://blog.museum-digital.org/2026/01/12/state-of-development-december-2025/</link>
					<comments>https://blog.museum-digital.org/2026/01/12/state-of-development-december-2025/#respond</comments>
		
		<dc:creator><![CDATA[Joshua Ramon Enslin]]></dc:creator>
		<pubDate>Mon, 12 Jan 2026 17:15:11 +0000</pubDate>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Frontend]]></category>
		<category><![CDATA[Importer]]></category>
		<category><![CDATA[musdb]]></category>
		<category><![CDATA[nodac]]></category>
		<category><![CDATA[IIIF]]></category>
		<category><![CDATA[Imports]]></category>
		<category><![CDATA[New Features]]></category>
		<category><![CDATA[Object editing (musdb)]]></category>
		<category><![CDATA[Object images]]></category>
		<category><![CDATA[Object search (musdb)]]></category>
		<category><![CDATA[Single image view]]></category>
		<category><![CDATA[System administration]]></category>
		<category><![CDATA[User interface]]></category>
		<guid isPermaLink="false">https://blog.museum-digital.org/?p=4616</guid>

					<description><![CDATA[December 2025 was an interesting month for museum-digital. An update to the PHP version used as well as a flood of requests by what is most likely AI scrapers forced us to make changes for improved stability, reducing and reformulating features rather than adding new ones and working on matters of systems administration over purely <a href="https://blog.museum-digital.org/2026/01/12/state-of-development-december-2025/" class="more-link">...</a>]]></description>
										<content:encoded><![CDATA[
<p>December 2025 was an interesting month for museum-digital. An update to the PHP version used as well as a flood of requests by what is most likely AI scrapers forced us to make changes for improved stability, reducing and reformulating features rather than adding new ones and working on matters of systems administration over purely matters of code quite often. Add to that the long-promised update of the terms of use for German museums to more structured and lawyer-approved ones, and you get yet more small changes that do not directly concern the work of museums with museum-digital but rather improve the necessary context.</p>



<h2 class="wp-block-heading">musdb</h2>



<h3 class="wp-block-heading">Object overview</h3>



<p>In the default tile view of the object overview page, hovering over an object image thus far revealed the object&#8217;s name. As object names are often too long to display fully and inventory numbers are the primary means of identifying an object in most museums, this preview text has now been extended to include the inventory numer.</p>



<figure class="wp-block-image size-large"><img fetchpriority="high" decoding="async" width="1024" height="570" src="https://blog.museum-digital.org/wp-content/uploads/2026/01/20260112_musdb-object-list-1024x570.webp" alt="Screenshot in the object overview." class="wp-image-4613" srcset="https://blog.museum-digital.org/wp-content/uploads/2026/01/20260112_musdb-object-list-1024x570.webp 1024w, https://blog.museum-digital.org/wp-content/uploads/2026/01/20260112_musdb-object-list-300x167.webp 300w, https://blog.museum-digital.org/wp-content/uploads/2026/01/20260112_musdb-object-list-1536x855.webp 1536w, https://blog.museum-digital.org/wp-content/uploads/2026/01/20260112_musdb-object-list-2048x1140.webp 2048w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">Hovering over an object image in the tile view now also displays the inventory number.</figcaption></figure>



<h3 class="wp-block-heading">User management</h3>



<h4 class="wp-block-heading">New Options for Managing User Accounts: Disabling Accounts &amp; Setting Account Expiry Dates</h4>



<p>Two new options on user editing pages allow disabling logins on an account and setting an expiry date for the account. Both can be useful for administration: If a new worker joins the museum for a project with a clear-cut limitation on funding and time, one can now set the account expiry at the beginning of the project to the end of it. The accounts will then automatically be deleted when the project ends. Similarly, colleagues that leave service temporarily but for a prolonged time (e.g. for a sabbatical) and will not need to use their accounts for that time can have their accounts disabled.</p>



<figure class="wp-block-image size-large"><img decoding="async" width="1024" height="398" src="https://blog.museum-digital.org/wp-content/uploads/2026/01/20260112_musdb-user-options-1024x398.webp" alt="Screenshot of the user editing page in musdb." class="wp-image-4611" srcset="https://blog.museum-digital.org/wp-content/uploads/2026/01/20260112_musdb-user-options-1024x398.webp 1024w, https://blog.museum-digital.org/wp-content/uploads/2026/01/20260112_musdb-user-options-300x116.webp 300w, https://blog.museum-digital.org/wp-content/uploads/2026/01/20260112_musdb-user-options-1536x596.webp 1536w, https://blog.museum-digital.org/wp-content/uploads/2026/01/20260112_musdb-user-options-2048x795.webp 2048w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">Two new options allow disabling user accounts and setting expiry dates for user accounts.</figcaption></figure>



<h4 class="wp-block-heading">List of Terms of Use</h4>



<p>A new tab on a user&#8217;s (own) account settings page provides the option to list all usage agreements / terms of use a user has agreed to in the context of their use of museum-digital / musdb and when they agreed to them.</p>



<figure class="wp-block-image size-large"><img decoding="async" width="1024" height="576" src="https://blog.museum-digital.org/wp-content/uploads/2026/01/20260112_musdb-user-agreement-list-1024x576.webp" alt="Screenshot of the user editing page." class="wp-image-4612" srcset="https://blog.museum-digital.org/wp-content/uploads/2026/01/20260112_musdb-user-agreement-list-1024x576.webp 1024w, https://blog.museum-digital.org/wp-content/uploads/2026/01/20260112_musdb-user-agreement-list-300x169.webp 300w, https://blog.museum-digital.org/wp-content/uploads/2026/01/20260112_musdb-user-agreement-list-1536x864.webp 1536w, https://blog.museum-digital.org/wp-content/uploads/2026/01/20260112_musdb-user-agreement-list.webp 1949w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">A new tab on the user page lists all user agreements for musdb that the user has agreed to and when they did so.
<br></figcaption></figure>



<h3 class="wp-block-heading">Imports</h3>



<h4 class="wp-block-heading">Limiting Report Mail Size</h4>



<p>When a user runs imports themselves using the <a href="https://de.handbook.museum-digital.info/import/importe-selbst-durchfuehren.html">WebDAV upload</a>, the end of the import process &#8211; no matter if it is successful or fails &#8211; is marked by the sending of a report via mail. This report usually contains a list of noteworthy operations that happened during the import, e.g. which objects of which inventory number were imported to which object in musdb, identified by its ID. As imports grow, this list of operation grows. To not encounter issues sending the report, it is henceforth limited to a maximum of 2 MB or 10000 lines.</p>



<h4 class="wp-block-heading">Dry-run Mode</h4>



<p>Sometimes it is useful to try running an import to see if it will actually work but not actually process any data. This option has been available in the importer command line interface for a while, among others powering <a href="https://quality.museum-digital.org/">museum-digital:qa</a>. It is now available in the import configuration for self-run imports as well using the setting <code>dry-run</code>. Enabling the setting accordingly stops the importer from actually writing the data into the database and changes the behavior if values that need to be mapped to values in controlled lists at museum-digital are encountered. Usually an import stops the moment such data is to be imported and not yet mapped. During a dry run, the error is collected and the import proceeds. All unmapped entries are listed together at the end of the import, allowing for a simpler mapping (possibly aided by <a href="https://concordance.museum-digital.org/">concordance.museum-digital.org</a>).</p>



<h3 class="wp-block-heading">Dashboard</h3>



<p>The first page of the dashboard, which for almost all users also means the start page of musdb right after the login process, was significantly reworked during the last month. The almost entirely unused notetaking features and discourse integration were removed in favor of a feed of recent blog posts. See also the section <a href="https://blog.museum-digital.org/2025/12/29/trimming/">&#8220;Communications&#8221;</a> in the respective blog post.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="576" src="https://blog.museum-digital.org/wp-content/uploads/2025/12/20251229_screenshot-musdb-1024x576.webp" alt="Screenshot of the dashboard in musdb, as of 2025-12-29." class="wp-image-4594" srcset="https://blog.museum-digital.org/wp-content/uploads/2025/12/20251229_screenshot-musdb-1024x576.webp 1024w, https://blog.museum-digital.org/wp-content/uploads/2025/12/20251229_screenshot-musdb-300x169.webp 300w, https://blog.museum-digital.org/wp-content/uploads/2025/12/20251229_screenshot-musdb-1536x864.webp 1536w, https://blog.museum-digital.org/wp-content/uploads/2025/12/20251229_screenshot-musdb.webp 1920w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">The dashboard in musdb now features a feed of recent news relevant to the development of museum-digital and whatever is going on regionally. The posts are sorted chronologically.</figcaption></figure>



<h3 class="wp-block-heading">Annotations for the Vocabulary Editing Team</h3>



<p>Each event, displayed as a tile on object editing pages, featured speech bubble icons behind each time / actor / place to provide additional comments and hints for the central vocabulary editing team. This positioning of the annotation feature led to confusion over the years, with some users using the feature to comment on the relationship between the entity and the object (for which the event notes should be used). We hence repositioned the links and moved them to the respective entity&#8217;s page (e.g. a place page for giving hints and comments on a place entry). The hinting / commenting feature for times has been altogether removed, as providing comments to clarify the meaning of e.g. a year never made much sense.</p>



<h3 class="wp-block-heading">Smaller Updates and Bugfixes</h3>



<ul class="wp-block-list">
<li>Fixed a bug in the HTML generated for listing other objects linked to an object. Links to the other object were broken and are not anymore.</li>



<li>Image editing pages now embed the image directly instead of using the IIIF API. This reduces resource usage and increases stability at no cost.</li>



<li>Removed option to manually trigger the rewriting of EXIF and IPTC metadata of object images. Rewriting takes place in the background whenever an image or a linked object is updated, making user-triggered updates obsolete.</li>



<li>Re-introduce option to repeat linking to the last used linked object</li>



<li>Updated <a href="https://swagger.io/">Swagger UI</a> to version 5.30.3</li>
</ul>



<h2 class="wp-block-heading">Frontend</h2>



<p>As stated above and lengthily described in the previous blog posts (<a href="https://blog.museum-digital.org/2025/12/09/updates-ai-scrapers-and-resilience/">here</a>, <a href="https://blog.museum-digital.org/2025/12/22/cleaning-out-our-closet/">here</a>, and <a href="https://blog.museum-digital.org/2025/12/29/trimming/">here</a>) we struggled with stability over the last month. This means that most changes in the frontend are aimed at improving stability.</p>



<h3 class="wp-block-heading">Reworked Default Image Page</h3>



<p>Thoroughly described in <a href="https://blog.museum-digital.org/2025/12/09/updates-ai-scrapers-and-resilience/">Updates, AI scrapers, and Resilience</a>, we replaced the default view for single object image pages. While the default view was previously built around the IIIF viewer Mirador, the new default view uses OpenLayers and the unmediated image file for capabilities such as zooming. The new view also brings with it some new features, such as an option to reference specific sections of an image.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="672" src="https://blog.museum-digital.org/wp-content/uploads/2026/01/20260112_frontend-image-page-1024x672.webp" alt="" class="wp-image-4615" srcset="https://blog.museum-digital.org/wp-content/uploads/2026/01/20260112_frontend-image-page-1024x672.webp 1024w, https://blog.museum-digital.org/wp-content/uploads/2026/01/20260112_frontend-image-page-300x197.webp 300w, https://blog.museum-digital.org/wp-content/uploads/2026/01/20260112_frontend-image-page-1536x1007.webp 1536w, https://blog.museum-digital.org/wp-content/uploads/2026/01/20260112_frontend-image-page-2048x1343.webp 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">The reworked default image page.</figcaption></figure>



<h3 class="wp-block-heading">Serving Resource-Intensive Pages / Functionalities Only When Resources Are Available</h3>



<p>PDF generation, the IIIF Image API, and the suggestions for alternative search queries on failed search pages are now limited to reduce their impact on the overall system stability. This follows two strategies:</p>



<ul class="wp-block-list">
<li>Suggestions on failed search pages and PDF generation will only appear if the overall load on the system is low. The threshold for when or when they are not provided is influenced by the user&#8217;s browser language: If a user uses a browser set to the primary language of a given instance of museum-digital (e.g. German in Hesse, Hungarian in Budapest), the threshold is much higher, meaning users will be able to access the pages at a medium server load. In the case of PDFs, high server load will forward users to the print dialogue for object pages instead of receiving a PDF generated on the server side.</li>



<li>PDF generation and the IIIF Image API are served with a different PHP configuration and set of processes than the rest of the frontend. This configuration significantly reduces available resources for these two functionalities.</li>



<li>The option to generate PDFs featuring all images of an object with between 10 and 40 images has been entirely removed. Given its constraints, the feature was hard to explain and rarely accessible anyway. The primary &#8220;users&#8221; were noticeably AI scrapers.</li>
</ul>



<h3 class="wp-block-heading">Image Search</h3>



<p>The image search feature was refactored and reduced to further separate it from the primary object search. The number of available search options has been reduced to be more easily explainable and reduce possibilities for very resource-intensive queries.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="602" src="https://blog.museum-digital.org/wp-content/uploads/2026/01/20260112_frontend-image-search-1024x602.webp" alt="" class="wp-image-4614" srcset="https://blog.museum-digital.org/wp-content/uploads/2026/01/20260112_frontend-image-search-1024x602.webp 1024w, https://blog.museum-digital.org/wp-content/uploads/2026/01/20260112_frontend-image-search-300x176.webp 300w, https://blog.museum-digital.org/wp-content/uploads/2026/01/20260112_frontend-image-search-1536x903.webp 1536w, https://blog.museum-digital.org/wp-content/uploads/2026/01/20260112_frontend-image-search-2048x1204.webp 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">The reworked image search settings overlay.</figcaption></figure>



<h3 class="wp-block-heading">Batch Export of Object Metadata / OAI</h3>



<p>Updated the LIDO API to almost entirely match the LIDO as generated during exports from musdb</p>



<h3 class="wp-block-heading">Smaller Updates and Bugfixes</h3>



<ul class="wp-block-list">
<li>Improved performance of object search by tags and places by filtering searched entities to those who are actually linked in the given instance of museum-digital.</li>



<li>Object groups with only one object are henceforth not displayed and linked on object pages anymore</li>



<li>Fixed link in footer: Clicking on &#8220;museum-digital&#8221; should lead to the home / start page of the given instance of musdb.</li>



<li>Updated <a href="https://swagger.io/">Swagger UI</a> to version 5.30.3</li>
</ul>



<h2 class="wp-block-heading">nodac</h2>



<ul class="wp-block-list">
<li>User-provided comments / hints have been removed for times (see above)</li>



<li>Tooltips for linked objects now display which institution an object belongs to
<ul class="wp-block-list">
<li>This is particularly important for vocabulary editors who do not have access to the museums&#8217; data. This way they get a limited preview with the required information for unpublished objects despite their otherwise lacking permissions.</li>
</ul>
</li>
</ul>



<div class="wp-block-cgb-cc-by message-body" style="background-color:white;color:black"><img loading="lazy" decoding="async" src="https://blog.museum-digital.org/wp-content/plugins/creative-commons/includes/images/by.png" alt="CC" width="88" height="31"/><p><span class="cc-cgb-name">This content</span> is licensed under a <a href="https://creativecommons.org/licenses/by/4.0/">Creative Commons Attribution 4.0 International license.</a> <span class="cc-cgb-text"></span></p></div>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.museum-digital.org/2026/01/12/state-of-development-december-2025/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-thumbnail><url>https://blog.museum-digital.org/wp-content/uploads/2026/01/20260112_News-Img-1.webp</url><width>600</width><height>467</height></post-thumbnail>	</item>
		<item>
		<title>State of Development, October 2024: Searching Objects Currently On Exhibition, Linking Location and Acquisition of Literature</title>
		<link>https://blog.museum-digital.org/2024/11/06/state-of-development-october-2024-searching-objects-currently-on-exhibition-linking-location-and-acquisition-of-literature/</link>
		
		<dc:creator><![CDATA[Joshua Ramon Enslin]]></dc:creator>
		<pubDate>Wed, 06 Nov 2024 12:58:01 +0000</pubDate>
				<category><![CDATA[Community]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Frontend]]></category>
		<category><![CDATA[Importer]]></category>
		<category><![CDATA[musdb]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[Change log]]></category>
		<category><![CDATA[Object images]]></category>
		<category><![CDATA[Object search (musdb)]]></category>
		<guid isPermaLink="false">https://blog.museum-digital.org/?p=4194</guid>

					<description><![CDATA[After the blog has been very quiet this year with regard to the technical development of museum-digital, we are now trying to publish the summaries of new developments &#8211; enriched with screenshots &#8211; that are prepared for the monthly “regional administrators” rounds in Germany anyway. These are in the form of listings, and this is <a href="https://blog.museum-digital.org/2024/11/06/state-of-development-october-2024-searching-objects-currently-on-exhibition-linking-location-and-acquisition-of-literature/" class="more-link">...</a>]]></description>
										<content:encoded><![CDATA[
<p>After the blog has been very quiet this year with regard to the technical development of museum-digital, we are now trying to publish the summaries of new developments &#8211; enriched with screenshots &#8211; that are prepared for the monthly “regional administrators” rounds in Germany anyway. </p>



<p>These are in the form of listings, and this is how it should be here too.</p>



<h2 class="wp-block-heading"><a href="https://de.about.museum-digital.org/software/frontend/">Frontend</a></h2>



<h3 class="wp-block-heading">Features &amp; Improvements</h3>



<ul class="wp-block-list">
<li>Some improvements in background scripts, especially better handling of timeouts when calculating “Similar objects” in very large instances</li>



<li>Contributors, linked locations and times for an object group are now listed alphabetically by name</li>



<li>Table headers for event components (who, when, where) are now only displayed in the A4 PDF if there is also content for the row</li>



<li>New search option for object searches: “Is currently on display”</li>



<li>Links to the Themator now use the new URL scheme of the Themator<br>(<a href="https://themator.museum-digital.de/t/690">https://themator.museum-digital.de/t/690</a> instead of <a href="https://themator.museum-digital.de/ausgabe/showthema.php?m_tid=690&amp;tid=690">https://themator.museum-digital.de/ausgabe/showthema.php?m_tid=690&amp;tid=690</a>)</li>
</ul>



<figure class="wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-1 is-layout-flex wp-block-gallery-is-layout-flex">
<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="826" height="459" data-id="4185" src="https://blog.museum-digital.org/wp-content/uploads/2024/11/frontend_Suche_verfeinern.png.avif" alt="Screenshot aus dem Frontend von museum-digital." class="wp-image-4185" srcset="https://blog.museum-digital.org/wp-content/uploads/2024/11/frontend_Suche_verfeinern.png.avif 826w, https://blog.museum-digital.org/wp-content/uploads/2024/11/frontend_Suche_verfeinern.png-300x167.avif 300w" sizes="auto, (max-width: 826px) 100vw, 826px" /><figcaption class="wp-element-caption">The new filter option “Currently on display” in the overlay for the advanced search for objects in the frontend of museum -digital.</figcaption></figure>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="548" height="583" data-id="4184" src="https://blog.museum-digital.org/wp-content/uploads/2024/11/frontend_MItwirkende_sortiert.png.avif" alt="Screenshot aus dem Frontend von museum-digital." class="wp-image-4184" srcset="https://blog.museum-digital.org/wp-content/uploads/2024/11/frontend_MItwirkende_sortiert.png.avif 548w, https://blog.museum-digital.org/wp-content/uploads/2024/11/frontend_MItwirkende_sortiert.png-282x300.avif 282w" sizes="auto, (max-width: 548px) 100vw, 548px" /><figcaption class="wp-element-caption">The contributors to an object group are now sorted alphabetically by sorted by name .</figcaption></figure>
</figure>



<h3 class="wp-block-heading">Bugfixes</h3>



<ul class="wp-block-list">
<li>Error when searching for controlled list terms that contained multiple spaces via the “Refine search” overlay (search for license “Public Domain Mark”)</li>



<li>Exactness setting in the “refine search” overlay was not transferred to the actual search query</li>



<li>Simple embedding of an object (analogous to YouTube videos, for example; accessible via the “Cite” menu of an object page) had various errors / now works again</li>
</ul>



<h2 class="wp-block-heading"><a href="https://de.about.museum-digital.org/software/musdb/">musdb</a></h2>



<h3 class="wp-block-heading">Features &amp; Improvements</h3>



<ul class="wp-block-list">
<li>In the API documentation of musdb there is now a note that the frontend also has an API
<ul class="wp-block-list">
<li>Frontend API
<ul class="wp-block-list">
<li>You do not need to authenticate yourself to use the frontend API</li>



<li>The frontend API tends to be faster and easier to use</li>



<li>Is read-only</li>
</ul>
</li>



<li>musdb API
<ul class="wp-block-list">
<li>Can do more: Can also see non-public stocks and fields / data types</li>



<li>Is much more granular (more queries for the same data, but you likely get exactly the data you are looking for instead of e.g. all data known about a given object)</li>



<li>Can be used for writing data</li>
</ul>
</li>
</ul>
</li>



<li>Suggestion lists when searching for vocabulary terms in the side column of the object search page have been revised
<ul class="wp-block-list">
<li>Tooltips appear when hovering over</li>



<li>Implementation in Vanilla JS, removing jQuery</li>



<li>(this means significantly better performance of the search results list in list format, because jQuery no longer needs to be loaded)</li>
</ul>
</li>
</ul>



<ul class="wp-block-list">
<li></li>
</ul>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="416" height="1024" src="https://blog.museum-digital.org/wp-content/uploads/2024/11/musdb_Tooltip_in_Auswahlliste.png-416x1024.avif" alt="Screenshot aus musdb." class="wp-image-4188" srcset="https://blog.museum-digital.org/wp-content/uploads/2024/11/musdb_Tooltip_in_Auswahlliste.png-416x1024.avif 416w, https://blog.museum-digital.org/wp-content/uploads/2024/11/musdb_Tooltip_in_Auswahlliste.png-122x300.avif 122w, https://blog.museum-digital.org/wp-content/uploads/2024/11/musdb_Tooltip_in_Auswahlliste.png.avif 714w" sizes="auto, (max-width: 416px) 100vw, 416px" /><figcaption class="wp-element-caption">The suggestion lists for places, times, persons and keywords in the quick search function of the object search mask have been re-implemented. The main visible benefit is that explanations now appear directly when hovering over the terms in the list.</figcaption></figure>



<ul class="wp-block-list">
<li>User page / Login
<ul class="wp-block-list">
<li>Log of logins now also with IP and user agents</li>



<li>Login via login persisted in the browser (“Remember me”) is logged and displayed</li>



<li>All browsers permanently logged in via cookie are forced to log in again after a password change</li>



<li>New option to invalidate all remembered logins on other devices (browser must be logged in again)</li>
</ul>
</li>
</ul>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="694" src="https://blog.museum-digital.org/wp-content/uploads/2024/11/musdb_Login_log.png-1024x694.avif" alt="Screenshot aus musdb." class="wp-image-4186" srcset="https://blog.museum-digital.org/wp-content/uploads/2024/11/musdb_Login_log.png-1024x694.avif 1024w, https://blog.museum-digital.org/wp-content/uploads/2024/11/musdb_Login_log.png-300x203.avif 300w, https://blog.museum-digital.org/wp-content/uploads/2024/11/musdb_Login_log.png-1536x1041.avif 1536w, https://blog.museum-digital.org/wp-content/uploads/2024/11/musdb_Login_log.png.avif 1762w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">The “Login log” in the account settings can be used to track when and in what context one&#8217;s own user account was accessed in musdb. This allows for the identification of account takeovers by third parties. Newly logged and/or displayed are: IP address used to log in, the user agent (identification of the browser) and whether the browser was automatically logged in via a permanent login cookie (“Remember me”).</figcaption></figure>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="942" height="678" src="https://blog.museum-digital.org/wp-content/uploads/2024/11/musdb_User_Erinnerte_Logins_loeschen.png.avif" alt="Screenshot aus musdb." class="wp-image-4189" srcset="https://blog.museum-digital.org/wp-content/uploads/2024/11/musdb_User_Erinnerte_Logins_loeschen.png.avif 942w, https://blog.museum-digital.org/wp-content/uploads/2024/11/musdb_User_Erinnerte_Logins_loeschen.png-300x216.avif 300w" sizes="auto, (max-width: 942px) 100vw, 942px" /><figcaption class="wp-element-caption">A new button in the toolbar of the account settings in musdb allows you to log out all permanently logged in browsers / devices from your own account.</figcaption></figure>



<ul class="wp-block-list">
<li>Object
<ul class="wp-block-list">
<li>More restrictions for the publication of object data records.</li>



<li>An object can no longer be published if:
<ul class="wp-block-list">
<li>&#8230; the object name is the same as the object description</li>



<li>&#8230; the description contains the character string “lorem ipsum”</li>
</ul>
</li>



<li>When object entries are unpublished / hidden, the images linked to the image are renamed (thus invalidating links to the images). When publishing the object again, this is reversed so that existing links work again.</li>



<li>Spaces in selection lists are now listed alphabetically as the actual location when linking</li>
</ul>
</li>



<li>Literature
<ul class="wp-block-list">
<li>Acquisitions can now be linked to literature
<ul class="wp-block-list">
<li>Previous owners etc. can thus be linked to a literature entry</li>
</ul>
</li>



<li>Spaces (actual location) can be linked to literature</li>
</ul>
</li>
</ul>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="504" src="https://blog.museum-digital.org/wp-content/uploads/2024/11/musdb_Reiter_Verwaltung.png-1024x504.avif" alt="Screenshot aus musdb." class="wp-image-4187" srcset="https://blog.museum-digital.org/wp-content/uploads/2024/11/musdb_Reiter_Verwaltung.png-1024x504.avif 1024w, https://blog.museum-digital.org/wp-content/uploads/2024/11/musdb_Reiter_Verwaltung.png-300x148.avif 300w, https://blog.museum-digital.org/wp-content/uploads/2024/11/musdb_Reiter_Verwaltung.png-1536x756.avif 1536w, https://blog.museum-digital.org/wp-content/uploads/2024/11/musdb_Reiter_Verwaltung.png.avif 1800w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">Via the new tab “Administration” tab on tab on the literature editing page, the location and access context of the literature entry can be linked. This can be useful if the literature module is also used to manage the museum library. is also used to manage the museum library .</figcaption></figure>



<h3 class="wp-block-heading">Bugfixes</h3>



<ul class="wp-block-list">
<li>Overlay for setting searches for objects: Multi-word search terms were converted into multiple searches instead of being searched as a string of words (“red helmet” &gt; “red” AND “helmet” instead of “red helmet”)</li>



<li>Error when searching for controlled list terms that contained multiple spaces via the “Refine search” overlay (search for license “Public Domain Mark”)</li>
</ul>



<h2 class="wp-block-heading"><a href="https://blog.museum-digital.org/de/category/technik-design/importer-de/">Importer</a></h2>



<ul class="wp-block-list">
<li>Link between literature and spaces (actual location) as well as acquisitions is implemented in the &#8220;core&#8221; of the import tool</li>



<li>ImageByInvno parser (assignment of images to objects via inventory numbers contained in the file name) can now be used to import PDF files</li>
</ul>



<h2 class="wp-block-heading"><a href="https://files.museum-digital.org/">files.museum-digital.org</a></h2>



<ul class="wp-block-list">
<li>Added a small script to enhance PDF metadata based on an XML sidecar file. See e.g.: <a href="https://files.museum-digital.org/de/Praesentationen/2024-10-18_md-deutschland-eV-stellt-sich-vor_Usertreffen_MA.xml">https://files.museum-digital.org/de/Praesentationen/2024-10-18_md-deutschland-eV-stellt-sich-vor_Usertreffen_MA.xml</a></li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p>Main post image generated using illustriousXL_smoothftSPO</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<div class="wp-block-cgb-cc-by message-body" style="background-color:white;color:black"><img loading="lazy" decoding="async" src="https://blog.museum-digital.org/wp-content/plugins/creative-commons/includes/images/by.png" alt="CC" width="88" height="31"/><p><span class="cc-cgb-name">This content</span> is licensed under a <a href="https://creativecommons.org/licenses/by/4.0/">Creative Commons Attribution 4.0 International license.</a> <span class="cc-cgb-text"></span></p></div>
]]></content:encoded>
					
		
		
		<post-thumbnail><url>https://blog.museum-digital.org/wp-content/uploads/2024/11/banner.png.avif</url><width>600</width><height>336</height></post-thumbnail>	</item>
		<item>
		<title>Summary of the monthly user meetup (March 2023)</title>
		<link>https://blog.museum-digital.org/2023/04/05/summary-of-the-monthly-user-meetup-march-2023/</link>
					<comments>https://blog.museum-digital.org/2023/04/05/summary-of-the-monthly-user-meetup-march-2023/#respond</comments>
		
		<dc:creator><![CDATA[Joshua Ramon Enslin]]></dc:creator>
		<pubDate>Tue, 04 Apr 2023 23:58:21 +0000</pubDate>
				<category><![CDATA[Community]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Frontend]]></category>
		<category><![CDATA[Importer]]></category>
		<category><![CDATA[musdb]]></category>
		<category><![CDATA[Project page www.museum-digital.org]]></category>
		<category><![CDATA[Themator]]></category>
		<category><![CDATA[New Features]]></category>
		<category><![CDATA[Object images]]></category>
		<category><![CDATA[Object search (musdb)]]></category>
		<category><![CDATA[Performance]]></category>
		<category><![CDATA[User interface]]></category>
		<guid isPermaLink="false">https://blog.museum-digital.org/?p=3718</guid>

					<description><![CDATA[Yesterday, we held our regular user meetup as scheduled. As promised, below you can find an overview of the new features and updates below some more general points. General YouTube channel There now is a museum-digital YouTube channel. For now, one can find some German-language screencasts on different features in musdb and nodac there. New <a href="https://blog.museum-digital.org/2023/04/05/summary-of-the-monthly-user-meetup-march-2023/" class="more-link">...</a>]]></description>
										<content:encoded><![CDATA[
<p>Yesterday, we held our regular user meetup as scheduled. As promised, below you can find an overview of the new features and updates below some more general points.</p>



<h2 class="wp-block-heading">General</h2>



<h3 class="wp-block-heading">YouTube channel</h3>



<p>There now is a <a href="http://youtube.com/@museum-digital/">museum-digital YouTube channel</a>. For now, one can find some German-language screencasts on different features in musdb and nodac there.</p>



<h3 class="wp-block-heading">New sections on project page (www.museum-digital.org)</h3>



<p>As already described in the previous post, the project page <a href="https://www.museum-digital.org/">www.museum-digital.org</a> now features a <a href="https://blog.museum-digital.org/2023/03/14/a-calendar-is-a-commitment/">calendar</a>. Since then, we have also added a <a href="https://en.about.museum-digital.org/about/people/">small page listing</a> people working on museum-digital &#8211; e.g. some of the coordinators and developers &#8211; as well as power users. The list will obviously always be more than incomplete, but if you want to be listed, just send a mail.</p>



<h2 class="wp-block-heading">Development</h2>



<h3 class="wp-block-heading" id="musdb">musdb</h3>



<h4 class="wp-block-heading" id="allow-batch-editing-of-photographers-on-image-list">Allow batch editing of photographers on image list</h4>



<p>Running batch updates on the ownership, license status and photographer of a set of objects can be done either via the institution-wide settings page or via a selection on the image list page. The batch updating functionality of the institution-wide settings page works by replacing the given entries in one of the fields for all objects of the museum &#8211; it is thus not suitable if one is to only update the photographer field for a list of objects from a single collection (rather than the whole museum).</p>



<p>Batch updating images&#8217; legal information from the image list (click on an image in the list and drag it to activate selection mode, then update by selection) was only possible in the case of image licenses and rights holders. With a small update, it is now possible to also batch-update the images&#8217; photographers field that way.</p>



<h4 class="wp-block-heading" id="the-api-can-now-update-object-event">The API can now update object event</h4>



<p>Thus far, the API could only be used for adding wholly new object events (who did what, when, and where, with the object) or deleting them. With the updates of this month, now possible to directly update events.</p>



<p>This is already actively used in customizing musdb using a <a href="https://en.wikipedia.org/wiki/Tampermonkey">Tampermonkey</a> script by some of the norm data editors. They can thus add a custom button to transfer incomplete actor or place information to the object&#8217;s description. This button, on the other hand, would not be useful for regular users at all.</p>



<h4 class="wp-block-heading" id="ui-improvements-for-the-object-search-interface">UI improvements for the object search interface and new sort option</h4>



<p>After a very fruitful discussion and feedback from Hungarian colleagues, we got around to some user interface improvements in the object overview and search interface. A lengthy discussion can be found in a dedicated <a href="https://blog.museum-digital.org/de/2023/03/21/detailverbesserungen-bei-der-objektsuche-in-musdb/">blog post in German</a>. To sum up: there are now headlines for each subsection of the sidebar and tooltips explain the different buttons and search and sort options upon hovering one&#8217;s mouse over them. Additionally, a new sort option was added to sort objects by the number characters within the inventory numbers of the searched objects.</p>



<h4 class="wp-block-heading" id="two-bugfixes-navigating-to-the-previous-or-next-object-in-a-selection">Two bugfixes: Navigating to the previous or next object in a selection</h4>



<p>It is a very simple but similarly useful feature: One runs an object search and thus creates a result list of objects. After viewing or editing one of the objects, one can then proceed to the next one in the results list by clicking at the arrows at the top of the sidebar.</p>



<p>Unfortunately, musdb had two bugs preventing this navigation for some of the available sort options. On the one hand, newer sort options required manually adding the search fields to a list specific to the previous/next navigation thus far &#8211; and had not been covered yet. Navigating to the next object after sorting by e.g. the length of the searched objects was thus impossible so far. The specific list of sort fields has now been removed in the previous/next navigation. Instead, the main list of sort options from the main object search class is directly used &#8211; in effect preventing such issues of &#8220;forgotten&#8221; values from ever appearing again.</p>



<p>A second issue concerned string-based sort options. For an improved performance, the previous / next navigation works by querying the underlying search index for the next object where e.g. the object ID is lower than the current one (`WHERE id &gt; 20000`). The same search logic is straight-out not possible with string-based sort options, as search queries for values greater than or smaller than a given one cannot be executed with string-based fields.</p>



<p>Fortunately, the issue came up just after we had implemented an option to search and <a href="https://blog.museum-digital.org/de/2023/03/21/detailverbesserungen-bei-der-objektsuche-in-musdb/">sort objects by the numeric components of their inventory numbers</a>. Thus, the previous / next navigation can fall back to that sort option if a user wants to navigate to the next object after sorting by inventory number. As stated back when we introduced the new search and sort option: It should work for most museums. Unfortunately, there is no such option to mitigate the issues of string-based sorting when sorting objects by their names. The best we could do in this case is displaying a clear error message, stating that the previous / next navigation is <em>not</em> available when sorting by the object&#8217;s names.</p>



<h4 class="wp-block-heading" id="home-location-can-now-be-selected-as-a-required-field-when-adding-new-objects">&#8220;Home location&#8221; can now be selected as a required field when adding new objects</h4>



<p>On the institution-wide settings page, museum directors (or those holding the same user role within musdb) can determine which fields are required when adding new objects. The list of selectable fields automatically covers all free text fields linked to the object. Repeat fields and references to other sections of musdb need to be manually implemented however. As the home or permanent location of an object is a most logical and common field to be required for all object, it was only consequential to prioritize making it available as a required field. We have done so now.</p>



<h4 class="wp-block-heading" id="major-performance-improvements-in-list-results-page">Major performance improvements in &#8220;list results&#8221; page</h4>



<p>The &#8220;list results&#8221; page provides for a table view of object search results, allows the export of search results to Excel, and is &#8211; under the hood &#8211; also used for generating custom reports. We managed to achieve a considerable improvement in the page&#8217;s performance by bulk loading data and simplifying the code of the HTML page. Both adjustments should not really be noticable when one tries to list or export only some objects. Exporting some thousand objects should work considerably faster now however.</p>



<h3 class="wp-block-heading" id="frontend">frontend</h3>



<h4 class="wp-block-heading" id="pdf-metadata-for-main-object-pdf-export">PDF metadata for main object PDF export</h4>



<p>XMP metadata are now written into exported PDF files. Thus, users can more easily identify authorship, titles etc., especially when using specialized software like e-book readers.</p>



<h4 class="wp-block-heading" id="linking-from-collection-descriptions">Linking from collection descriptions</h4>



<p>Collection descriptions are now being parsed for the existence of URLs. If one, starting with https:// (http:// is ignored) exists, the URL is automatically transformed into a clickable link.</p>



<h3 class="wp-block-heading" id="nodac">nodac</h3>



<p>We added some translation variables on the start page.</p>



<h3 class="wp-block-heading" id="themator">themator</h3>



<p>The &#8220;themator&#8221; has received a small user interface improvement for mobile devices. The topic-specific navigation or table of contents is now moved below rather than above the main content of a page in the regular &#8220;topic&#8221; viewing mode on mobile devices.</p>



<h3 class="wp-block-heading" id="importer">Importer</h3>



<h4 class="wp-block-heading" id="importing-gifs">Importing GIFs</h4>



<p>To simplify the handling of images, museum-digital internally only uses JPG image files (webp versions are generated for a faster loading, but are optional). While they lack some support for features like transparency, JPGs provide for a much better compression with images of three-dimensional things and subjects not featuring solid colors. Newer formats like AVIF and Webp unfortunately still lack the support among locally installed image viewers for us to fully switch over to them.</p>



<p>The importer handles input PNGs by converting them to JPG files. Starting this month, the same can be done with input GIF files.</p>



<h4 class="wp-block-heading" id="improved-handling-of-blacklisted-actors-places-and-times">Improved handling of blacklisted actors, places and times</h4>



<p>One of the key issues with imports is what happens after imports. Specifically, museum-digital uses controlled vocabularies for actors, places, times and tags that can be linked to an object directly or via events. When people enter new such entries using musdb, there are a number of safeguards and nudges to ensure productive inputs. Adding a new actor, for example, requires one to enter at least 10 characters of a description for the actor. Input fields for the date of birth and death are also provided. If possible, one can enter a Wikipedia or Wikidata URL (or ID) and directly fetch the relevant information from there.</p>



<p>During imports, there is no space for asking questions to the importing institution. Incomplete or false actor, place, time and tag names (for example, if two actors are linked as one; &#8220;John Doe and Jane Doe&#8221; is not one single actor!) are given, these are necessarily imported into our controlled vocabularies by default. Depending on the import, this puts a significant burden on our volunteer group of vocabulary editors.</p>



<p>To eventually get to a solution, we have added options for automatically rewriting terms (e.g. &#8220;Berlin, Germany&#8221; will be autocorrected to &#8220;Berlin&#8221;) and blacklisting them completely (&#8220;Good morning &#8230;&#8221; is no actor&#8221;). Thus far, blacklisted terms were simply ignored by the importer.</p>



<p>&#8220;Unknown painter&#8221; is not an actor, but the information that it is a painter may still be useful. To allow us to blacklist more and keep the controlled vocabularies &#8220;clean&#8221; without losing such data, the importer now imports blacklisted terms in event components (&#8220;who painted it?&#8221;) into the event annotation. If the only known information on the whole event is blacklisted, the event cannot be created &#8211; an event always requires at least one linked actor, place or time. The event annotation of &#8220;empty events&#8221; is hence moved to the object description automatically.</p>



<div class="wp-block-cgb-cc-by message-body" style="background-color:white;color:black"><img loading="lazy" decoding="async" src="https://blog.museum-digital.org/wp-content/plugins/creative-commons/includes/images/by.png" alt="CC" width="88" height="31"/><p><span class="cc-cgb-name">This content</span> is licensed under a <a href="https://creativecommons.org/licenses/by/4.0/">Creative Commons Attribution 4.0 International license.</a> <span class="cc-cgb-text"></span></p></div>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.museum-digital.org/2023/04/05/summary-of-the-monthly-user-meetup-march-2023/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-thumbnail><url>https://blog.museum-digital.org/wp-content/uploads/2023/04/md-YT-Banner.jpg.webp</url><width>600</width><height>338</height></post-thumbnail>	</item>
		<item>
		<title>&#8220;Not More Than 20&#8221;: Maximum Number of Simultaneous Uploads</title>
		<link>https://blog.museum-digital.org/2020/02/03/not-more-than-20-maximum-number-of-simultaneous-uploads/</link>
		
		<dc:creator><![CDATA[Joshua Ramon Enslin]]></dc:creator>
		<pubDate>Mon, 03 Feb 2020 16:50:49 +0000</pubDate>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[musdb]]></category>
		<category><![CDATA[Minor Improvements]]></category>
		<category><![CDATA[Object images]]></category>
		<guid isPermaLink="false">https://blog.museum-digital.org/?p=855</guid>

					<description><![CDATA[A lighter is an object. With one, or maybe two perspectives &#8211; images. A book is an object. With potentially hundreds of pages &#8211; images. To simplify the management of objects with many images musdb offers the option to upload multiple images at a time. This option is however limited by global server settings like <a href="https://blog.museum-digital.org/2020/02/03/not-more-than-20-maximum-number-of-simultaneous-uploads/" class="more-link">...</a>]]></description>
										<content:encoded><![CDATA[
<p>A lighter is an object. With one, or maybe two perspectives &#8211; images. A book is an object. With potentially hundreds of pages &#8211; images.</p>



<p>To simplify the management of objects with many images musdb offers the option to upload multiple images at a time. This option is however limited by global server settings like the maximum size of uploads and the maximum number of files that can be uploaded in one go.</p>



<span id="more-855"></span>



<p>To understand the problem, it&#8217;s important to know that most tools of museum-digital are written in PHP. Unfortunately, PHP has a tendency to gloss over potential errors and continue without enforcing that the problem to be solved either by the programmer solving a bug or by the user not doing a certain action.</p>



<p>The maximum number of files that can be uploaded simultaneously is a flagrant case of this: Rather than inform the user of their overstepping of the set upload limitations, PHP accepts files until the number of allowed files per upload is reached. Any files after are simply ignored.</p>



<p>Say a user attempts to upload 30 pages of a book in one go. The first 20 will be uploaded correctly, while the last 10 will be skipped. In the worst case, the user doesn&#8217;t even notice the missing data. In a better case, they are left confused.</p>



<p>We have thus added a warning that stops the user before submitting the upload form when trying to upload more files than allowed.</p>



<div class="wp-block-cgb-cc-by message-body" style="background-color:white;color:black"><img loading="lazy" decoding="async" src="https://blog.museum-digital.org/wp-content/plugins/creative-commons/includes/images/by.png" alt="CC" width="88" height="31"/><p><span class="cc-cgb-name">This content</span> is licensed under a <a href="https://creativecommons.org/licenses/by/4.0/">Creative Commons Attribution 4.0 International license.</a> <span class="cc-cgb-text"></span></p></div>
]]></content:encoded>
					
		
		
		<post-thumbnail><url>https://blog.museum-digital.org/wp-content/uploads/2020/02/2020-blog-File-Upload-Numer-Limits-EN.jpg</url><width>600</width><height>217</height></post-thumbnail>	</item>
		<item>
		<title>Display of Single Images Updated</title>
		<link>https://blog.museum-digital.org/2009/07/01/display-of-single-images-updated/</link>
		
		<dc:creator><![CDATA[Stefan Rohde-Enslin]]></dc:creator>
		<pubDate>Wed, 01 Jul 2009 19:13:00 +0000</pubDate>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Frontend]]></category>
		<category><![CDATA[Object images]]></category>
		<guid isPermaLink="false">https://blog.museum-digital.org/?p=3634</guid>

					<description><![CDATA[The page for displaying a single image of an object now features a link back to the object&#8217;s description. Thus, a way from the image to the object is opened also for users who reached the image from elsewhere. If, for example, a user came to the image page from Google, they can use the <a href="https://blog.museum-digital.org/2009/07/01/display-of-single-images-updated/" class="more-link">...</a>]]></description>
										<content:encoded><![CDATA[
<p>The page for displaying a single image of an object now features a link back to the object&#8217;s description. Thus, a way from the image to the object is opened also for users who reached the image from elsewhere. If, for example, a user came to the image page from Google, they can use the new link to access the relevant object information. Previously, this would not have been possible.</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
