<?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: Corentin Bettiol</title>
    <description>The latest articles on DEV Community by Corentin Bettiol (@corentinbettiol).</description>
    <link>https://dev.to/corentinbettiol</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%2F318626%2F5fc6b06a-6842-4c6b-9992-37bd470d3208.png</url>
      <title>DEV Community: Corentin Bettiol</title>
      <link>https://dev.to/corentinbettiol</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/corentinbettiol"/>
    <language>en</language>
    <item>
      <title>Django simple notes</title>
      <dc:creator>Corentin Bettiol</dc:creator>
      <pubDate>Wed, 24 May 2023 11:11:42 +0000</pubDate>
      <link>https://dev.to/corentinbettiol/django-simple-notes-d8i</link>
      <guid>https://dev.to/corentinbettiol/django-simple-notes-d8i</guid>
      <description>&lt;p&gt;Hi, I released a new module today; &lt;a href="https://gitlab.com/kapt/open-source/django-simple-notes"&gt;Django simple notes&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Can I have a screenshot or two, please?
&lt;/h2&gt;

&lt;p&gt;Sure.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://gitlab.com/kapt/open-source/django-simple-notes"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--lQ8s20tW--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/qiyveqntl9hq9so94nhz.png" alt="Screenshot of the toolbar buttons of django-simple-notes" width="405" height="117"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;New toolbar menu!&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://gitlab.com/kapt/open-source/django-simple-notes"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--7JDKaZei--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/01fdzod4ip81h3bwrhz4.png" alt="Screenshot of a note in django-simple-notes" width="800" height="582"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Store notes related to a single page.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  What's this?
&lt;/h2&gt;

&lt;p&gt;It's a (very) simple module that adds a new button on the CMS toolbar, which allow administrators to open a side-panel and store/retrieve notes linked to the current page.&lt;/p&gt;

&lt;h2&gt;
  
  
  How it works?
&lt;/h2&gt;

&lt;p&gt;This module is using Django's &lt;a href="https://docs.djangoproject.com/en/4.2/ref/contrib/contenttypes/#generic-relations"&gt;generic foreign keys&lt;/a&gt; to store notes linked to pages.&lt;/p&gt;

&lt;p&gt;It handles CMS &lt;code&gt;Page&lt;/code&gt; and djangocms-blog &lt;code&gt;Post&lt;/code&gt; objects by default, but you can write your own settings to extends the support to your own types of objects.&lt;/p&gt;

&lt;p&gt;More information is available on the &lt;a href="https://gitlab.com/kapt/open-source/django-simple-notes#how-it-works"&gt;README&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Features
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Create/edit notes linked to pages you're currently visiting.&lt;/li&gt;
&lt;li&gt;Add tags to notes.&lt;/li&gt;
&lt;li&gt;Different notes for different languages for the same page.&lt;/li&gt;
&lt;li&gt;List all notes.&lt;/li&gt;
&lt;li&gt;Search note content and tags in list view.&lt;/li&gt;
&lt;li&gt;Sort notes in list view (create/edit date, author, page language...).&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Thoughts?
&lt;/h2&gt;

&lt;p&gt;What do you think of this package? What features do you find missing? Will you use this application? We would love to hear your opinion :)&lt;/p&gt;

</description>
      <category>django</category>
      <category>djangocms</category>
    </item>
    <item>
      <title>100+</title>
      <dc:creator>Corentin Bettiol</dc:creator>
      <pubDate>Tue, 14 Jun 2022 16:12:04 +0000</pubDate>
      <link>https://dev.to/corentinbettiol/100-5d35</link>
      <guid>https://dev.to/corentinbettiol/100-5d35</guid>
      <description>&lt;p&gt;Hi,&lt;/p&gt;

&lt;p&gt;I just realized that the module I created a few years ago just broke the 100 likes mark on github, and I wanted to share how happy I am!&lt;/p&gt;

&lt;p&gt;It was my first project when I started working with Kapt.&lt;/p&gt;

&lt;p&gt;Today, &lt;a href="https://github.com/kapt-labs/django-check-seo"&gt;Django Check SEO&lt;/a&gt; is the most known open source module made by Kapt (but it's not the only one, you can &lt;a href="https://pypi.org/user/kapt/"&gt;find a list&lt;/a&gt; of our open source python modules on PyPi&lt;code&gt;[0]&lt;/code&gt;). It's one of our last Python module hosted on Github, since we're using Gitlab since a few years and it's working well.&lt;/p&gt;

&lt;p&gt;This module (and the &lt;a href="https://dev.to/corentinbettiol/django-check-seo-3ljk"&gt;post&lt;/a&gt;s I made to share it with the community of web developers) was a big step for me, and I &lt;a href="https://star-history.com/#kapt-labs/django-check-seo"&gt;watched the numbers&lt;/a&gt; go up and up as the months passed. &lt;/p&gt;

&lt;p&gt;Today I think that this project reached a new high, since it received its first PR from another developer! It's really cool to see that all of our hard work is helping others, and that sometimes other people will work with our project, not only for them, but for all the other devs too.&lt;/p&gt;

&lt;p&gt;The number of likes looks like it's really low, but you can see that Django Check SEO is 11th on the topic &lt;a href="https://github.com/topics/django-cms"&gt;django-cms&lt;/a&gt; on Github :P&lt;/p&gt;

&lt;p&gt;So thank you all, keep creating nice modules we can use, we're still creating nice modules too, sharing is really something cool to do on Internet!&lt;/p&gt;

&lt;p&gt;&lt;em&gt;&lt;code&gt;[0]&lt;/code&gt; One example is this lovely little module named "&lt;a href="https://gitlab.com/kapt/open-source/djangocms-filer-display-pages-where-files-are-used-before-removing-them"&gt;djangocms-filer-display-pages-where-files-are-used-before-removing-them&lt;/a&gt;".&lt;/em&gt;&lt;/p&gt;

</description>
      <category>django</category>
      <category>djangocms</category>
      <category>python</category>
      <category>opensource</category>
    </item>
    <item>
      <title>DjangoCMS FAQ</title>
      <dc:creator>Corentin Bettiol</dc:creator>
      <pubDate>Mon, 26 Apr 2021 14:11:45 +0000</pubDate>
      <link>https://dev.to/corentinbettiol/djangocms-faq-4g6b</link>
      <guid>https://dev.to/corentinbettiol/djangocms-faq-4g6b</guid>
      <description>&lt;p&gt;My company released a cool open-source plugin named &lt;a href="https://gitlab.com/kapt/open-source/djangocms-faq/"&gt;DjangoCMS FAQ&lt;/a&gt; that you can use in your websites a few weeks ago, let me describe it:&lt;/p&gt;

&lt;h2&gt;
  
  
  Install
&lt;/h2&gt;

&lt;p&gt;The project is on &lt;a href="https://pypi.org/project/djangocms-faq/"&gt;pypi&lt;/a&gt;, so just use pip!&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;python3 &lt;span class="nt"&gt;-m&lt;/span&gt; pip &lt;span class="nb"&gt;install &lt;/span&gt;djangocms-faq
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Features
&lt;/h2&gt;

&lt;h3&gt;
  
  
  FAQ Plugins
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Create a &lt;code&gt;FaqContainer&lt;/code&gt; Plugin that have a name, and can only contain &lt;code&gt;FaqQuestion&lt;/code&gt; Plugins that have a name (the question) and keywords!&lt;/li&gt;
&lt;li&gt;Create answers as &lt;code&gt;TextPlugin&lt;/code&gt;, &lt;code&gt;ImagePlugin&lt;/code&gt; or &lt;code&gt;VideoPlugin&lt;/code&gt; inside the &lt;code&gt;FaqQuestion&lt;/code&gt; Plugins (this can be easily extended using the settings of your project)!&lt;/li&gt;
&lt;li&gt;Here's a small gif (better video &lt;a href="https://gitlab.com/kapt/open-source/djangocms-faq/#a-faq"&gt;here in the readme&lt;/a&gt;):
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--QE4NZ02B--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ogpoyg1bjfetfgp666e2.gif" alt="create faq containers, questions &amp;amp; answers" width="500" height="285"&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  FAQ &lt;strong&gt;Search&lt;/strong&gt; Plugin
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Create a &lt;code&gt;FaqSearchPlugin&lt;/code&gt; that have a name, select all the &lt;code&gt;FaqContainers&lt;/code&gt; that this instance will search into, and put it on any page on your site!&lt;/li&gt;
&lt;li&gt;Here's a small gif (better video &lt;a href="https://gitlab.com/kapt/open-source/djangocms-faq/#a-search-plugin-that-uses-an-api"&gt;here in the readme&lt;/a&gt;):
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--S8Q6vb-P--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/kzryzsharfer1hxyzf82.gif" alt="create faq search plugin &amp;amp; search into" width="500" height="285"&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Settings
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;If you don't need the &lt;code&gt;FaqSearch&lt;/code&gt; you can set the &lt;code&gt;DJANGOCMS_FAQ_ENABLE_API&lt;/code&gt; variable to &lt;code&gt;False&lt;/code&gt; in your settings.&lt;/li&gt;
&lt;li&gt;You can add as many Plugins as you want in the &lt;code&gt;FaqQuestion&lt;/code&gt; plugins using the &lt;code&gt;DJANGOCMS_FAQ_ANSWER_PLUGINS&lt;/code&gt; list in your settings.&lt;/li&gt;
&lt;li&gt;If you don't wanna show the keywords in the questions, just put this var to &lt;code&gt;False&lt;/code&gt;: &lt;code&gt;DJANGOCMS_FAQ_SHOW_KEYWORDS_QUESTION&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;And if you don't want to show the keywords in the &lt;code&gt;FaqSearch&lt;/code&gt; Plugin answers then put this to &lt;code&gt;False&lt;/code&gt; in your settings : &lt;code&gt;DJANGOCMS_FAQ_SHOW_KEYWORDS_ANSWER&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>django</category>
      <category>djangocms</category>
      <category>faq</category>
    </item>
    <item>
      <title>How to hide a tag on dev.to</title>
      <dc:creator>Corentin Bettiol</dc:creator>
      <pubDate>Tue, 19 Jan 2021 13:53:20 +0000</pubDate>
      <link>https://dev.to/corentinbettiol/how-to-hide-a-tag-on-dev-to-2fc8</link>
      <guid>https://dev.to/corentinbettiol/how-to-hide-a-tag-on-dev-to-2fc8</guid>
      <description>&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Follow a tag describing something you don't actually want to follow, like the &lt;a href="https://dev.to/t/javascript"&gt;#javascript&lt;/a&gt; tag (trust me please),&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Click on the not-so cranked wheel to go to the page that handles the weights of your tags (here's the link: &lt;a href="https://dev.to/dashboard/following_tags"&gt;https://dev.to/dashboard/following_tags&lt;/a&gt;),&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--McUC6pFx--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://up.l3m.in/file/1611063781.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--McUC6pFx--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://up.l3m.in/file/1611063781.png" alt="here"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Set the weight of the tag you didn't like to &lt;code&gt;-999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999&lt;/code&gt; or something like this,&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Enjoy browsing dev.to without this popular tags on &lt;em&gt;literally every page of the site&lt;/em&gt;!&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--_y3wc3uO--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.imgur.com/o2Tcd2E.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--_y3wc3uO--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.imgur.com/o2Tcd2E.png" alt="that's all folks!"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;




&lt;p&gt;&lt;em&gt;(oh the output of the value in step 3 is funny, it even have a "anti follow" notice)&lt;/em&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Zt8UwWTn--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://up.l3m.in/file/1611064103.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Zt8UwWTn--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://up.l3m.in/file/1611064103.png" alt="like this"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>meta</category>
    </item>
    <item>
      <title>What do you think about 1MB.club?</title>
      <dc:creator>Corentin Bettiol</dc:creator>
      <pubDate>Fri, 27 Nov 2020 14:29:46 +0000</pubDate>
      <link>https://dev.to/corentinbettiol/what-do-you-think-about-1mb-club-4fjn</link>
      <guid>https://dev.to/corentinbettiol/what-do-you-think-about-1mb-club-4fjn</guid>
      <description>&lt;p&gt;&lt;a href="https://1mb.club"&gt;1MB.club&lt;/a&gt; is a website created by &lt;a href="https://github.com/bradleytaunt/"&gt;Bradley Taunt&lt;/a&gt; listing other websites, where your website is added to the list if it weights less than 1MB.&lt;/p&gt;

&lt;p&gt;What do you think of this type of index?&lt;/p&gt;

&lt;p&gt;&lt;em&gt;1M Club was &lt;a href="https://news.ycombinator.com/item?id=25151773"&gt;shared&lt;/a&gt; a few days ago on Hacker News, and therefore has gained popularity quite quickly.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>watercooler</category>
      <category>discuss</category>
    </item>
    <item>
      <title>Share some blazing fast and lightweight websites</title>
      <dc:creator>Corentin Bettiol</dc:creator>
      <pubDate>Thu, 15 Oct 2020 12:59:04 +0000</pubDate>
      <link>https://dev.to/corentinbettiol/share-some-blazing-fast-and-lightweight-websites-17g7</link>
      <guid>https://dev.to/corentinbettiol/share-some-blazing-fast-and-lightweight-websites-17g7</guid>
      <description>&lt;p&gt;Hi 👋&lt;/p&gt;

&lt;p&gt;I like ultra fast websites, built using vanilla technologies.&lt;/p&gt;

&lt;p&gt;But I don't know a lot of those websites. Help me discover more of the "&lt;a href="https://ar.al/2020/08/07/what-is-the-small-web/"&gt;small web&lt;/a&gt;" by sharing small &amp;amp; fast websites here, please :)&lt;/p&gt;

</description>
      <category>discuss</category>
      <category>webdev</category>
    </item>
    <item>
      <title>What is the lighthouse score of your porfolio/personal website (and why)?</title>
      <dc:creator>Corentin Bettiol</dc:creator>
      <pubDate>Wed, 23 Sep 2020 07:23:13 +0000</pubDate>
      <link>https://dev.to/corentinbettiol/what-is-the-lighthouse-score-of-your-porfolio-and-why-5h9f</link>
      <guid>https://dev.to/corentinbettiol/what-is-the-lighthouse-score-of-your-porfolio-and-why-5h9f</guid>
      <description>&lt;p&gt;I want to discover new portfolios, and in order to do it I want you to post and discuss your lighthouse score.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;For thoses who don't know what I'm talking about, &lt;a href="https://developers.google.com/web/tools/lighthouse"&gt;here's the doc&lt;/a&gt; for lighthouse.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>portfolio</category>
      <category>lighthouse</category>
      <category>discuss</category>
    </item>
    <item>
      <title>How to efficiently download thousands of files?</title>
      <dc:creator>Corentin Bettiol</dc:creator>
      <pubDate>Fri, 04 Sep 2020 13:27:05 +0000</pubDate>
      <link>https://dev.to/corentinbettiol/how-to-efficiently-download-thousands-of-files-1ml3</link>
      <guid>https://dev.to/corentinbettiol/how-to-efficiently-download-thousands-of-files-1ml3</guid>
      <description>&lt;p&gt;Hello.&lt;/p&gt;

&lt;p&gt;I need to copy ~40,000 files from a server to my computer, and I'm wondering what is the best approach to solve this problem.&lt;/p&gt;

&lt;h1&gt;
  
  
  using &lt;code&gt;scp&lt;/code&gt;
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;slow&lt;/li&gt;
&lt;li&gt;consume lots of bandwidth&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  using &lt;code&gt;rsync&lt;/code&gt;
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;slow&lt;/li&gt;
&lt;li&gt;consume less bandwidth&lt;/li&gt;
&lt;li&gt;can resume copy after a network problem&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  using &lt;code&gt;tar&lt;/code&gt; then &lt;code&gt;scp&lt;/code&gt;
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;less slow&lt;/li&gt;
&lt;li&gt;consume less bandwidth&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  using &lt;code&gt;tar&lt;/code&gt; then &lt;code&gt;rsync&lt;/code&gt;
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;less slow&lt;/li&gt;
&lt;li&gt;consume less bandwidth&lt;/li&gt;
&lt;li&gt;can resume copy after a network problem&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  using &lt;code&gt;tar&lt;/code&gt; then &lt;code&gt;split&lt;/code&gt; then &lt;code&gt;parallel&lt;/code&gt; with &lt;code&gt;scp&lt;/code&gt;
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;fast&lt;/li&gt;
&lt;li&gt;consume less bandwidth&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  using &lt;code&gt;tar&lt;/code&gt; then &lt;code&gt;split&lt;/code&gt; then &lt;code&gt;parallel&lt;/code&gt; with &lt;code&gt;rsync&lt;/code&gt;
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;fast&lt;/li&gt;
&lt;li&gt;consume less bandwidth&lt;/li&gt;
&lt;li&gt;can resume copy after a network problem&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;I think I will opt for the last one, but what would you do in my case?&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Edit:&lt;/strong&gt; bash commands for using &lt;code&gt;tar&lt;/code&gt; then &lt;code&gt;split&lt;/code&gt; then &lt;code&gt;parallel&lt;/code&gt; with &lt;code&gt;rsync&lt;/code&gt;:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Prerequisite: Install parallel and remove warning:&lt;/em&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;apt &lt;span class="nb"&gt;install &lt;/span&gt;parallel &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"will cite"&lt;/span&gt; | parallel &lt;span class="nt"&gt;--citation&lt;/span&gt; &amp;amp;&amp;gt;/dev/null
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# on server&lt;/span&gt;
&lt;span class="nb"&gt;tar &lt;/span&gt;cfz files.tar.gz ~/path/to/folder/
&lt;span class="nb"&gt;split&lt;/span&gt; &lt;span class="nt"&gt;-b&lt;/span&gt; 20M files.tar.gz fragment_

&lt;span class="c"&gt;# on local machine&lt;/span&gt;
&lt;span class="nb"&gt;cat&lt;/span&gt; &lt;span class="si"&gt;$(&lt;/span&gt;ssh host@server &lt;span class="nb"&gt;ls&lt;/span&gt; &lt;span class="nt"&gt;-1&lt;/span&gt; fragment_&lt;span class="k"&gt;*&lt;/span&gt;&lt;span class="si"&gt;)&lt;/span&gt; | parallel rsync &lt;span class="nt"&gt;-z&lt;/span&gt; host@server:&lt;span class="o"&gt;{}&lt;/span&gt; &lt;span class="nb"&gt;.&lt;/span&gt;
&lt;span class="nb"&gt;cat &lt;/span&gt;frament_&lt;span class="k"&gt;*&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; files.tar.gz
&lt;span class="nb"&gt;tar &lt;/span&gt;xvf files.tar.gz
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;p&gt;&lt;strong&gt;Edit 2:&lt;/strong&gt; I used a simple rsync command, since it can compress files on the fly and handle restart from where the transfer stopped.&lt;/p&gt;

&lt;p&gt;Since rsync always use the max bandwidth available it isn't a bottleneck that can be solved with &lt;code&gt;parallel&lt;/code&gt;.&lt;/p&gt;

</description>
      <category>help</category>
      <category>bash</category>
      <category>devops</category>
    </item>
    <item>
      <title>What are your favorite articles on dev.to?</title>
      <dc:creator>Corentin Bettiol</dc:creator>
      <pubDate>Mon, 24 Aug 2020 20:31:14 +0000</pubDate>
      <link>https://dev.to/corentinbettiol/what-are-your-favorite-articles-on-dev-to-2c55</link>
      <guid>https://dev.to/corentinbettiol/what-are-your-favorite-articles-on-dev-to-2c55</guid>
      <description>&lt;p&gt;The algorithms that help us find relevant content on dev.to are something, but I think we all have favorite articles about development, and I want to discover new content that is not trendy or based on the tags I follow.&lt;/p&gt;

&lt;p&gt;
  Here's mine so far
  &lt;ul&gt;
&lt;li&gt;The serie &lt;a href="https://dev.to/lydiahallie/javascript-visualized-event-loop-3dif"&gt;Javascript Visuzalized&lt;/a&gt;, by &lt;a href="https://dev.to/lydiahallie"&gt;Lydia Hallie&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://dev.to/robole/add-the-estimated-reading-time-to-your-blog-do-you-read-code-at-275-words-per-minute-3don"&gt;Pimp your Blog: Calculate the 'reading time'&lt;/a&gt; by &lt;a href="https://dev.to/robole"&gt;Rob OLeary&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://dev.to/caroso1222/how-to-create-fancy-revealing-animations-with-these-simple-css-tricks-4gjk"&gt;How to create fancy revealing animations with these simple CSS tricks&lt;/a&gt;, by &lt;a href="https://dev.to/caroso1222"&gt;Carlos Roso&lt;/a&gt;.
&lt;/li&gt;
&lt;/ul&gt;




&lt;/p&gt;
&lt;p&gt;What's yours?&lt;/p&gt;

</description>
      <category>learning</category>
      <category>beginners</category>
      <category>meta</category>
    </item>
    <item>
      <title>How to make super duper shadows for your screenshots</title>
      <dc:creator>Corentin Bettiol</dc:creator>
      <pubDate>Mon, 03 Aug 2020 10:15:12 +0000</pubDate>
      <link>https://dev.to/corentinbettiol/how-to-make-super-duper-shadows-for-your-screenshots-2m17</link>
      <guid>https://dev.to/corentinbettiol/how-to-make-super-duper-shadows-for-your-screenshots-2m17</guid>
      <description>&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%2F0d3g9gv7n6t8kvaggaek.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%2F0d3g9gv7n6t8kvaggaek.png" alt="screenshot" width="439" height="144"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Today we will customize our screenshots.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;tl;dr: only read step 7&lt;/em&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  1 - Base
&lt;/h1&gt;

&lt;p&gt;On linux, almost each distro include a cool soft to make screenshots, e.g. on xfce (xubuntu), I have &lt;code&gt;xfce4-screenshooter&lt;/code&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%2Fgqcxu7a7tpvf08ukfktd.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%2Fgqcxu7a7tpvf08ukfktd.png" alt="xfce4-screenshoter" width="468" height="379"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It &lt;em&gt;may&lt;/em&gt; sound cool to think "hey can I add some smooth drop shadow to this screenshot ?", and it is indeed a good idea to share good-looking screenshots.&lt;/p&gt;

&lt;h1&gt;
  
  
  2 - How to do this?
&lt;/h1&gt;

&lt;p&gt;Well, first, let's be sure that &lt;a href="https://duckduckgo.com/?q=add+drop+shadow+cli+linux" rel="noopener noreferrer"&gt;nobody ever thought about it&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Uh, someone &lt;em&gt;may&lt;/em&gt; have ever thought about the concept of adding cool drop shadow on an image on linux using the command line.&lt;br&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%2F458v9oh9i0pgs698az5g.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%2F458v9oh9i0pgs698az5g.png" alt="uh oh someone have though of that" width="749" height="451"&gt;&lt;/a&gt;&lt;br&gt;
Uh. &lt;em&gt;Maybe&lt;/em&gt; someone have already thought about that.&lt;/p&gt;

&lt;p&gt;Let's see what &lt;a href="https://graphicdesign.stackexchange.com/users/12941/takkat" rel="noopener noreferrer"&gt;Takkat&lt;/a&gt; &lt;a href="https://graphicdesign.stackexchange.com/a/117404/144716" rel="noopener noreferrer"&gt;said&lt;/a&gt;:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;I would recommend the ultimate command line tool for bitmap manipulations: &lt;a href="http://www.imagemagick.org/script/index.php" rel="noopener noreferrer"&gt;ImageMagick&lt;/a&gt;.&lt;br&gt;
It should be available through your distribution repositories. This tool comes with many effects, including generating a drop shadow.&lt;br&gt;
This is basically done with the &lt;a href="http://www.imagemagick.org/script/command-line-options.php#shadow" rel="noopener noreferrer"&gt;&lt;code&gt;convert -shadow&lt;/code&gt;&lt;/a&gt; option but you then need to combine the generated background image again with the original. This can all be done in a one-line command using &lt;code&gt;-layers merge&lt;/code&gt; option:&lt;br&gt;
&lt;/p&gt;


&lt;/blockquote&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;convert input.jpg &lt;span class="se"&gt;\(&lt;/span&gt; +clone &lt;span class="nt"&gt;-background&lt;/span&gt; black &lt;span class="nt"&gt;-shadow&lt;/span&gt; 50x10+15+15 &lt;span class="se"&gt;\)&lt;/span&gt; +swap &lt;span class="nt"&gt;-background&lt;/span&gt; none &lt;span class="nt"&gt;-layers&lt;/span&gt; merge +repage shadow.png
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h1&gt;
  
  
  3 - How do &lt;em&gt;Takkat&lt;/em&gt; would do this ?
&lt;/h1&gt;

&lt;p&gt;He uses the command above, with &lt;code&gt;convert&lt;/code&gt;, then using &lt;code&gt;+clone -background black&lt;/code&gt; and &lt;code&gt;-shadow percent-opacity{xsigma}{+-}x{+-}y{%}&lt;/code&gt; and a &lt;code&gt;+swap -background none -layers merge +repage&lt;/code&gt;. Is it clear ?&lt;/p&gt;

&lt;p&gt;Fortunately, we don't have to fully understand what all this text says, because ImageMagick will understand this correctly and will output a cool looking shadow behind our src image.&lt;/p&gt;

&lt;h1&gt;
  
  
  4 - Asking the real question
&lt;/h1&gt;

&lt;p&gt;&lt;em&gt;How to add the previous command to a very simple workflow (screenshot page, add it to clipboard -&amp;gt; add shadow to image in clipboard) ?&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;I already have my screenshot inside my clipboard at the end of the &lt;em&gt;screenshot page, add it to clipboard&lt;/em&gt; phase. That's nice.&lt;/p&gt;

&lt;p&gt;All I have to do is:&lt;br&gt;
1) Save my screenshot into a file&lt;br&gt;
2) Use the &lt;code&gt;convert&lt;/code&gt; command&lt;br&gt;
3) Save the result in a file&lt;br&gt;
4) Copy the file content inside my clipboard&lt;br&gt;
5) Remove the saved file to only keep my clipboard content&lt;/p&gt;

&lt;p&gt;And it's pretty easy.&lt;/p&gt;
&lt;h1&gt;
  
  
  5 - My script
&lt;/h1&gt;

&lt;p&gt;I wrote this script, which essentially does every step and is working flawlessly:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;code&gt;addshadows.sh&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;


&lt;/blockquote&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;#!/bin/bash&lt;/span&gt;
xclip &lt;span class="nt"&gt;-selection&lt;/span&gt; clipboard &lt;span class="nt"&gt;-t&lt;/span&gt; image/png &lt;span class="nt"&gt;-o&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="s2"&gt;"screenshot.png"&lt;/span&gt;
convert screenshot.png &lt;span class="se"&gt;\(&lt;/span&gt; +clone &lt;span class="nt"&gt;-background&lt;/span&gt; black &lt;span class="nt"&gt;-shadow&lt;/span&gt; 75x10+0+0 &lt;span class="se"&gt;\)&lt;/span&gt; +swap &lt;span class="nt"&gt;-bordercolor&lt;/span&gt; none &lt;span class="nt"&gt;-border&lt;/span&gt; 10 &lt;span class="nt"&gt;-background&lt;/span&gt; none &lt;span class="nt"&gt;-layers&lt;/span&gt; merge +repage shadow.png
xclip &lt;span class="nt"&gt;-selection&lt;/span&gt; clipboard &lt;span class="nt"&gt;-t&lt;/span&gt; image/png &lt;span class="nt"&gt;-i&lt;/span&gt; shadow.png
&lt;span class="nb"&gt;rm &lt;/span&gt;screenshot.png shadow.png
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Explanations
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;The first line gets the image stored in my clipboard using &lt;code&gt;xclip&lt;/code&gt;, and save it in a file named &lt;code&gt;screenshot.png&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Second line is the &lt;code&gt;convert&lt;/code&gt; command from imagemagick we've discovered previously. Oh, it also saves the generated image in a file named &lt;code&gt;shadow.png&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;The third line uses &lt;code&gt;xclip&lt;/code&gt; to copy the content of &lt;code&gt;shadow.png&lt;/code&gt; into my clipboard.&lt;/li&gt;
&lt;li&gt;The last line removes the two images from the disk, letting only the shadow version living in my clipboard.&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  6 - How to launch it?
&lt;/h1&gt;

&lt;p&gt;I already put the &lt;code&gt;xfce4-screenshoter&lt;/code&gt; shortcut in my topbar, and that's what I did for my script too!&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%2Fm3yea3m498hlhtsm9x77.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%2Fm3yea3m498hlhtsm9x77.png" alt="config for addshadows.sh" width="542" height="647"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://docs.xfce.org/xfce/xfce4-panel/launcher" rel="noopener noreferrer"&gt;XFCE docs&lt;/a&gt; have a very good article about launchers, so I think I will let you discover this if you want to.&lt;/p&gt;

&lt;p&gt;I added a nice icon in order to recognize it on my topbar:&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%2Fbr9r1rwh1gymg346fjuf.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%2Fbr9r1rwh1gymg346fjuf.png" alt="icons topbar" width="269" height="56"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;So now our workflow is :&lt;br&gt;
1) click the (xfce4-)screenshot button &lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fup.l3m.in%2Ffile%2F1596448764.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%2Fup.l3m.in%2Ffile%2F1596448764.png" alt="button-screenshot" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;click to select type of screenshot (whole screen, current window, part of the screen)&lt;/li&gt;
&lt;li&gt;select the window/the region&lt;/li&gt;
&lt;li&gt;click the "copy to clipboard" button&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;2) click the &lt;code&gt;addshadows.sh&lt;/code&gt; button &lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fup.l3m.in%2Ffile%2F1596448786.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%2Fup.l3m.in%2Ffile%2F1596448786.png" alt="button-screenshot" width="800" height="400"&gt;&lt;/a&gt;&lt;br&gt;
3) paste our image somewhere on the web and share it&lt;/p&gt;


&lt;h1&gt;
  
  
  &lt;a&gt;&lt;/a&gt;7 - But what if we want to launch it using a keyboard shortcut only ?
&lt;/h1&gt;

&lt;p&gt;&lt;em&gt;This example is gonna use &lt;a href="https://github.com/lupoDharkael/flameshot" rel="noopener noreferrer"&gt;flameshot&lt;/a&gt;, a great screenshot tool.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;We need to update our script, and to add a new keyboard shortcut.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;code&gt;addshadows_flameshot.sh&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;


&lt;/blockquote&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;#!/bin/bash&lt;/span&gt;

flameshot gui &lt;span class="nt"&gt;-r&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&amp;gt;&lt;/span&gt; /path/to/addshadows/screenshot.png
convert screenshot.png &lt;span class="se"&gt;\(&lt;/span&gt; +clone &lt;span class="nt"&gt;-background&lt;/span&gt; black &lt;span class="nt"&gt;-shadow&lt;/span&gt; 75x10+0+0 &lt;span class="se"&gt;\)&lt;/span&gt; +swap &lt;span class="nt"&gt;-bordercolor&lt;/span&gt; none &lt;span class="nt"&gt;-border&lt;/span&gt; 10 &lt;span class="nt"&gt;-background&lt;/span&gt; none &lt;span class="nt"&gt;-layers&lt;/span&gt; merge +repage shadow.png
xclip &lt;span class="nt"&gt;-selection&lt;/span&gt; clipboard &lt;span class="nt"&gt;-t&lt;/span&gt; image/png &lt;span class="nt"&gt;-i&lt;/span&gt; shadow.png
&lt;span class="nb"&gt;rm &lt;/span&gt;screenshot.png shadow.png
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;As you can see in the source code, we just replaced the line where we save an image from our clipboard by the flameshot command (that will then save a &lt;code&gt;screenshot.png&lt;/code&gt; file), and we added full paths of files (the script will be launched from &lt;code&gt;~&lt;/code&gt;, so it will need to know where to find/save the images).&lt;/p&gt;

&lt;p&gt;Here's the command that you need to bind to a keyboard event:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;/path/to/addshadows/addshadows_flameshot.sh
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Fortunately, it's very easy to add a new shortcut using xfce (and any other linux distro).&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%2Fagzcp490bz09vokm51hr.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%2Fagzcp490bz09vokm51hr.png" alt="shortcut added" width="606" height="607"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You now just have to push a key to enter the screenshot-mode of flameshot, and then a shadow will automatically be added to your image!&lt;/p&gt;




&lt;h1&gt;
  
  
  8 - An example?
&lt;/h1&gt;

&lt;p&gt;All the screenshots on this page are using this trick, but here it is:&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%2Fkt3lyq3mp2slzujd10kd.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%2Fkt3lyq3mp2slzujd10kd.png" alt="source code of the program" width="589" height="252"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Edit:&lt;/strong&gt; made a slow-mo on &lt;a href="https://up.l3m.in//file/1596468852-screenshot-slow.webm" rel="noopener noreferrer"&gt;this&lt;/a&gt; short video to show the creation of the files (and their deletion) :)&lt;/p&gt;




&lt;p&gt;Thank you for reading this article!&lt;/p&gt;

&lt;p&gt;Have fun with screenshots using a powerful tool and adding pretty shadows :)&lt;/p&gt;

</description>
      <category>linux</category>
      <category>screenshot</category>
      <category>bash</category>
      <category>xclip</category>
    </item>
    <item>
      <title>Random gists</title>
      <dc:creator>Corentin Bettiol</dc:creator>
      <pubDate>Fri, 24 Apr 2020 09:06:25 +0000</pubDate>
      <link>https://dev.to/corentinbettiol/random-gists-1h79</link>
      <guid>https://dev.to/corentinbettiol/random-gists-1h79</guid>
      <description>&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--nKfYgcpK--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://up.l3m.in/files/1587715647.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--nKfYgcpK--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://up.l3m.in/files/1587715647.png" alt="Github gist logo" width="187" height="91"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Hello, today I will share some cool little gists that I created.&lt;/p&gt;

&lt;p&gt;"&lt;em&gt;Wait, you're using gists?!?&lt;/em&gt;"&lt;/p&gt;

&lt;p&gt;Yup. You can share them, they are not tied to any project, and you can &lt;em&gt;even&lt;/em&gt; comment them. The main flaw is that they don't have an explicit URL.&lt;/p&gt;




&lt;h2&gt;
  
  
  Install &amp;amp; create a django-cms+djangocms-blog website in two minutes
&lt;/h2&gt;

&lt;p&gt;This first gist is available &lt;a href="https://gist.github.com/corentinbettiol/69601ea572d6eb162ec8e838f1f923ba"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;When testing applications related to django-cms, sometimes they are only compatible with python3/django2.2/django-cms3.X configurations, so I created this gist that allows me to quickly create test projects.&lt;/p&gt;




&lt;h2&gt;
  
  
  Install a working search engine for a django-cms/djangocms-blog website using solr
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://gist.github.com/corentinbettiol/df92b76cb39089881dcb5aec47c67651"&gt;Here is the link&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;It's my solution at an annoying problem. Install haystack, aldryn-search, solr, and create a fully functional search bar on your website.&lt;/p&gt;




&lt;h2&gt;
  
  
  oh-my-zsh + agnoster theme inside vscode inside a container (using remote-containers)
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--eRf3yMjc--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://up.l3m.in/files/1587717376.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--eRf3yMjc--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://up.l3m.in/files/1587717376.png" alt="screenshot errors zsh in vscode" width="183" height="99"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Okay, &lt;a href="https://gist.github.com/corentinbettiol/21a6d4e942a0ee58d51acb7996697a88"&gt;this one&lt;/a&gt; is unusual.&lt;/p&gt;

&lt;p&gt;We use docker with some containers in our dev-env. Some of use use a container with all of our projects inside (so we can work on our projects in a controlled environment).&lt;/p&gt;

&lt;p&gt;We're using vscode with the &lt;a href="https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-containers"&gt;remote-containers&lt;/a&gt; extension, but zsh isn't working out of the box on the embedded vscode terminal. So I made a gist.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--rmaNvkiM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://up.l3m.in/files/1585153406.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--rmaNvkiM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://up.l3m.in/files/1585153406.png" alt="screenshot zsh agnoster working" width="427" height="84"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  addshadows.sh
&lt;/h2&gt;

&lt;p&gt;I always wanted to add some fancy shadows on my screenshots (see this post :P). &lt;a href="https://gist.github.com/corentinbettiol/b4f860a4afc9521a6bda30c510cf3e03"&gt;The code source of my little program is here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;edit:&lt;/strong&gt; created a &lt;a href="https://dev.to/corentinbettiol/how-to-make-super-duper-shadows-for-your-screenshots-2m17"&gt;whole post&lt;/a&gt; on this script (and a little bonus) :)&lt;/p&gt;




&lt;h2&gt;
  
  
  Very simple timetracking tool
&lt;/h2&gt;

&lt;p&gt;I wanted to keep track of what I was doing, but didn't want to use a heavy application with a lot of settings. So I made &lt;a href="https://gist.github.com/corentinbettiol/634b6f95928ccb702ac790f16a584caf"&gt;a gist&lt;/a&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  Publish-to-pypi script
&lt;/h2&gt;

&lt;p&gt;I was worried to make a mistake when publishing a package to pypi (I'm thinking at django-check-seo or djangocms-darksky-api), so I made &lt;a href="https://gist.github.com/corentinbettiol/cf29b7a20af7e7eb6757cc3d0ded617b"&gt;a gist&lt;/a&gt; that contains a simple bash script to automate this task.&lt;/p&gt;

&lt;p&gt;I even created a tl;dr version of the official python packaging doc &lt;a href="https://gist.github.com/corentinbettiol/8aa8c05c6ff2efa955465d2333f45f4f"&gt;here&lt;/a&gt; (with some common errors and the solutions).&lt;/p&gt;




&lt;p&gt;That's all the interesting public gists I have created.&lt;/p&gt;

&lt;p&gt;Are you using gihub gist like I do?&lt;/p&gt;

</description>
      <category>django</category>
      <category>efficiency</category>
      <category>gist</category>
    </item>
    <item>
      <title>Custom emoji cursors with SVG</title>
      <dc:creator>Corentin Bettiol</dc:creator>
      <pubDate>Thu, 23 Apr 2020 15:59:25 +0000</pubDate>
      <link>https://dev.to/corentinbettiol/custom-emoji-cursors-with-svg-4hhb</link>
      <guid>https://dev.to/corentinbettiol/custom-emoji-cursors-with-svg-4hhb</guid>
      <description>&lt;p&gt;I was visiting some websites this morning, when I discovered &lt;a href="https://www.emojicursor.app/"&gt;emojicursor.app&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;And I started testing things, who leaded to... this:&lt;/p&gt;

&lt;p&gt;&lt;iframe height="600" src="https://codepen.io/lmmm/embed/LYpxzgV?height=600&amp;amp;default-tab=result&amp;amp;embed-version=2"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;Result on xubuntu/firefox:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--dPbkt7lQ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://up.l3m.in/files/1587650172.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--dPbkt7lQ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://up.l3m.in/files/1587650172.png" alt="screenshot snippet rendered on firefox"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This is a &lt;em&gt;bad&lt;/em&gt; idea, since the emojis will render differently depending on your platform and browser (and will not appear at all if you're on smartphone), but it's interesting to know that you can mess up with svg &lt;em&gt;and&lt;/em&gt; emojis on &lt;code&gt;cursor&lt;/code&gt; property.&lt;/p&gt;

&lt;p&gt;And you, have you discovered some strange and/or unknown useless css tricks ?&lt;/p&gt;

</description>
      <category>css</category>
      <category>svg</category>
      <category>cursor</category>
    </item>
  </channel>
</rss>
