<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:cc="http://cyber.law.harvard.edu/rss/creativeCommonsRssModule.html">
    <channel>
        <title><![CDATA[Stories by Faaiz SHAH on Medium]]></title>
        <description><![CDATA[Stories by Faaiz SHAH on Medium]]></description>
        <link>https://medium.com/@faaizhussain?source=rss-703ca75f066a------2</link>
        <image>
            <url>https://cdn-images-1.medium.com/fit/c/150/150/1*sLp1kGnWFR5B7y8HV-nRdg.png</url>
            <title>Stories by Faaiz SHAH on Medium</title>
            <link>https://medium.com/@faaizhussain?source=rss-703ca75f066a------2</link>
        </image>
        <generator>Medium</generator>
        <lastBuildDate>Wed, 20 May 2026 13:45:25 GMT</lastBuildDate>
        <atom:link href="https://medium.com/@faaizhussain/feed" rel="self" type="application/rss+xml"/>
        <webMaster><![CDATA[yourfriends@medium.com]]></webMaster>
        <atom:link href="http://medium.superfeedr.com" rel="hub"/>
        <item>
            <title><![CDATA[Server Key Changed (known_hosts is refusing ssh connection)]]></title>
            <description><![CDATA[<div class="medium-feed-item"><p class="medium-feed-snippet">I saw this error on my MAC when i tried to connect to remote server</p><p class="medium-feed-link"><a href="https://medium.com/@faaizhussain/server-key-changed-known-hosts-is-refusing-ssh-connection-67387656e3a7?source=rss-703ca75f066a------2">Continue reading on Medium »</a></p></div>]]></description>
            <link>https://medium.com/@faaizhussain/server-key-changed-known-hosts-is-refusing-ssh-connection-67387656e3a7?source=rss-703ca75f066a------2</link>
            <guid isPermaLink="false">https://medium.com/p/67387656e3a7</guid>
            <category><![CDATA[ssh]]></category>
            <category><![CDATA[ssh-keygen]]></category>
            <category><![CDATA[ssh-keys]]></category>
            <dc:creator><![CDATA[Faaiz SHAH]]></dc:creator>
            <pubDate>Fri, 08 Aug 2025 20:19:31 GMT</pubDate>
            <atom:updated>2025-08-08T20:20:13.239Z</atom:updated>
        </item>
        <item>
            <title><![CDATA[MLOps Cybersecurity Project Deployment]]></title>
            <description><![CDATA[<div class="medium-feed-item"><p class="medium-feed-snippet">MLOps Cybersecurity Threat Detection System</p><p class="medium-feed-link"><a href="https://medium.com/@faaizhussain/mlops-cybersecurity-project-deployment-b3539d1da68b?source=rss-703ca75f066a------2">Continue reading on Medium »</a></p></div>]]></description>
            <link>https://medium.com/@faaizhussain/mlops-cybersecurity-project-deployment-b3539d1da68b?source=rss-703ca75f066a------2</link>
            <guid isPermaLink="false">https://medium.com/p/b3539d1da68b</guid>
            <category><![CDATA[cybersecurity]]></category>
            <category><![CDATA[data-science]]></category>
            <category><![CDATA[mlops]]></category>
            <category><![CDATA[machine-learning]]></category>
            <dc:creator><![CDATA[Faaiz SHAH]]></dc:creator>
            <pubDate>Thu, 07 Aug 2025 08:54:52 GMT</pubDate>
            <atom:updated>2025-08-07T09:09:36.013Z</atom:updated>
        </item>
        <item>
            <title><![CDATA[Request HTTPS Certificate with Certbot]]></title>
            <description><![CDATA[<div class="medium-feed-item"><p class="medium-feed-snippet">Run the following to install HTTPS (Let&#x2019;s Encrypt) certificate:</p><p class="medium-feed-link"><a href="https://medium.com/@faaizhussain/request-https-certificate-with-certbot-b8754910d620?source=rss-703ca75f066a------2">Continue reading on Medium »</a></p></div>]]></description>
            <link>https://medium.com/@faaizhussain/request-https-certificate-with-certbot-b8754910d620?source=rss-703ca75f066a------2</link>
            <guid isPermaLink="false">https://medium.com/p/b8754910d620</guid>
            <category><![CDATA[certbot]]></category>
            <category><![CDATA[ssl-certificate]]></category>
            <dc:creator><![CDATA[Faaiz SHAH]]></dc:creator>
            <pubDate>Wed, 06 Aug 2025 00:04:51 GMT</pubDate>
            <atom:updated>2025-08-06T00:04:51.785Z</atom:updated>
        </item>
        <item>
            <title><![CDATA[Full Docker Setup for Neo4j]]></title>
            <description><![CDATA[<div class="medium-feed-item"><p class="medium-feed-snippet">This is precise setup of Noe4j on a Unix based system.</p><p class="medium-feed-link"><a href="https://medium.com/@faaizhussain/full-docker-setup-for-neo4j-13305a0cf7dd?source=rss-703ca75f066a------2">Continue reading on Medium »</a></p></div>]]></description>
            <link>https://medium.com/@faaizhussain/full-docker-setup-for-neo4j-13305a0cf7dd?source=rss-703ca75f066a------2</link>
            <guid isPermaLink="false">https://medium.com/p/13305a0cf7dd</guid>
            <category><![CDATA[docker]]></category>
            <category><![CDATA[neo4j]]></category>
            <category><![CDATA[setup]]></category>
            <category><![CDATA[ubuntu]]></category>
            <category><![CDATA[docker-compose]]></category>
            <dc:creator><![CDATA[Faaiz SHAH]]></dc:creator>
            <pubDate>Tue, 05 Aug 2025 22:40:23 GMT</pubDate>
            <atom:updated>2025-08-05T22:48:09.241Z</atom:updated>
        </item>
        <item>
            <title><![CDATA[Setup new Ubuntu machine]]></title>
            <description><![CDATA[<div class="medium-feed-item"><p class="medium-feed-snippet">Following is the minimum setup i need every time i spin a new VPS on any cloud provider.</p><p class="medium-feed-link"><a href="https://medium.com/@faaizhussain/setup-new-ubuntu-22-04-machine-71ab1bacdfd1?source=rss-703ca75f066a------2">Continue reading on Medium »</a></p></div>]]></description>
            <link>https://medium.com/@faaizhussain/setup-new-ubuntu-22-04-machine-71ab1bacdfd1?source=rss-703ca75f066a------2</link>
            <guid isPermaLink="false">https://medium.com/p/71ab1bacdfd1</guid>
            <category><![CDATA[pyenv-virtualenv]]></category>
            <category><![CDATA[zsh]]></category>
            <category><![CDATA[oh-my-zsh]]></category>
            <category><![CDATA[initial-setup]]></category>
            <category><![CDATA[ubuntu]]></category>
            <dc:creator><![CDATA[Faaiz SHAH]]></dc:creator>
            <pubDate>Tue, 05 Aug 2025 22:18:41 GMT</pubDate>
            <atom:updated>2025-08-15T04:10:37.902Z</atom:updated>
        </item>
        <item>
            <title><![CDATA[Neo4j + APOC + Docker + Ubuntu]]></title>
            <description><![CDATA[<div class="medium-feed-item"><p class="medium-feed-image"><a href="https://medium.com/@faaizhussain/neo4j-apoc-docker-ubuntu-d69e4470d687?source=rss-703ca75f066a------2"><img src="https://cdn-images-1.medium.com/max/1848/0*guo9uJK5JTBIeXiR.png" width="1848"></a></p><p class="medium-feed-snippet">This story is step by step guide to install Neo4j using Docker on Ubuntu</p><p class="medium-feed-link"><a href="https://medium.com/@faaizhussain/neo4j-apoc-docker-ubuntu-d69e4470d687?source=rss-703ca75f066a------2">Continue reading on Medium »</a></p></div>]]></description>
            <link>https://medium.com/@faaizhussain/neo4j-apoc-docker-ubuntu-d69e4470d687?source=rss-703ca75f066a------2</link>
            <guid isPermaLink="false">https://medium.com/p/d69e4470d687</guid>
            <category><![CDATA[docker]]></category>
            <category><![CDATA[apoc]]></category>
            <category><![CDATA[neo4j]]></category>
            <category><![CDATA[ubuntu]]></category>
            <dc:creator><![CDATA[Faaiz SHAH]]></dc:creator>
            <pubDate>Fri, 22 Dec 2023 16:53:38 GMT</pubDate>
            <atom:updated>2023-12-22T16:54:02.140Z</atom:updated>
        </item>
        <item>
            <title><![CDATA[Neo4j support for “Primitive types” and  “Arrays” — What can not be stored ?]]></title>
            <description><![CDATA[<div class="medium-feed-item"><p class="medium-feed-image"><a href="https://medium.com/@faaizhussain/neo4j-support-for-primitive-types-and-arrays-what-can-not-be-stored-a8a4cfa34d3c?source=rss-703ca75f066a------2"><img src="https://cdn-images-1.medium.com/max/1134/1*7kKmRh_Coo36f1nziSCXHw.png" width="1134"></a></p><p class="medium-feed-snippet">To see What we can not store in Neo4j graph database.</p><p class="medium-feed-link"><a href="https://medium.com/@faaizhussain/neo4j-support-for-primitive-types-and-arrays-what-can-not-be-stored-a8a4cfa34d3c?source=rss-703ca75f066a------2">Continue reading on Medium »</a></p></div>]]></description>
            <link>https://medium.com/@faaizhussain/neo4j-support-for-primitive-types-and-arrays-what-can-not-be-stored-a8a4cfa34d3c?source=rss-703ca75f066a------2</link>
            <guid isPermaLink="false">https://medium.com/p/a8a4cfa34d3c</guid>
            <category><![CDATA[neo4j]]></category>
            <category><![CDATA[cypher]]></category>
            <dc:creator><![CDATA[Faaiz SHAH]]></dc:creator>
            <pubDate>Fri, 22 Dec 2023 16:23:43 GMT</pubDate>
            <atom:updated>2023-12-22T16:23:43.555Z</atom:updated>
        </item>
        <item>
            <title><![CDATA[Writing Data to MongoDB using Spark (Scala) with SBT]]></title>
            <description><![CDATA[<div class="medium-feed-item"><p class="medium-feed-image"><a href="https://blog.devgenius.io/writing-data-to-mongodb-using-spark-scala-with-sbt-dfa270dc85b6?source=rss-703ca75f066a------2"><img src="https://cdn-images-1.medium.com/max/857/1*F3FD0_HiUTTpfA7dGCoZEA.png" width="857"></a></p><p class="medium-feed-snippet">This code assumes the subject items are installed and working. The objective for this code is to provide a quick-start about MongoDB&#x2026;</p><p class="medium-feed-link"><a href="https://blog.devgenius.io/writing-data-to-mongodb-using-spark-scala-with-sbt-dfa270dc85b6?source=rss-703ca75f066a------2">Continue reading on Dev Genius »</a></p></div>]]></description>
            <link>https://blog.devgenius.io/writing-data-to-mongodb-using-spark-scala-with-sbt-dfa270dc85b6?source=rss-703ca75f066a------2</link>
            <guid isPermaLink="false">https://medium.com/p/dfa270dc85b6</guid>
            <category><![CDATA[scala]]></category>
            <category><![CDATA[spark]]></category>
            <category><![CDATA[mongodb]]></category>
            <dc:creator><![CDATA[Faaiz SHAH]]></dc:creator>
            <pubDate>Fri, 22 Dec 2023 16:01:10 GMT</pubDate>
            <atom:updated>2023-12-23T16:09:13.809Z</atom:updated>
        </item>
        <item>
            <title><![CDATA[Installation of “Neo4j Desktop” on Ubuntu 22.04 with Example Cypher Queries]]></title>
            <link>https://medium.com/@faaizhussain/installation-of-neo4j-desktop-on-ubuntu-22-04-3d2ea872c5e5?source=rss-703ca75f066a------2</link>
            <guid isPermaLink="false">https://medium.com/p/3d2ea872c5e5</guid>
            <category><![CDATA[neo4j-desktop-install]]></category>
            <category><![CDATA[graph-database]]></category>
            <category><![CDATA[neo4j]]></category>
            <category><![CDATA[neo4j-graph-database]]></category>
            <category><![CDATA[cypher-queries]]></category>
            <dc:creator><![CDATA[Faaiz SHAH]]></dc:creator>
            <pubDate>Tue, 07 Nov 2023 15:14:05 GMT</pubDate>
            <atom:updated>2023-11-07T17:10:43.893Z</atom:updated>
            <content:encoded><![CDATA[<h3>1. Installing Neo4j Desktop</h3><p>Visit on the Neo4j download website <a href="https://neo4j.com/download/">https://neo4j.com/download/</a></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*UZAoEailMASNcMiPcL4vjQ.png" /></figure><p>When you click on the Download button, you will get a screen to register yourself to receive the activation key for Neo4j Desktop as below:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*Fh_dtNTHJh-gTIYBTIsFwg.png" /></figure><p>When you click on the download button, a new screen will appear that will contain the key as shown below and the downloading will start.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*XmPoCnRKwi_1vl-3aVBYeA.png" /></figure><p>Copy and keep the Activation Key at a safe location that we will use for software registration step.</p><p>Go the directory where installation file .AppImage is downloaded, and execute the following command</p><pre>chmod +x neo4j-desktop-1.5.9-x86_64.AppImage</pre><pre>./neo4j-desktop-1.5.9-x86_64.AppImage  </pre><p>If you get the error like below:</p><pre>dlopen(): error loading libfuse.so.2<br><br>AppImages require FUSE to run. <br>You might still be able to extract the contents of this AppImage <br>if you run it with the --appimage-extract option. <br>See https://github.com/AppImage/AppImageKit/wiki/FUSE <br>for more information</pre><p>Then run the following commands:</p><pre>sudo add-apt-repository universe<br>sudo apt install libfuse2</pre><p>After that you can execute again the command</p><pre>./neo4j-desktop-1.5.9-x86_64.AppImage</pre><p>And you will see the output similar to following:</p><pre>[14:50:00.780] [info]  ● ● ● Starting Neo4j Desktop 1.5.9 @ Linux 6.2.0-35-generic, Intel(R) Core(TM) i7-9750H CPU @ 2.60GHz}<br>libva error: vaGetDriverNameByIndex() failed with unknown libva error, driver_name = (null)<br>[Nest] 636834  - 11/07/2023, 2:50:01 PM     LOG [NestFactory] Starting Nest application...<br>[Nest] 636834  - 11/07/2023, 2:50:01 PM     LOG [InstanceLoader] DeprecatedGraphQLModule dependencies initialized +75ms<br>[Nest] 636834  - 11/07/2023, 2:50:01 PM     LOG [InstanceLoader] GraphQLSchemaBuilderModule dependencies initialized +0ms<br>[Nest] 636834  - 11/07/2023, 2:50:01 PM     LOG [InstanceLoader] GraphQLModule dependencies initialized +1ms<br>[14:50:01.247] [info]  Initializing persistence<br>[Nest] 636834  - 11/07/2023, 2:50:01 PM     LOG [GraphQLModule] Mapped {/graphql, POST} route +87ms<br>[Nest] 636834  - 11/07/2023, 2:50:01 PM     LOG [NestApplication] Nest application successfully started +1ms<br>[14:50:01.333] [info]  ● ● ● GraphQL server is running @ http://127.0.0.1:11001<br>[14:50:01.341] [info]  Creating persistent store - projects<br>[14:50:01.360] [info]  Creating persistent store - databases<br>[14:50:01.363] [info]  Creating persistent store - userData<br>[14:50:01.369] [info]  Creating persistent store - graphApps<br>[14:50:01.372] [info]  Creating persistent store - plugins<br>[14:50:01.376] [info]  Creating persistent store - distributions</pre><p>And a window Neo4j Desktop with license agreement will appear as follows:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*BDHHoaTCfhZqBfoqMI5LJQ.png" /></figure><p>Next is the Software registration page. Here you need to enter the activation key that you received at the time of software download.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*omAD84zTlxp3GPN8hD6Lcw.png" /></figure><p>After successful registration, you will see the installation screen as below:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*GTNA6W5MD_WK3zMJP6HXdQ.png" /></figure><p>After the successful installation you will see a message as below. Click Ok</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*2rYLzRK8u2Ak87hUL2fGAA.png" /></figure><p>And, finally you have Neo4j Desktop screen <a href="https://emojipedia.org/smiling-face-with-smiling-eyes">😊</a></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*qVpTcg1FQLNdBkhJTBIUPg.png" /></figure><p>To open the example project Movie DBMS click on the Open button as shown in the picture below:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*O2hCBfgTT_zpYR7o_RtRYg.png" /></figure><p><strong>Et Voilà! </strong>You have a working Neo4j graph database up and working with an example database.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*cVk_vNrBKEu9KPfyyMdUEA.png" /></figure><h3><strong>2. Using Cypher Queries on Example Graph Database</strong></h3><p>Click on the left-side top vertical menu icon to see the database information such as Node labels and Relationship types. You can also see the Property Keys and other DBMS information as shown in the image below.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*8Vy68C0ydR_s2dB8jmUG0A.png" /></figure><p>Let’s execute a few Cypher commands to play with Neo4j graph database. We can the graph schema visualization of this example movie database Call db.schema.visualization , we will get following output</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*oY06Sgih9vxggMsb6Qdh8Q.png" /></figure><ol><li>Let’s count the number of nodes in movie database. Execute the following query</li></ol><pre>MATCH ()<br>RETURN count(*) as count</pre><p>And we get the output count 169</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*QSemmJPfWN4T9nYHCo0Ykg.png" /></figure><p>2. Count all the nodes with label Person and Movie</p><pre>MATCH (:Person)<br>RETURN count(*) as count</pre><pre>MATCH (:Movie)<br>RETURN count(*) as count</pre><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*SdqDY6n3iYz6v10xG3VQPw.png" /></figure><p>3. Count all the relationships:</p><pre>MATCH ()-[r]-&gt;()<br>RETURN count(r) as count</pre><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*KKIiCbmgsN8jd8HRKIu3aQ.png" /></figure><p>4. Find the count of number of relationship where the relationship type is ACTED_IN</p><pre>MATCH ()-[r:ACTED_IN]-&gt;()<br>RETURN count(r) as count</pre><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*gWbosEW1gjbCNnReQVDGvg.png" /></figure><p>5. Count relationships of multiple types. Like count the total number of relationship where relationship type name is ACTED_IN OR DIRECTED</p><pre>MATCH ()-[r:ACTED_IN|DIRECTED]-&gt;()<br>RETURN count(r) as count</pre><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*05AhrJVN7Y5sYPK9MbANKg.png" /></figure><p>5. Let’s count the relationship type with node labels. For example, count all the nodes with label Person with relationship type ACTED_IN</p><pre>MATCH (:Person)-[r:ACTED_IN]-&gt;()<br>RETURN count(r) as count</pre><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*6Ku5RyGNcuTPGKmX03H8ag.png" /></figure><p>6. Count the number of relationships where relationship type is ACTED_IN and node label is Person and Movie . So the we will say what are persons who acted_in movie.</p><pre>MATCH (:Person)-[r:ACTED_IN]-&gt;(:Movie)<br>RETURN count(r) as count</pre><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*h4PKDy7nZlpPT8A0pfLarg.png" /></figure><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=3d2ea872c5e5" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Neo4j 4.0 “ docker-compose”]]></title>
            <description><![CDATA[<div class="medium-feed-item"><p class="medium-feed-image"><a href="https://medium.com/@faaizhussain/neo4j-4-0-docker-compose-9bead6634c8?source=rss-703ca75f066a------2"><img src="https://cdn-images-1.medium.com/max/777/1*PFYf2rcu1qzLQ3o1MdjFqg.png" width="777"></a></p><p class="medium-feed-snippet">This tells how we can install neo4j new version 4.0 using `docker-compose</p><p class="medium-feed-link"><a href="https://medium.com/@faaizhussain/neo4j-4-0-docker-compose-9bead6634c8?source=rss-703ca75f066a------2">Continue reading on Medium »</a></p></div>]]></description>
            <link>https://medium.com/@faaizhussain/neo4j-4-0-docker-compose-9bead6634c8?source=rss-703ca75f066a------2</link>
            <guid isPermaLink="false">https://medium.com/p/9bead6634c8</guid>
            <category><![CDATA[neo4j]]></category>
            <category><![CDATA[docker-compose]]></category>
            <dc:creator><![CDATA[Faaiz SHAH]]></dc:creator>
            <pubDate>Tue, 11 Feb 2020 17:26:01 GMT</pubDate>
            <atom:updated>2023-12-22T16:28:46.228Z</atom:updated>
        </item>
    </channel>
</rss>