<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Julian</title>
    <description>The latest articles on DEV Community by Julian (@c33s).</description>
    <link>https://dev.to/c33s</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F73806%2F8abc6e22-f959-465c-a802-77f44070ebc7.jpeg</url>
      <title>DEV Community: Julian</title>
      <link>https://dev.to/c33s</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/c33s"/>
    <language>en</language>
    <item>
      <title>hello, maybe i am back for a while</title>
      <dc:creator>Julian</dc:creator>
      <pubDate>Wed, 31 Jul 2024 21:35:41 +0000</pubDate>
      <link>https://dev.to/c33s/hello-maybe-i-am-back-for-a-while-30m3</link>
      <guid>https://dev.to/c33s/hello-maybe-i-am-back-for-a-while-30m3</guid>
      <description>&lt;p&gt;my last post was quite a while ago. i stopped blogging here because of the "overjavascriptification", which broke the simple upload form for the cover image on this site. see my old post &lt;a href="https://dev.to/c33s/dear-javascript-webdevelopers-please-don-t-break-the-web-20go"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;the original plan was to self-host my blog and write there but lot of stuff happend and i still haven't created a self-hosted blog. so i will stick to dev.to for my next posts as my good old &lt;a href="https://classic.waterfox.net/" rel="noopener noreferrer"&gt;waterfox classic&lt;/a&gt; browser was killed by "overjavascriptification" from all sides. now i am on a browser mix of my good old &lt;a href="https://classic.waterfox.net/" rel="noopener noreferrer"&gt;waterfox&lt;/a&gt;, &lt;a href="https://librewolf.net/" rel="noopener noreferrer"&gt;librewolf&lt;/a&gt; and &lt;a href="https://chromium.woolyss.com/" rel="noopener noreferrer"&gt;ungoogled chromium&lt;/a&gt;. &lt;br&gt;
i will evaluate &lt;a href="https://thorium.rocks/" rel="noopener noreferrer"&gt;thorium&lt;/a&gt; and &lt;a href="https://thorium.rocks/mercury" rel="noopener noreferrer"&gt;mercury&lt;/a&gt; next. why don't i use the regular firefox? because i really don't like the direction mozilla is going to. the last wtf was the implemenation of some kind of &lt;a href="https://news.ycombinator.com/item?id=40954535" rel="noopener noreferrer"&gt;tracking&lt;/a&gt; which is opt-out and not opt-in.&lt;/p&gt;

&lt;p&gt;links:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;cover image by "tommileew": &lt;a href="https://pixabay.com/photos/fox-puppy-evening-atmosphere-3419552/" rel="noopener noreferrer"&gt;https://pixabay.com/photos/fox-puppy-evening-atmosphere-3419552/&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>personal</category>
      <category>webbrowser</category>
      <category>mozilla</category>
      <category>firefox</category>
    </item>
    <item>
      <title>dear javascript webdevelopers - please don't break the web</title>
      <dc:creator>Julian</dc:creator>
      <pubDate>Sun, 15 Nov 2020 22:58:21 +0000</pubDate>
      <link>https://dev.to/c33s/dear-javascript-webdevelopers-please-don-t-break-the-web-20go</link>
      <guid>https://dev.to/c33s/dear-javascript-webdevelopers-please-don-t-break-the-web-20go</guid>
      <description>&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sysysssysssysyssssssyssssssssssssssssssyyysyyssysssssssossssssssssssso
yyysssssssssssssso+oosssssssssssssssssyssyyssssssssssssssssyysssssssos
ssssssssssssss/-......:+ssysssssssssssssssysssssssssssssysysyyyyysosss
sssssssssssss-........../yyyysssssssssssssssssssssssssyyyyysyyyyyyssos
sssssysssssss...........-ysssssooosssssssssssssssssysyyyyyyyyysssssooo
ssssssyysyssy+..........ossssssssssssssssssyyyyysssssysyyhysssssssssso
ssysssyyssssyy+......:+ssssssssssossssssssyysyyssssssssssssssssssssssy
syyyssyssssssss/.....-syyyyyyssssssssssysssyssysssssssssssysssssyssssy
yyssssssssssssss-.....:yssyyyssssssssssysssssssssssssssssssssyssssysss
ssssssssssssssyys-.....:syyyyyyyysoo+ssssssssssssssssssssssssysssssssy
ysssssssyyssyyysso....../yysso+/:-...-ssysssssssyyssssssssysssssssssss
syyssyysyssyssyyys+....../:-........`./sssyyyssssyssssssssssysysssssss
syyyssysssssssysssy/.............--/+osssssyssssssssssyssssssssssssyss
sssssssyysssssssssss/.`.....-:/+sssyyyssssoooysssysyssssssssssssssssss
ssssssssssssssyyysssy:`...../yyyyyyssso/:-...-/osssssssssssssssssssssy
sssssssssssssssysyssyy-......+yyoo/:--....`.....:+osssssssssssssssssss
sssysssssssssysyyyy+oys-......:--..........-.......:+sssssssssssysssss
yysssyyssyyyyyyyyy/.-sys-............--:/oos+:.......-/osssss+-:+sssss
yyyysysyyhyyyyyyy/...-syo.......--/+osysssyssso+:......--/oo:....-/sss
ysyyyyyysyyyyyyyo.....:yy+.--/+ossyysysssssyyssyso/-..............+sss
sysyssyyyyyyyyyy:.....+yyyssyyysssyyyyyssysssssysyyso:-.........-+ysss
syyysyyssssyyyss......syyyyyyyyyyyyyyyyysssssyssssyssss+:-.....:ssssss
ysyysyysssyyyyys......yyyyyyyyyyyyyssssssysssssysyyy/-/osoo:-.+ssssyss
yyyyyyyysssyyyyy......oyyyyyyyyyyyyysyssssssysysssys:...:osyooysssssyy
ssyyyyysyssyyyyy:.....-yyyyyyyyyyysysyssysssysysssss.....:syyysysyyyyy
ssyssyysssysysyyo....../syyyyyyyyyyyyyysssssyssssys:.....+yyyyyyyyyyyy
ssssssyyyssyyyyyy/....../syyyyyyssyyyyssssssssssss:.....-syyyyyyyyssss
ssssssyysyysyssyyy/......-+syyyyyyyyssyyssysssys+-.....-syyyyyyyysssss
sssssyssssyyssssyyyo-......-:osyysyyyyysssyyss+:......-syyyyssshssssss
sssssssyyssyysyyyyyys/........-:+ossssyyso+/-......../sssyysssssysssss
ssssssssyyyysssyyyyyyys/-............:yo..........-/osssysyssyssyyssys
sssssssysssyyyyyyyyyyyyyso/-..........yo.......-:osysssssssssssyssysss
ssssssyssyyyyyysyyssyyyyyyyys+/:--...-s/..--/+ossssyssssssssssssysysss
sssssssssyyyyysyyyyyyyyyyyyyyyyyyssoosssosssyssyssyssssssssssssssssyss
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;actually i wanted to write about emco ping monitor but login with email was disabled again here, so i wrote a &lt;a href="https://dev.to/c33s/why-social-logins-are-a-bad-idea-dev-to-please-keep-your-native-login-enabled-3din"&gt;post about it&lt;/a&gt; only to notice that the upload image button does not do anything anymore on my waterfox, so i took this as sign to write this post. until the picture upload is fixed, i will have to stick to ascii art.&lt;/p&gt;

&lt;p&gt;i use waterfox classic. why? because it allows me to customize itself to fit my needs (it runs the legacy firefox addons). additional i have a quite "strict" browser (umatrix, ublock and other security enhancing addons) because i try to have a little bit more security.&lt;/p&gt;

&lt;p&gt;i am used to see a white page on accessing a new url or even "better" to see the content like a phone number or opening times for half a second, only to see it disappear after the css file was loaded which hides the content 🤦, to wait to load more stuff and javascript, which unhides the content again (after my old smartphone loaded additional 30sec (no not everybody has the latest iphone)).&lt;/p&gt;

&lt;p&gt;but until a few month ago, allowing some javascript or cookie was enough. now even allowing most javascript expect tracking and ads leads to being not able to submit a simple form with two fields, click a button to upload a file or click a link.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;on amazon.de i can't access some sections of my business account (like my connected payment method for prime)&lt;/li&gt;
&lt;li&gt;on github from time to time parts of the content is not accessible (tabbed)&lt;/li&gt;
&lt;li&gt;on gitlab, which i use most of the time: from &lt;a href="https://gitlab.com/gitlab-org/gitlab/-/issues/239357" rel="noopener noreferrer"&gt;complete empty content section&lt;/a&gt; (fixed from the awesome gitlab developers) to contact forms i can't submit or &lt;a href="https://gitlab.com/gitlab-org/gitlab/-/issues/267539" rel="noopener noreferrer"&gt;code lint forms where i can't enter content&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;welcome to javascript-flash - please install the latest google-javascript-flash player (=google chrome) to continue.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;for me, the web breaks apart. more and more webdevelopers and their chief executives give a fu!k about &lt;strong&gt;basic&lt;/strong&gt; webstandards and simply require the latest browser. for developers it's because they want use their favorite javascript framework with its latest features. chief executives only look at conversion rates and don't care about 1.5% firefox user on their webpage if the rest uses auto updated chrome and safaris, even if the webpage simple does not work.&lt;/p&gt;

&lt;p&gt;maybe those executives will have a fun time as soon as &lt;a href="https://www.dailymail.co.uk/sciencetech/article-8929127/Secure-websites-stop-loading-phones-running-Android-7-1-older-September-2021.html" rel="noopener noreferrer"&gt;let's encrypts certificates does not work any more on older android phones&lt;/a&gt; found in the telegram channel &lt;a href="https://t.me/NoGoolag/4230" rel="noopener noreferrer"&gt;NoGooLag&lt;/a&gt; (no the users still don't have the latest iphone), where suddenly firefox is the only way to get access to such a site.&lt;/p&gt;

&lt;p&gt;having no fallback to plain html is like constructing a new building in 2020 and you need to climb 30 steps over a strair to get to the front door and the constructor is looking at a wheelchair user who is staring at the first step searching for an elevator (=plain html submitable forms). the only comment: sorry you are only in the 1.5%, you don't matter.&lt;/p&gt;

&lt;p&gt;it sould be the target to make the web most accessible and not to rush to the newest features and latest versions.&lt;/p&gt;

&lt;p&gt;i am in the lucky situation, that i can switch browser and i am not tied to a wheelchair but switching browser or enable javascript is always at the cost of security. everybody is tracking, the criminal energy of humanity is really endless. so allowing javascript &lt;strong&gt;really&lt;/strong&gt; openes many attack vectors. today a browser is the new operation system. &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;so browsers are almost operating systems if they want to keep up. Nowadays you only find few websites, but plenty webapps&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://gitlab.com/gitlab-org/gitlab/-/issues/239357#note_400422071" rel="noopener noreferrer"&gt;Izzy&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;simple text and forms are digged behind cpu and ram eating javascript which can access my graphic card, mine bitcoin in background and other things which are simply not required to access text and some forms. but i can't (easily) restrict sections of javascript, it's all or nothing. there is no unobtrusive javascript and webpages are not barrier-free (have you ever used a screenreader or used your page with a different browser or disabled javascript or used a phone like a samsuns s4 mini to view the webpage you created?).&lt;/p&gt;

&lt;p&gt;moonchild from palemoon wrote an &lt;a href="https://forum.palemoon.org/viewtopic.php?f=1&amp;amp;t=24004" rel="noopener noreferrer"&gt;open letter to web developers&lt;/a&gt; which brings up some points which are quite dangerous if we stay on this path of browser monoculture and version rush.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Google currently controls 95% of the web due to its Blink engine in Chromium, and hence has no issue in forcing its own standards and initiatives without thinking of other browsers. Google plans – for example – to introduce what’s known as Web Bundles, breaking all privacy efforts and ad-blocking capabilities in the last two decades. But if Mozilla is ever to compete, then it needs to fix all of this mess.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;quote &lt;a href="https://fosspost.org/mozilla-go-unfck-yourself/" rel="noopener noreferrer"&gt;from m.hanny sabbagh&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;also a good reading from jeff huang about webpages &lt;a href="https://jeffhuang.com/designed_to_last/" rel="noopener noreferrer"&gt;designed to last&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;dear javascript developers, i beg you - please build unobtrusive and barrier free webpages, where the basic content is also visible without javascript, where screenreaders easily work, where my browser does not freeze for 3sec just because i leave a tab, where i can simply click a button which submits a form (without javascript) and where i can right click a link to open it in a new tab. &lt;/p&gt;

&lt;p&gt;please don't break the web&lt;/p&gt;

&lt;p&gt;cover image by Ann H &lt;a href="https://www.pexels.com/photo/photo-of-pwd-sign-3095954/" rel="noopener noreferrer"&gt;https://www.pexels.com/photo/photo-of-pwd-sign-3095954/&lt;/a&gt; converted with &lt;a href="https://www.text-image.com/convert/" rel="noopener noreferrer"&gt;https://www.text-image.com/convert/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>unobtrusive</category>
      <category>browser</category>
      <category>html</category>
    </item>
    <item>
      <title>why social logins are a bad idea - dev.to please keep your native login enabled</title>
      <dc:creator>Julian</dc:creator>
      <pubDate>Sun, 15 Nov 2020 18:19:02 +0000</pubDate>
      <link>https://dev.to/c33s/why-social-logins-are-a-bad-idea-dev-to-please-keep-your-native-login-enabled-3din</link>
      <guid>https://dev.to/c33s/why-social-logins-are-a-bad-idea-dev-to-please-keep-your-native-login-enabled-3din</guid>
      <description>&lt;p&gt;today i wanted to log into dev.to and to a little story about emco ping monitor and i wasn't able to login with my email. &lt;br&gt;
sadly this again happened to me.&lt;/p&gt;

&lt;p&gt;i &lt;a href="https://github.com/forem/forem/issues/11269" rel="noopener noreferrer"&gt;asked for the feature to login by gitlab and email in july 2018&lt;/a&gt;. near end of october of this year i noticed that it was possible to login by email. :hoooooraaaay: i immediately added it to my account and disconnected github.&lt;/p&gt;

&lt;p&gt;my next step would have been to contact dev.to to remove my still stored github email address but luckily it was no priority for me.&lt;/p&gt;

&lt;p&gt;at 4th of november i wanted to login to dev.to but the email login form was simply gone. my github account email was still in the database of dev.to so i was able to reconnect the gitlab account and was able to login. &lt;/p&gt;

&lt;p&gt;andy zhao wrote in the &lt;a href="https://github.com/forem/forem/issues/11269" rel="noopener noreferrer"&gt;ticket&lt;/a&gt; that it was by accident and that the login is back online. this time i kept my github account connected.&lt;/p&gt;

&lt;p&gt;as i wrote above today i wanted to log into dev.to to write a some notes. email login -&amp;gt; gone.&lt;/p&gt;

&lt;p&gt;why?!&lt;/p&gt;

&lt;p&gt;it is crazy, the login by email part should always be first citizen on all sites. with a native password reset function and so on.&lt;/p&gt;

&lt;p&gt;social login is nice to have but it is dangerous. it centralizes the net and your are dependent on a multi million dollar company (and their "AI" algorithms) to be "ok" with you. if they are suddenly not ok with you, because of what you say or what you wrote, your race, your age, your health, your sexual orientation, your religion, whatever, they simply lock you out. &lt;br&gt;
without telling you the exact reason and most of the time without any way to recover your account if you don't get support from the masses or some person with influence. i you don't have one of those you are doomed.&lt;/p&gt;

&lt;p&gt;"reallife" (haven't verified them by myself) examples why it is simply a bad idea:&lt;/p&gt;




&lt;blockquote&gt;
&lt;p&gt;My Facebook account was just banned due to "Community Standards". I created the account just for my Oculus Quest 2 and don't post anything on it&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://www.reddit.com/r/oculus/comments/jqh1bg/i_now_have_an_oculus_paperweight/" rel="noopener noreferrer"&gt;mud_juggler&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Awesome, so for the Oculus 2 all you have to do is have a functioning Facebook account and when you need any tech support, a Twitter account to complain publicly and finally get things fixed. 2020 technology....&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://www.reddit.com/r/oculus/comments/jqh1bg/i_now_have_an_oculus_paperweight/gbnuxtx/" rel="noopener noreferrer"&gt;phishstik&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Roughley lost data including emails, photos, documents and diagrams that he had developed for his work. "My account and all its data is gone," he said.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;quote from the &lt;a href="https://www.businessinsider.com/google-users-locked-out-after-years-2020-10" rel="noopener noreferrer"&gt;article&lt;/a&gt; written by Chris Stokel-Walker from businessinsider.com&lt;/p&gt;




&lt;p&gt;so gurjeet singh sums it up quite perfect in is &lt;a href="https://gurjeet.singh.im/blog/never-use-google-to-sign-in" rel="noopener noreferrer"&gt;article&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Never Use Google to Sign-In"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;this is a quote which i can simply sign. i myself have a problem with such a big company which simply denys me a service which they advertised to my without giving me a reason but thats another story.&lt;/p&gt;

&lt;p&gt;please dev.to team keep your email login enabled and don't disable it again. treat it as first citizen and help to decentralize the web.&lt;/p&gt;

&lt;p&gt;cover image would have been by &lt;a href="https://www.pexels.com/photo/light-man-people-building-5369188/" rel="noopener noreferrer"&gt;Enrico Hänel&lt;/a&gt; if dev.to wouldn't require me to switch to another browser to use the upload button. sigh the web is breaking apart. the internet explorer only from the 90ies is now a chrom (OS) only (why the hell my browser needs access to so many os functions and keeps loosing such simple functions as a regular upload form). looks like there is another story...&lt;/p&gt;

</description>
      <category>security</category>
      <category>decentralize</category>
      <category>sociallogin</category>
      <category>devto</category>
    </item>
    <item>
      <title>Stop use geoip for language detection</title>
      <dc:creator>Julian</dc:creator>
      <pubDate>Fri, 03 Apr 2020 20:54:25 +0000</pubDate>
      <link>https://dev.to/c33s/stop-use-geoip-for-language-detection-1914</link>
      <guid>https://dev.to/c33s/stop-use-geoip-for-language-detection-1914</guid>
      <description>&lt;p&gt;today i wrote a ticket at gog.com but it is also a general problem in webdevelopment. many sites use geoip to detect the language their page should be shown in. this is simply wrong.&lt;/p&gt;

&lt;h2&gt;
  
  
  to make it simple, i just pasted the feedback text i posted them here:
&lt;/h2&gt;

&lt;p&gt;i live in austria, in austria we talk german but for software i prefer english at all costs. all my devices and software are configured to use english. my operation system, my steam client, my games and also my browser.&lt;/p&gt;

&lt;p&gt;i know that steam is bad and you are the good ones but you give me a really bad experience if i visit your website. if i am not logged in (and this is the default because i always clear cookies), the site in german. i don't like german in this context. i hate it. &lt;br&gt;
it feels as if i tell you what i want (with my browser correctly setup to send your site an english locale request) and you simply don't listen. steam is also not save from that, they sometimes play the wrong game trailer - as soon as i read german subtitles or someone talks german in a gametrailer i close the store page - not interested any more. &lt;/p&gt;

&lt;p&gt;please stop using geoip and listen to the browsers locales. it is a very bad move made by some websites but it's simply wrong. the users operation system is most of the time configured in the language which the user prefers and so all software also gets installed in this language including the browser. so simply respect that.&lt;br&gt;
imagine a user is from russia, lives in austria and only speaks russian and english, the person could be confused with a german webpage. even worse would be if i travel to japan and you would show me your webpage in japanese. maybe i wouldn't even be able to find the language switch button.&lt;/p&gt;

&lt;p&gt;so again: please stop using geoip for language detection, use browser locales and make me smile and have a good experience when i visit your website.&lt;/p&gt;

&lt;p&gt;thanks for reading&lt;/p&gt;

&lt;p&gt;regards&lt;br&gt;
j.&lt;/p&gt;

&lt;p&gt;links:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;cover image by stevepb &lt;a href="https://pixabay.com/photos/confused-muddled-illogical-880735/" rel="noopener noreferrer"&gt;https://pixabay.com/photos/confused-muddled-illogical-880735/&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>geoip</category>
      <category>locale</category>
      <category>development</category>
      <category>feedback</category>
    </item>
    <item>
      <title>Covid-19: Not much to say but stay at home!</title>
      <dc:creator>Julian</dc:creator>
      <pubDate>Sat, 21 Mar 2020 21:35:07 +0000</pubDate>
      <link>https://dev.to/c33s/covid-19-not-much-to-say-but-stay-at-home-12d5</link>
      <guid>https://dev.to/c33s/covid-19-not-much-to-say-but-stay-at-home-12d5</guid>
      <description>&lt;p&gt;Visual Dashboard (desktop): &lt;a href="https://www.arcgis.com/apps/opsdashboard/index.html#/bda7594740fd40299423467b48e9ecf6" rel="noopener noreferrer"&gt;https://www.arcgis.com/apps/opsdashboard/index.html#/bda7594740fd40299423467b48e9ecf6&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Visual Dashboard (mobile): &lt;a href="http://www.arcgis.com/apps/opsdashboard/index.html#/85320e2ea5424dfaaa75ae62e5c06e61" rel="noopener noreferrer"&gt;http://www.arcgis.com/apps/opsdashboard/index.html#/85320e2ea5424dfaaa75ae62e5c06e61&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;2019 Novel Coronavirus COVID-19 (2019-nCoV) Data Repository by Johns Hopkins CSSE: &lt;a href="https://github.com/CSSEGISandData/COVID-19" rel="noopener noreferrer"&gt;https://github.com/CSSEGISandData/COVID-19&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;edit (new info links):&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://medium.com/@tomaspueyo/coronavirus-act-today-or-people-will-die-f4d3d9cd99ca" rel="noopener noreferrer"&gt;https://medium.com/@tomaspueyo/coronavirus-act-today-or-people-will-die-f4d3d9cd99ca&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://medium.com/@tomaspueyo/coronavirus-the-hammer-and-the-dance-be9337092b56" rel="noopener noreferrer"&gt;https://medium.com/@tomaspueyo/coronavirus-the-hammer-and-the-dance-be9337092b56&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Epidemic Calculator &lt;a href="http://gabgoh.github.io/COVID/index.html" rel="noopener noreferrer"&gt;http://gabgoh.github.io/COVID/index.html&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

</description>
    </item>
    <item>
      <title>Doctrine simple event listener are not Interface compatible</title>
      <dc:creator>Julian</dc:creator>
      <pubDate>Sun, 05 Jan 2020 22:28:02 +0000</pubDate>
      <link>https://dev.to/c33s/doctrine-simple-event-listener-are-not-interface-compatible-ioj</link>
      <guid>https://dev.to/c33s/doctrine-simple-event-listener-are-not-interface-compatible-ioj</guid>
      <description>&lt;p&gt;the old way of defining event listener for doctine was like this:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;service.yaml&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;C33s\Doctrine\Listener\Entity\InjectFeatureManagerListener&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;tags&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
        &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="pi"&gt;{&lt;/span&gt; &lt;span class="nv"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="nv"&gt;doctrine.event_listener&lt;/span&gt;&lt;span class="pi"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;event&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="nv"&gt;postLoad&lt;/span&gt;&lt;span class="pi"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;connection&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="nv"&gt;default&lt;/span&gt;&lt;span class="pi"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;priority&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="nv"&gt;0&lt;/span&gt; &lt;span class="pi"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;where the listener look like that:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;InjectFeatureManagerListener&lt;/span&gt;
&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="cd"&gt;/**
     * @var FeatureManagerInterface
     */&lt;/span&gt;
    &lt;span class="k"&gt;protected&lt;/span&gt; &lt;span class="nv"&gt;$featureManager&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

    &lt;span class="cd"&gt;/**
     * @param FeatureManagerInterface $featureManager
     *
     */&lt;/span&gt;
    &lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="k"&gt;function&lt;/span&gt; &lt;span class="n"&gt;__construct&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;FeatureManagerInterface&lt;/span&gt; &lt;span class="nv"&gt;$featureManager&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="nv"&gt;$this&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;featureManager&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;$featureManager&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;

    &lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="k"&gt;function&lt;/span&gt; &lt;span class="n"&gt;postLoad&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;LifecycleEventArgs&lt;/span&gt; &lt;span class="nv"&gt;$args&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="nv"&gt;$entity&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;$args&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;getEntity&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
        &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$entity&lt;/span&gt; &lt;span class="k"&gt;instanceof&lt;/span&gt; &lt;span class="nc"&gt;FeatureFlagable&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
            &lt;span class="nv"&gt;$entity&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;setFeatureFlagManager&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$this&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;featureManager&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
        &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;btw. don't do that. don't inject stuff into your entity. its a bad practice.&lt;/p&gt;

&lt;p&gt;this way the listener is called for each entity and each entity is checked against the &lt;code&gt;FeatureFlagable&lt;/code&gt; interface. so i have the nice feature of injecting the feature manager in each entity which implements the &lt;code&gt;FeatureFlagable&lt;/code&gt; interface no matter which entity it is.&lt;/p&gt;

&lt;p&gt;with the new way to define the listener &lt;a href="https://symfony.com/blog/new-in-symfony-4-4-simpler-event-listeners" rel="noopener noreferrer"&gt;https://symfony.com/blog/new-in-symfony-4-4-simpler-event-listeners&lt;/a&gt; its getting shorter but is incompatible with interfaces:&lt;/p&gt;

&lt;p&gt;the following config will not work because no entity with the name &lt;code&gt;FeatureFlagable&lt;/code&gt; exists.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;service.yaml&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;C33s\Doctrine\Listener\Entity\InjectFeatureManagerListener&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;tags&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
        &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="pi"&gt;{&lt;/span&gt; &lt;span class="nv"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="nv"&gt;doctrine.orm.entity_listener&lt;/span&gt;&lt;span class="pi"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;event&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="nv"&gt;postLoad&lt;/span&gt;&lt;span class="pi"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;entity&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="nv"&gt;C33s\Doctrine\Entity\Interfaces\FeatureFlagable&lt;/span&gt;&lt;span class="pi"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;connection&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="nv"&gt;default&lt;/span&gt;&lt;span class="pi"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;priority&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="nv"&gt;0&lt;/span&gt;&lt;span class="pi"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;lazy&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="nv"&gt;true&lt;/span&gt; &lt;span class="pi"&gt;}&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;changing the code by adding the explicit entity name &lt;code&gt;App\Entity\News&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="nn"&gt;...&lt;/span&gt;
        &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="pi"&gt;{&lt;/span&gt; &lt;span class="nv"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="nv"&gt;doctrine.orm.entity_listener&lt;/span&gt;&lt;span class="pi"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;event&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="nv"&gt;postLoad&lt;/span&gt;&lt;span class="pi"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;entity&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="nv"&gt;App\Entity\News&lt;/span&gt;&lt;span class="pi"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;connection&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="nv"&gt;default&lt;/span&gt;&lt;span class="pi"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;priority&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="nv"&gt;0&lt;/span&gt;&lt;span class="pi"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;lazy&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="nv"&gt;true&lt;/span&gt; &lt;span class="pi"&gt;}&lt;/span&gt;
&lt;span class="nn"&gt;...&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;make it work again but i would need to tag all my entities manually even if they are already "marked"/"tagged" with the &lt;code&gt;FeatureFlagable&lt;/code&gt; interface.&lt;/p&gt;

&lt;p&gt;i haven't digged too deep into the doctrine event listener code just came to &lt;code&gt;vendor/doctrine/doctrine-bundle/DependencyInjection/Compiler/EntityListenerPass.php&lt;/code&gt;. maybe its an easyfix. would be nice to be able to use interfaces again.&lt;/p&gt;

</description>
      <category>php</category>
      <category>symfony</category>
      <category>doctrine</category>
    </item>
    <item>
      <title>Symplify - hidden treasure for symfony development</title>
      <dc:creator>Julian</dc:creator>
      <pubDate>Sat, 04 Jan 2020 17:27:40 +0000</pubDate>
      <link>https://dev.to/c33s/symplify-hidden-treasure-for-symfony-development-2non</link>
      <guid>https://dev.to/c33s/symplify-hidden-treasure-for-symfony-development-2non</guid>
      <description>&lt;p&gt;accidental i stumbled upon this great gems created by &lt;a href="https://www.tomasvotruba.cz/" rel="noopener noreferrer"&gt;tomas votruba&lt;/a&gt;. i have only tested SmartFileSystem so far but this gem really helped me out working on my pull request on twigcs.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;It also fixes WTF behavior of Symfony\Component\Finder\SplFileInfo. Which one? When you run e.g. vendor/bin/ecs check src and use Finder, the getRelativeFilePath() in Symfony now returns all the relative paths to src. Which is useless, mainly with multiple dirs like: vendor/bin/ecs check src tests both containing file Post.php.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;quote from &lt;a href="https://github.com/Symplify/SmartFileSystem/blob/master/README.md" rel="noopener noreferrer"&gt;https://github.com/Symplify/SmartFileSystem/blob/master/README.md&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;also have a look at his blog, there you also find things to read which maybe interesting for you &lt;a href="https://www.tomasvotruba.cz/" rel="noopener noreferrer"&gt;https://www.tomasvotruba.cz/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;the following text is copied from &lt;a href="https://github.com/Symplify/Symplify/blob/master/README.md" rel="noopener noreferrer"&gt;https://github.com/Symplify/Symplify/blob/master/README.md&lt;/a&gt; and lists up the cool tools/packages/bundles tomas created:&lt;/p&gt;

&lt;h2&gt;
  
  
  Coding Standard Utils
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;&lt;a href="https://github.com/Symplify/EasyCodingStandard" rel="noopener noreferrer"&gt;Easy Coding Standard&lt;/a&gt;&lt;/strong&gt; - The easiest way to start a coding standard in your project. Easy, simple and intuitive. Combines both &lt;a href="https://github.com/friendsofphp/php-cs-fixer" rel="noopener noreferrer"&gt;PHP-CS-Fixer&lt;/a&gt; and &lt;a href="https://github.com/squizlabs/PHP_CodeSniffer" rel="noopener noreferrer"&gt;PHP_CodeSniffer&lt;/a&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;&lt;a href="https://github.com/Symplify/CodingStandard" rel="noopener noreferrer"&gt;Coding Standard&lt;/a&gt;&lt;/strong&gt; - &lt;a href="http://ocramius.github.io/blog/when-to-declare-classes-final/" rel="noopener noreferrer"&gt;Final interface&lt;/a&gt;, &lt;a href="https://www.tomasvotruba.cz/blog/2017/08/21/5-useful-rules-from-symplify-coding-standard/#3-class-constant-fixer" rel="noopener noreferrer"&gt;&lt;code&gt;::class&lt;/code&gt; Constant&lt;/a&gt; and other useful Checkers for &lt;a href="https://github.com/friendsofphp/php-cs-fixer" rel="noopener noreferrer"&gt;PHP-CS-Fixer&lt;/a&gt; and &lt;a href="https://github.com/squizlabs/PHP_CodeSniffer" rel="noopener noreferrer"&gt;PHP_CodeSniffer&lt;/a&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Symfony Utils
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;&lt;a href="https://github.com/Symplify/AutoBindParameter" rel="noopener noreferrer"&gt;AutoBindParameter&lt;/a&gt;&lt;/strong&gt; - Auto bind parameters for your Symfony applications&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;&lt;a href="https://github.com/Symplify/AutowireArrayParameter" rel="noopener noreferrer"&gt;AutowireArrayParameter&lt;/a&gt;&lt;/strong&gt; - Autowire Array Parameters for Symfony applications&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;&lt;a href="https://github.com/Symplify/Autodiscovery" rel="noopener noreferrer"&gt;Autodiscovery&lt;/a&gt;&lt;/strong&gt; - Forget manual registration of translations, templates, mappings and routes in Symfony Application&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;&lt;a href="https://github.com/Symplify/FlexLoader" rel="noopener noreferrer"&gt;FlexLoader&lt;/a&gt;&lt;/strong&gt; - Keep your Symfony Kernel slim again and let FlexLoader load all the configs&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;&lt;a href="https://github.com/Symplify/PackageBuilder" rel="noopener noreferrer"&gt;PackageBuilder&lt;/a&gt;&lt;/strong&gt; - Speed up your package DI Containers integration and Console apps to Symfony&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;&lt;a href="https://github.com/Symplify/SmartFileSystem" rel="noopener noreferrer"&gt;SmartFileSystem&lt;/a&gt;&lt;/strong&gt; - &lt;code&gt;SplFileInfo&lt;/code&gt; on Steroids&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Maintainer Utils
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;&lt;a href="https://github.com/Symplify/ChangelogLinker" rel="noopener noreferrer"&gt;ChangelogLinker&lt;/a&gt;&lt;/strong&gt; - Why write &lt;code&gt;CHANGELOG.md&lt;/code&gt;, when you can generate it&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;&lt;a href="https://github.com/Symplify/MonorepoBuilder" rel="noopener noreferrer"&gt;MonorepoBuilder&lt;/a&gt;&lt;/strong&gt; - Validate, split, release and maintain Monorepo like a boss&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;&lt;a href="https://github.com/Symplify/Statie" rel="noopener noreferrer"&gt;Statie&lt;/a&gt;&lt;/strong&gt; - &lt;a href="https://www.statie.org" rel="noopener noreferrer"&gt;www.statie.org&lt;/a&gt; - Static website generator in PHP with Twig/Latte, that fuels &lt;a href="https://github.com/pehapkari/pehapkari.cz" rel="noopener noreferrer"&gt;Pehapkari.cz&lt;/a&gt; and &lt;a href="https://github.com/tomasvotruba/tomasvotruba.cz" rel="noopener noreferrer"&gt;TomasVotruba.cz&lt;/a&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  CLI Utils
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://github.com/Symplify/SetConfigResolver" rel="noopener noreferrer"&gt;SetConfigResolver&lt;/a&gt;&lt;/strong&gt; - Loads configs to you with CLI --config, -c, --set, -s or sets parameter&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Migration Utils
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;&lt;a href="https://github.com/Symplify/LatteToTwigConverter" rel="noopener noreferrer"&gt;LatteToTwigConverter&lt;/a&gt;&lt;/strong&gt; - Converts Latte templates to Twig&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;&lt;a href="https://github.com/Symplify/NeonToYamlConverter" rel="noopener noreferrer"&gt;NeonToYamlConverter&lt;/a&gt;&lt;/strong&gt; - Converts NEON files to YAML&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;links:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;cover image by alfapp &lt;a href="https://pixabay.com/photos/money-coins-gold-specie-1477064/" rel="noopener noreferrer"&gt;https://pixabay.com/photos/money-coins-gold-specie-1477064/&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>php</category>
      <category>symfony</category>
    </item>
    <item>
      <title>Failed at making tag values in a doctrine listener configurable</title>
      <dc:creator>Julian</dc:creator>
      <pubDate>Wed, 01 Jan 2020 17:07:01 +0000</pubDate>
      <link>https://dev.to/c33s/failed-at-making-tag-values-in-a-doctrine-listener-configurable-b7l</link>
      <guid>https://dev.to/c33s/failed-at-making-tag-values-in-a-doctrine-listener-configurable-b7l</guid>
      <description>&lt;p&gt;my goal was to make a bundle with a configurable doctrine listener to allow the user to configure the connection and the priority for a &lt;code&gt;postLoad&lt;/code&gt; event.&lt;/p&gt;

&lt;p&gt;i had the following listener code &lt;code&gt;service.yaml&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;C33s\Doctrine\Listener\InjectFeatureManagerListener&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;tags&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
        &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="pi"&gt;{&lt;/span&gt; &lt;span class="nv"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="nv"&gt;doctrine.event_listener&lt;/span&gt;&lt;span class="pi"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;event&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="nv"&gt;postLoad&lt;/span&gt;&lt;span class="pi"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;connection&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="nv"&gt;default&lt;/span&gt;&lt;span class="pi"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;priority&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="nv"&gt;0&lt;/span&gt; &lt;span class="pi"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;and i changed it to:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;
&lt;span class="na"&gt;C33s\Doctrine\Listener\InjectFeatureManagerListener&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;tags&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
        &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="pi"&gt;{&lt;/span&gt; &lt;span class="nv"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="nv"&gt;doctrine.event_listener&lt;/span&gt;&lt;span class="pi"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;event&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="nv"&gt;postLoad&lt;/span&gt;&lt;span class="pi"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;connection&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="s"&gt;%c33s_doctrine_extra.flagception.connection%'&lt;/span&gt;&lt;span class="pi"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;priority&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="s"&gt;%c33s_doctrine_extra.flagception.priority%'&lt;/span&gt; &lt;span class="pi"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;code&gt;Configuration.php&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="cp"&gt;&amp;lt;?php&lt;/span&gt;
&lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;Configuration&lt;/span&gt; &lt;span class="kd"&gt;implements&lt;/span&gt; &lt;span class="nc"&gt;ConfigurationInterface&lt;/span&gt;
&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="cd"&gt;/**
     * {@inheritdoc}
     */&lt;/span&gt;
    &lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="k"&gt;function&lt;/span&gt; &lt;span class="n"&gt;getConfigTreeBuilder&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
    &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="nv"&gt;$treeBuilder&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;TreeBuilder&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'c33s_doctrine_extra'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

        &lt;span class="nv"&gt;$treeBuilder&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;getRootNode&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
            &lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;addDefaultsIfNotSet&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
            &lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;children&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
                &lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;arrayNode&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'flagception'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
                    &lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;canBeEnabled&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
                    &lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;children&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
                        &lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;scalarNode&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'connection'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
                            &lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;defaultValue&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'default'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
                        &lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nb"&gt;end&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
                        &lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;integerNode&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'priority'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
                            &lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;defaultValue&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
                            &lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;info&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'to the same event (default priority = 0; higher numbers = listener is run earlier)'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
                        &lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nb"&gt;end&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
                    &lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nb"&gt;end&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
                &lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nb"&gt;end&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
            &lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nb"&gt;end&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
        &lt;span class="p"&gt;;&lt;/span&gt;

        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nv"&gt;$treeBuilder&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;code&gt;C33sDoctrineExtraExtension.php&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="cp"&gt;&amp;lt;?php&lt;/span&gt;
&lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;C33sDoctrineExtraExtension&lt;/span&gt; &lt;span class="kd"&gt;extends&lt;/span&gt; &lt;span class="nc"&gt;Extension&lt;/span&gt;
&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="cd"&gt;/**
     * {@inheritdoc}
     */&lt;/span&gt;
    &lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="k"&gt;function&lt;/span&gt; &lt;span class="n"&gt;load&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;array&lt;/span&gt; &lt;span class="nv"&gt;$configs&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kt"&gt;ContainerBuilder&lt;/span&gt; &lt;span class="nv"&gt;$container&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="nv"&gt;$configuration&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;Configuration&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
        &lt;span class="nv"&gt;$config&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;$this&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;processConfiguration&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$configuration&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;$configs&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

        &lt;span class="nv"&gt;$loader&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;Loader\YamlFileLoader&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$container&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;FileLocator&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;__DIR__&lt;/span&gt;&lt;span class="mf"&gt;.&lt;/span&gt;&lt;span class="s1"&gt;'/../Resources/config'&lt;/span&gt;&lt;span class="p"&gt;));&lt;/span&gt;

        &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt; &lt;span class="o"&gt;===&lt;/span&gt; &lt;span class="nv"&gt;$config&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;'flagception'&lt;/span&gt;&lt;span class="p"&gt;][&lt;/span&gt;&lt;span class="s1"&gt;'enabled'&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
            &lt;span class="nv"&gt;$container&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;setParameter&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'c33s_doctrine_extra.flagception.connection'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;$config&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;'flagception'&lt;/span&gt;&lt;span class="p"&gt;][&lt;/span&gt;&lt;span class="s1"&gt;'connection'&lt;/span&gt;&lt;span class="p"&gt;]);&lt;/span&gt;
            &lt;span class="nv"&gt;$container&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;setParameter&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'c33s_doctrine_extra.flagception.priority'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;$config&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;'flagception'&lt;/span&gt;&lt;span class="p"&gt;][&lt;/span&gt;&lt;span class="s1"&gt;'priority'&lt;/span&gt;&lt;span class="p"&gt;]);&lt;/span&gt;
            &lt;span class="nv"&gt;$loader&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;load&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'entity_feature_manager_injector.yaml'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
        &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="c1"&gt;//        $loader-&amp;gt;load('services.yaml');&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;which failed with:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Fatal error: Uncaught Symfony\Component\Debug\Exception\FatalThrowableError: Cannot unpack array with string keys in ...\vendor\symfony\doctrine-bridge\DependencyInjection\CompilerPass\RegisterEventListenersAndSubscribersPass.php on line 144

Symfony\Component\Debug\Exception\FatalThrowableError: Cannot unpack array with string keys in ...\vendor\symfony\doctrine-bridge\DependencyInjection\CompilerPass\RegisterEventListenersAndSubscribersPass.php on line 144

Call Stack:
    2.3161   24377048   1. Symfony\Component\Debug\ErrorHandler-&amp;gt;handleException() ...\vendor\symfony\debug\ErrorHandler.php:0
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;digging into &lt;code&gt;RegisterEventListenersAndSubscribersPass&lt;/code&gt; showed me that the parameters aren't resolved yet.&lt;/p&gt;

&lt;p&gt;this is because the doctrines compiler pass &lt;code&gt;RegisterEventListenersAndSubscribersPass&lt;/code&gt; which is instantiated in &lt;code&gt;DoctrineBundle&lt;/code&gt; is instantiated with &lt;code&gt;PassConfig::TYPE_BEFORE_OPTIMIZATION&lt;/code&gt; pass and in &lt;code&gt;Symfony\Component\DependencyInjection\Compiler\PassConfig&lt;/code&gt; we can see, that the &lt;code&gt;ResolveParameterPlaceHoldersPass&lt;/code&gt; is a &lt;code&gt;PassConfig::TYPE_OPTIMIZE&lt;/code&gt; pass. which is executed after &lt;code&gt;RegisterEventListenersAndSubscribersPass&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;so no easy configureable doctrine listeners -.- &lt;/p&gt;

&lt;p&gt;links:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;cover image by Free-Photos &lt;a href="https://pixabay.com/photos/glass-shattered-window-destruction-984457/" rel="noopener noreferrer"&gt;https://pixabay.com/photos/glass-shattered-window-destruction-984457/&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>symfony</category>
      <category>php</category>
      <category>doctrine</category>
    </item>
    <item>
      <title>Full Doctrine configuration via url</title>
      <dc:creator>Julian</dc:creator>
      <pubDate>Fri, 06 Dec 2019 20:18:11 +0000</pubDate>
      <link>https://dev.to/c33s/complete-doctrine-configuration-via-url-4naf</link>
      <guid>https://dev.to/c33s/complete-doctrine-configuration-via-url-4naf</guid>
      <description>&lt;p&gt;most of the time you need to set the following variables:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;doctrine:
    dbal:
        dbname:               database
        host:                 localhost
        port:                 1234
        user:                 user
        password:             secret
        driver:               pdo_mysql
        server_version:       '5.6'
        charset:              UTF8
        url:                  mysql://db_user:db_password@127.0.0.1:3306/db_name
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://symfony.com/doc/current/reference/configuration/doctrine.html" rel="noopener noreferrer"&gt;https://symfony.com/doc/current/reference/configuration/doctrine.html&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;there are quite a lot settings to configure doctrine in symfony. if you want to be flexible, your .env file or your &lt;br&gt;
environment variables get increased by many variables.&lt;/p&gt;

&lt;p&gt;the main problem is that if you want to use sqlite for tests and mysql for dev &amp;amp; prod you need to define the &lt;code&gt;charset&lt;/code&gt; and &lt;br&gt;
the &lt;code&gt;server_version&lt;/code&gt;. where sqlite needs &lt;code&gt;UTF8&lt;/code&gt; and mysql &lt;code&gt;UTF8MB4&lt;/code&gt;. also mysql needs the &lt;code&gt;server_version&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;an important info is, that url overwrites all other settings. so if your url starts with &lt;code&gt;mysql:&lt;/code&gt; you don't need to set &lt;br&gt;
the &lt;code&gt;driver&lt;/code&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;A URL with connection information; any parameter value parsed from this string will override explicitly set parameters&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;info from &lt;code&gt;Configuration.php&lt;/code&gt; of doctrine-bundle&lt;/p&gt;

&lt;p&gt;a thing which is well hidden, is that doctrine supports query parameters, so you can reduce the config to this:&lt;/p&gt;

&lt;p&gt;.env&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;DATABASE_URL=sqlite:///%kernel.project_dir%/var/data.sqlite?charset=UTF8
#DATABASE_URL=mysql://db_user:db_password@127.0.0.1:3306/db_name?charset=UTF8MB4&amp;amp;server_version=5.6
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;with this dotenv setting you also set the charset and the server version&lt;/p&gt;

&lt;p&gt;so the other settings from above are reduced to this:&lt;/p&gt;

&lt;p&gt;doctrine.yaml&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;doctrine:
    dbal:
        url: '%env(resolve:DATABASE_URL)%'
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;links:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;cover image by MasterTux &lt;a href="https://pixabay.com/photos/adventure-treasure-map-old-world-map-2528477/" rel="noopener noreferrer"&gt;https://pixabay.com/photos/adventure-treasure-map-old-world-map-2528477/&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>php</category>
      <category>symfony</category>
      <category>doctrine</category>
    </item>
    <item>
      <title>[Feedback] server-for-symfony-flex: version rush</title>
      <dc:creator>Julian</dc:creator>
      <pubDate>Thu, 05 Dec 2019 11:30:14 +0000</pubDate>
      <link>https://dev.to/c33s/feedback-server-for-symfony-flex-version-rush-3dfc</link>
      <guid>https://dev.to/c33s/feedback-server-for-symfony-flex-version-rush-3dfc</guid>
      <description>&lt;p&gt;&lt;a href="https://github.com/moay/server-for-symfony-flex/pull/42#issuecomment-562089136" rel="noopener noreferrer"&gt;https://github.com/moay/server-for-symfony-flex/pull/42#issuecomment-562089136&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;maybe a softer approach, by reverting the php7.2 requirement (which is maybe not even required) instead of removing php7.1 from the matrix, would save some people from trouble (in this case it is not that problem because its and independed full app)&lt;/p&gt;

&lt;p&gt;the rush for new versions it is really terrible for people which use the lts version of symfony. even 4.4, which was released a short time ago, &lt;a href="https://github.com/symfony/website-skeleton/blob/4.4/composer.json" rel="noopener noreferrer"&gt;only requires php 7.1&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;of course i know that people should update because php 7.1 is not supported any more but to be realistic, people still use php 5.6 because their apps are not compatible with higher versions and there is no time and/or budget to upgrade the app. Rasmus Lerdorf on phpday 2019 Verona May 10-11th, asking his audience who is using php 5.x (watch at least min 26:08-26:45)&lt;br&gt;
&lt;a href="https://www.youtube.com/watch?v=wCZ5TJCBWMg&amp;amp;t=1568" rel="noopener noreferrer"&gt;https://www.youtube.com/watch?v=wCZ5TJCBWMg&amp;amp;t=1568&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;as far as i know debian (i only found &lt;a href="https://askubuntu.com/questions/579002/are-all-php-security-upgrades-backported-to-ubuntu-12-04-until-2017" rel="noopener noreferrer"&gt;info about ubuntu after a quick search&lt;/a&gt;) also backports php security fixes for their supported releases. stretch ships with php7.0 and debian stretch is supported until june(?) &lt;a href="https://en.wikipedia.org/wiki/Debian_version_history#Debian_9_(Stretch)" rel="noopener noreferrer"&gt;2020&lt;/a&gt;. &lt;a href="https://wiki.debian.org/LTS" rel="noopener noreferrer"&gt;lts&lt;/a&gt; for debian stretch runs &lt;a href="https://en.wikipedia.org/wiki/Debian_version_history#Debian_9_(Stretch)" rel="noopener noreferrer"&gt;until june 2022&lt;/a&gt;. &lt;/p&gt;

&lt;p&gt;maybe such things should be included in a decision if a php should be removed from the matrix or not. a &lt;a href="https://github.com/Codeception/Codeception/issues/5532#issuecomment-530741981" rel="noopener noreferrer"&gt;similar comment&lt;/a&gt; i made at codeception :)&lt;/p&gt;

&lt;p&gt;please don't get me wrong, thank you very much for your awesome work, i love the flex server as symfony sadly decided not to opensource theirs or make private recipes possible without gibhub or without the need of installing a github app.&lt;/p&gt;

&lt;p&gt;with this comment i just want to aware developers that removing, even outdated versions, can really make people struggle but of course its your decision which version of php this app should support.&lt;/p&gt;

</description>
      <category>php</category>
      <category>versionrush</category>
    </item>
    <item>
      <title>[Feedback] codeception: version rush</title>
      <dc:creator>Julian</dc:creator>
      <pubDate>Thu, 05 Dec 2019 11:28:14 +0000</pubDate>
      <link>https://dev.to/c33s/feedback-codeception-version-rush-cb4</link>
      <guid>https://dev.to/c33s/feedback-codeception-version-rush-cb4</guid>
      <description>&lt;p&gt;&lt;a href="https://github.com/Codeception/Codeception/issues/5532#issuecomment-530741981" rel="noopener noreferrer"&gt;https://github.com/Codeception/Codeception/issues/5532#issuecomment-530741981&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;of course i understand that maintaining compat layers is very painful but dropping symfony 3.4 support is a very bad idea. &lt;/p&gt;

&lt;p&gt;symfony 3.4 is a LTS release. it is &lt;a href="https://symfony.com/roadmap/3.4" rel="noopener noreferrer"&gt;supported until nov 2020&lt;/a&gt; and gets security updates until nov 2021. &lt;/p&gt;

&lt;p&gt;it was my choice to stick with this version so i can use my time to build new things and not keeping all my projects up to date. i assume that also some companies go for LTS releases, they also want to invest their workers time into new projects instead in keeping all project up to date with the latest framework version.&lt;/p&gt;

&lt;p&gt;in the past years the "version rush" gets more and more terrible. i am not a big company, i am a one person company and really struggle to keep everything up to date. &lt;/p&gt;

&lt;p&gt;today an update is not "i make a security update and my lib, app, tool, ... is secure again and i can move on", no its you get an update with your necessary secuirity updates AND you get tons of new features and you also loose a lot of features. features you need, featrues you build upon. also many updates breaks things. a lot of people out there even don't use SemVer (or they use SemVer but like google does it for chrome).&lt;/p&gt;

&lt;p&gt;i often discuss with user why they don't update ....... (insert software/lib/app/... here) and that it is very important to update,.... but a user only want that the thing works (what it does without update) without much effort, without getting used to the new interface, without searching for the new locations for the functions and menu items. i tell them, that its very important to update... security...&lt;br&gt;
but i can understand them.&lt;/p&gt;

&lt;p&gt;without good &lt;a href="https://semver.org/" rel="noopener noreferrer"&gt;SemVer&lt;/a&gt;, &lt;a href="https://en.wikipedia.org/wiki/Long-term_support" rel="noopener noreferrer"&gt;LTS&lt;/a&gt; and &lt;a href="https://en.wikipedia.org/wiki/Backward_compatibility" rel="noopener noreferrer"&gt;BC&lt;/a&gt; layer we all get to tired to update. &lt;/p&gt;

&lt;p&gt;Rasmus Lerdorf asking his audience who is using php 5.x (watch at least min 26:08-26:45)&lt;br&gt;
&lt;a href="https://www.youtube.com/watch?v=wCZ5TJCBWMg&amp;amp;t=1568" rel="noopener noreferrer"&gt;https://www.youtube.com/watch?v=wCZ5TJCBWMg&amp;amp;t=1568&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;but thats reality.&lt;/p&gt;

&lt;p&gt;so please add a BC layer so that we can test our new and old application with your awesome testframework.&lt;/p&gt;

</description>
      <category>php</category>
      <category>versionrush</category>
    </item>
    <item>
      <title>[Feedback] Gitlab: Product Usage Tracking</title>
      <dc:creator>Julian</dc:creator>
      <pubDate>Wed, 13 Nov 2019 11:59:18 +0000</pubDate>
      <link>https://dev.to/c33s/feedback-gitlab-product-usage-tracking-5e8i</link>
      <guid>https://dev.to/c33s/feedback-gitlab-product-usage-tracking-5e8i</guid>
      <description>&lt;ul&gt;
&lt;li&gt;&lt;a href="https://gitlab.com/gitlab-com/www-gitlab-com/issues/5672#note_243535906" rel="noopener noreferrer"&gt;https://gitlab.com/gitlab-com/www-gitlab-com/issues/5672#note_243535906&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://gitlab.com/gitlab-com/www-gitlab-com/issues/5672#note_243962234" rel="noopener noreferrer"&gt;https://gitlab.com/gitlab-com/www-gitlab-com/issues/5672#note_243962234&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;... We're interested in speaking with users of Gitlab.com that have feedback regarding Telemetry on GitLab.com. ...&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;only can speak for me, i would love to give feedback but i don't do video calls and i don't want to fill out a form with my personal data (my gitlab username is a unique identifer) on third party sites which can't be trusted.&lt;/p&gt;

&lt;p&gt;the form is on a third party server (qualtrics.com) which uses cloudfront.net (=amazon) and relevantid.com to give feedback about tracking and privacy.&lt;/p&gt;

&lt;p&gt;the title of the relevantid page / imperium.com page is "The Industry Standard for Digital Fingerprinting and Data Quality"&lt;/p&gt;

&lt;p&gt;please switch to opensource tools or create a simple form by yourself (i am  sure nobody would mind a simple plain long html form without any javascript and fancy design) and host it yourself. the topic is to critical to require video recording and the use third party services which use tracking.&lt;/p&gt;

&lt;p&gt;i think i can speak for most of us "We don't want tracking"&lt;br&gt;
:(&lt;/p&gt;

</description>
      <category>feedback</category>
      <category>highstandard</category>
      <category>gitlab</category>
    </item>
  </channel>
</rss>
