<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Graph on Micha Kops&#39; Tech Notes</title>
    <link>https://www.hascode.com/tags/graph/</link>
    <description>Recent content in Graph on Micha Kops&#39; Tech Notes</description>
    <generator>Hugo -- 0.147.8</generator>
    <language>en</language>
    <copyright>Copyright © 2010 - 2025 Micha Kops. #213243b1d6e8932079e09227d3f3ed0c806cd0c9</copyright>
    <lastBuildDate>Tue, 08 Feb 2022 00:00:00 +0100</lastBuildDate>
    <atom:link href="https://www.hascode.com/tags/graph/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Quick Apache NiFi Setup with Docker</title>
      <link>https://www.hascode.com/quick-apache-nifi-setup-with-docker/</link>
      <pubDate>Tue, 08 Feb 2022 00:00:00 +0100</pubDate>
      <guid>https://www.hascode.com/quick-apache-nifi-setup-with-docker/</guid>
      <description>&lt;div class=&#34;sect1&#34;&gt;
&lt;h2 id=&#34;_steps&#34;&gt;Steps&lt;/h2&gt;
&lt;div class=&#34;sectionbody&#34;&gt;
&lt;div class=&#34;paragraph&#34;&gt;
&lt;p&gt;Pull image and run with ports exposed:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&#34;listingblock&#34;&gt;
&lt;div class=&#34;content&#34;&gt;
&lt;pre class=&#34;highlight&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;docker run --name &amp;#34;nifi&amp;#34; -p 8443:8443 -d apache/nifi:latest&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;paragraph&#34;&gt;
&lt;p&gt;Fetch the generated username and password from the logs:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&#34;listingblock&#34;&gt;
&lt;div class=&#34;content&#34;&gt;
&lt;pre class=&#34;highlight&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;docker logs nifi | grep -A1 &amp;#34;Generated Username&amp;#34;

Generated Username [8f6d91f7-733e-40cf-b900-059ea9dccbf2]
Generated Password [v7KGiiRYLJL2+HzhKOqz1rbgiPOaWz0B]&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;paragraph&#34;&gt;
&lt;p&gt;Now we may enter the &lt;a href=&#34;https://localhost:8443/nifi/login&#34; class=&#34;bare&#34;&gt;https://localhost:8443/nifi/login&lt;/a&gt; in our browser, accept the security exemption and login
with the credentials from above, voila!&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;sect1&#34;&gt;
&lt;h2 id=&#34;_installing_additional_connectors&#34;&gt;Installing additional connectors&lt;/h2&gt;
&lt;div class=&#34;sectionbody&#34;&gt;
&lt;div class=&#34;paragraph&#34;&gt;
&lt;p&gt;I have found a nice summary on the following &lt;a href=&#34;https://github.com/noharm-ai/nifi-docker&#34;&gt;GitHub repository&lt;/a&gt;:&lt;/p&gt;
&lt;/div&gt;</description>
    </item>
    <item>
      <title>Managing Architecture Decision Records with ADR-Tools</title>
      <link>https://www.hascode.com/managing-architecture-decision-records-with-adr-tools/</link>
      <pubDate>Sun, 27 May 2018 00:00:00 +0200</pubDate>
      <guid>https://www.hascode.com/managing-architecture-decision-records-with-adr-tools/</guid>
      <description>&lt;div id=&#34;preamble&#34;&gt;
&lt;div class=&#34;sectionbody&#34;&gt;
&lt;div class=&#34;paragraph&#34;&gt;
&lt;p&gt;Every software project includes a set of architecture decisions defining boundaries and constraints for further design and implementation.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&#34;paragraph&#34;&gt;
&lt;p&gt;It’s important to document those decisions somehow or else a development team might not know which decisions where made and with which assumptions.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&#34;paragraph&#34;&gt;
&lt;p&gt;Or they know the decision but are missing the context and the consequences and therefore decisions are blindly accepted or blindly changed.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&#34;paragraph&#34;&gt;
&lt;p&gt;In the following short tutorial I will show how to structure architecture decisions in so called Architecture Decision Records and how to manage them with a simple tool named ADR-Tools.&lt;/p&gt;
&lt;/div&gt;</description>
    </item>
    <item>
      <title>Implementing, Testing and Running Procedures for Neo4j</title>
      <link>https://www.hascode.com/implementing-testing-and-running-procedures-for-neo4j/</link>
      <pubDate>Tue, 27 Feb 2018 00:00:00 +0100</pubDate>
      <guid>https://www.hascode.com/implementing-testing-and-running-procedures-for-neo4j/</guid>
      <description>&lt;div id=&#34;preamble&#34;&gt;
&lt;div class=&#34;sectionbody&#34;&gt;
&lt;div class=&#34;paragraph&#34;&gt;
&lt;p&gt;A lot of features are already included in the Neo4j graph database system but sometimes we want to extends its capabilities and implement functions and procedures by ourselves that we may reuse.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&#34;paragraph&#34;&gt;
&lt;p&gt;In the following tutorial I will demonstrate how to implement a procedure for Neo4j, how to write and run tests using JUnit and an embedded graph database and last but not least how to setup Neo4j with Docker and our stored procedure installed in no time.&lt;/p&gt;
&lt;/div&gt;</description>
    </item>
    <item>
      <title>Software Architecture Exploration and Validation with jqAssistant, Neo4j and Cypher</title>
      <link>https://www.hascode.com/software-architecture-exploration-and-validation-with-jqassistant-neo4j-and-cypher/</link>
      <pubDate>Sun, 31 Dec 2017 00:00:00 +0100</pubDate>
      <guid>https://www.hascode.com/software-architecture-exploration-and-validation-with-jqassistant-neo4j-and-cypher/</guid>
      <description>&lt;div id=&#34;preamble&#34;&gt;
&lt;div class=&#34;sectionbody&#34;&gt;
&lt;div class=&#34;paragraph&#34;&gt;
&lt;p&gt;I have written about other software system analyzing and validation tools before but today I would like to introduce a new tool named jqAssistant that supports software architects, developers and analysts in a variety of tasks like analyzing given structures, validating architectural or quality constraints and generating reports.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&#34;paragraph&#34;&gt;
&lt;p&gt;Therefore jqAssistant analyzes given projects or artifacts and stores the gathered information – that is enriched by a variety of existing plugin-ins – in a Neo4j graph database.&lt;/p&gt;
&lt;/div&gt;</description>
    </item>
    <item>
      <title>Object Graph Mapping by Example with Neo4j OGM and Java</title>
      <link>https://www.hascode.com/object-graph-mapping-by-example-with-neo4j-ogm-and-java/</link>
      <pubDate>Mon, 18 Jul 2016 00:00:00 +0200</pubDate>
      <guid>https://www.hascode.com/object-graph-mapping-by-example-with-neo4j-ogm-and-java/</guid>
      <description>&lt;div id=&#34;preamble&#34;&gt;
&lt;div class=&#34;sectionbody&#34;&gt;
&lt;div class=&#34;paragraph&#34;&gt;
&lt;p&gt;When integrating a Neo4j database into a Java application a developer often needs to map nodes and edges of the graph to corresponding Java classes of the domain model.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&#34;paragraph&#34;&gt;
&lt;p&gt;Neo4j OGM eases this work and allows us to map our domain objects to the graph database using simple annotations – similar to the Java Persistence API (JPA) for relational database management systems.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&#34;paragraph&#34;&gt;
&lt;p&gt;In the following tutorial I’d like to demonstrate how to use Neo4j OGM to build a simple train timetable planner and a permission system mapping between graph, nodes, edges and POJOs.&lt;/p&gt;
&lt;/div&gt;</description>
    </item>
    <item>
      <title>A short Overview of Neo4j Indexing Strategies</title>
      <link>https://www.hascode.com/a-short-overview-of-neo4j-indexing-strategies/</link>
      <pubDate>Sun, 25 Jan 2015 00:00:00 +0100</pubDate>
      <guid>https://www.hascode.com/a-short-overview-of-neo4j-indexing-strategies/</guid>
      <description>&lt;div id=&#34;preamble&#34;&gt;
&lt;div class=&#34;sectionbody&#34;&gt;
&lt;div class=&#34;paragraph&#34;&gt;
&lt;p&gt;When it comes to indexing in a Neo4j graph database, different options exist for a developer to create and maintain the index.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&#34;paragraph&#34;&gt;
&lt;p&gt;In the following short examples I’d like to demonstrate different possibilities for index management.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&#34;imageblock&#34;&gt;
&lt;div class=&#34;content&#34;&gt;
&lt;img src=&#34;domain-model.png&#34; alt=&#34;domain model&#34;/&gt;
&lt;/div&gt;
&lt;div class=&#34;title&#34;&gt;Figure 1. Simple Domain Model&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;sect1&#34;&gt;
&lt;h2 id=&#34;_dependencies&#34;&gt;Dependencies&lt;/h2&gt;
&lt;div class=&#34;sectionbody&#34;&gt;
&lt;div class=&#34;paragraph&#34;&gt;
&lt;p&gt;Only one dependency is needed to run the following examples and start an embedded neo4j server – I’m using Gradle here to manage my dependencies but Maven, Ivy, SBT should work without a problem, too.&lt;/p&gt;
&lt;/div&gt;</description>
    </item>
    <item>
      <title>Neo4j Graph Database Tutorial: How to build a Route Planner and other Examples</title>
      <link>https://www.hascode.com/neo4j-graph-database-tutorial-how-to-build-a-route-planner-and-other-examples/</link>
      <pubDate>Fri, 20 Jan 2012 00:00:00 +0100</pubDate>
      <guid>https://www.hascode.com/neo4j-graph-database-tutorial-how-to-build-a-route-planner-and-other-examples/</guid>
      <description>&lt;div id=&#34;preamble&#34;&gt;
&lt;div class=&#34;sectionbody&#34;&gt;
&lt;div class=&#34;paragraph&#34;&gt;
&lt;p&gt;Often in the life of developer’s life there is a scenario where using a relational database tends to get complicated or sometimes even slow – especially when there are fragments with multiple relationships or multiple connections present. This often leads to complex database queries or desperate software engineers trying to handle those problems with their ORM framework.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&#34;paragraph&#34;&gt;
&lt;p&gt;A possible solution might be to switch from a relational database to a graph database – and – neo4j is our tool of choice here. In the following tutorial we’re going to implement several examples to demonstrate the strengths of a graph database .. from a route planner to a social graph.&lt;/p&gt;
&lt;/div&gt;</description>
    </item>
  </channel>
</rss>
