<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Home on Maxime Pinot</title><link>https://www.maximepinot.com/en/index.html</link><description>in Home on Maxime Pinot</description><language>en</language><managingEditor>contact+blog@maximepinot.com (Maxime Pinot)</managingEditor><webMaster>contact+blog@maximepinot.com (Maxime Pinot)</webMaster><lastBuildDate>Sun, 19 Apr 2026 14:22:17 +0200</lastBuildDate><atom:link href="https://www.maximepinot.com/en/rss.xml" rel="self" type="application/rss+xml"/><item><title>How to fix poor YouTube video quality downloads with Karakeep</title><link>https://www.maximepinot.com/en/blog/fix-poor-video-quality-downloads-karakeep.html</link><pubDate>Sun, 19 Apr 2026 14:22:17 +0200</pubDate><author>contact+blog@maximepinot.com (Maxime Pinot)</author><guid>https://www.maximepinot.com/en/blog/fix-poor-video-quality-downloads-karakeep.html</guid><description>&lt;p&gt;I installed Karakeep as a bookmarks manager. It works great so far! However, when I tried to bookmark a YouTube video, the video quality was awful.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;yt-dlp&lt;/code&gt; is the tool used under-the-hood to process the video downloads.&lt;/p&gt;
&lt;p&gt;I tried to play with some environment variables to force a better resolution download, unsuccessfully&amp;hellip;&lt;/p&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-env" data-lang="env"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;CRAWLER_VIDEO_DOWNLOAD&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nb"&gt;true&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;CRAWLER_VIDEO_DOWNLOAD_MAX_SIZE&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;-1
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;CRAWLER_YTDLP_ARGS&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;-S ext&amp;#34;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;It turns out that &lt;code&gt;yt-dlp&lt;/code&gt; needs &lt;code&gt;ffmpeg&lt;/code&gt; which is not installed in the official Docker image.&lt;/p&gt;
&lt;p&gt;You will need to use your own custom image to add &lt;code&gt;ffmpeg&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Create a file named &lt;code&gt;Dockerfile&lt;/code&gt; next the &lt;code&gt;compose.yaml&lt;/code&gt; file with the following content:&lt;/p&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-Dockerfile" data-lang="Dockerfile"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;ARG&lt;/span&gt; &lt;span class="nv"&gt;KARAKEEP_VERSION&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;release
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;FROM&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;ghcr.io/karakeep-app/karakeep:${KARAKEEP_VERSION&lt;/span&gt;&lt;span class="o"&gt;}&lt;/span&gt;&lt;span class="err"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="err"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;RUN&lt;/span&gt; apt-get update &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; apt-get -y install ffmpeg --no-install-recommends &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; apt-get clean &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; rm -rf /var/lib/apt/lists/*&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;Then, in the &lt;code&gt;compose.yaml&lt;/code&gt; file, instead of using Karakeep&amp;rsquo;s official Docker image, use your own &lt;code&gt;Dockerfile&lt;/code&gt; instead:&lt;/p&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-diff" data-lang="diff"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;# compose.yaml
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;services:
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; web:
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gd"&gt;- image: ghcr.io/karakeep-app/karakeep:${KARAKEEP_VERSION:-release}
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gi"&gt;+ build:
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gi"&gt;+ context: &amp;#34;.&amp;#34; # Path to where you stored your Dockerfile (&amp;#34;.&amp;#34; means it is stored in the same folder as the `compose.yaml` file)
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gi"&gt;+ args:
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gi"&gt;+ KARAKEEP_VERSION: &amp;#34;0.31.0&amp;#34; # If you want to fix a specific version of Karakeep (default to &amp;#34;release&amp;#34;)
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;Now, &lt;code&gt;yt-dlp&lt;/code&gt; will download videos with the best quality.&lt;/p&gt;</description></item><item><title>How to opt-out from Anytype Analytics &amp; Tracking</title><link>https://www.maximepinot.com/en/blog/anytype-analytics-tracking-opt-out.html</link><pubDate>Sat, 18 Apr 2026 14:24:00 +0200</pubDate><author>contact+blog@maximepinot.com (Maxime Pinot)</author><guid>https://www.maximepinot.com/en/blog/anytype-analytics-tracking-opt-out.html</guid><description>&lt;p&gt;Although Anytype states on its documentation that it is not yet possible to opt-out from analytics:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;It will be possible to opt-out of analytics in the future.&lt;/p&gt;
&lt;p&gt;— &lt;cite&gt;&lt;a href="https://doc.anytype.io/anytype-docs/advanced/data-and-security/analytics-and-tracking" target="_blank" rel="noreferrer"&gt;Anytype&amp;rsquo;s documentation: Analytics &amp;amp; Tracking page&lt;/a&gt;&lt;/cite&gt;&lt;/p&gt;
&lt;/blockquote&gt;&lt;p&gt;You can still prevent Anytype from tracking you.&lt;/p&gt;
&lt;p&gt;All you have to do is to block the following requests from leaving your computer:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;graylog.anytype.io&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;telemetry.anytype.io&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;sentry.anytype.io&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;amplitude.anytype.io&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The best thing would be to use custom DNS so it can be blocked for any devices where you use Anytype (computers, mobiles, tablets…)&lt;/p&gt;
&lt;p&gt;I use &lt;a href="https://nextdns.io/?from=s3tkz3qu" target="_blank" rel="noreferrer"&gt;NextDNS&lt;/a&gt; which is cheap and awesome to block ads and trackers at the DNS level. I could not live without it. You could also set up a PiHole or Adguard Home if you are tech-savvy.&lt;/p&gt;
&lt;p&gt;If you only use Anytype on your computer, a quick and easy solution is to edit the &lt;code&gt;/etc/hosts&lt;/code&gt; file (on macOS or Linux) and add the following at the end of the file:&lt;/p&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;0.0.0.0 graylog.anytype.io
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;0.0.0.0 telemetry.anytype.io
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;0.0.0.0 sentry.anytype.io
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;0.0.0.0 amplitude.anytype.io&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;If you use Windows, this file may be located at &lt;code&gt;C:\windows\system32\drivers\etc\hosts&lt;/code&gt;.&lt;/p&gt;</description></item><item><title>How to fix common issues when installing PHP from source on macOS</title><link>https://www.maximepinot.com/en/blog/php-install-from-source-how-to-fix-common-issues-mac-os.html</link><pubDate>Sat, 18 Apr 2026 11:04:00 +0200</pubDate><author>contact+blog@maximepinot.com (Maxime Pinot)</author><guid>https://www.maximepinot.com/en/blog/php-install-from-source-how-to-fix-common-issues-mac-os.html</guid><description>&lt;p&gt;If you want to install PHP from the source code, you can follow &lt;a href="https://github.com/php/php-src#installation" target="_blank" rel="noreferrer"&gt;the official documentation&lt;/a&gt; from the PHP Git repository.&lt;/p&gt;
&lt;p&gt;However, you may encounter the following issues when trying to build the project (when running &lt;code&gt;./configure&lt;/code&gt;) even though you installed the required dependencies as follows:&lt;/p&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;brew install autoconf bison re2c libiconv libxml2 sqlite&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;h2 class="relative group"&gt;Issue with &lt;code&gt;bison&lt;/code&gt;
&lt;div id="issue-with-bison" class="anchor"&gt;&lt;/div&gt;
&lt;span
class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
&lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#issue-with-bison" aria-label="Anchor"&gt;#&lt;/a&gt;
&lt;/span&gt;
&lt;/h2&gt;
&lt;p&gt;macOS ships with &lt;code&gt;bison&lt;/code&gt; version 2 whilst PHP requires &lt;code&gt;bison&lt;/code&gt; version 3.&lt;/p&gt;
&lt;p&gt;You may run into the following issue:&lt;/p&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;checking &lt;span class="k"&gt;for&lt;/span&gt; bison version... 2.3
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;configure: error: bison 3.0.0 or later or newer is required to generate PHP parsers
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="o"&gt;(&lt;/span&gt;excluded versions: none&lt;span class="o"&gt;)&lt;/span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;To fix this, add the following to your &lt;code&gt;~/.zshrc&lt;/code&gt; file:&lt;/p&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;export&lt;/span&gt; &lt;span class="nv"&gt;PATH&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;/opt/homebrew/opt/bison/bin:&lt;/span&gt;&lt;span class="nv"&gt;$PATH&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;export&lt;/span&gt; &lt;span class="nv"&gt;LDFLAGS&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;-L/opt/homebrew/opt/bison/lib &lt;/span&gt;&lt;span class="nv"&gt;$LDFLAGS&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;h2 class="relative group"&gt;Issue with &lt;code&gt;libxml-2.0&lt;/code&gt;
&lt;div id="issue-with-libxml-20" class="anchor"&gt;&lt;/div&gt;
&lt;span
class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
&lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#issue-with-libxml-20" aria-label="Anchor"&gt;#&lt;/a&gt;
&lt;/span&gt;
&lt;/h2&gt;
&lt;p&gt;If you run into the following issues where the wrong version of &lt;code&gt;libxml&lt;/code&gt; is used:&lt;/p&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;checking whether to build with LIBXML support... yes
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;checking &lt;span class="k"&gt;for&lt;/span&gt; libxml-2.0 &amp;gt;&lt;span class="o"&gt;=&lt;/span&gt; 2.9.4... no
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;configure: error: in &lt;span class="s1"&gt;&amp;#39;/Users/maxime/Projects/php/php-src&amp;#39;&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;configure: error: The pkg-config script could not be found or is too old. Make sure it
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;is in your PATH or &lt;span class="nb"&gt;set&lt;/span&gt; the PKG_CONFIG environment variable to the full
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;path to pkg-config.
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Alternatively, you may &lt;span class="nb"&gt;set&lt;/span&gt; the environment variables LIBXML_CFLAGS
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;and LIBXML_LIBS to avoid the need to call pkg-config.
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;See the pkg-config man page &lt;span class="k"&gt;for&lt;/span&gt; more details.
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;To get pkg-config, see &amp;lt;http://pkg-config.freedesktop.org/&amp;gt;.
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;See &lt;span class="s1"&gt;&amp;#39;config.log&amp;#39;&lt;/span&gt; &lt;span class="k"&gt;for&lt;/span&gt; more details&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;Then, add the following to your &lt;code&gt;~/.zshrc&lt;/code&gt; file:&lt;/p&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;export&lt;/span&gt; &lt;span class="nv"&gt;LIBXML_LIBS&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;-L/opt/homebrew/opt/libxml2/lib &lt;/span&gt;&lt;span class="nv"&gt;$LIBXML_LIBS&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;export&lt;/span&gt; &lt;span class="nv"&gt;LIBXML_CFLAGS&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;-I/opt/homebrew/opt/libxml2/include &lt;/span&gt;&lt;span class="nv"&gt;$LIBXML_CFLAGS&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;Note than only adding the &lt;code&gt;libxml2&lt;/code&gt; binaries to my &lt;code&gt;PATH&lt;/code&gt; was not enough:&lt;/p&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;export&lt;/span&gt; &lt;span class="nv"&gt;PATH&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;/opt/homebrew/opt/libxml2/bin:&lt;/span&gt;&lt;span class="nv"&gt;$PATH&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;h2 class="relative group"&gt;Issue with &lt;code&gt;sqlite3&lt;/code&gt;
&lt;div id="issue-with-sqlite3" class="anchor"&gt;&lt;/div&gt;
&lt;span
class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
&lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#issue-with-sqlite3" aria-label="Anchor"&gt;#&lt;/a&gt;
&lt;/span&gt;
&lt;/h2&gt;
&lt;p&gt;If you run into the following issues where the wrong version of &lt;code&gt;sqlite3&lt;/code&gt; is used:&lt;/p&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;checking whether to &lt;span class="nb"&gt;enable&lt;/span&gt; the SQLite3 extension... yes
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;checking &lt;span class="k"&gt;for&lt;/span&gt; sqlite3 &amp;gt;&lt;span class="o"&gt;=&lt;/span&gt; 3.7.17... no
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;configure: error: in &lt;span class="s1"&gt;&amp;#39;/Users/maxime/Projects/php/php-src&amp;#39;&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;configure: error: The pkg-config script could not be found or is too old. Make sure it
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;is in your PATH or &lt;span class="nb"&gt;set&lt;/span&gt; the PKG_CONFIG environment variable to the full
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;path to pkg-config.
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Alternatively, you may &lt;span class="nb"&gt;set&lt;/span&gt; the environment variables SQLITE_CFLAGS
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;and SQLITE_LIBS to avoid the need to call pkg-config.
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;See the pkg-config man page &lt;span class="k"&gt;for&lt;/span&gt; more details.
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;To get pkg-config, see &amp;lt;http://pkg-config.freedesktop.org/&amp;gt;.
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;See &lt;span class="s1"&gt;&amp;#39;config.log&amp;#39;&lt;/span&gt; &lt;span class="k"&gt;for&lt;/span&gt; more details&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;Then, add the following to your &lt;code&gt;~/.zshrc&lt;/code&gt; file:&lt;/p&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;export&lt;/span&gt; &lt;span class="nv"&gt;SQLITE_LIBS&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;-L/opt/homebrew/opt/sqlite3/lib &lt;/span&gt;&lt;span class="nv"&gt;$SQLITE_LIBS&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;export&lt;/span&gt; &lt;span class="nv"&gt;SQLITE_CFLAGS&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;-I/opt/homebrew/opt/sqlite3/include &lt;/span&gt;&lt;span class="nv"&gt;$SQLITE_CFLAGS&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;</description></item><item><title>Install and play Supermarket Simulator on Mac</title><link>https://www.maximepinot.com/en/blog/install-play-supermarket-simulator-steam-mac-os.html</link><pubDate>Sun, 28 Apr 2024 12:21:00 +0200</pubDate><author>contact+blog@maximepinot.com (Maxime Pinot)</author><guid>https://www.maximepinot.com/en/blog/install-play-supermarket-simulator-steam-mac-os.html</guid><description>&lt;figure&gt;&lt;img
class="my-0 rounded-md"
loading="lazy"
decoding="async"
fetchpriority="low"
alt=""
src="images/supermarket-simulator-header.webp"
&gt;&lt;/figure&gt;
&lt;p&gt;&lt;strong&gt;Supermarket Simulator&lt;/strong&gt; is &lt;em&gt;&lt;strong&gt;the&lt;/strong&gt;&lt;/em&gt; addictive simulation game everyone is talking about.
But Mac users will be disappointed, as Supermarket Simulator is only available on Windows.&lt;/p&gt;
&lt;p&gt;Fortunately, there is a solution for installing and playing Supermarket Simulator on the Mac!&lt;/p&gt;
&lt;p&gt;This solution is working like a charm on my M3 MacBook Air M3 under Sonoma (macOS 14).&lt;/p&gt;
&lt;div
class="flex px-4 py-3 rounded-md shadow bg-primary-100 dark:bg-primary-900"
&gt;
&lt;span
class="text-primary-400 pe-3 flex items-center"
&gt;
&lt;span class="relative block icon"&gt;&lt;svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"&gt;&lt;path fill="currentColor" d="M506.3 417l-213.3-364c-16.33-28-57.54-28-73.98 0l-213.2 364C-10.59 444.9 9.849 480 42.74 480h426.6C502.1 480 522.6 445 506.3 417zM232 168c0-13.25 10.75-24 24-24S280 154.8 280 168v128c0 13.25-10.75 24-23.1 24S232 309.3 232 296V168zM256 416c-17.36 0-31.44-14.08-31.44-31.44c0-17.36 14.07-31.44 31.44-31.44s31.44 14.08 31.44 31.44C287.4 401.9 273.4 416 256 416z"/&gt;&lt;/svg&gt;
&lt;/span&gt;
&lt;/span&gt;
&lt;span
class="dark:text-neutral-300"
&gt;&lt;strong&gt;Please note that this solution does not work on Intel Macs.&lt;/strong&gt;
&lt;strong&gt;Only Macs with an Apple Silicon chip (M1, M2, M3&amp;hellip;)&lt;/strong&gt;&lt;/span&gt;
&lt;/div&gt;
&lt;h2 class="relative group"&gt;Install Supermarket Simulator on Mac
&lt;div id="install-supermarket-simulator-on-mac" class="anchor"&gt;&lt;/div&gt;
&lt;span
class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
&lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#install-supermarket-simulator-on-mac" aria-label="Anchor"&gt;#&lt;/a&gt;
&lt;/span&gt;
&lt;/h2&gt;
&lt;h3 class="relative group"&gt;Install Whisky
&lt;div id="install-whisky" class="anchor"&gt;&lt;/div&gt;
&lt;span
class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
&lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#install-whisky" aria-label="Anchor"&gt;#&lt;/a&gt;
&lt;/span&gt;
&lt;/h3&gt;
&lt;p&gt;First, you need to install a software named &lt;strong&gt;Whisky&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;You have two ways to do that:&lt;/p&gt;
&lt;h4 class="relative group"&gt;Download the &lt;code&gt;.app&lt;/code&gt; file fro; the official website
&lt;div id="download-the-app-file-fro-the-official-website" class="anchor"&gt;&lt;/div&gt;
&lt;span
class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
&lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#download-the-app-file-fro-the-official-website" aria-label="Anchor"&gt;#&lt;/a&gt;
&lt;/span&gt;
&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;Go to the official website : &lt;a href="https://getwhisky.app/" target="_blank" rel="noreferrer"&gt;https://getwhisky.app/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Click on the &lt;code&gt;Download Latest&lt;/code&gt; button&lt;/li&gt;
&lt;li&gt;Double-click on the &lt;code&gt;Whisky.zip&lt;/code&gt; file you have just downloaded&lt;/li&gt;
&lt;li&gt;Move the &lt;code&gt;Whisky.app&lt;/code&gt; file in your &lt;code&gt;Applications&lt;/code&gt; folder&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 class="relative group"&gt;Use Homebrew
&lt;div id="use-homebrew" class="anchor"&gt;&lt;/div&gt;
&lt;span
class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
&lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#use-homebrew" aria-label="Anchor"&gt;#&lt;/a&gt;
&lt;/span&gt;
&lt;/h4&gt;
&lt;p&gt;If you use Homebrew to install your software, simply run the following command :&lt;/p&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;brew install --cask whisky&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;h3 class="relative group"&gt;Download Steam Windows
&lt;div id="download-steam-windows" class="anchor"&gt;&lt;/div&gt;
&lt;span
class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
&lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#download-steam-windows" aria-label="Anchor"&gt;#&lt;/a&gt;
&lt;/span&gt;
&lt;/h3&gt;
&lt;p&gt;Now that Whisky is installed, we can install Steam Windows.&lt;/p&gt;
&lt;p&gt;Download the Windows version of Steam through &lt;a href="https://cdn.akamai.steamstatic.com/client/installer/SteamSetup.exe" target="_blank" rel="noreferrer"&gt;this link&lt;/a&gt;.
If the link is dead, go to &lt;a href="https://store.steampowered.com/about/" target="_blank" rel="noreferrer"&gt;the Steam official website&lt;/a&gt;
and download the &lt;strong&gt;Windows&lt;/strong&gt; version of Steam.&lt;/p&gt;
&lt;figure&gt;&lt;img
class="my-0 rounded-md"
loading="lazy"
decoding="async"
fetchpriority="auto"
alt=""
width="1130"
height="862"
src="https://www.maximepinot.com/blog/installer-jouer-supermarket-simulator-steam-mac-os/images/steam-install_hu_5e2c3fe2e4122f73.webp"
srcset="https://www.maximepinot.com/blog/installer-jouer-supermarket-simulator-steam-mac-os/images/steam-install_hu_5e2c3fe2e4122f73.webp 800w, https://www.maximepinot.com/blog/installer-jouer-supermarket-simulator-steam-mac-os/images/steam-install.webp 1280w"
sizes="(min-width: 768px) 50vw, 65vw"
data-zoom-src="https://www.maximepinot.com/blog/installer-jouer-supermarket-simulator-steam-mac-os/images/steam-install.webp"&gt;&lt;/figure&gt;
&lt;p&gt;You should have a file with the &lt;code&gt;.exe&lt;/code&gt; extension (&lt;code&gt;SteamSetup.exe&lt;/code&gt;).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;You MUST have a &lt;code&gt;.exe&lt;/code&gt; file.&lt;/strong&gt;
&lt;strong&gt;If not, you don&amp;rsquo;t have the Windows version of Steam.&lt;/strong&gt;&lt;/p&gt;
&lt;h3 class="relative group"&gt;Install Steam Windows
&lt;div id="install-steam-windows" class="anchor"&gt;&lt;/div&gt;
&lt;span
class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
&lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#install-steam-windows" aria-label="Anchor"&gt;#&lt;/a&gt;
&lt;/span&gt;
&lt;/h3&gt;
&lt;p&gt;Open &lt;code&gt;Whisky&lt;/code&gt;.&lt;/p&gt;
&lt;figure&gt;&lt;img
class="my-0 rounded-md"
loading="lazy"
decoding="async"
fetchpriority="auto"
alt=""
width="2024"
height="1124"
src="https://www.maximepinot.com/blog/installer-jouer-supermarket-simulator-steam-mac-os/images/whisky-dependencies-setup_hu_34402cd76305b192.webp"
srcset="https://www.maximepinot.com/blog/installer-jouer-supermarket-simulator-steam-mac-os/images/whisky-dependencies-setup_hu_34402cd76305b192.webp 800w, https://www.maximepinot.com/blog/installer-jouer-supermarket-simulator-steam-mac-os/images/whisky-dependencies-setup_hu_fee3551e87d4c130.webp 1280w"
sizes="(min-width: 768px) 50vw, 65vw"
data-zoom-src="https://www.maximepinot.com/blog/installer-jouer-supermarket-simulator-steam-mac-os/images/whisky-dependencies-setup.webp"&gt;&lt;/figure&gt;
&lt;p&gt;Clock on &lt;code&gt;Next&lt;/code&gt; to install the required dependencies.&lt;/p&gt;
&lt;figure&gt;&lt;img
class="my-0 rounded-md"
loading="lazy"
decoding="async"
fetchpriority="auto"
alt=""
width="2024"
height="1124"
src="https://www.maximepinot.com/blog/installer-jouer-supermarket-simulator-steam-mac-os/images/whisky-create-bottle_hu_f5ac909c43af5aaa.webp"
srcset="https://www.maximepinot.com/blog/installer-jouer-supermarket-simulator-steam-mac-os/images/whisky-create-bottle_hu_f5ac909c43af5aaa.webp 800w, https://www.maximepinot.com/blog/installer-jouer-supermarket-simulator-steam-mac-os/images/whisky-create-bottle_hu_453d5f898eab0e3a.webp 1280w"
sizes="(min-width: 768px) 50vw, 65vw"
data-zoom-src="https://www.maximepinot.com/blog/installer-jouer-supermarket-simulator-steam-mac-os/images/whisky-create-bottle.webp"&gt;&lt;/figure&gt;
&lt;p&gt;Click &lt;code&gt;Create Bottle&lt;/code&gt;.&lt;/p&gt;
&lt;figure&gt;&lt;img
class="my-0 rounded-md"
loading="lazy"
decoding="async"
fetchpriority="auto"
alt=""
width="2024"
height="1124"
src="https://www.maximepinot.com/blog/installer-jouer-supermarket-simulator-steam-mac-os/images/whisky-new-bottle-details_hu_756ba2889f4a7eb8.webp"
srcset="https://www.maximepinot.com/blog/installer-jouer-supermarket-simulator-steam-mac-os/images/whisky-new-bottle-details_hu_756ba2889f4a7eb8.webp 800w, https://www.maximepinot.com/blog/installer-jouer-supermarket-simulator-steam-mac-os/images/whisky-new-bottle-details_hu_adff3bc2a3acb933.webp 1280w"
sizes="(min-width: 768px) 50vw, 65vw"
data-zoom-src="https://www.maximepinot.com/blog/installer-jouer-supermarket-simulator-steam-mac-os/images/whisky-new-bottle-details.webp"&gt;&lt;/figure&gt;
&lt;p&gt;Give a name to your &lt;code&gt;Bottle&lt;/code&gt; (I chose &amp;ldquo;Steam&amp;rdquo;).
Choose &amp;ldquo;Windows 10&amp;rdquo; and keep the default &lt;code&gt;Bottle path&lt;/code&gt; (unless you know what you do).
Click on &lt;code&gt;Create&lt;/code&gt;.&lt;/p&gt;
&lt;figure&gt;&lt;img
class="my-0 rounded-md"
loading="lazy"
decoding="async"
fetchpriority="auto"
alt=""
width="2024"
height="1124"
src="https://www.maximepinot.com/blog/installer-jouer-supermarket-simulator-steam-mac-os/images/whisky-run-exe_hu_edd7aaacee34d5dd.webp"
srcset="https://www.maximepinot.com/blog/installer-jouer-supermarket-simulator-steam-mac-os/images/whisky-run-exe_hu_edd7aaacee34d5dd.webp 800w, https://www.maximepinot.com/blog/installer-jouer-supermarket-simulator-steam-mac-os/images/whisky-run-exe_hu_ad232333b288ce3d.webp 1280w"
sizes="(min-width: 768px) 50vw, 65vw"
data-zoom-src="https://www.maximepinot.com/blog/installer-jouer-supermarket-simulator-steam-mac-os/images/whisky-run-exe.webp"&gt;&lt;/figure&gt;
&lt;p&gt;When your &lt;code&gt;Bottle&lt;/code&gt; is created, click on the &lt;code&gt;Run...&lt;/code&gt; button at the bottom right of the window.
Choose the Steam Windows executable file (&lt;code&gt;SteamSetup.exe&lt;/code&gt;)&lt;/p&gt;
&lt;figure&gt;&lt;img
class="my-0 rounded-md"
loading="lazy"
decoding="async"
fetchpriority="auto"
alt=""
width="1218"
height="1002"
src="https://www.maximepinot.com/blog/installer-jouer-supermarket-simulator-steam-mac-os/images/whisky-steam-windows-setup_hu_397b872f676fe0dc.webp"
srcset="https://www.maximepinot.com/blog/installer-jouer-supermarket-simulator-steam-mac-os/images/whisky-steam-windows-setup_hu_397b872f676fe0dc.webp 800w, https://www.maximepinot.com/blog/installer-jouer-supermarket-simulator-steam-mac-os/images/whisky-steam-windows-setup.webp 1280w"
sizes="(min-width: 768px) 50vw, 65vw"
data-zoom-src="https://www.maximepinot.com/blog/installer-jouer-supermarket-simulator-steam-mac-os/images/whisky-steam-windows-setup.webp"&gt;&lt;/figure&gt;
&lt;p&gt;Keep clicking &lt;code&gt;Next&lt;/code&gt; until the last step.&lt;/p&gt;
&lt;figure&gt;&lt;img
class="my-0 rounded-md"
loading="lazy"
decoding="async"
fetchpriority="auto"
alt=""
width="1218"
height="1002"
src="https://www.maximepinot.com/blog/installer-jouer-supermarket-simulator-steam-mac-os/images/whisky-steam-windows-setup-completed_hu_3adb31d2542ff77b.webp"
srcset="https://www.maximepinot.com/blog/installer-jouer-supermarket-simulator-steam-mac-os/images/whisky-steam-windows-setup-completed_hu_3adb31d2542ff77b.webp 800w, https://www.maximepinot.com/blog/installer-jouer-supermarket-simulator-steam-mac-os/images/whisky-steam-windows-setup-completed.webp 1280w"
sizes="(min-width: 768px) 50vw, 65vw"
data-zoom-src="https://www.maximepinot.com/blog/installer-jouer-supermarket-simulator-steam-mac-os/images/whisky-steam-windows-setup-completed.webp"&gt;&lt;/figure&gt;
&lt;p&gt;Once you&amp;rsquo;ve finished, you can launch Steam and use it as usual: log into your
Steam account, download &lt;code&gt;Supermarket Simulator&lt;/code&gt; from your library and run the game.&lt;/p&gt;
&lt;p&gt;Note that the synchronisation with the Steam cloud works very well.&lt;/p&gt;
&lt;p&gt;In theory, Whisky has automatically pinned Steam so you can quickly run the program when you open it.
If not, go to &lt;code&gt;Installed Programs&lt;/code&gt;, search for &lt;code&gt;steam.exe&lt;/code&gt; and click on the pin icon 📌 to pin the software to the home screen.&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;&lt;img
class="my-0 rounded-md"
loading="lazy"
decoding="async"
fetchpriority="auto"
alt=""
width="2024"
height="1124"
src="https://www.maximepinot.com/blog/installer-jouer-supermarket-simulator-steam-mac-os/images/whisky-home_hu_b9970a045c153d85.webp"
srcset="https://www.maximepinot.com/blog/installer-jouer-supermarket-simulator-steam-mac-os/images/whisky-home_hu_b9970a045c153d85.webp 800w, https://www.maximepinot.com/blog/installer-jouer-supermarket-simulator-steam-mac-os/images/whisky-home_hu_d3209b97f9cab8d2.webp 1280w"
sizes="(min-width: 768px) 50vw, 65vw"
data-zoom-src="https://www.maximepinot.com/blog/installer-jouer-supermarket-simulator-steam-mac-os/images/whisky-home.webp"&gt;&lt;/figure&gt;
&lt;figure&gt;&lt;img
class="my-0 rounded-md"
loading="lazy"
decoding="async"
fetchpriority="auto"
alt=""
width="2024"
height="1124"
src="https://www.maximepinot.com/blog/installer-jouer-supermarket-simulator-steam-mac-os/images/whisky-installed-programs_hu_cf3c29d7c0f06df5.webp"
srcset="https://www.maximepinot.com/blog/installer-jouer-supermarket-simulator-steam-mac-os/images/whisky-installed-programs_hu_cf3c29d7c0f06df5.webp 800w, https://www.maximepinot.com/blog/installer-jouer-supermarket-simulator-steam-mac-os/images/whisky-installed-programs_hu_821eafeb773a7a67.webp 1280w"
sizes="(min-width: 768px) 50vw, 65vw"
data-zoom-src="https://www.maximepinot.com/blog/installer-jouer-supermarket-simulator-steam-mac-os/images/whisky-installed-programs.webp"&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;💡You can even pin &lt;code&gt;Supermarket Simulator.exe&lt;/code&gt; to launch the game without opening Steam.&lt;/p&gt;
&lt;h2 class="relative group"&gt;Troubleshooting
&lt;div id="troubleshooting" class="anchor"&gt;&lt;/div&gt;
&lt;span
class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
&lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#troubleshooting" aria-label="Anchor"&gt;#&lt;/a&gt;
&lt;/span&gt;
&lt;/h2&gt;
&lt;h3 class="relative group"&gt;Steam opens unexpectedly
&lt;div id="steam-opens-unexpectedly" class="anchor"&gt;&lt;/div&gt;
&lt;span
class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
&lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#steam-opens-unexpectedly" aria-label="Anchor"&gt;#&lt;/a&gt;
&lt;/span&gt;
&lt;/h3&gt;
&lt;p&gt;Do &lt;strong&gt;not&lt;/strong&gt; close Steam using the &lt;code&gt;steamwebhelper&lt;/code&gt; menu in the Mac menu bar.&lt;/p&gt;
&lt;figure&gt;&lt;img
class="my-0 rounded-md"
loading="lazy"
decoding="async"
fetchpriority="auto"
alt=""
width="632"
height="342"
src="https://www.maximepinot.com/blog/installer-jouer-supermarket-simulator-steam-mac-os/images/macos-steamwebhelper.webp"
srcset="https://www.maximepinot.com/blog/installer-jouer-supermarket-simulator-steam-mac-os/images/macos-steamwebhelper.webp 800w, https://www.maximepinot.com/blog/installer-jouer-supermarket-simulator-steam-mac-os/images/macos-steamwebhelper.webp 1280w"
sizes="(min-width: 768px) 50vw, 65vw"
data-zoom-src="https://www.maximepinot.com/blog/installer-jouer-supermarket-simulator-steam-mac-os/images/macos-steamwebhelper.webp"&gt;&lt;/figure&gt;
&lt;p&gt;Instead, close Steam from the Windows Steam application via &lt;code&gt;Steam &amp;gt; Exit&lt;/code&gt;.&lt;/p&gt;
&lt;figure&gt;&lt;img
class="my-0 rounded-md"
loading="lazy"
decoding="async"
fetchpriority="auto"
alt=""
width="642"
height="648"
src="https://www.maximepinot.com/blog/installer-jouer-supermarket-simulator-steam-mac-os/images/macos-steam-close.webp"
srcset="https://www.maximepinot.com/blog/installer-jouer-supermarket-simulator-steam-mac-os/images/macos-steam-close.webp 800w, https://www.maximepinot.com/blog/installer-jouer-supermarket-simulator-steam-mac-os/images/macos-steam-close.webp 1280w"
sizes="(min-width: 768px) 50vw, 65vw"
data-zoom-src="https://www.maximepinot.com/blog/installer-jouer-supermarket-simulator-steam-mac-os/images/macos-steam-close.webp"&gt;&lt;/figure&gt;
&lt;h3 class="relative group"&gt;Game resolution issues
&lt;div id="game-resolution-issues" class="anchor"&gt;&lt;/div&gt;
&lt;span
class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
&lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#game-resolution-issues" aria-label="Anchor"&gt;#&lt;/a&gt;
&lt;/span&gt;
&lt;/h3&gt;
&lt;p&gt;The initial resolution of the game may not be optimal.
You can adjust the resolution yourself in the game settings.&lt;/p&gt;</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://www.maximepinot.com/blog/installer-jouer-supermarket-simulator-steam-mac-os/featured.jpeg"/></item><item><title>Play a region-locked DVD with VLC</title><link>https://www.maximepinot.com/en/blog/play-a-region-locked-dvd-with-vlc.html</link><pubDate>Mon, 06 Jun 2022 09:58:00 +0200</pubDate><author>contact+blog@maximepinot.com (Maxime Pinot)</author><guid>https://www.maximepinot.com/en/blog/play-a-region-locked-dvd-with-vlc.html</guid><description>&lt;p&gt;&lt;strong&gt;VLC Media Player&lt;/strong&gt; can play region-locked DVD.&lt;/p&gt;
&lt;p&gt;If it does not work, make sure the &lt;code&gt;libdvdcss2&lt;/code&gt; library is installed on your machine.&lt;/p&gt;
&lt;p&gt;On Debian / Ubuntu:&lt;/p&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo apt-get install libdvdcss2&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;On macOS:&lt;/p&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;brew install libdvdcss&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;</description></item><item><title>VeraCrypt volume on USB key: "Resource temporarily unavailable"</title><link>https://www.maximepinot.com/en/blog/veracrypt-volume-on-usb-key-resource-temporarily-unavailable-file-write-340.html</link><pubDate>Wed, 03 Mar 2021 11:55:00 +0200</pubDate><author>contact+blog@maximepinot.com (Maxime Pinot)</author><guid>https://www.maximepinot.com/en/blog/veracrypt-volume-on-usb-key-resource-temporarily-unavailable-file-write-340.html</guid><description>&lt;figure&gt;&lt;img
class="my-0 rounded-md"
loading="lazy"
decoding="async"
fetchpriority="low"
alt="Screenshot of VeraCrypt showing the error &amp;ldquo;Resource temporarily unavailable: VeraCrypt::File::Write:340&amp;rdquo;"
src="https://www.maximepinot.com/uploads/61c74f93f12b7_veracrypt-resource-temporarily-unavailable.png"
&gt;&lt;/figure&gt;
&lt;p&gt;To fix this problem, create the volume on your &lt;strong&gt;local machine&lt;/strong&gt;
(not on the USB stick or any other external device).&lt;/p&gt;
&lt;p&gt;Once the volume is created on your machine, you just have to &lt;strong&gt;move&lt;/strong&gt; it
(a VeraCrypt volume is a single file) to the USB key.
The volume will then be fully accessible from the USB key.&lt;/p&gt;</description></item><item><title>How to install the latest version of PHP under Ubuntu on Windows (WSL)</title><link>https://www.maximepinot.com/en/blog/how-to-install-the-latest-version-of-php-under-ubuntu-on-windows-wsl.html</link><pubDate>Fri, 01 Jan 2021 19:05:00 +0200</pubDate><author>contact+blog@maximepinot.com (Maxime Pinot)</author><guid>https://www.maximepinot.com/en/blog/how-to-install-the-latest-version-of-php-under-ubuntu-on-windows-wsl.html</guid><description>&lt;p&gt;The latest version of &lt;strong&gt;PHP&lt;/strong&gt; is not often immediately available in &lt;strong&gt;Ubuntu repositories&lt;/strong&gt;,
even less under &lt;strong&gt;Ubuntu on Windows&lt;/strong&gt; (&lt;em&gt;WSL: Windows Subsytem for Linux&lt;/em&gt;) where the installed version is often the LTS (Long Term Support) version.&lt;/p&gt;
&lt;p&gt;To install the latest version of PHP, you have to add the &lt;a href="https://launchpad.net/~ondrej/&amp;#43;archive/ubuntu/php" target="_blank" rel="noreferrer"&gt;ondrej/php&lt;/a&gt; repository.&lt;/p&gt;
&lt;h2 class="relative group"&gt;Add the repository automatically
&lt;div id="add-the-repository-automatically" class="anchor"&gt;&lt;/div&gt;
&lt;span
class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
&lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#add-the-repository-automatically" aria-label="Anchor"&gt;#&lt;/a&gt;
&lt;/span&gt;
&lt;/h2&gt;
&lt;p&gt;Nothing complicated here, let&amp;rsquo;s just execute the following command:&lt;/p&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo add-apt-repository ppa:ondrej/php&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;If the repository has been successfully added, you are in luck!
You can go directly to the &lt;a href="https://www.maximepinot.com/en/blog/how-to-install-the-latest-version-of-php-under-ubuntu-on-windows-wsl.html#installing-php" &gt;&amp;ldquo;Installing PHP&amp;rdquo;&lt;/a&gt; section.&lt;/p&gt;
&lt;p&gt;If you get the error below, then you need to add the repository manually.&lt;/p&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Cannot add PPA: &amp;#39;ppa:~ondrej/ubuntu/php&amp;#39;.
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;ERROR: &amp;#39;~ondrej&amp;#39; user or team does not exist.&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;h2 class="relative group"&gt;Add the repository manually
&lt;div id="add-the-repository-manually" class="anchor"&gt;&lt;/div&gt;
&lt;span
class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
&lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#add-the-repository-manually" aria-label="Anchor"&gt;#&lt;/a&gt;
&lt;/span&gt;
&lt;/h2&gt;
&lt;p&gt;It is necessary to edit the file &lt;code&gt;/etc/apt/sources.list&lt;/code&gt;.&lt;/p&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo vim /etc/apt/sources.list&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;Add the following two lines to the end of the file:&lt;/p&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;deb http://ppa.launchpad.net/ondrej/php/ubuntu bionic main
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;deb-src http://ppa.launchpad.net/ondrej/php/ubuntu bionic main&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; these two lines are correct if you are using Ubuntu 18.04 (Bionic) or Ubuntu 18.10 LTS.
Replace &amp;ldquo;bionic&amp;rdquo; with the name of your Ubuntu version.
Just look at the already existing lines of the file &lt;code&gt;/etc/apt/sources.list&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Save the changes (&lt;code&gt;:wq&lt;/code&gt; if you are also using vim) and update the repositories:&lt;/p&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo apt-get update&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;Another error!!&lt;/p&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Hit:5 http://security.ubuntu.com/ubuntu bionic-security InRelease
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Get:1 http://ppa.launchpad.net/ondrej/php/ubuntu bionic InRelease [20.8 kB]
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Err:1 http://ppa.launchpad.net/ondrej/php/ubuntu bionic InRelease
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;The following signatures couldn&amp;#39;t be verified because the public key is not available: NO_PUBKEY 4F4EA0AAE5267A6C&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;To solve this problem, execute the following command:&lt;/p&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 4F4EA0AAE5267A6C&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt; that the last option of the command refers to the key in the error message (&lt;code&gt;4F4EA0AAE5267A6C&lt;/code&gt;).
If your error message contains a different key, you must change the command accordingly.&lt;/p&gt;
&lt;p&gt;If you would like more information on this problem,
see this article: &lt;a href="https://chrisjean.com/fix-apt-get-update-the-following-signatures-couldnt-be-verified-because-the-public-key-is-not-available/" target="_blank" rel="noreferrer"&gt;Fix apt-get update “the following signatures couldn’t be verified because the public key is not available”&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Once this command is executed, refresh the repositories again:&lt;/p&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo apt-get update&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;h2 class="relative group"&gt;Installing PHP
&lt;div id="installing-php" class="anchor"&gt;&lt;/div&gt;
&lt;span
class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
&lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#installing-php" aria-label="Anchor"&gt;#&lt;/a&gt;
&lt;/span&gt;
&lt;/h2&gt;
&lt;p&gt;To install the latest version of PHP (7.4 at the time I&amp;rsquo;m writing this article), run the following command:&lt;/p&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo apt-get install php7.4&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;Thanks to the &amp;ldquo;ondrej/php&amp;rdquo; repository, you can install any version you want:&lt;/p&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo apt-get install php7.3
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo apt-get install php7.2
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo apt-get install php7.1&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;There you go! You can check the version of PHP with the command:&lt;/p&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;$ php -v
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;PHP 7.4.0 &lt;span class="o"&gt;(&lt;/span&gt;cli&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;(&lt;/span&gt;built: Nov &lt;span class="m"&gt;28&lt;/span&gt; &lt;span class="m"&gt;2019&lt;/span&gt; 07:27:06&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;(&lt;/span&gt; NTS &lt;span class="o"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;</description></item><item><title>Prevent a number to be rouned (scaled) in a Symfony form</title><link>https://www.maximepinot.com/en/blog/prevent-a-number-to-be-rouned-scaled-in-a-symfony-form.html</link><pubDate>Sat, 20 Jun 2020 16:09:00 +0200</pubDate><author>contact+blog@maximepinot.com (Maxime Pinot)</author><guid>https://www.maximepinot.com/en/blog/prevent-a-number-to-be-rouned-scaled-in-a-symfony-form.html</guid><description>&lt;p&gt;In a &lt;strong&gt;Symfony&lt;/strong&gt; form, if you expect your users to submit &lt;strong&gt;a decimal number&lt;/strong&gt;,
you will likely use a &lt;a href="https://symfony.com/doc/current/reference/forms/types/number.html" target="_blank" rel="noreferrer"&gt;&lt;code&gt;NumberType&lt;/code&gt;&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;However, a &lt;code&gt;NumberType&lt;/code&gt; always scale the submitted number (by default, 3 decimals are kept).
This behaviour can be configured through the &lt;a href="https://symfony.com/doc/current/reference/forms/types/number.html#scale" target="_blank" rel="noreferrer"&gt;&lt;code&gt;scale&lt;/code&gt;&lt;/a&gt; option.
Yet, the &lt;code&gt;scale&lt;/code&gt; option cannot be disabled, and you will not be able to prevent Symfony from rounding the submitted number.&lt;/p&gt;
&lt;p&gt;To prevent Symfony from rounding the submitted number, you will need to use a &lt;a href="https://symfony.com/doc/current/reference/forms/types/text.html" target="_blank" rel="noreferrer"&gt;&lt;code&gt;TextType&lt;/code&gt;&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Be careful, though! Simply using a &lt;code&gt;TextType&lt;/code&gt; will not be enough!&lt;/strong&gt;
You have to make sure that your users will submit a valid &lt;a href="https://www.php.net/manual/en/language.types.numeric-strings.php" target="_blank" rel="noreferrer"&gt;&lt;strong&gt;numeric string&lt;/strong&gt;&lt;/a&gt;.
To do so, you need to add a validation constraint.
The constraint &lt;a href="https://symfony.com/doc/current/reference/constraints/Type.html" target="_blank" rel="noreferrer"&gt;&lt;code&gt;Type&lt;/code&gt;&lt;/a&gt; is what you need!&lt;/p&gt;
&lt;p&gt;Here is the code to have a form field that only accepts a valid numeric string :&lt;/p&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-php" data-lang="php"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="o"&gt;&amp;lt;?&lt;/span&gt;&lt;span class="nx"&gt;php&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;declare&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;strict_types&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;namespace&lt;/span&gt; &lt;span class="nx"&gt;Foo&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;use&lt;/span&gt; &lt;span class="nx"&gt;Symfony\Component\Form\AbstractType&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;use&lt;/span&gt; &lt;span class="nx"&gt;Symfony\Component\Form\Extension\Core\Type\TextType&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;use&lt;/span&gt; &lt;span class="nx"&gt;Symfony\Component\Form\FormBuilderInterface&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;use&lt;/span&gt; &lt;span class="nx"&gt;Symfony\Component\Validator\Constraints\Type&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;final&lt;/span&gt; &lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;FooType&lt;/span&gt; &lt;span class="k"&gt;extends&lt;/span&gt; &lt;span class="nx"&gt;AbstractType&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="k"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;buildForm&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;FormBuilderInterface&lt;/span&gt; &lt;span class="nv"&gt;$builder&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="k"&gt;array&lt;/span&gt; &lt;span class="nv"&gt;$options&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nv"&gt;$builder&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="na"&gt;add&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;numeric&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;TextType&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="na"&gt;class&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s1"&gt;&amp;#39;constraints&amp;#39;&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nx"&gt;Type&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;type&amp;#39;&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;numeric&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;]);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;</description></item></channel></rss>