<?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: Abdelrhman Safwat</title>
    <description>The latest articles on DEV Community by Abdelrhman Safwat (@sonofsafwat).</description>
    <link>https://dev.to/sonofsafwat</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%2F391767%2Fd55c0b0c-8a63-422e-9852-a22bcb69abe6.jpeg</url>
      <title>DEV Community: Abdelrhman Safwat</title>
      <link>https://dev.to/sonofsafwat</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/sonofsafwat"/>
    <language>en</language>
    <item>
      <title>What to write in the bio/about me section?</title>
      <dc:creator>Abdelrhman Safwat</dc:creator>
      <pubDate>Sat, 26 Sep 2020 18:05:44 +0000</pubDate>
      <link>https://dev.to/sonofsafwat/what-to-write-in-the-bio-about-me-section-1nci</link>
      <guid>https://dev.to/sonofsafwat/what-to-write-in-the-bio-about-me-section-1nci</guid>
      <description>&lt;p&gt;I’m creating a portfolio and I’m having such a hard time trying to fill the about me section. What do you guys write there? Do you have like a set of questions that you answer? Do you check other portfolios and use them for inspiration? Do you have a template that you fill out? &lt;/p&gt;

&lt;p&gt;I’d really appreciate your help awesome people&lt;/p&gt;

</description>
      <category>help</category>
      <category>discuss</category>
    </item>
    <item>
      <title>How to Package and publish your RevealJS presentation </title>
      <dc:creator>Abdelrhman Safwat</dc:creator>
      <pubDate>Tue, 15 Sep 2020 05:22:42 +0000</pubDate>
      <link>https://dev.to/sonofsafwat/how-to-package-and-publish-your-revealjs-presentation-3gnp</link>
      <guid>https://dev.to/sonofsafwat/how-to-package-and-publish-your-revealjs-presentation-3gnp</guid>
      <description>&lt;p&gt;This article was originally published on &lt;a href="https://abdelrhmansafwat.com/posts/package-revealjs"&gt;my personal blog&lt;/a&gt;.&lt;br&gt;
...&lt;br&gt;
A while ago I was asked to give a presentation to my teammates at work on React. I've always been fascinated by the way most people give presentations at talks which made me research how to do them. The absolute winner was &lt;a href="https://revealjs.com/"&gt;RevealJS&lt;/a&gt;. &lt;/p&gt;

&lt;p&gt;A couple of things made me prefer it&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;The documentation covered all features and aspects &lt;/li&gt;
&lt;li&gt;The framework itself contained multiple comprehensive examples covering all use cases which provided an excellent starting point.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;As mentioned in the documentation the best way to install and use the framework is by cloning the repo using this command &lt;br&gt;
&lt;code&gt;$ git clone https://github.com/hakimel/reveal.js.git&lt;/code&gt;&lt;br&gt;
The nice thing about cloning the whole repo is that you get a complete examples folders showcasing the features and a demo presentation which I considered RevealJS Holy Grail, I would lie if I didn't say that my whole presentation styles is copied from the demo presentation. &lt;br&gt;
RevealJS uses &lt;a href="https://gulpjs.com/"&gt;gulp&lt;/a&gt; for building and developing.&lt;br&gt;
One hidden feature I stumbled upon while going through the gulpfile was a task called &lt;code&gt;package&lt;/code&gt; where you can build and package your presentation and voila it's ready for publishing. sadly when I tried it out, it didn't work as expected so I had to make a few changes. The thing is it captures all the framework files and your index.html; which contains your presentation; and creates a packaged zip file ready for publishing. If you try the published version you will find out it's broken and that's because all the references inside your index.html don't point to the correct locations. Hence, you're left with one of 2 options, either to update all css and js references in the published index, or modify the package task to add files with the correct folder structure, which was what I did. &lt;/p&gt;

&lt;p&gt;The gulp task copied only the internal files/folders without copying the parent folder due to a bug in writing down the folders paths, it was defined as&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;gulp&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;task&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;package&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;gulp&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;series&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;default&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt;
    &lt;span class="nx"&gt;gulp&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;src&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;
        &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;./index.html&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;./dist/**&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;./plugin/**&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;./**.md&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;
    &lt;span class="p"&gt;]).&lt;/span&gt;&lt;span class="nx"&gt;pipe&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;zip&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;reveal-js-presentation.zip&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)).&lt;/span&gt;&lt;span class="nx"&gt;pipe&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;gulp&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;dest&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;./&lt;/span&gt;&lt;span class="dl"&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;But since we also wanted the respected dist &amp;amp; plugin parent folders as well, we need to change the path to be wild card instead of a specific location. So the updated version will be&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;gulp&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;task&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
  &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;package&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="nx"&gt;gulp&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;series&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;default&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt;
    &lt;span class="nx"&gt;gulp&lt;/span&gt;
      &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;src&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;
        &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;index.html&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;*dist/**/*&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;*media/**/*&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;*plugin/**/*&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;*markdown/**/*&lt;/span&gt;&lt;span class="dl"&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;span class="nx"&gt;pipe&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;zip&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;reveal-js-presentation.zip&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
      &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;pipe&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;gulp&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;dest&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;./&lt;/span&gt;&lt;span class="dl"&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;I also included a couple more folders where I organized my files.&lt;/p&gt;

&lt;p&gt;Now the last thing to do is to update the package.json file to include a package script by adding the line &lt;code&gt;"package": "gulp package"&lt;/code&gt; and run the command &lt;code&gt;npm run package&lt;/code&gt; after the task is finished you will find a zip file called &lt;code&gt;reveal-js-presentation.zip&lt;/code&gt; created containing your presentation and ready for publishing anywhere.&lt;/p&gt;

</description>
      <category>tutorial</category>
      <category>revealjs</category>
      <category>presentations</category>
      <category>techtalks</category>
    </item>
    <item>
      <title>Self birthday gifts 🎁 </title>
      <dc:creator>Abdelrhman Safwat</dc:creator>
      <pubDate>Tue, 23 Jun 2020 08:43:35 +0000</pubDate>
      <link>https://dev.to/sonofsafwat/self-birthday-gifts-4c8l</link>
      <guid>https://dev.to/sonofsafwat/self-birthday-gifts-4c8l</guid>
      <description>&lt;p&gt;My birthday is coming up next month and I’m looking to get myself some cool swag/gadgets. What’s a good gift you got yourself recently and you’d recommend to a fellow dev? &lt;/p&gt;

</description>
      <category>watercooler</category>
      <category>discuss</category>
    </item>
  </channel>
</rss>
