<?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: Daniel Warner</title>
    <description>The latest articles on DEV Community by Daniel Warner (@danielwarner).</description>
    <link>https://dev.to/danielwarner</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%2F500383%2F4c7f7423-eeff-4302-8459-d147b83fdd31.jpg</url>
      <title>DEV Community: Daniel Warner</title>
      <link>https://dev.to/danielwarner</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/danielwarner"/>
    <language>en</language>
    <item>
      <title>Code Diagrams - 3 Tools to Try</title>
      <dc:creator>Daniel Warner</dc:creator>
      <pubDate>Thu, 13 Jun 2024 18:10:17 +0000</pubDate>
      <link>https://dev.to/danielwarner/code-diagrams-3-tools-to-try-1ef2</link>
      <guid>https://dev.to/danielwarner/code-diagrams-3-tools-to-try-1ef2</guid>
      <description>&lt;p&gt;The most useful tools for diagramming code create visuals from source that can be integrated into a code-centric development workflow.&lt;/p&gt;

&lt;p&gt;Stand-alone visual editors sit too far outside the workflow to be useful. Switching context between a development environment and a diagramming application opens a gulf that condemns diagrams to be out-of-date and update-resistant from the moment they are created.&lt;/p&gt;

&lt;p&gt;There are three tools I have used that do an excellent job of solving this issue:&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Mermaid
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://mermaid.js.org/"&gt;Mermaid&lt;/a&gt; is a JavaScript-based diagramming and charting tool that makes it easy to create diagrams from text descriptions. It's particularly useful for generating flowcharts, sequence diagrams, and class diagrams.&lt;/p&gt;

&lt;p&gt;Mermaid integrates seamlessly with Markdown, which is handy, but the thing I like most about Mermaid is that it feels lightweight. Once you have imported the library, a mermaid chart can be embedded in HTML with &lt;code&gt;pre&lt;/code&gt; tags and themed by tweaking properties in a snippet of &lt;code&gt;JS&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;There is a large community of Mermaid users. It’s a strong FOSS project that is worth checking out.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhozcnv7ka026pvjoukau.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhozcnv7ka026pvjoukau.png" alt="Mermaid diagram" width="800" height="539"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Key Features&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Easy-to-Learn Syntax&lt;/strong&gt;: Get started quickly with a simple syntax.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Community Support&lt;/strong&gt;: Extensive documentation and an active community offering support and plugins.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Browser Rendering&lt;/strong&gt;: Renders directly in the browser with minimal dependencies.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  2. PlantUML
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://plantuml.com/"&gt;PlantUML&lt;/a&gt;, like Mermaid, is an open source tool that allows users to create diagrams from plain text descriptions. PlantUML is the original ‘diagrams as code’ platform. It has a deep feature set, can be integrated into just about any environment, and can be extended to fit just about any use case. For example, the most useful thing to me about PlantUML is its support for visualizing .JSON files.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsunbcxencngecf27hcq6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsunbcxencngecf27hcq6.png" alt="PlantUML Diagram" width="800" height="367"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Key Features&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Wide Range of Diagrams&lt;/strong&gt;: Supports a large range of diagrams, making it versatile for different documentation needs.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Integrations&lt;/strong&gt;: Yes, someone has probably built a PlantUML integration with that tool you are using.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Multiple Output Formats&lt;/strong&gt;: Offers formats such as PNG, SVG, and LaTeX, making it possible to share diagrams in different contexts.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  3. AppMap
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://appmap.io/"&gt;AppMap&lt;/a&gt; is an open source code editor extension that records and visualizes the runtime behavior of your application. It captures real-time data about your application's code, making it easier to understand how different components interact. This is particularly valuable for debugging, performance tuning, and ensuring that your application behaves as expected. AppMaps can be exported to SVG or JSON and has a deep set of integrations making it easy to integrate at any point in the software development lifecycle.&lt;/p&gt;

&lt;p&gt;I'm biased because I helped build it, but the best thing about AppMap is that the diagrams are derived automatically from the code’s behavior. There isn’t a step where you have to go and manually create the diagram.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fa3hf9lgmcks8qidv9ggs.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fa3hf9lgmcks8qidv9ggs.gif" alt="AppMap Diagram" width="720" height="425"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Key Features&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Interactive Diagrams&lt;/strong&gt;: Explore the dynamic interactions between different parts of your application.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Integrated in the Development Workflow&lt;/strong&gt;: You can generate diagrams at any point from your dev environment or CI. There are supported integrations with Confluence, GitHub Actions, SwaggerHub, Postman, Docker and more. &lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Performance and Security Insights&lt;/strong&gt;: AppMap will alert you to problematic areas of your code.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Each of these tools offers unique strengths, depending on your specific needs. Give them a try and see how they can enhance your code visualization efforts.&lt;/p&gt;

&lt;p&gt;If you have already tried them, please share your thoughts and experiences with these tools in the comments. It would be interesting to hear which one you landed on and why.&lt;/p&gt;

</description>
      <category>coding</category>
      <category>documentation</category>
      <category>architecture</category>
      <category>design</category>
    </item>
    <item>
      <title>AI Assisted Development: A Week in Tweets</title>
      <dc:creator>Daniel Warner</dc:creator>
      <pubDate>Sat, 18 May 2024 00:26:35 +0000</pubDate>
      <link>https://dev.to/danielwarner/ai-enabled-development-a-week-in-tweets-156k</link>
      <guid>https://dev.to/danielwarner/ai-enabled-development-a-week-in-tweets-156k</guid>
      <description>&lt;p&gt;The recent release of &lt;strong&gt;AppMap Navie&lt;/strong&gt; has inspired thousands of people to &lt;a href="https://appmap.io/get-appmap"&gt;install the AppMap extension&lt;/a&gt;, introducing them to AI-enabled development. This week, I have been using our X account to offer content that is not just promotional but also guides new users in expanding their understanding of both AppMap and AI-enabled development in general.&lt;/p&gt;

&lt;p&gt;Brevity is key on X, so I tried to keep the message concise while still hitting the core concepts. Let me know how I did in the comments 😉 Here are the slightly more verbose versions...&lt;/p&gt;

&lt;h3&gt;
  
  
  Keep Your Data Up-to-date
&lt;/h3&gt;

&lt;p&gt;Navie breaks through the 'black box' limitations of the chat interface by allowing you to include detailed context about your app with each question. This context is recorded as &lt;a href="https://appmap.io/docs/get-started-with-appmap/making-appmap-data.html"&gt;AppMap Data&lt;/a&gt;. The more current and comprehensive your AppMap data is, the more tailored the AI's answers will be to your coding scenario. By generating AppMap data in your dev environment, you gain the freedom to select which context is used to answer your question. Hence...&lt;/p&gt;

&lt;p&gt;&lt;iframe class="tweet-embed" id="tweet-1790321204361932824-309" src="https://platform.twitter.com/embed/Tweet.html?id=1790321204361932824"&gt;
&lt;/iframe&gt;

  // Detect dark theme
  var iframe = document.getElementById('tweet-1790321204361932824-309');
  if (document.body.className.includes('dark-theme')) {
    iframe.src = "https://platform.twitter.com/embed/Tweet.html?id=1790321204361932824&amp;amp;theme=dark"
  }



&lt;/p&gt;

&lt;h3&gt;
  
  
  Choose the right AI backend for the job
&lt;/h3&gt;

&lt;p&gt;Navie uses GPT-4.5-Turbo as it's default LLM. It's a superb model. We love it. Our users love it. However, it might not always be the best fit. For instance, many large organizations forbid the use of public LLMs and provide their own in-house endpoints. In some cases, users prefer to run models specially tuned to specific jobs via platforms such as Ollama or LM Studio. Consequently, we've built in the capability to specify which LLM you want to use. Here is a demo using LM Studio...&lt;/p&gt;

&lt;p&gt;&lt;iframe class="tweet-embed" id="tweet-1790827019560767872-7" src="https://platform.twitter.com/embed/Tweet.html?id=1790827019560767872"&gt;
&lt;/iframe&gt;

  // Detect dark theme
  var iframe = document.getElementById('tweet-1790827019560767872-7');
  if (document.body.className.includes('dark-theme')) {
    iframe.src = "https://platform.twitter.com/embed/Tweet.html?id=1790827019560767872&amp;amp;theme=dark"
  }



&lt;/p&gt;

&lt;h3&gt;
  
  
  Ask questions in context
&lt;/h3&gt;

&lt;p&gt;The entire AppMap team uses Navie daily, so the developer experience is something we strive to get right.&lt;/p&gt;

&lt;p&gt;Weather I am looking for high-level architectural strategies or low-level generated code snippets I need Navie's answers to be at the right zoom level. This requires bundling up context wherever I am working and adding it to my question.  &lt;/p&gt;

&lt;p&gt;There are more than three ways to 'Ask Navie', but I picked the ones I use the most...&lt;/p&gt;

&lt;p&gt;&lt;iframe class="tweet-embed" id="tweet-1791408370663993390-263" src="https://platform.twitter.com/embed/Tweet.html?id=1791408370663993390"&gt;
&lt;/iframe&gt;

  // Detect dark theme
  var iframe = document.getElementById('tweet-1791408370663993390-263');
  if (document.body.className.includes('dark-theme')) {
    iframe.src = "https://platform.twitter.com/embed/Tweet.html?id=1791408370663993390&amp;amp;theme=dark"
  }



&lt;/p&gt;

&lt;p&gt;I hope you'll find this helpful.&lt;/p&gt;

&lt;p&gt;If you haven't tried AppMap Navie yet, join the party - it is &lt;a href="https://appmap.io/get-appmap"&gt;available for free as a VS Code or JetBrain extension&lt;/a&gt;. Stay tuned for my next demonstration of Navie using a Nest.JS app!&lt;/p&gt;

&lt;h2&gt;
  
  
  Bonus
&lt;/h2&gt;

&lt;p&gt;Thanks to Instagram user code.with_sahil07 for &lt;a href="https://www.instagram.com/reel/C67yb7PLtMh/?igsh=Mmp6eGxib3Jkb2Y4"&gt;this great demo&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Thanks to Shani Shoham for including AppMap on his &lt;a href="https://dev.to/shohams/17-best-developer-productivity-tools-to-try-1a2a"&gt;list of developer productivity tools&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>productivity</category>
      <category>tooling</category>
      <category>vscode</category>
    </item>
  </channel>
</rss>
