<?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: Alejandro Bonilla</title>
    <description>The latest articles on DEV Community by Alejandro Bonilla (@ab0nilla).</description>
    <link>https://dev.to/ab0nilla</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%2F87198%2F26f75f9b-ea03-4916-9392-6009b22d5c02.jpg</url>
      <title>DEV Community: Alejandro Bonilla</title>
      <link>https://dev.to/ab0nilla</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/ab0nilla"/>
    <language>en</language>
    <item>
      <title>Installing PostGis and QGis, first GeoDataBase and Simple Insert</title>
      <dc:creator>Alejandro Bonilla</dc:creator>
      <pubDate>Thu, 06 Jun 2019 05:17:50 +0000</pubDate>
      <link>https://dev.to/ab0nilla/installing-postgis-and-qgis-first-geodatabase-and-simple-insert-5gj1</link>
      <guid>https://dev.to/ab0nilla/installing-postgis-and-qgis-first-geodatabase-and-simple-insert-5gj1</guid>
      <description>&lt;p&gt;Hi!, I have a longer time without write a post ... ups xD.&lt;/p&gt;

&lt;p&gt;Today I write a little post explain you: How I installed PostGis plugin, create geometry table, and insert data.&lt;/p&gt;

&lt;p&gt;Fast Specs in my server: Centos 7 minimal install, Postgres 11.&lt;br&gt;
Fast Specs in my Macbook: PgAdmin 4, QGis.&lt;/p&gt;

&lt;h1&gt;
  
  
  Step 1: Install PostGis Plugin.
&lt;/h1&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# yum install postgis2_11  
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;important!!! : the latest number its your Postgres Version in your server.&lt;/p&gt;

&lt;h1&gt;
  
  
  Step 2: SQL time.
&lt;/h1&gt;

&lt;p&gt;I use PgAdmin because my team its a non-programmer or technical users, maybe I write a post explain this.&lt;/p&gt;

&lt;h4&gt;
  
  
  2.1 : Create Database
&lt;/h4&gt;

&lt;h4&gt;
  
  
  2.2 : Run the script on "Enabling PostGIS" section:  &lt;a href="https://postgis.net/install/" rel="noopener noreferrer"&gt;https://postgis.net/install/&lt;/a&gt;
&lt;/h4&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fqwhpcuxaln21kkhpw1ed.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fqwhpcuxaln21kkhpw1ed.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  2.3 : Create a simple Geo Table on public schema:
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="k"&gt;CREATE&lt;/span&gt; &lt;span class="k"&gt;TABLE&lt;/span&gt; &lt;span class="n"&gt;TABLEOFPOINTS&lt;/span&gt;
&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;id&lt;/span&gt; &lt;span class="nb"&gt;serial&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;Place&lt;/span&gt; &lt;span class="nb"&gt;character&lt;/span&gt; &lt;span class="nb"&gt;varying&lt;/span&gt; &lt;span class="k"&gt;COLLATE&lt;/span&gt; &lt;span class="n"&gt;pg_catalog&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nv"&gt;"default"&lt;/span&gt; &lt;span class="k"&gt;NOT&lt;/span&gt; &lt;span class="k"&gt;NULL&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;dir&lt;/span&gt; &lt;span class="nb"&gt;character&lt;/span&gt; &lt;span class="nb"&gt;varying&lt;/span&gt; &lt;span class="k"&gt;COLLATE&lt;/span&gt; &lt;span class="n"&gt;pg_catalog&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nv"&gt;"default"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;geog&lt;/span&gt; &lt;span class="n"&gt;geography&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;Point&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi"&gt;4326&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;NOT&lt;/span&gt; &lt;span class="k"&gt;NULL&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="k"&gt;CONSTRAINT&lt;/span&gt; &lt;span class="n"&gt;TABLEOFPINTS_pkey&lt;/span&gt; &lt;span class="k"&gt;PRIMARY&lt;/span&gt; &lt;span class="k"&gt;KEY&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;id&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;Okay, Now you have a simple points table; NOT POLYGONAL.&lt;/p&gt;

&lt;h4&gt;
  
  
  Step 3: Run QGis (I running on 3.4) and connect to PostGis
&lt;/h4&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fp203j63bbl5j1bg9m9bd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fp203j63bbl5j1bg9m9bd.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2F5slfa21oage235rlmbhn.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2F5slfa21oage235rlmbhn.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Step 4: Install OpenLayers
&lt;/h4&gt;

&lt;p&gt;4.1: Enable experimental and deprecated plugins&lt;/p&gt;

&lt;p&gt;Plugins-&amp;gt;Manage and install plugins-&amp;gt;Settings&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Foqx218mst03bydrdhm9t.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Foqx218mst03bydrdhm9t.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;4.2 Search and Install OpenLayers&lt;/p&gt;

&lt;p&gt;Plugins-&amp;gt;Manage and install plugins-&amp;gt;All&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Ftddalwyywjb3kjwqga0w.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Ftddalwyywjb3kjwqga0w.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;4.3 Add OpenLayers plugin to project&lt;/p&gt;

&lt;p&gt;Web-&amp;gt;OpenLayers Plugin-&amp;gt;OpenStreetMap-&amp;gt;OpenStreetMap&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fgfqmr6iq47t5u78dxoyr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fgfqmr6iq47t5u78dxoyr.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Step 5: Add your Point Layer (Postgres spacial table)
&lt;/h4&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2F5po8ujerd1dgtop78tmi.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2F5po8ujerd1dgtop78tmi.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Step 6: Make Points
&lt;/h4&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fob0af3nvjtpp6g549o39.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fob0af3nvjtpp6g549o39.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;First make sure you have chosen the layer "TABLEOFPOINTS"&lt;/p&gt;

&lt;p&gt;1- Click on Pencil icon (Toggle edit).&lt;br&gt;
2- Click on "Add Point feature", and add your points.&lt;br&gt;
3- Complete your data info and click on "Save Layer edit" icon&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Ok, if I'am a good teacher you can create spatial database of point, basic use of Qgis and connect at your first Geo Table; finally add points at your database.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;The next week, I need use the Geo table to show points using NodeJS and VUE. I hope, this post has been useful for you and also listen to any suggestions for use in node and vue&lt;/em&gt;&lt;/p&gt;

</description>
      <category>postgis</category>
      <category>vue</category>
      <category>geospatial</category>
      <category>qgis</category>
    </item>
    <item>
      <title>How do you manage your usernames and passwords?</title>
      <dc:creator>Alejandro Bonilla</dc:creator>
      <pubDate>Sat, 01 Jun 2019 23:42:59 +0000</pubDate>
      <link>https://dev.to/ab0nilla/how-do-you-manage-your-usernames-and-passwords-402b</link>
      <guid>https://dev.to/ab0nilla/how-do-you-manage-your-usernames-and-passwords-402b</guid>
      <description>&lt;p&gt;Hi, The last week I lost 3, yes TRHEE! credentials:&lt;/p&gt;

&lt;p&gt;1-Grandstream IP-PBX.&lt;br&gt;
2-Hikvision NVR.&lt;br&gt;
3-and pizza hut online delivery.&lt;/p&gt;

&lt;p&gt;The 1 and 2 item; I lost $160 in spending.&lt;/p&gt;

&lt;p&gt;and you... How many users and password did you lose on mid of 2019?&lt;br&gt;
How manage your credentials?&lt;/p&gt;

</description>
      <category>discuss</category>
    </item>
    <item>
      <title>Bootstrap-vue custom color variant</title>
      <dc:creator>Alejandro Bonilla</dc:creator>
      <pubDate>Fri, 18 Jan 2019 22:47:40 +0000</pubDate>
      <link>https://dev.to/ab0nilla/bootstrap-vue-custom-color-variant-2fh9</link>
      <guid>https://dev.to/ab0nilla/bootstrap-vue-custom-color-variant-2fh9</guid>
      <description>&lt;p&gt;Hi Dev's, i'm new in Bootstrap-Vue.&lt;/p&gt;

&lt;p&gt;How I can customize the navbar background and text colors?&lt;/p&gt;

&lt;p&gt;Thanks.&lt;/p&gt;

</description>
      <category>help</category>
    </item>
    <item>
      <title>where is vue.config.js?</title>
      <dc:creator>Alejandro Bonilla</dc:creator>
      <pubDate>Tue, 02 Oct 2018 01:08:12 +0000</pubDate>
      <link>https://dev.to/ab0nilla/where-is-vueconfigjs-2nh9</link>
      <guid>https://dev.to/ab0nilla/where-is-vueconfigjs-2nh9</guid>
      <description>&lt;p&gt;Hi&lt;/p&gt;

&lt;p&gt;I new in vue, where is the vue.config.js?&lt;/p&gt;

&lt;p&gt;I read the documentation, but I do not understand&lt;/p&gt;

&lt;p&gt;&lt;a href="https://cli.vuejs.org/config/#vue-config-js"&gt;https://cli.vuejs.org/config/#vue-config-js&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;thanks.&lt;/p&gt;

&lt;p&gt;Edit:solved...  appears magically&lt;/p&gt;

</description>
      <category>help</category>
    </item>
    <item>
      <title>Drawing in dev.to</title>
      <dc:creator>Alejandro Bonilla</dc:creator>
      <pubDate>Mon, 24 Sep 2018 21:25:28 +0000</pubDate>
      <link>https://dev.to/ab0nilla/its-not-programming-29o2</link>
      <guid>https://dev.to/ab0nilla/its-not-programming-29o2</guid>
      <description>&lt;h1&gt;
  
  
  Did you create your drawing?
&lt;/h1&gt;

&lt;p&gt;A few minutes ago I had internet problems, and at that precise moment I wanted to enter dev.to, and discovered something.&lt;/p&gt;

&lt;p&gt;The internet came back, but I wanted to continue drawing, the backend can wait.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Gq0XzwxL--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/jiks0lu95mpizw4vvka4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Gq0XzwxL--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/jiks0lu95mpizw4vvka4.png" alt="from_alejob0nilla_studios"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Yes, it is mine, not kidding, the drawing of a man 26 years old.&lt;/p&gt;

&lt;p&gt;Go to Dev.to, deactivate your network card, F5 and draw.&lt;/p&gt;

&lt;p&gt;bye bye&lt;/p&gt;

</description>
      <category>draw</category>
    </item>
    <item>
      <title>docker+node+vue+apache</title>
      <dc:creator>Alejandro Bonilla</dc:creator>
      <pubDate>Sat, 22 Sep 2018 00:55:51 +0000</pubDate>
      <link>https://dev.to/ab0nilla/dockernodevueapache-1jo6</link>
      <guid>https://dev.to/ab0nilla/dockernodevueapache-1jo6</guid>
      <description>&lt;p&gt;Hi Dev's&lt;/p&gt;

&lt;p&gt;I have 1 physical server with Centos 6. This a old server, with a lot services for my office, and now goes to migrating at new technologies. (Vue and node)&lt;/p&gt;

&lt;p&gt;The cuestion... &lt;/p&gt;

&lt;p&gt;Its a great idea dockerizer the Website of my business?&lt;/p&gt;

&lt;p&gt;I need dockerizer vue+node on same container, or one container for vue frontend and other for node backend container?&lt;/p&gt;

&lt;p&gt;PD: I learning docker ... and English xD&lt;/p&gt;

</description>
      <category>help</category>
    </item>
    <item>
      <title>configure and run vue+nodejs </title>
      <dc:creator>Alejandro Bonilla</dc:creator>
      <pubDate>Wed, 12 Sep 2018 22:07:03 +0000</pubDate>
      <link>https://dev.to/ab0nilla/configure-and-run-vuenodejs--5588</link>
      <guid>https://dev.to/ab0nilla/configure-and-run-vuenodejs--5588</guid>
      <description>&lt;p&gt;Hi Devs. I am noob in StackDeveloper.&lt;/p&gt;

&lt;p&gt;How configure vue-cli and nodejs for run both in same script for example:&lt;/p&gt;

&lt;p&gt;run server app.js&lt;/p&gt;

&lt;p&gt;And run the frontend and the backend.&lt;/p&gt;

&lt;p&gt;Thanks.&lt;/p&gt;

&lt;p&gt;PD: my english is bad&lt;/p&gt;

</description>
      <category>help</category>
    </item>
    <item>
      <title>Cleaning our Macbook</title>
      <dc:creator>Alejandro Bonilla</dc:creator>
      <pubDate>Mon, 10 Sep 2018 23:58:23 +0000</pubDate>
      <link>https://dev.to/ab0nilla/cleaning-my-macbook-584n</link>
      <guid>https://dev.to/ab0nilla/cleaning-my-macbook-584n</guid>
      <description>&lt;p&gt;Hi, today I clean my laptop, server, networking devices and I share with you my steps for cleaning my macbook :P .&lt;/p&gt;

&lt;p&gt;One day without programming. &lt;br&gt;
Clean your devices and clear your mind -Me.&lt;br&gt;
Step 1: Your laptop&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2F4wtj45x3ozqu7vlgmzka.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2F4wtj45x3ozqu7vlgmzka.jpg" alt="Alt text of image"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Requeriments Part 1: &lt;br&gt;
Cloths and Air compressed (I have compressor because in my house I have server's, switches and routers, motor of my car and blah blah).&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fh8bvrr793bdllhhhfqfm.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fh8bvrr793bdllhhhfqfm.jpg" alt="Alt text of image"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fd2bv9fk00znf1dklesrb.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fd2bv9fk00znf1dklesrb.jpg" alt="Alt text of image"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Requeriments Part 2:&lt;br&gt;
Silicone for the body, keyboard and tochpad. And crystal cleaner for your Retina (Laptop, not for you).&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2F3t36rxdioscemkumu5m2.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2F3t36rxdioscemkumu5m2.jpg" alt="Alt text of image"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In the Malls have 2 common type of silicone, fatty and dry, the fatty is a horrible option por clean your PC's, he sensation when touching it is ugly.&lt;/p&gt;

&lt;p&gt;My laptop :( &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fbk1ue21vu8i4d485vv10.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fbk1ue21vu8i4d485vv10.jpg" alt="Alt text of image"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2F867n7rssnlqnkzt9tsdf.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2F867n7rssnlqnkzt9tsdf.jpg" alt="Alt text of image"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2F7fa91k5wtcbdptf28d6b.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2F7fa91k5wtcbdptf28d6b.jpg" alt="Alt text of image"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Cleaning 1:&lt;br&gt;
Use the air compressing on all laptop.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://support.apple.com/en-us/HT205662" rel="noopener noreferrer"&gt;Apple Oficial guide for clean the macbook pro 2017 keyboard&lt;/a&gt; &lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Faclw3vop11takyqyebb3.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Faclw3vop11takyqyebb3.jpg" alt="Alt text of image"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Cleaning 2:&lt;br&gt;
Attention!! : "Don't use aerosol sprays, solvents, abrasives, or cleaners containing hydrogen peroxide that might damage the finish". &lt;a href="https://support.apple.com/en-us/HT204172" rel="noopener noreferrer"&gt;Apple Oficial guide for clean the macbook&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Maybe you have a sticky or glued particles, and use cloth for remove this with sugar.&lt;br&gt;
Use the "Dust" clothe, for remove the big particles, a little strength, and a lot of sugar, be sugar; if you not have sugar, your laptop get scratches in the body. &lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fqh0tqx4vdx1sxdk9svey.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fqh0tqx4vdx1sxdk9svey.jpg" alt="Alt text of image"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Cleaning 3:&lt;/p&gt;

&lt;p&gt;Use the silicone&lt;/p&gt;

&lt;p&gt;Attention!! : "Don't use aerosol sprays, solvents, abrasives, or cleaners containing hydrogen peroxide that might damage the finish". &lt;a href="https://support.apple.com/en-us/HT204172" rel="noopener noreferrer"&gt;Apple Oficial guide for clean the macbook&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Clean the body, keyboard and Touchpad; DONT USE THIS IN YOUR SCREEN!!!&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Feydrfg4cdz98tzwgeni6.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Feydrfg4cdz98tzwgeni6.jpg" alt="Alt text of image"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Cleaning 4:&lt;br&gt;
Clean the screen, with a nice lint-free cloth. "Avoid abrasive cloths, towels, paper towels, and similar items that might cause damage" &lt;a href="https://support.apple.com/en-us/HT205662" rel="noopener noreferrer"&gt;Apple Oficial guide for clean the macbook pro 2017 keyboard&lt;/a&gt;&lt;br&gt;
And again, be sugar, sugar, the macbook need sugar.&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fw00gfjs5w3rb3ubt1ipq.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fw00gfjs5w3rb3ubt1ipq.jpg" alt="Alt text of image"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Result:&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fxjmji047zpbv13f70ul0.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fxjmji047zpbv13f70ul0.jpg" alt="Alt text of image"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fldv1b600bkenewo8xcgk.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fldv1b600bkenewo8xcgk.jpg" alt="Alt text of image"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Finally&lt;br&gt;
Use your peripherals, go to the park, look a movie at Netflix, read your book and let the silicon take effect if you use your keyboard after apply the "silicone",can spots appear, this spots are not permanent but your need repeat the "Cleaning 2" step.&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fx3i0s0afh0ojumjf4iuf.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fx3i0s0afh0ojumjf4iuf.jpg" alt="Alt text of image"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Happy Cleaning.&lt;/p&gt;

&lt;p&gt;PD: My english is bad&lt;/p&gt;

</description>
      <category>macbook</category>
      <category>clean</category>
      <category>macbookpro</category>
    </item>
    <item>
      <title>HTTPS server with NojeJS</title>
      <dc:creator>Alejandro Bonilla</dc:creator>
      <pubDate>Wed, 05 Sep 2018 23:48:05 +0000</pubDate>
      <link>https://dev.to/ab0nilla/https-server-with-nojejs-315i</link>
      <guid>https://dev.to/ab0nilla/https-server-with-nojejs-315i</guid>
      <description>&lt;p&gt;Hi :D &lt;/p&gt;

&lt;p&gt;This week I write a little bot for messenger ( Facebook chat). I have not had fb for some years.&lt;/p&gt;

&lt;p&gt;I re-discover the facebook social network and join in developer.facebook.com, the documentation in this site is big confused.&lt;/p&gt;

&lt;p&gt;well...&lt;/p&gt;

&lt;p&gt;You need run your webhook over HTTPS server, and Facebook check your certs; if you run nodejs over local https; with self-generated certificates Facebook says: "..." I don't remember xD, but Facebook don't accept your "insecure" connection with your self-generated certificates with openssl.&lt;/p&gt;

&lt;p&gt;I try install my self-generated certificates with openssl, and not found :(&lt;/p&gt;

&lt;p&gt;But!.. in my post &lt;/p&gt;
&lt;div class="ltag__link"&gt;
  &lt;a href="/ab0nilla" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__pic"&gt;
      &lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F87198%2F26f75f9b-ea03-4916-9392-6009b22d5c02.jpg" alt="ab0nilla"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="/ab0nilla/install-ssl-certificate-with-certbot-in-centos-7-47b2" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;Install SSL certificate with Certbot in Centos 7&lt;/h2&gt;
      &lt;h3&gt;Alejandro Bonilla ・ Jul 30 '18&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#certbot&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#centos7&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#apache&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#ssl&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;
 I use "certbot" and in this project I used an online service: zerossl.com they also use let's Encrypt.

&lt;p&gt;Go to Zerossl.com and get your certificates, search the "Service FAQ" and "How-To Videos" in the website and get yours CA, CERT and Key archives.&lt;/p&gt;

&lt;p&gt;Copy your download files in your workspace folder.&lt;/p&gt;

&lt;p&gt;Ok, you have your files, generated in zerossl.com, now write the daily code for simple NodeJS; and add this require.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;https&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;require&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;https&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);]&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;add your download files (the zerossl.com certificates)&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;options&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="na"&gt;key&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;fs&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;readFileSync&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;/dir/key.key&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
  &lt;span class="na"&gt;cert&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;fs&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;readFileSync&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;/dir/crt.crt&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
  &lt;span class="na"&gt;ca&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;fs&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;readFileSync&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;/dir/ca.ca&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;Finally replace your&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;app&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;listen&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;3000&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;for this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;https&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;createServer&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;options&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;app&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;listen&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;port&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;webhookk listen&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)).&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Complete example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;use strict&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="nx"&gt;THE&lt;/span&gt; &lt;span class="nx"&gt;REQUIRES&lt;/span&gt; &lt;span class="nx"&gt;AND&lt;/span&gt; &lt;span class="nx"&gt;process&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;env&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;PORT&lt;/span&gt; &lt;span class="nx"&gt;AND&lt;/span&gt; &lt;span class="nx"&gt;BLAH&lt;/span&gt; &lt;span class="nx"&gt;BLAH&lt;/span&gt; &lt;span class="nx"&gt;cons&lt;/span&gt; &lt;span class="nx"&gt;and&lt;/span&gt; &lt;span class="nx"&gt;other&lt;/span&gt; &lt;span class="nx"&gt;magic&lt;/span&gt; &lt;span class="nx"&gt;trick&lt;/span&gt;

&lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;https&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;require&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;https&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="kd"&gt;var&lt;/span&gt;  &lt;span class="nx"&gt;fs&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;require&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;fs&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;options&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="na"&gt;key&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;fs&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;readFileSync&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;YOURDIR/key.key&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
  &lt;span class="na"&gt;cert&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;fs&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;readFileSync&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;YOURDIR/crt.crt&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
  &lt;span class="na"&gt;ca&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;fs&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;readFileSync&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;YOURDIR/ca.ca&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;app&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;post&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;/webhook&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;req&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;res&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;  
 &lt;span class="nx"&gt;yourcode&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;


&lt;span class="nx"&gt;app&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;/webhook&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;req&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;res&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
   &lt;span class="nx"&gt;yourcode&lt;/span&gt;
  &lt;span class="p"&gt;});&lt;/span&gt;

&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;handleMessage&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;sender_psid&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;received_message&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
   &lt;span class="nx"&gt;yourcode&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;handlePostback&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;sender_psid&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;received_postback&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nx"&gt;yourcode&lt;/span&gt;
  &lt;span class="nf"&gt;callSendAPI&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;sender_psid&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;response&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;callSendAPI&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;sender_psid&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;response&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nx"&gt;yourcode&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="nx"&gt;https&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;createServer&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;options&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;app&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;listen&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;port&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;webhookk listen&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;));&lt;/span&gt;

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

&lt;/div&gt;



&lt;p&gt;Now, Facebook accept your secure connection :D&lt;/p&gt;

&lt;p&gt;&lt;em&gt;remember that the certificates expire, you must renew them.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;remember 2: Https use the port 443, configure your firewall and move your others server (apache , nginx).&lt;/em&gt;&lt;/p&gt;

</description>
      <category>https</category>
      <category>node</category>
      <category>webhook</category>
      <category>messenger</category>
    </item>
    <item>
      <title>List of Open-Source Software for Business, you and me </title>
      <dc:creator>Alejandro Bonilla</dc:creator>
      <pubDate>Tue, 04 Sep 2018 23:26:38 +0000</pubDate>
      <link>https://dev.to/ab0nilla/list-of-open-source-software-for-business-you-and-me--2d4k</link>
      <guid>https://dev.to/ab0nilla/list-of-open-source-software-for-business-you-and-me--2d4k</guid>
      <description>

&lt;p&gt;Hello, I always like to start a post with a "hello" to all.&lt;/p&gt;

&lt;p&gt;Today I write a little list of open-source software for Business, for you and everyone.&lt;/p&gt;

&lt;p&gt;For the Business &lt;/p&gt;

&lt;p&gt;&lt;em&gt;Server OS&lt;/em&gt;: CentOS/RHEL 7 or Ubuntu; or pay for RedHat or Opensuse Enterprise and go to sleep?&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Email Server&lt;/em&gt;:Postfix+Dovecot&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Webmail Server&lt;/em&gt;:RoundCube or Squirrelmail (webmail for nuts! xD) &lt;/p&gt;

&lt;p&gt;&lt;em&gt;AntiSpam&lt;/em&gt;: Spamassassin&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Web Server&lt;/em&gt;: LAMP (or LEMP, or you know xD)&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Email client&lt;/em&gt;: Thunderbid&lt;/p&gt;

&lt;p&gt;&lt;em&gt;CardDav server&lt;/em&gt;: Radicale&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Data safety backup&lt;/em&gt;: Seafile&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;edited&lt;/strong&gt;&lt;br&gt;
&lt;em&gt;Office Suite&lt;/em&gt;: LibreOffice, Open365 in your Server... or Google Docs (free but not opensource; thx &lt;em&gt;Antony Garand&lt;/em&gt; )&lt;br&gt;
&lt;strong&gt;end edit&lt;/strong&gt;&lt;br&gt;
&lt;em&gt;For the social networks guys&lt;/em&gt;: Gimp&lt;/p&gt;

&lt;p&gt;And for big enterprises company's:Containers+Orchestration.&lt;/p&gt;

&lt;p&gt;Unfortunately many of the users of my company need Microsoft Excel, macros and functions that are not compatible with the other programs, but step by step, will change&lt;/p&gt;

&lt;p&gt;and if you do not agree with this, and you need sleep: AWS, Google, Microsoft and etc solutions :) .&lt;/p&gt;

&lt;p&gt;For me:&lt;br&gt;
Ubuntu and Linux Mint &amp;lt;3&lt;br&gt;
Visual Code Studio&lt;br&gt;
GIMP&lt;br&gt;
LibreOffice&lt;br&gt;
Seafile&lt;br&gt;
Thunderbird&lt;br&gt;
Filezilla&lt;br&gt;
Telegram ?&lt;br&gt;
Git&lt;br&gt;
All the open-source framework's and libraries to make the unbelievable software.&lt;/p&gt;

&lt;p&gt;comment your open-source software's, maybe you can help someone solve a problem.&lt;br&gt;
We are a community.&lt;/p&gt;

&lt;p&gt;PD: My english is bad :P&lt;/p&gt;


</description>
      <category>opensource</category>
      <category>business</category>
      <category>software</category>
    </item>
    <item>
      <title>Web App or LAMP?</title>
      <dc:creator>Alejandro Bonilla</dc:creator>
      <pubDate>Fri, 31 Aug 2018 21:25:59 +0000</pubDate>
      <link>https://dev.to/ab0nilla/web-app-or-lamp-49bn</link>
      <guid>https://dev.to/ab0nilla/web-app-or-lamp-49bn</guid>
      <description>&lt;p&gt;Hi guys, and ladies.&lt;/p&gt;

&lt;p&gt;I am a freelance and I have a project, a website with a catalog of proudcts, profiles and "mini-stores" within the same website. The boss wants a web app.&lt;/p&gt;

&lt;p&gt;All sponsors say Web App.&lt;/p&gt;

&lt;p&gt;Is it a good idea, a Web App for public access and production?&lt;/p&gt;

</description>
      <category>help</category>
    </item>
    <item>
      <title>Web app for change network configuration?</title>
      <dc:creator>Alejandro Bonilla</dc:creator>
      <pubDate>Wed, 29 Aug 2018 06:40:57 +0000</pubDate>
      <link>https://dev.to/ab0nilla/web-app-for-change-network-configuration-8fh</link>
      <guid>https://dev.to/ab0nilla/web-app-for-change-network-configuration-8fh</guid>
      <description>&lt;p&gt;Hi to all.&lt;br&gt;
It's possible change the network configuration via Web APP?&lt;/p&gt;

&lt;p&gt;Maybe with Dart?&lt;/p&gt;

&lt;p&gt;I don't want use Micro.. Visua Studi.. (Cough, cough). xD&lt;/p&gt;

&lt;p&gt;I need change the network configuration of my LAN (Windows 10 and 7) via Software.&lt;/p&gt;

</description>
      <category>help</category>
      <category>networking</category>
      <category>network</category>
    </item>
  </channel>
</rss>
