<?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: DynamicApproach</title>
    <description>The latest articles on DEV Community by DynamicApproach (@dynamicapproach).</description>
    <link>https://dev.to/dynamicapproach</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%2F1090452%2Fdc102812-bd5b-45be-841a-d9adb513bc01.png</url>
      <title>DEV Community: DynamicApproach</title>
      <link>https://dev.to/dynamicapproach</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/dynamicapproach"/>
    <language>en</language>
    <item>
      <title>MindMapper: Harnessing the Power of AI for Interactive Mindmaps</title>
      <dc:creator>DynamicApproach</dc:creator>
      <pubDate>Mon, 05 Jun 2023 01:12:53 +0000</pubDate>
      <link>https://dev.to/dynamicapproach/mindmapper-harnessing-the-power-of-ai-for-interactive-mindmaps-18di</link>
      <guid>https://dev.to/dynamicapproach/mindmapper-harnessing-the-power-of-ai-for-interactive-mindmaps-18di</guid>
      <description>&lt;h2&gt;
  
  
  MindMapper: Harnessing the Power of AI for Interactive Mindmaps
&lt;/h2&gt;

&lt;p&gt;The result: &lt;a href="https://dynamicapproach.dev/infoPages/mindmapper"&gt;My website mindmap&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;For years, I've utilized mindmaps for various purposes - from understanding complex subjects during my studies to planning designs for different projects, and even preparing for exams. The ability to visualize topics and their interconnected subcategories has always helped me in efficiently organizing my ideas and thoughts. This, in turn, led to a question - what if we could automate this process, leveraging the power of AI? This question was the inspiration behind the Mindmapper project and this post will outline the basic process taken.&lt;/p&gt;

&lt;h2&gt;
  
  
  The AI Connection
&lt;/h2&gt;

&lt;p&gt;The seed of the idea was sown during one of my sessions with OpenAI's ChatGPT. I realized how this AI, with its dynamic prompt responses, could potentially be used to create mindmaps on demand. With this realization, the concept of the Mindmapper was born.&lt;/p&gt;

&lt;h2&gt;
  
  
  From Concept to Reality
&lt;/h2&gt;

&lt;h3&gt;
  
  
  The Prompt Selection: The First Step
&lt;/h3&gt;

&lt;p&gt;Finding the perfect prompt was a challenge. After multiple trials and fine-tuning with different prompts, I finally got the AI to provide output in a parsable format. This was a crucial step that paved the way for the automation of mindmap creation.&lt;/p&gt;

&lt;h3&gt;
  
  
  The Parser: Transforming the AI Output
&lt;/h3&gt;

&lt;p&gt;With the correct prompt in hand, the next hurdle was to interpret the AI's output into a usable format. I decided to build a parser that would convert the AI's output markdown into JSON format. The reason behind choosing JSON was its compatibility with the "MarkmapJS" library, a tool capable of generating interactive SVG views.&lt;/p&gt;

&lt;h3&gt;
  
  
  The Tree Structure: Building the Mindmap
&lt;/h3&gt;

&lt;p&gt;Once the JSON conversion was complete, I parsed it into a tree structure. Here, each line of the output became a node, with every node connected to a parent - the root node was formed from the first line of the output. Each subsequent line served as a child of the preceding line, establishing the structure of the mindmap.&lt;/p&gt;

&lt;h3&gt;
  
  
  The Final Touch: Generating and Displaying the Mindmap
&lt;/h3&gt;

&lt;p&gt;With the tree structure ready, I employed MarkmapJS to generate the SVG view of the mindmap. This view was then beautifully rendered on the webpage, delivering an interactive and intuitive mindmap to the user.&lt;/p&gt;

&lt;h2&gt;
  
  
  Behind the Scenes: The Tech Stack and Implementation
&lt;/h2&gt;

&lt;p&gt;The Mindmapper project was developed using a plethora of technologies and programming languages, including React, TypeScript, and OpenAIApi. The asynchronous handling of data retrieval and processing is specifically implemented for creating or enhancing an existing map. The application also incorporates functions for managing different states like loading and errors, and for modifying or appending to the existing markdown.&lt;/p&gt;

&lt;p&gt;The mindmap generation is facilitated by the &lt;code&gt;fetchAndAppendData&lt;/code&gt; and &lt;code&gt;fetchData&lt;/code&gt; functions. They process the input data and generate a detailed mindmap. To make the mindmap as expansive and thorough as possible, the application utilizes the OpenAI API's capabilities to produce detailed completions. Other features include the ability to switch between APIs, clear the existing mindmap, and handle the submission of new map data.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;The Mindmapper project exemplifies the fascinating intersection of AI and everyday utilities. It showcases how AI can automate and simplify our processes, leading to more efficient work and study routines. &lt;code&gt;MindMapper.tsx&lt;/code&gt;, written in React and TypeScript, provides a compelling example of an interactive mind map application. Using modern JavaScript features like hooks and callback functions, it creates a user-friendly tool that is visually appealing and effective. Combined with the power of the OpenAI API, this project is a testament to the potential of AI in revolutionizing how we approach tasks like note-taking and studying - Creating maps that previous could have taken hours in mere minutes.&lt;/p&gt;

&lt;h2&gt;
  
  
  Next Steps
&lt;/h2&gt;

&lt;p&gt;My future aim with the development of this project consists of a two way front. One in which shall focus on the development of an Android app in Compose, the other to enhance functionality of the current web app. The Android app will be an advanced implementation of the web app, with the ability to save and load maps from the device's storage. The web app will be enhanced with the ability to save and load maps from the browser's local storage, as well as the ability to export the map as a PNG or SVG file. Currently, this is a work in progress, and I hope to have a working prototype soon. Stay tuned for more updates!&lt;/p&gt;

</description>
      <category>react</category>
      <category>webdev</category>
      <category>tutorial</category>
      <category>opensource</category>
    </item>
    <item>
      <title>My Tech Stack</title>
      <dc:creator>DynamicApproach</dc:creator>
      <pubDate>Mon, 05 Jun 2023 01:12:12 +0000</pubDate>
      <link>https://dev.to/dynamicapproach/my-tech-stack-20o2</link>
      <guid>https://dev.to/dynamicapproach/my-tech-stack-20o2</guid>
      <description>&lt;h2&gt;
  
  
  My Tech Stack
&lt;/h2&gt;

&lt;p&gt;In this post, I'll delve into the tech stack I use, discussing both the hardware and software that power my daily work and personal projects. I've found that this combination of tools and equipment greatly improves my productivity and enhances the quality of my output.&lt;/p&gt;

&lt;h2&gt;
  
  
  Hardware
&lt;/h2&gt;

&lt;p&gt;Here's a list of my main hardware and why I chose each:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Keyboard (Tofu 65%, DZ65 RGB V3, Cherry MX Silent Red, GMK Mitolet Pulse):&lt;/strong&gt; The mechanical nature of this keyboard provides excellent tactile feedback, increasing typing speed and reducing errors.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Mic (Rode Procaster):&lt;/strong&gt; High-quality, professional-grade microphone perfect for crystal clear audio during team meetings and podcast recordings.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Audio (HD58x Jubilee / GoXLR Mini):&lt;/strong&gt; The HD58x Jubilee delivers fantastic sound reproduction, while the GoXLR Mini is a powerful device for managing audio sources.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;PC Specs:&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;CPU (Ryzen 7 3800x):&lt;/strong&gt; Powerful processor capable of handling demanding tasks like development and gaming.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;RAM (32gb 3600mhz):&lt;/strong&gt; More than enough memory for running multiple applications and VMs simultaneously.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Storage (2x 1tb nvme, 1tb ssd):&lt;/strong&gt; Plenty of fast, reliable storage for all my files and projects.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;GPU (AMD 5700XT):&lt;/strong&gt; Provides excellent graphical performance for gaming and multimedia tasks. Great value for money at 1440p.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;PSU (1000w):&lt;/strong&gt; Provides stable and sufficient power supply for all my hardware.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Case (Cooler Master CSX edition 001 / 300):&lt;/strong&gt; Sleek and spacious design allows for optimal component placement and cooling.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Monitor (MSI 32" 1440p 144hz, Samsung Odessey G9 49"):&lt;/strong&gt; High-resolution, high-refresh rate monitors for a smooth and detailed visual experience. G9 is perfect for productivity.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Mouse (Logitech Superlight G Pro):&lt;/strong&gt; Lightweight, accurate, and comfortable for long usage.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Peripherals (Elgato Streamdeck, Elgato Keylight x2):&lt;/strong&gt; The Streamdeck offers customizable shortcut keys, while the Keylights provide professional-grade lighting for video calls or streams, really though, our lights just suck.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Servers (2x Dell R720):&lt;/strong&gt; Reliable and powerful servers for hosting my home lab and various projects. The true power for when the Pis just don't cut it.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Side mount (Work MacBook Pro):&lt;/strong&gt; A handy solution for conveniently integrating my work laptop into my setup.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Desk (Vivo Electric Standing Desk):&lt;/strong&gt; A spacious, adjustable desk that allows me to work comfortably in both sitting and standing positions.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Cross-Platform Software
&lt;/h2&gt;

&lt;p&gt;These are the apps and tools I regularly use across different platforms and why:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;NPM (Node Package Manager):&lt;/strong&gt; A must for managing JavaScript packages and dependencies.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;JetBrains / VSCode:&lt;/strong&gt; These integrated development environments (IDEs) are feature-rich and highly customizable, making coding more efficient and enjoyable.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Zsh:&lt;/strong&gt; An interactive shell that improves upon Bash with features like advanced tab completion and shared command history.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Edge Dev:&lt;/strong&gt; My browser of choice, chosen for its compatibility with modern web standards and integration with Microsoft services. Specifically, I use the Dev channel for the latest features and updates namely split tabs.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Teams and Discord:&lt;/strong&gt; I use these platforms for team communication and chat; Teams for professional use and Discord for more informal and community-based interactions.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Docker Desktop:&lt;/strong&gt; This tool allows for the development and deployment of containerized applications, ensuring consistency across environments.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;GitHub Desktop:&lt;/strong&gt; Makes Git operations easier, particularly for quickly resolving issues or performing routine tasks.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;WakaTime:&lt;/strong&gt; A valuable tool for tracking time spent on various projects, aiding in productivity analysis and project management. Waka helps me to balance my time between work and personal projects, and across personal projects.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Spaces/Jira:&lt;/strong&gt; These tools help manage projects, tracking issues and coordinating team efforts effectively.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Python:&lt;/strong&gt; A versatile scripting language used for a variety of tasks from automation to web development.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Java/Kotlin:&lt;/strong&gt; I'm currently developing an Android app, for which Java and Kotlin is a primary language.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;PHP:&lt;/strong&gt; A server-side scripting language that's extensively used in my web development work.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;TypeScript:&lt;/strong&gt; A strongly-typed superset of JavaScript that I use to write safer and more reliable code for web development.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Proxmox:&lt;/strong&gt; An open-source server virtualization management solution which I use in my home lab.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Rancher, k8s/k3s:&lt;/strong&gt; These tools are used for managing Kubernetes in my home lab, an essential part of modern cloud and container management.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Synergy:&lt;/strong&gt; This software allows me to seamlessly use one keyboard and mouse across multiple computers, improving my workflow when multitasking between devices. &lt;strong&gt;YOU SHOULD GET THIS&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Atuin:&lt;/strong&gt; This tool provides a beautifully styled history for zsh, making it easier to recall and repeat commands.&lt;strong&gt;YOU SHOULD GET THIS&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Mac-Specific Tools
&lt;/h2&gt;

&lt;p&gt;When I'm on my Mac, these are the tools I rely on:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Posthog:&lt;/strong&gt; An open-source analytics platform that I use for tracking user interactions and performance on my web projects.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fig:&lt;/strong&gt; A command line tool that adds autocomplete functionality to my terminal, boosting productivity.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Alt-Tab:&lt;/strong&gt; A utility that improves the default Alt+Tab behavior on macOS for smoother application switching.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Alfred:&lt;/strong&gt; An improvement over Spotlight, adding more functionality and customization options for quickly finding files and launching applications.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Diskdiet:&lt;/strong&gt; An effective tool for cleaning up my disk, helping to maintain optimal system performance.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Background Music:&lt;/strong&gt; A useful utility for controlling my music right from the menu bar.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;ASDF:&lt;/strong&gt; A versatile version manager, letting me easily switch between different versions of various programming languages.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;iTerm2:&lt;/strong&gt; A superior terminal emulator with features like split panes and better search functionality.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Windows-Specific Tools
&lt;/h2&gt;

&lt;p&gt;And on Windows, here's my go-to software:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;WinZip:&lt;/strong&gt; My tool of choice for managing zip files.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Winget / WingetUI:&lt;/strong&gt; An application installer that helps quickly setup new Windows installations with all the necessary software.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Control Center/Streamdeck:&lt;/strong&gt; Used for launching applications and managing various system settings.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;WizTree:&lt;/strong&gt; A disk cleanup tool that helps keep my system running optimally by freeing up storage space.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;GoXLR:&lt;/strong&gt; A digital audio mixer that provides advanced control over my audio sources and outputs.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;WSL Ubuntu:&lt;/strong&gt; The Windows Subsystem for Linux allows me to run a full-fledged Ubuntu terminal within Windows, facilitating cross-platform work.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Terminal (Windows):&lt;/strong&gt; My preferred terminal on Windows, offering features like multiple tabs and customizable themes.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;PowerToys:&lt;/strong&gt; A set of utilities from Microsoft that enhances Windows functionality, like FancyZones for better window management.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;PowerShell:&lt;/strong&gt; A powerful scripting shell for automating tasks and managing system settings.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;All these tools, each with its own strengths, combined together make my workflow smooth and efficient.&lt;/p&gt;

</description>
      <category>programming</category>
      <category>development</category>
      <category>devjournal</category>
    </item>
    <item>
      <title>My Tech Tales: An Introduction</title>
      <dc:creator>DynamicApproach</dc:creator>
      <pubDate>Mon, 05 Jun 2023 01:10:30 +0000</pubDate>
      <link>https://dev.to/dynamicapproach/my-tech-tales-an-introduction-2a3c</link>
      <guid>https://dev.to/dynamicapproach/my-tech-tales-an-introduction-2a3c</guid>
      <description>&lt;h2&gt;
  
  
  My Tech Tales: An Introduction
&lt;/h2&gt;

&lt;p&gt;I'm Thomas Lloyd-Jones, a tech enthusiast, a problem solver, a pet parent, and now, a blogger. Born and raised in Leicester, UK, I relocated to New York State in 2009, bringing my passion for all things tech with me. It's this passion that's led me to start this blog, a platform where I can share my tech knowledge, interesting finds, and unique experiences with you all.&lt;/p&gt;

&lt;p&gt;Professionally, I work for NYS ITS as an intern, where I do Drupal development, but my interests extend far beyond that. From programming to gaming, from running a home lab to playing with my two dogs, Sky and Midnight, and my cat, Luna, I have a wide array of hobbies that keep me busy, inspired, and constantly learning.&lt;/p&gt;

&lt;p&gt;The path that led me to tech wasn't always straightforward. My journey began in an entirely different field - as a hairdresser. But, with a thirst for knowledge and a nudge from my supportive partner, I returned to university at 24 to study what I truly loved: technology. That period of transition fuels my unique perspective on tech and life - that it's never too late to chase what makes you tick.&lt;/p&gt;

&lt;p&gt;Through this blog, I want to document my thoughts, share my adventures in tech, and hopefully inspire and teach you along the way. From programming tidbits to home lab setup, from reviewing my favorite gear to sharing my experience with various tools across multiple platforms, there's a lot we'll unpack here.&lt;/p&gt;

&lt;p&gt;Speaking of gear, I take pride in my carefully chosen tech arsenal. From my Tofu 65% keyboard with a DZ65 RGB V3 PCB and Cherry MX Silent Red switches to my MSI 32" 1440p 144Hz monitor, I believe the right tools make all the difference. On the software front, I rely on a plethora of applications like Synergy, Docker Desktop, JetBrains, and more, across different platforms to enhance productivity and streamline my work.&lt;/p&gt;

&lt;p&gt;This blog aims to be a melting pot of all these experiences and knowledge. Whether you're a tech novice or an expert developer, my hope is that you'll find something useful and interesting here. We'll delve deep into Python, Java, PHP, TypeScript, and more. We'll explore containerization with Docker, project management with Spaces, version control with GitHub, and virtualization with Proxmox. We'll even dip our toes into cross-platform apps and tools for Mac, Linux and Windows.&lt;/p&gt;

&lt;p&gt;So, join me as we embark on this tech odyssey together. Your thoughts, feedback, and ideas are always welcome.&lt;/p&gt;

&lt;p&gt;Stay tuned for more!&lt;/p&gt;

&lt;p&gt; &lt;br&gt;&lt;br&gt;
 &lt;br&gt;&lt;br&gt;
 &lt;br&gt;&lt;br&gt;
 &lt;br&gt;&lt;br&gt;
 &lt;br&gt;&lt;br&gt;
 &lt;br&gt;&lt;br&gt;
 &lt;br&gt;&lt;br&gt;
 &lt;br&gt;&lt;br&gt;
 &lt;br&gt;&lt;br&gt;
 &lt;br&gt;&lt;br&gt;
 &lt;br&gt;&lt;br&gt;
 &lt;br&gt;&lt;br&gt;
 &lt;br&gt;&lt;br&gt;
 &lt;br&gt;&lt;br&gt;
   &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Note: All posts may be formatted by AI.&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>programming</category>
      <category>webdev</category>
      <category>github</category>
    </item>
  </channel>
</rss>
