<?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>Minor Improvements | museum-digital: blog</title>
	<atom:link href="https://blog.museum-digital.org/tag/minor-improvements/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>Sat, 27 Dec 2025 14:38:56 +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>Minor Improvements | 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>Cleaning Out Our Closet</title>
		<link>https://blog.museum-digital.org/2025/12/22/cleaning-out-our-closet/</link>
					<comments>https://blog.museum-digital.org/2025/12/22/cleaning-out-our-closet/#respond</comments>
		
		<dc:creator><![CDATA[Joshua Ramon Enslin]]></dc:creator>
		<pubDate>Mon, 22 Dec 2025 17:20:40 +0000</pubDate>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Frontend]]></category>
		<category><![CDATA[Infrastructure]]></category>
		<category><![CDATA[Minor Improvements]]></category>
		<category><![CDATA[System administration]]></category>
		<guid isPermaLink="false">https://blog.museum-digital.org/?p=4586</guid>

					<description><![CDATA[Since the last post (i.e. the update to PHP 8.5 amid an onslaught of AI scrapers) and the later introduction of much stricter per-IP rate limiting, the stability issues around md are better &#8211; but they are not yet completely resolved. As such, we have expanded our efforts in rewriting and reformulating key resource-intensive functionalities <a href="https://blog.museum-digital.org/2025/12/22/cleaning-out-our-closet/" class="more-link">...</a>]]></description>
										<content:encoded><![CDATA[
<p>Since the last post (i.e. the update to PHP 8.5 amid an onslaught of AI scrapers) and the later introduction of much stricter per-IP rate limiting, the stability issues around md are better &#8211; but they are not yet completely resolved.</p>



<p>As such, we have expanded our efforts in rewriting and reformulating key resource-intensive functionalities for increased stability. Different from before, we have also started to fully remove or disable functionalities that are simply not tenable anymore under the current conditions.</p>



<h2 class="wp-block-heading">PDF Generation</h2>



<p>Thus far, there were two basic types of PDFs that were generated (on the server side) in museum-digital&#8217;s portals: PDF representations of object pages (&#8220;data sheet&#8221;) on the one hand and PDFs encapsulating all images of an object in one document for easy printing.</p>



<p>The latter was &#8211; simply by nature of its envisioned task &#8211; extremely resource-intensive. All image files had to be loaded from disk, embedded into the PDF, compressed and served. The option had thus been available for fewer and fewer objects. Where it was originally available in case of any object with more than three images, it was later limited to objects of less than 40 images. As such, its availability was increasingly hard to communicate clearly, while its usefulness was relatively reduced with the introduction of a new download option for all images of an object. Its natural resource-intensiveness remained a problem however, and as scrapers will click any link they can find, this type of PDF generation continued to be used quite regularly (every few seconds before the recent surge in bot activity). As of last week, the functionality has been entirely removed.</p>



<p>The &#8220;data sheet&#8221; PDF generation has been further limited as well. As stated in the previous blog post, its usefulness is significantly reduced with the introduction of a print stylesheet (you will get better results simply pressing CTRL + P on an object page and printing the page to PDF). Nevertheless, it remained rather popular and has not been removed entirely. To reduce its impact on server stability, we however further limited its availability: If the server load is any higher than comfortable, the PDF will not be generated and an error message will appear. If the load is high (up from around 70% of <em>comfortable</em>) and the user&#8217;s browser language is not the default language of an instance of museum-digital, the same error message will appear.</p>



<h2 class="wp-block-heading">Failed Search Pages</h2>



<p>If a search query for objects fails, users are forwarded to a failed search page, on suggestions for alternative search queries are made. This is essentially the same as Google automatically suggesting corrections when search terms contain typos. Identifying the alternatives and offering previews for each is not free. As it is simply suggestions, the benefit or general accuracy of the suggestions fluctuates from case to case.</p>



<p>Now, looking at the logs, we had a large number of queries for non-existing entities &#8211; obviously scrapers who were trying out different IDs after analyzing the URL scheme. Each of those queries was executed and then forwarded to the failed search page, triggering the loading of suggestions and previews and thus further using resources on the server for little benefit (besides getting more links to scrape). We have now introduced a similar logic to the limitations on the data sheet PDF generation. Suggestions and previews are only generated when server load is comparatively low, with non-primary language users being slightly disadvantaged vis-a-vis primary-language users in an instance.</p>



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



<p>Timelines remain popular &#8211; and a problem. A very common type of query we would see in our logs would combine timelines with searches by start and end date. This was likely due to another possible loop of endless URL generation for scrapers &#8211; specify a timeline until it forwards to search pages for a given timespan, then open the timeline for that timespan. Exactly that behavior has now been made impossible. If a search by a timeline (&#8220;start after&#8221;, &#8220;end before&#8221;) has been set, timelines will not be offered in the sidebar anymore. Trying to generate them for such a search using URL manipulation or the API will return an error page.</p>



<h2 class="wp-block-heading">Search: Cleanup, Image Search &amp; Checking Entity Existence Early</h2>



<p>A more messy way of optimizations hit the core of the object search. In around 2021, we introduced a new search logic. Almost all pages relying on the core search logic &#8211; search overview pages, maps for objects, timelines, were adjusted to work with the new logic. The only exception from this was the image search. Still, as the new search logic re-used some of the old search logic&#8217;s functions, we kept both as separate classes, which grew over time. Simply loading the new search logic took about one ms (without OPCache enabled, measured through <a href="https://phpbench.readthedocs.io/en/latest/">PHPBench</a>). This sounds like little, but hints at a lack of modularization of the code and gains relevance with many unpredictable requests with servers automatically spinning up and down.</p>



<p>And indeed, in writing the new search logic, we did not modularize thoroughly HTML generation, query building and database querying. With last weeks updates, there are now separate classes for each of these and functionalities relevant only to the old search functions have been moved to class managing the image search logic. This reduces startup time for only the new / main search logic by about half (ca. 0.6 ms).</p>



<p>Second, we reduced the available search options for image searches. The remaining search parameters are either those actually relevant to the images or those linked to the controlled vocabularies. As a positive side effect, this also solves some issues in communication: Making it legible what the difference between searching images by their own license and by the license of (unrelated) metadata of objects the images are linked to is, is complicated.</p>



<p>Finally, as stated above, the logs revealed a lot of queries for objects linked to e.g. either entirely non-existent places or places that are not linked to any object in the instance of museum-digital altogether. When a place or tag is queried, we hence check whether there exists any public mention of the entity in the current instance of museum-digital during query building. If there is no link at all, it is clear early on that a more detailed (i.e. costly) query combining the search by that entity with other parameters will not return any results.</p>



<h2 class="wp-block-heading">The Current Situation</h2>



<p>All these improvements help, but a look at the current real-world numbers is warranted. On the one hand, the database server now often falls down to half or even less of the expected server load. This is a positive sign for system stability outside of peak times.</p>



<p>On the other hand, there are noticably spikes in the morning (around 10:20 in Germany) and in the afternoon (starting around 5 p.m.). The spike in the morning is likely related to the start of workdays and has led to the server falling over multiple times last week. This can likely be fixed only with a further tuning of the PHP-FPM settings. The spikes in the afternoon and early evening on the other hand remain hard to explain, but are altogether much less critical.</p>



<p>We&#8217;re on it.</p>



<div class="wp-block-cgb-cc-by message-body" style="background-color:white;color:black"><img 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/2025/12/22/cleaning-out-our-closet/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-thumbnail><url>https://blog.museum-digital.org/wp-content/uploads/2025/12/20251222-blog-post-cleaning.webp</url><width>600</width><height>411</height></post-thumbnail>	</item>
		<item>
		<title>State of Dev, June &#038; July 2025</title>
		<link>https://blog.museum-digital.org/2025/08/23/state-of-dev-june-july-2025/</link>
					<comments>https://blog.museum-digital.org/2025/08/23/state-of-dev-june-july-2025/#respond</comments>
		
		<dc:creator><![CDATA[Joshua Ramon Enslin]]></dc:creator>
		<pubDate>Sat, 23 Aug 2025 21:12:41 +0000</pubDate>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Frontend]]></category>
		<category><![CDATA[Importer]]></category>
		<category><![CDATA[musdb]]></category>
		<category><![CDATA[Artificial Intelligence]]></category>
		<category><![CDATA[Minor Improvements]]></category>
		<category><![CDATA[New Features]]></category>
		<category><![CDATA[Object search (musdb)]]></category>
		<guid isPermaLink="false">https://blog.museum-digital.org/?p=4519</guid>

					<description><![CDATA[June and especially July were at first glance once again rather slow months in terms of development at museum-digital. Generally, the pace and type of development seems to have changed this year. Rather than doing many small improvements all over the place, there is less but larger and more labor intensive changes and new features. <a href="https://blog.museum-digital.org/2025/08/23/state-of-dev-june-july-2025/" class="more-link">...</a>]]></description>
										<content:encoded><![CDATA[
<p>June and especially July were at first glance once again rather slow months in terms of development at museum-digital.</p>



<p>Generally, the pace and type of development seems to have changed this year. Rather than doing many small improvements all over the place, there is less but larger and more labor intensive changes and new features. See for example the <a href="https://blog.museum-digital.org/2025/01/13/version-control-batch-transfer-between-data-fields-of-object-records/">versioning</a> in musdb (January), the tool for <a href="https://blog.museum-digital.org/de/2025/03/08/das-importieren-automatisieren/">automating imports</a> based on what others call a &#8220;hot folder&#8221; and the sort option to <a href="https://blog.museum-digital.org/2025/03/06/sort-by-beauty/">sort objects by their images&#8217; aesthetics score</a> (both presented here in March), and the new tool for suggesting formulations for object descriptions using large language models (June).</p>



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



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



<ul class="wp-block-list">
<li>Translation of the software to <a href="https://blog.museum-digital.org/2025/07/13/hindi/">Hindi</a> and <a href="https://blog.museum-digital.org/2025/07/02/browse-museum-digital-in-telugu/">Telugu</a></li>



<li>Grouping of tags by their relation to a given object<br><em>If an object is linked to more than 10 tags, the tag list of object pages quickly starts looking unorganized and messy. In such cases, the tags will now be displayed grouped by their relationship to the object (thus far: general tag, material, technique, object type, display subject)</em></li>
</ul>



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



<h4 class="wp-block-heading">New Features</h4>



<ul class="wp-block-list">
<li>Export option for the specific LIDO as expected by the <a href="http://Koloniale Kontexte-Portal der Deutschen Digitalen Bibliothek">German Digital Library&#8217;s &#8220;colonial contexts&#8221; portal</a></li>
</ul>



<h4 class="wp-block-heading">Improvements &amp; Changes</h4>



<ul class="wp-block-list">
<li>The minimum length of fulltext search terms for object search parameters is now visibly enforced in the extended search user interface<br><em>To not overly burden the fulltext search server, any term in a full text search in musdb needs to be a minimum of two characters long. Thus far, shorter full text search parameters were simply ignored. This certainly was confusing at times. Since June, attempting to perform search queries with shorter search parameters is made impossible by a check in the extended search overlay.</em></li>



<li>Reception history of objects: Statements of the relevant position within a source can now be 40 characters long</li>



<li>Transcriptions
<ul class="wp-block-list">
<li>May now be up to 4000000 long</li>



<li>New fields: Notes on the transcription, status, aims</li>
</ul>
</li>
</ul>



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



<ul class="wp-block-list">
<li>Fixed a bug in the batch editing of specific visibility flags for data fields on the addendum tab</li>
</ul>



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



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



<ul class="wp-block-list">
<li>Performance improvements
<ul class="wp-block-list">
<li>Object search now runs without a connection to the full text search server if no full text search parameter is set</li>



<li>If multiple search parameters for an earliest / latest time have been set, they are parsed and combined before being forwarded to the database</li>
</ul>
</li>



<li>Improvements in the deletion of temporarily created PDF files (PDF export)</li>



<li>Navigation has been translated to <a href="https://blog.museum-digital.org/de/2025/06/23/tamil/">Tamil</a></li>
</ul>



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



<h4 class="wp-block-heading">New Features</h4>



<ul class="wp-block-list">
<li>Recipient of deaccessed objects can now be linked from within the address book</li>



<li><a href="https://blog.museum-digital.org/de/2025/06/19/ki-objektbeschreibungen/">New tool for AI-aided formulation o object descriptions (based on existing other metadata)</a></li>
</ul>



<h4 class="wp-block-heading">Improvements</h4>



<ul class="wp-block-list">
<li>Object search now runs without a connection to the full text search server if no full text search parameter is set</li>
</ul>



<h3 class="wp-block-heading"><a href="https://blog.museum-digital.org/category/development/importer-en-en/">Importer</a></h3>



<ul class="wp-block-list">
<li>The CSVXML parser has been extended to cover new event types and markings</li>



<li>Object groups automatically generated to group all objects of an import can now receive a description as set within the import configuration</li>
</ul>



<h3 class="wp-block-heading"><a href="https://en.about.museum-digital.org/software/nodac/">nodac</a></h3>



<p>The list of selectable languages for the navigation of nodac has now been restricted to those in which there is actually a complete translation</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.museum-digital.org/2025/08/23/state-of-dev-june-july-2025/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-thumbnail><url>https://blog.museum-digital.org/wp-content/uploads/2025/08/md-blog-palms.webp</url><width>600</width><height>411</height></post-thumbnail>	</item>
		<item>
		<title>Use Pixels, not em in media queries</title>
		<link>https://blog.museum-digital.org/2023/03/08/use-pixels-not-em-in-media-queries/</link>
		
		<dc:creator><![CDATA[Joshua Ramon Enslin]]></dc:creator>
		<pubDate>Wed, 08 Mar 2023 11:41:24 +0000</pubDate>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Minor Improvements]]></category>
		<category><![CDATA[Responsive Design]]></category>
		<category><![CDATA[User interface]]></category>
		<guid isPermaLink="false">https://blog.museum-digital.org/?p=3641</guid>

					<description><![CDATA[In CSS, one can use different units to determine sizes. The most relevant are: Being relative to the font size and nest-able, em values are a great fit for setting sizes of page elements and we thus use almost exclusively use em and rem values for borders, font size, etc. To make a website responsive, <a href="https://blog.museum-digital.org/2023/03/08/use-pixels-not-em-in-media-queries/" class="more-link">...</a>]]></description>
										<content:encoded><![CDATA[
<p>In CSS, one can use different units to determine sizes. The most relevant are:</p>



<ul class="wp-block-list">
<li>A pixel (px) is &#8211; in theory &#8211; fixed to the single dot of a screen. It thus depends on the resolution of the screen primarily, at least in grey theory.</li>



<li>A point (pt) is a single point on a printed sheet of paper. Its roots lie in the DPI setting of the print job.</li>



<li><code>em</code> are relative to the font size. If nested elements come with font sizes determined in em, the scaling is appropriate nested (a headline in a generally enlarged section will be further enlarged than a headline in a regular section).</li>



<li><code>rem</code> is relative to the primary font size of the document.</li>



<li><code>vh</code> and <code>vw</code> are relative to the total screen height and width respectively. 10vw are, e.g., 10 percent of the total width of the screen.  </li>



<li>Some others, like cm or mm exist, but are less used &#8211; especially when working outside of print contexts.</li>
</ul>



<p>Being relative to the font size and nest-able, <code>em</code> values are a great fit for setting sizes of page elements and we thus use almost exclusively use <code>em</code> and <code>rem</code> values for borders, font size, etc.</p>



<p>To make a website responsive, CSS offers a functionality called <em>media queries</em>, with which one can check for characteristics of the browser window. This, obviously, concerns primarily the size of the window, but can also extend to issues such as the activation of a dark mode (if you see this page with white text on a black background, that is the consequence of a media query).</p>



<p>Now, we had also been using em values for probing screen properties using media queries, and the results were far from ideal. Especially phones from different manufacturers provide very different em values even at roughly similarly sized screens. Thus, it becomes hard to determine, if a user really is using a phone, a tablet, or a full sized PC.</p>



<p>Ironically, it is exactly pixel values, that work much more reliably. In theory, a media query asking if a screen is less than 768 pixel wide should definitely be answered negatively in the case of a current flagship phone with roughly 1400 pixel width. In reality, browsers scale down the page and will answer positively, accepting that phones should be presented to CSS as less than 768px wide.</p>



<p>We have now switched to using pixel values for running the media queries to determine the target page layout. And the results are much better, than when we used <code>em</code> values.</p>



<h2 class="wp-block-heading">See also</h2>



<p>W3C: <a href="https://www.w3.org/Style/Examples/007/units.de.html">Web Style Sheets &#8211; CSS Tips &amp; Tricks: em, px, pt, cm, in…</a></p>



<div class="wp-block-cgb-cc-by message-body" style="background-color:white;color:black"><img 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/2023/03/20230307_235701.jpg.webp</url><width>600</width><height>277</height></post-thumbnail>	</item>
		<item>
		<title>More Stability and Some New Features</title>
		<link>https://blog.museum-digital.org/2020/09/15/more-stability-and-some-new-features/</link>
					<comments>https://blog.museum-digital.org/2020/09/15/more-stability-and-some-new-features/#respond</comments>
		
		<dc:creator><![CDATA[Joshua Ramon Enslin]]></dc:creator>
		<pubDate>Tue, 15 Sep 2020 10:25:10 +0000</pubDate>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Frontend]]></category>
		<category><![CDATA[musdb]]></category>
		<category><![CDATA[Controlled Vocabularies]]></category>
		<category><![CDATA[Minor Improvements]]></category>
		<category><![CDATA[New Features]]></category>
		<guid isPermaLink="false">https://blog.museum-digital.org/?p=1195</guid>

					<description><![CDATA[Over the last months, we have not been inactive in further developing museum-digital. We mainly worked to improve the legibility of our code under the hood &#8211; say, most changes will hopefully not be noticeable, but an improved speed of especially searches for objects may be a positive and visible effect. Either way, we have <a href="https://blog.museum-digital.org/2020/09/15/more-stability-and-some-new-features/" class="more-link">...</a>]]></description>
										<content:encoded><![CDATA[
<p>Over the last months, we have not been inactive in further developing museum-digital. We mainly worked to improve the legibility of our code under the hood &#8211; say, most changes will hopefully not be noticeable, but an improved speed of especially searches for objects may be a positive and visible effect.</p>



<p>Either way, we have also worked on some new features:  A dedicated area for markings (stamps, watermarks, etc.), one for references and reception (e.g. the publication history of an object), and entering uniform information for the field &#8220;object type&#8221; has gotten easier. Most importantly, we have added some new event types to better meet the requirements of provenance research.</p>



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



<p>Especially for art historians, a precise recording of information on different types of markings, that have been added to an object for indicating authorship and ownership are essential. Be it stamps, watermarks, signatures. Thus far, information on these could only be added using the unspecific field &#8220;Inscription&#8221; in museum-digital. The new &#8220;markings&#8221; area (to be found at the bottom of the tab &#8220;Addendum&#8221; in musdb) aims to tackle this problem. The term &#8220;markings&#8221; is deliberately chosen to be wide in meaning to also emcompass logos and other types of markings that are more relevant for e.g. technical collections.</p>



<figure class="wp-block-image size-large"><img fetchpriority="high" decoding="async" width="1009" height="784" src="https://blog.museum-digital.org/wp-content/uploads/2020/09/Screenshot-Marking-Ausgefuellt-EN.png" alt="" class="wp-image-1196" srcset="https://blog.museum-digital.org/wp-content/uploads/2020/09/Screenshot-Marking-Ausgefuellt-EN.png 1009w, https://blog.museum-digital.org/wp-content/uploads/2020/09/Screenshot-Marking-Ausgefuellt-EN-300x233.png 300w" sizes="(max-width: 1009px) 100vw, 1009px" /><figcaption>Markings in musdb can be found at the bottom of the &#8220;addendum&#8221; tab.</figcaption></figure>



<p>If a user of musdb wants to add a new marking, they can scroll down to the bottom of the &#8220;Addendum&#8221; tab and find an accordion button. A click on this button toggles open the area for adding new markings. First, the tye of the marking and its position on the object need to be selected. A transcription must also be provided to safe. Additional information to add are the creator, a possible mentioned time on the marking, its size and a note.</p>



<p>Creators and times are drawn from the centralized controlled vocabularies for actors and times respectively. Hence, they can be entered by tiping the given term and then selecting the correct value from a drop down menu appearing as one types. If the term does not exist yet, it can be added by clicking on the &#8220;+&#8221; symbol right before the text field.</p>



<p>Once a marking has been entered, it is public for now, even though we consider adding an option to hide markings even when their object is public.</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/2020/09/Screenshot-Markings-Frontend-1024x576.png" alt="" class="wp-image-1181" srcset="https://blog.museum-digital.org/wp-content/uploads/2020/09/Screenshot-Markings-Frontend-1024x576.png 1024w, https://blog.museum-digital.org/wp-content/uploads/2020/09/Screenshot-Markings-Frontend-300x169.png 300w, https://blog.museum-digital.org/wp-content/uploads/2020/09/Screenshot-Markings-Frontend-1536x864.png 1536w, https://blog.museum-digital.org/wp-content/uploads/2020/09/Screenshot-Markings-Frontend.png 1920w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption>Markings in the frontend of museum-digital (at the top left of the screenshot).</figcaption></figure>



<h2 class="wp-block-heading">Reception and References</h2>



<p>With &#8220;reception&#8221;, there is a whole new tab in musdb for linking objects with sources. These sources come from a new controlled vocabulary for sources, which is used together by all institutions and runs on a similar level as actors, times, places, and tags. Reception now describes all instances, in which an object is referenced in a source &#8211; e.g. if a painting was printed in a book, or a photo published in a newspaper. Similarly, the discussion of a custom-made car in a car magazine may be recorded here.</p>



<p>The counterpoint to this is the &#8220;is reference&#8221; area just below reception: This can be used, if the object itself references a publication. E.g., a painting may be drawn after a scene from a book.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="593" src="https://blog.museum-digital.org/wp-content/uploads/2020/09/Screenshot-Reception-EN-1024x593.png" alt="" class="wp-image-1198" srcset="https://blog.museum-digital.org/wp-content/uploads/2020/09/Screenshot-Reception-EN-1024x593.png 1024w, https://blog.museum-digital.org/wp-content/uploads/2020/09/Screenshot-Reception-EN-300x174.png 300w, https://blog.museum-digital.org/wp-content/uploads/2020/09/Screenshot-Reception-EN-1536x889.png 1536w, https://blog.museum-digital.org/wp-content/uploads/2020/09/Screenshot-Reception-EN.png 1586w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption>Reception and references in musdb</figcaption></figure>



<p>Like markings, reception and references are by default public.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="521" src="https://blog.museum-digital.org/wp-content/uploads/2020/09/Screenshot-Reception-Reference-Frontend-EN-1-1024x521.png" alt="" class="wp-image-1199" srcset="https://blog.museum-digital.org/wp-content/uploads/2020/09/Screenshot-Reception-Reference-Frontend-EN-1-1024x521.png 1024w, https://blog.museum-digital.org/wp-content/uploads/2020/09/Screenshot-Reception-Reference-Frontend-EN-1-300x153.png 300w, https://blog.museum-digital.org/wp-content/uploads/2020/09/Screenshot-Reception-Reference-Frontend-EN-1.png 1424w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption>References and reception are shown at the bottom of object pages. A click on a source name opens the source page, where one can find all objects referencing the given source.</figcaption></figure>



<h2 class="wp-block-heading">Object Types From a List</h2>



<p>museum-digital traditonally treats object types as a free text field, while many &#8211; if not most &#8211; museum databases provide controlled lists of available object types. We use keywords / tags to provide the same functionality, but it surely makes sense to also have some level of uniformity in the field &#8220;object type&#8221;.</p>



<p>Hence, there is a new aid in adding uniform object types when adding a new object in musdb. As one types in the field, a drop-down list of similarly-phrased keywords appears. Clicking on an entry from that list enters its value into the &#8220;object type&#8221; field and (if one is adding a new object) automatically links the object with the selected tag.</p>



<h2 class="wp-block-heading">JSON-LD Metadata for Image Licenses</h2>



<p>Another minor improvement is that single image pages now feature JSON-LD markup describing the respective image license. This enables especially Google, to provide users with a more detailed view on how to attain the license to use a given image file.</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/2020/09/Screenshot-Google-Licensable-Images-1024x576.png" alt="" class="wp-image-1187" srcset="https://blog.museum-digital.org/wp-content/uploads/2020/09/Screenshot-Google-Licensable-Images-1024x576.png 1024w, https://blog.museum-digital.org/wp-content/uploads/2020/09/Screenshot-Google-Licensable-Images-300x169.png 300w, https://blog.museum-digital.org/wp-content/uploads/2020/09/Screenshot-Google-Licensable-Images-1536x864.png 1536w, https://blog.museum-digital.org/wp-content/uploads/2020/09/Screenshot-Google-Licensable-Images.png 1920w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption>Google Images shows a small &#8220;Licennsable&#8221; marker at the left of an image. Clicking on it shows more information on the image license at the right.</figcaption></figure>



<p>Importantly, images from museum-digital now also appear in Google Images if one opts to only view Creative Commons-licensed works.</p>



<h2 class="wp-block-heading">Events: New Event Types and References for Events</h2>



<p>The probably most important change are the changes made for entering events in museum-digital. One the one hand, important missing event types have been added. These are:</p>



<ul class="wp-block-list"><li>Assembled (to be used for objects, that have been assembled from parts. E.g. a car)</li><li>Auctioned</li><li>Bought</li><li>Owned</li><li>Sold</li><li>Restorated</li><li>Damaged</li><li>Destroyed</li><li>Lost</li><li>Edited (for books and publications, that have an editor)</li></ul>



<p>As can be seen from the list, most of the new event types are related to provenances (for all museums that want to use these event types: Please (!!) ensure that you have cleared the necessary rights to publish this information, as events are public). To make events at museum-digital more closely meet the requirements of provenance researchers, a missing piece were also sources for events, which can now also be added.</p>



<p>To do so, the addition of sources for events must first be activated on a museum-level. To do so, a museum director or user with similar permissions must first navigate to the &#8220;institution-wide settings&#8221; page in musdb, and activate the event sources there.</p>



<p>Once they are activated, an accordion button appears on event editing pages (accessible by clicking on the event type of an already added event). Here, sources can be linked using a drop-down menu similar to the ones used in the features described above.</p>



<p>Finally, with options to add event annotations and sources, there was an increased danger of cluttering the object page in the frontend of museum-digital. Hence, we redesigned the display of event annotations to now appear in a tooltip &#8211; if an event has an annotation or a source, an &#8220;i&#8221;-symbol appears next to the respective element for the event type. Hovering over that element makes sources and annotations visible.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="370" src="https://blog.museum-digital.org/wp-content/uploads/2020/09/Screenshot-Sources-Event-Notes-1-1024x370.png" alt="" class="wp-image-1201" srcset="https://blog.museum-digital.org/wp-content/uploads/2020/09/Screenshot-Sources-Event-Notes-1-1024x370.png 1024w, https://blog.museum-digital.org/wp-content/uploads/2020/09/Screenshot-Sources-Event-Notes-1-300x108.png 300w, https://blog.museum-digital.org/wp-content/uploads/2020/09/Screenshot-Sources-Event-Notes-1.png 1149w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p><em>Beitragsbild: <a href="https://brandenburg.museum-digital.de/object/11898">Caravaggio: „Der ungläubige Thomas“ (CC BY-NC-SA @ Stiftung Preußische Schlösser und Gärten Berlin-Brandenburg / Murza, Gerhard)</a></em></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/2020/09/15/more-stability-and-some-new-features/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-thumbnail><url>https://blog.museum-digital.org/wp-content/uploads/2020/09/caravaggio-michelangelo-merisi-da-der-unglaeubige-thomas-um-1601-gk-i-5438-11898-scaled.jpg</url><width>600</width><height>448</height></post-thumbnail>	</item>
		<item>
		<title>&#8220;Select all&#8221; in Object Selection Mode in musdb</title>
		<link>https://blog.museum-digital.org/2020/02/12/select-all-in-object-selection-mode-in-musdb/</link>
		
		<dc:creator><![CDATA[Joshua Ramon Enslin]]></dc:creator>
		<pubDate>Wed, 12 Feb 2020 13:54:36 +0000</pubDate>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[musdb]]></category>
		<category><![CDATA[Minor Improvements]]></category>
		<category><![CDATA[Object search (musdb)]]></category>
		<category><![CDATA[Object selection (musdb)]]></category>
		<guid isPermaLink="false">https://blog.museum-digital.org/?p=895</guid>

					<description><![CDATA[While most of the weekend had us preoccupied with doing a long-thought-over plan, we managed to squeeze in a minor improvement of the object selection mode in musdb: A &#8220;select all&#8221; option similar to how &#8211; for example &#8211; all files are selected in the Windows Explorer. To use it, press &#60;CTRL+a&#62; while in the <a href="https://blog.museum-digital.org/2020/02/12/select-all-in-object-selection-mode-in-musdb/" class="more-link">...</a>]]></description>
										<content:encoded><![CDATA[
<p>While most of the weekend had us preoccupied with doing a long-thought-over plan, we managed to squeeze in a minor improvement of the object selection mode in musdb: A &#8220;select all&#8221; option similar to how &#8211; for example &#8211; all files are selected in the Windows Explorer. To use it, press <code>&lt;CTRL+a&gt;</code> while in the object selection mode in musdb.</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>
					
		
		
			</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>
	</channel>
</rss>
