<?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: Jérôme Gamez</title>
    <description>The latest articles on DEV Community by Jérôme Gamez (@jeromegamez).</description>
    <link>https://dev.to/jeromegamez</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%2F3781%2F012b9935-23b7-48d5-874d-a7cc99f37e29.png</url>
      <title>DEV Community: Jérôme Gamez</title>
      <link>https://dev.to/jeromegamez</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/jeromegamez"/>
    <language>en</language>
    <item>
      <title>After more than 20 years as a professional developer, I published my first dirty Open Source project</title>
      <dc:creator>Jérôme Gamez</dc:creator>
      <pubDate>Wed, 25 Oct 2023 17:31:52 +0000</pubDate>
      <link>https://dev.to/jeromegamez/after-more-then-20-years-i-published-my-first-dirty-project-1amn</link>
      <guid>https://dev.to/jeromegamez/after-more-then-20-years-i-published-my-first-dirty-project-1amn</guid>
      <description>&lt;p&gt;I've been a professional developer for more than half of my life, and an Open Source advocate since GitHub came to be.&lt;/p&gt;

&lt;p&gt;When people ask me "But Jérôme, I'd be embarrassed if anyone saw my code. They would think I'm a bad developer", to which I'd answer that &lt;em&gt;somebody&lt;/em&gt; will find useful, practice is progress, and they might get valuable feedback.&lt;/p&gt;

&lt;p&gt;However, I never followed my own advice. When I publish an Open Source project, it has to be "serious", I'm a professional developer and that has to show.&lt;/p&gt;

&lt;p&gt;A few years (three at the time of this post) ago, &lt;a href="https://github.com/samuelclay/NewsBlur/issues/1387" rel="noopener noreferrer"&gt;I reported an issue I had&lt;/a&gt; in the (Open Source) RSS Feedreader of my choice, &lt;a href="https://www.newsblur.com/" rel="noopener noreferrer"&gt;NewsBlur&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The categories of RSS feeds from my bookmarks service, &lt;a href="https://pinboard.in" rel="noopener noreferrer"&gt;Pinboard&lt;/a&gt;, were all concatenated to a single string instead of being displayed separately.&lt;/p&gt;

&lt;p&gt;I'm subscribed to the &lt;a href="https://pinboard.in/popular/" rel="noopener noreferrer"&gt;Pinboard Popular&lt;/a&gt; Feed. It provides posts that have been bookmarked by other Pinboard users and allows me to learn about topics I would otherwise not be aware of. &lt;/p&gt;

&lt;p&gt;As categories, among other criteria, are used to filter articles in NewsBlur (my favorite feature), this made it difficult to train Pinboard feeds to not show the ones that don't interest me.&lt;/p&gt;

&lt;p&gt;Last week, I had a little bit of time and decided I would finally tackle this.&lt;/p&gt;

&lt;p&gt;I first tried it the "professional" way: I wanted to create a PHP Pinboard SDK and then use it to parse the RSS feed and fix the categories.&lt;/p&gt;

&lt;p&gt;As it turned out, parsing RDF XML feeds is not an easy task. The native way of doing it in PHP is cumbersome, and the libraries I tried  were throwing errors.&lt;/p&gt;

&lt;p&gt;I then remembered my advice from above and did what I never did before: I made it quick and dirty.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Instead of using an HTTP client, I used &lt;code&gt;file_get_contents()&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Instead of parsing XML, I used regular expressions. (&lt;a href="https://stackoverflow.com/a/1732454/284325" rel="noopener noreferrer"&gt;You shouldn't do this&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Instead of using OOP, I didn't&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And guess what, it worked, and the code fits into one screen on my mobile phone.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxlnngvrsy9slcxho22k1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxlnngvrsy9slcxho22k1.png" alt="Screenshot of the code on my iPhone 14 Plus" width="800" height="1730"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I added a GitHub workflow that runs the script and publishes the fixed feed to GitHub pages, and subscribed to that one in NewsBlur.&lt;/p&gt;

&lt;p&gt;Done!&lt;/p&gt;

&lt;p&gt;I'm sharing this here to prove my point, because it could be useful to someone with the same problem (as unlikely as it is), and because I'm actually proud that the code is dirty.&lt;/p&gt;

&lt;p&gt;If you're interested, have a look at it, and fork the repo if you want to adapt the script to your feed needs. &lt;/p&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fassets.dev.to%2Fassets%2Fgithub-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/jeromegamez" rel="noopener noreferrer"&gt;
        jeromegamez
      &lt;/a&gt; / &lt;a href="https://github.com/jeromegamez/pinboard-for-newsblur" rel="noopener noreferrer"&gt;
        pinboard-for-newsblur
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      Fixing pinboard.in keywords to be displayed correctly in NewsBlur
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;Pinboard for NewsBlur&lt;/h1&gt;
&lt;/div&gt;
&lt;p&gt;A proxy for pinboard.in feeds that fixes the keywords to be displayed correctly in NewsBlur, periodically
published to GitHub Pages, so that I can subscribe to this feed instead of the original one.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Accompanying blog post: &lt;a href="https://dev.to/jeromegamez/after-more-then-20-years-i-published-my-first-dirty-project-1amn" rel="nofollow"&gt;After more than 20 years as a professional developer, I published my first dirty Open Source project&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Why?&lt;/h2&gt;
&lt;/div&gt;
&lt;p&gt;&lt;a href="https://pinboard.in" rel="nofollow noopener noreferrer"&gt;pinboard.in&lt;/a&gt; is the bookmarking site that I use to store links I find interesting
you can find mine at &lt;a href="https://pinboard.in/u:jeromegamez" rel="nofollow noopener noreferrer"&gt;pinboard.in/u:jeromegamez&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I also use it for its &lt;a href="https://pinboard.in/popular/" rel="nofollow noopener noreferrer"&gt;Popular Bookmarks&lt;/a&gt; - I subscribed to its &lt;a href="http://feeds.pinboard.in/rss/popular/" rel="nofollow noopener noreferrer"&gt;RSS feed&lt;/a&gt; in
&lt;a href="https://newsblur.com" rel="nofollow noopener noreferrer"&gt;NewsBlur&lt;/a&gt; and always have something interesting to read when my other feeds are
empty (they rarely are).&lt;/p&gt;
&lt;p&gt;NewsBlur is my RSS-Reader of choice, mostly because of its Site Intelligence Trainer,
with which I can hide posts with certain keywords in their title and/or tags.&lt;/p&gt;
&lt;p&gt;Unfortunately, Pinboard makes that hard by not publishing Story Tags so that…&lt;/p&gt;
&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/jeromegamez/pinboard-for-newsblur" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;p&gt;And if you want to subscribe to my, always super-interesting haha, bookmarks, you can find them at &lt;a href="https://pinboard.in/u:jeromegamez" rel="noopener noreferrer"&gt;https://pinboard.in/u:jeromegamez&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Happy dirty coding!&lt;/p&gt;

&lt;p&gt;PS: This post follows the same principle: I wrote it on my phone, it has probably some typos and semantic errors, but I can revisit it later - or keep it as it is, because it already transports what I want to say.&lt;/p&gt;

&lt;p&gt;PPS: Point in case, I had a typo in the title and that typo will be in the post URL for all eternity 🤷🏼‍♂️.&lt;/p&gt;

&lt;p&gt;PPPS: I'm on a Mastodon, too!&lt;/p&gt;


&lt;div class="crayons-card c-embed text-styles text-styles--secondary"&gt;
      &lt;div class="c-embed__cover"&gt;
        &lt;a href="https://phpc.social/@jay/111296868388229467" class="c-link s:max-w-50 align-middle" rel="noopener noreferrer"&gt;
          &lt;img alt="" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fphpc.social%2Fpacks%2Fmedia%2Fimages%2Flogo-d4b5dc90fd3e117d141ae7053b157f58.svg" height="65" class="m-0" width="65"&gt;
        &lt;/a&gt;
      &lt;/div&gt;
    &lt;div class="c-embed__body"&gt;
      &lt;h2 class="fs-xl lh-tight"&gt;
        &lt;a href="https://phpc.social/@jay/111296868388229467" rel="noopener noreferrer" class="c-link"&gt;
          Jérôme Gamez 🐘: "I published a dirty post about a dirty project I …" - PHP Community on Mastodon
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;p class="truncate-at-3"&gt;
          I published a dirty post about a dirty project I published:

https://dev.to/jeromegamez/after-more-then-20-years-i-published-my-first-dirty-project-1amn

Oh, I had a typo in the title and now there's a typo in the URL. Forever! Well... 🤷🏼‍♂️

#OpenSource #PHP
        &lt;/p&gt;
      &lt;div class="color-secondary fs-s flex items-center"&gt;
          &lt;img alt="favicon" class="c-embed__favicon m-0 mr-2 radius-0" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fphpc.social%2Fpacks%2Fmedia%2Ficons%2Ffavicon-16x16-c58fdef40ced38d582d5b8eed9d15c5a.png" width="16" height="16"&gt;
        phpc.social
      &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;


</description>
      <category>php</category>
      <category>opensource</category>
      <category>programming</category>
      <category>showdev</category>
    </item>
    <item>
      <title>Keyoxide Proof</title>
      <dc:creator>Jérôme Gamez</dc:creator>
      <pubDate>Sun, 22 Oct 2023 13:49:46 +0000</pubDate>
      <link>https://dev.to/jeromegamez/keyoxide-proof-9jc</link>
      <guid>https://dev.to/jeromegamez/keyoxide-proof-9jc</guid>
      <description>&lt;p&gt;aspe:keyoxide.org:KC2QQMSF6SUYM6TYT5OQ24HUFA&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Forwarding domains without a server with Cloudflare</title>
      <dc:creator>Jérôme Gamez</dc:creator>
      <pubDate>Tue, 13 Aug 2019 12:52:42 +0000</pubDate>
      <link>https://dev.to/jeromegamez/forwarding-domains-without-a-server-with-cloudflare-49kk</link>
      <guid>https://dev.to/jeromegamez/forwarding-domains-without-a-server-with-cloudflare-49kk</guid>
      <description>&lt;p&gt;&lt;em&gt;&lt;a href="https://unsplash.com/photos/H5qxGjUTN-k" rel="noopener noreferrer"&gt;Photo&lt;/a&gt; by &lt;a href="https://unsplash.com/@zhubing428" rel="noopener noreferrer"&gt;zhu bing&lt;/a&gt;, sourced from &lt;a href="https://community.cloudflare.com/t/using-page-rules-without-an-a-record/59069" rel="noopener noreferrer"&gt;the Cloudflare forums&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Imagine you've just bought a new domain for your next side project, haven't got a website for it yet but don't want it to point to the void as well. My usual approach to this in the past was this:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Set up the A record of the domain to point to the IP address of my main website.&lt;/li&gt;
&lt;li&gt;Update the webserver configuration for that site to listen to the new domain.&lt;/li&gt;
&lt;li&gt;Once the side project is ready, revert the settings and update the A record with a new IP address.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Although this is easy enough, it still requires updating an unrelated site, and what if you don't have an existing site to use as a temporary placeholder?&lt;/p&gt;

&lt;p&gt;This was the case when I wanted to redirect my (super old) domain &lt;a href="https://www.jerome-gamez.de" rel="noopener noreferrer"&gt;jerome-gamez.de&lt;/a&gt; to my current &lt;a href="https://www.gamez.name" rel="noopener noreferrer"&gt;gamez.name&lt;/a&gt;. I was already on my VPS to update the configuration when I started to wonder if there was a simpler solution - I think I found one using &lt;a href="https://www.cloudflare.com" rel="noopener noreferrer"&gt;Cloudflare DNS&lt;/a&gt; and &lt;a href="https://www.cloudflare.com/features-page-rules/" rel="noopener noreferrer"&gt;Page Rules&lt;/a&gt;, and I'd like to share it with you today.&lt;/p&gt;




&lt;p&gt;If you haven't already, &lt;a href="https://dash.cloudflare.com/sign-up" rel="noopener noreferrer"&gt;create an account at Cloudflare&lt;/a&gt; (it's free), add your site and point your domain's NS records to the nameservers named on your site's dashboard.&lt;/p&gt;

&lt;h3&gt;
  
  
  Set up DNS
&lt;/h3&gt;

&lt;p&gt;On the &lt;strong&gt;DNS&lt;/strong&gt; dashboard, enter the following entries:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Name&lt;/th&gt;
&lt;th&gt;Value&lt;/th&gt;
&lt;th&gt;TTL&lt;/th&gt;
&lt;th&gt;Proxy status&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;A&lt;/td&gt;
&lt;td&gt;&lt;code&gt;@&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;192.0.2.1&lt;/td&gt;
&lt;td&gt;Automatic&lt;/td&gt;
&lt;td&gt;enabled&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;A&lt;/td&gt;
&lt;td&gt;&lt;code&gt;www&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;192.0.2.1&lt;/td&gt;
&lt;td&gt;Automatic&lt;/td&gt;
&lt;td&gt;enabled&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;em&gt;I'm not sure if the &lt;code&gt;www&lt;/code&gt; entry is really needed - I created it to be sure, and it at least didn't break anything&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fz9gs0apxqovzgp80uwug.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fz9gs0apxqovzgp80uwug.png" alt="Cloudflare DNS Settings" width="800" height="541"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Set up a page rule
&lt;/h3&gt;

&lt;p&gt;On the &lt;strong&gt;Page Rules&lt;/strong&gt; dashboard, create a new page rule:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;URL pattern&lt;/th&gt;
&lt;th&gt;Setting&lt;/th&gt;
&lt;th&gt;Value&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;*your-domain.tld/*&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Forwarding URL&lt;/td&gt;
&lt;td&gt;&lt;code&gt;your-target.tld&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;In case of a temporary forward, use &lt;code&gt;302&lt;/code&gt; as the status, &lt;code&gt;301&lt;/code&gt; otherwise.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwq5njlvyvod6rq026djt.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwq5njlvyvod6rq026djt.png" alt="Cloudflare Page Rule" width="800" height="530"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Wait
&lt;/h3&gt;

&lt;p&gt;Most of the time, the process of propagating the settings is a matter of only a couple of minutes, but it took more in some cases. You can check the current progress on &lt;a href="https://www.whatsmydns.net" rel="noopener noreferrer"&gt;whatsmydns.net&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Once this is done, your domain (and any path on it) should redirect to the target configured in the page rule.&lt;/p&gt;

</description>
      <category>tutorial</category>
      <category>cloudflare</category>
      <category>showdev</category>
      <category>devops</category>
    </item>
    <item>
      <title>I am lucky, you are not.</title>
      <dc:creator>Jérôme Gamez</dc:creator>
      <pubDate>Fri, 26 Jul 2019 10:01:24 +0000</pubDate>
      <link>https://dev.to/jeromegamez/i-am-lucky-you-are-not-2eco</link>
      <guid>https://dev.to/jeromegamez/i-am-lucky-you-are-not-2eco</guid>
      <description>&lt;p&gt;&lt;em&gt;&lt;a href="https://unsplash.com/photos/8UG90AYPDW4" rel="noopener noreferrer"&gt;Photo&lt;/a&gt; by &lt;a href="https://unsplash.com/@breakyourboundaries4" rel="noopener noreferrer"&gt;Matt Collamer&lt;/a&gt;, &lt;a href="https://sh.alynx.moe/posts/I-Am-Lucky-You-Are-Not/" rel="noopener noreferrer"&gt;Chinese translation&lt;/a&gt; by &lt;a href="https://dev.to/alynxzhou"&gt;@alynxzhou&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Hi, my name is Jérôme! I am comfortable sharing my name, that I‘m living in Germany and that I am not always happy with my government.&lt;/p&gt;

&lt;p&gt;I am lucky that I can say this publicly, without the fear of repercussions, and I have the luxury &lt;em&gt;not having to even think about&lt;/em&gt; having to think about how lucky I am (the duplication is intended).&lt;/p&gt;

&lt;p&gt;This was made aware to me through a conversation that I recently had in the &lt;a href="https://discord.gg/nbgVfty" rel="noopener noreferrer"&gt;Discord community&lt;/a&gt; for the &lt;a href="https://github.com/kreait/firebase-php" rel="noopener noreferrer"&gt;Firebase Admin SDK for PHP&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;One of the members was trying to access the Firebase API with the SDK which triggered an exception without detailed information on what went wrong. As it turned out, they were located in China and forgot to enable a proxy on the environment the code was running in. A fixable issue.&lt;/p&gt;

&lt;p&gt;While I was working on the SDK to implement the handling of connection errors (something I didn‘t even think of doing before because I‘m in the lucky position of having ubiquitous internet access in a non-restricted country), another community member chimed in:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;a class="mentioned-user" href="https://dev.to/jeromegamez"&gt;@jeromegamez&lt;/a&gt;: Look what a pleasure I'm having: Due to U.S. trade controls law restrictions, your GitHub account has been restricted. For individual accounts, you may have limited access to free GitHub public repository services for personal communications only. Please read about GitHub and Trade Controls for more information. If you believe your account has been flagged in error, please file an appeal.  &lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;They had accessed GitHub once without using a VPN/Proxy from their home country, got flagged immediately, and now aren’t able to access their own private repositories.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;That sucks [...] are you going to appeal the decision?  &lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;was my naive reply to the news, not realizing that they, of course, wouldn‘t have success with an appeal.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;a class="mentioned-user" href="https://dev.to/jeromegamez"&gt;@jeromegamez&lt;/a&gt;: Unfortunately you don't choose where to born! among almost 200 country I'm in one of the crazy ones. I usually use vpn as of having sanctions plus internal censorships, whatsapp for example, sometimes I can't upload picture and I have to use a proxy/VPN. Normally you can use international services like Nvidia.com/Android.developers.com and so on using a VPN but this time it is way different as they block you once you access their services using specific IP addresses. At least I still can use public repositories, and hopefully will be able to backup my private ones!&lt;br&gt;&lt;br&gt;
About appealing a decision, as being a citizen of these countries I can not do that.  &lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;We continued our conversation in a private channel, where they told me their country of origin (something they often don’t feel comfortable to tell), their struggles and that they shared this in the public channel to raise awareness.&lt;/p&gt;

&lt;p&gt;People like me (especially like me: white, male, European, with a well-paying job and access to anything I need and most I want) look at the world and are dissatisfied with or afraid of what‘s happening in it while being in a rather comfortable place.&lt;/p&gt;

&lt;p&gt;But there are far more uncomfortable, hostile and dangerous places to be, and &lt;em&gt;people&lt;/em&gt; like you and me are living in them.&lt;/p&gt;

&lt;p&gt;While I‘m struggling with the current heatwave, someone else is struggling to make a living.&lt;/p&gt;

&lt;p&gt;While I‘m angry that I can‘t use my preferred username on an internet platform, someone else has to make sure that their username doesn‘t reveal too much information about them.&lt;/p&gt;

&lt;p&gt;While Government A is putting sanctions on Country B, it‘s the individual people in that country that have to struggle with the consequences, not their leaders. &lt;/p&gt;

&lt;p&gt;While I am trying to get a raise, someone else is trying to stay alive.&lt;/p&gt;

&lt;p&gt;This doesn‘t mean that our personal problems are irrelevant, but I think it’s important to be aware that many of us are &lt;em&gt;lucky&lt;/em&gt; to have been born in a good place, and also that many of us aren't as lucky. &lt;/p&gt;

&lt;p&gt;The least we can do is to treat others with respect, decency and compassion, no matter where they come from or what their background is.&lt;/p&gt;

&lt;h3&gt;
  
  
  Related
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://medium.com/@hamed/github-blocked-my-account-and-they-think-im-developing-nuclear-weapons-e7e1fe62cb74" rel="noopener noreferrer"&gt;GitHub blocked my account and they think I’m developing nuclear weapons&lt;/a&gt; by Hamed Saeedi&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://shahinsorkh.ir/2019/07/20/how-is-it-like-to-be-a-dev-in-iran" rel="noopener noreferrer"&gt;What is it like to be a dev in Iran&lt;/a&gt; by Shahin Sorkh&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://dev.to/mjraadi/if-you-don-t-know-now-you-know-github-is-restricting-access-for-users-from-iran-and-a-few-other-embargoed-countries-5ga9"&gt;If You Don't Know, Now You Know - GitHub Is Restricting Access For Users From Iran And A Few Other Embargoed Countries&lt;/a&gt; by &lt;a class="mentioned-user" href="https://dev.to/mjraadi"&gt;@mjraadi&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://dev.to/nekofar/github-must-be-a-free-platform-14pj"&gt;Github Must Be a Free Platform&lt;/a&gt; by &lt;a class="mentioned-user" href="https://dev.to/nekofar"&gt;@nekofar&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/1995parham/github-do-not-ban-us" rel="noopener noreferrer"&gt;1995parham/github-do-not-ban-us&lt;/a&gt; on GitHub&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>opinion</category>
      <category>people</category>
    </item>
  </channel>
</rss>
