<?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: Michal Nowakowski</title>
    <description>The latest articles on DEV Community by Michal Nowakowski (@michaellom1000).</description>
    <link>https://dev.to/michaellom1000</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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4175721%2F7068cb91-1242-457e-a557-225fa6c1f188.png</url>
      <title>DEV Community: Michal Nowakowski</title>
      <link>https://dev.to/michaellom1000</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/michaellom1000"/>
    <language>en</language>
    <item>
      <title>Minecraft AI Doctor</title>
      <dc:creator>Michal Nowakowski</dc:creator>
      <pubDate>Sun, 25 Oct 2026 22:40:53 +0000</pubDate>
      <link>https://dev.to/michaellom1000/minecraft-ai-doctor-4lbf</link>
      <guid>https://dev.to/michaellom1000/minecraft-ai-doctor-4lbf</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/hacktoberfest-week3-2026-10-19"&gt;Hacktoberfest Open-Source AI Challenge Week 3: Slow and Steady&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Built
&lt;/h2&gt;

&lt;p&gt;Adding one Minecraft mod can turn a working pack into a wall of errors. I built &lt;strong&gt;Minecraft Ai Doctor&lt;/strong&gt; to make that wall easier to understand.&lt;/p&gt;

&lt;p&gt;Select a Prism, Lunar or Dawn profile, import a log, or paste console output. The app groups missing dependencies, duplicate mods and version conflicts, shows the original evidence, and explains what to check next.&lt;/p&gt;

&lt;p&gt;It also looks up published mod releases and offers reviewed changes in a separate mod-only repair copy, with rollback. Your original instance stays untouched.&lt;/p&gt;

&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Faronf5o4tqwh9vk8cii0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Faronf5o4tqwh9vk8cii0.png" alt="Minecraft Ai Doctor explaining a synthetic Nvidium/Sodium conflict" width="800" height="667"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This is a native Windows app. The preview shows a synthetic version conflict and the steps it produces. You can reproduce it from the source:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;cargo run --release --locked -- --log tests/fixtures/sodium-conflict.log
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;p&gt;A video walkthrough has not been recorded yet.&lt;/p&gt;
&lt;h2&gt;
  
  
  Code
&lt;/h2&gt;

&lt;p&gt;The source is MIT licensed:&lt;/p&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://assets.dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/Michaello2000" rel="noopener noreferrer"&gt;
        Michaello2000
      &lt;/a&gt; / &lt;a href="https://github.com/Michaello2000/Minecraft-Ai-Doctor" rel="noopener noreferrer"&gt;
        Minecraft-Ai-Doctor
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;Minecraft Ai Doctor&lt;/h1&gt;
&lt;/div&gt;

&lt;p&gt;Formerly Prism AI Doctor. Existing saved keys and local data continue to use the legacy storage identifiers; no credential or backup migration is required.&lt;/p&gt;

&lt;p&gt;&lt;a rel="noopener noreferrer" href="https://github.com/Michaello2000/Minecraft-Ai-Doctor/assets/chroma-ring.png"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fraw.githubusercontent.com%2FMichaello2000%2FMinecraft-Ai-Doctor%2FHEAD%2Fassets%2Fchroma-ring.png" alt="Chroma ring app logo" width="64" height="64"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A native Rust desktop companion for Minecraft launch problems. Import a log or inspect a mod folder, get local findings with original file and line references, then optionally ask an open-weight model to explain the evidence.&lt;/p&gt;

&lt;p&gt;Independent project. Not affiliated with Prism Launcher, Lunar Client, Google, Groq or Fabulously Optimized. MIT licensed. No launcher code is forked or bundled.&lt;/p&gt;

&lt;p&gt;Before publishing a fork or source snapshot, follow &lt;a href="https://github.com/Michaello2000/Minecraft-Ai-Doctor/docs/PUBLISHING.md" rel="noopener noreferrer"&gt;the local publication checks&lt;/a&gt;. API keys belong in Credential Manager or your process environment, never in the repository.&lt;/p&gt;

&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Preview&lt;/h2&gt;
&lt;/div&gt;

&lt;p&gt;&lt;a rel="noopener noreferrer" href="https://github.com/Michaello2000/Minecraft-Ai-Doctor/assets/demo/diagnosis.png"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fraw.githubusercontent.com%2FMichaello2000%2FMinecraft-Ai-Doctor%2FHEAD%2Fassets%2Fdemo%2Fdiagnosis.png" alt="Synthetic Nvidium/Sodium conflict with evidence-derived fix steps"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The screenshot uses the included synthetic log, with no personal paths, logs or API keys. After building, open that example with &lt;code&gt;cargo run --release --locked -- --log tests/fixtures/sodium-conflict.log&lt;/code&gt;. This is a desktop app; a recorded…&lt;/p&gt;&lt;/div&gt;


&lt;/div&gt;
&lt;br&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/Michaello2000/Minecraft-Ai-Doctor" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;br&gt;
&lt;/div&gt;
&lt;br&gt;


&lt;h2&gt;
  
  
  How I Built It
&lt;/h2&gt;

&lt;p&gt;The app uses Rust and egui. Local rules inspect bounded logs and mod metadata without executing JARs.&lt;/p&gt;

&lt;p&gt;The optional AI layer has adapters for Google's hosted Gemma and Qwen through Groq. Cloud requests require a redacted preview and explicit consent. Repeated identical requests can reuse cached results.&lt;/p&gt;

&lt;p&gt;AI citations must reference supplied evidence, and repairs use locally checked operations rather than model-generated commands.&lt;/p&gt;

&lt;p&gt;The current build passes 42 automated tests. Provider adapters have been tested with mocked responses; live Gemma validation is still pending.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Does Open Innovation Matter?
&lt;/h2&gt;

&lt;p&gt;I wanted the diagnosis rules and repair behavior to be inspectable. Anyone can read the source, contribute a rule or replace a provider adapter.&lt;/p&gt;

&lt;p&gt;Open-weight models leave room for future self-hosting and adaptation. This MVP uses hosted APIs for AI; local inference is not implemented. The offline checks work without an API key.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Lazy Payoff
&lt;/h2&gt;

&lt;p&gt;I used real Prism and Lunar logs during development, including a Nvidium/Sodium conflict. The payoff is a clearer starting point instead of jumping between console output, mod folders and release pages.&lt;/p&gt;

&lt;p&gt;I have not measured the time saved yet. Matching release metadata still needs testing in a disposable game instance.&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
    </item>
    <item>
      <title>AniPick</title>
      <dc:creator>Michal Nowakowski</dc:creator>
      <pubDate>Sun, 18 Oct 2026 23:37:08 +0000</pubDate>
      <link>https://dev.to/michaellom1000/anipick-1lkg</link>
      <guid>https://dev.to/michaellom1000/anipick-1lkg</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/hacktoberfest-week2-2026-10-12"&gt;Hacktoberfest Open-Source AI Challenge Week 2: Side Hustle&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Built
&lt;/h2&gt;

&lt;p&gt;I've always struggled with choosing which anime to watch next.&lt;/p&gt;

&lt;p&gt;I discover new anime almost every day, often through TikTok recommendations and clips, but I already have hundreds of titles sitting in my Plan to Watch list. Then, when I finally have time to watch something, I spend more time scrolling through my backlog than actually watching anime.&lt;/p&gt;

&lt;p&gt;I've also had plenty of experiences where a highly recommended anime turned out to be boring or just not my type. And sometimes a show doesn't have an English dub, which is a deal breaker for me.&lt;/p&gt;

&lt;p&gt;That's why I built AniPick — a personal anime watchlist companion that helps you decide what to watch next.&lt;/p&gt;

&lt;p&gt;AniPick lets you import your public watchlist from MyAnimeList or AniList using just your username. It analyzes the anime you've already watched and rated, then uses open-weight AI to recommend titles from your own backlog.&lt;/p&gt;

&lt;p&gt;With Pick for Me, you can choose your mood and how long you want the anime to be — up to 12 episodes, up to 24 episodes, a movie, or something longer.&lt;/p&gt;

&lt;p&gt;You can also browse your library, filter anime, read descriptions, and preview available YouTube trailers before committing to a show.&lt;/p&gt;

&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;p&gt;  &lt;iframe src="https://www.youtube.com/embed/5V3sOC02Yh8" width="710" height="399"&gt;
  &lt;/iframe&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  Code
&lt;/h2&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://assets.dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/Michaello2000" rel="noopener noreferrer"&gt;
        Michaello2000
      &lt;/a&gt; / &lt;a href="https://github.com/Michaello2000/AniPick-Ai" rel="noopener noreferrer"&gt;
        AniPick-Ai
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;AniPick&lt;/h1&gt;
&lt;/div&gt;
&lt;p&gt;Your next watch is already on your list. AniPick is a new, localhost-first anime watchlist companion built for Hacktoberfest 2026 Week 2. This repository was implemented from scratch; no previous AniPick code was used.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Milestones 1–4: real imports, a durable watchlist browser, open-weight AI recommendations, a dedicated interface redesign, and anime previews.&lt;/strong&gt; Pick for Me calls the real model when a server-side Google AI Studio key is configured. Real default-settings generation has been verified through the backend, as detailed below. No demo recommendations or fake model fallback are included.&lt;/p&gt;
&lt;p&gt;The interface has separate &lt;strong&gt;Library&lt;/strong&gt; and &lt;strong&gt;Pick for Me&lt;/strong&gt; destinations. &lt;strong&gt;Import list&lt;/strong&gt; opens the library manager, where AniList and MyAnimeList are equally accessible and saved collections can be switched. Search and sorting stay visible; &lt;strong&gt;Filters&lt;/strong&gt; reveals genre and total-length options. Pick for Me leads with length and mood, keeps explicit cloud consent visible, and places advanced preferences and provider diagnostics…&lt;/p&gt;&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/Michaello2000/AniPick-Ai" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;h2&gt;
  
  
  How I Built It
&lt;/h2&gt;

&lt;p&gt;For this project i used opencode with glm 5.3 flash model which is highly cost efficient, and as a recommendation engine i used Gemma 4 26B a4b it via google ai studio api key or local hosted Bonsai 27B. For tech stack i used: React, TypeScript, Node.js, SQLite.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Does Open Innovation Matter?
&lt;/h2&gt;

&lt;p&gt;By using open-weight ai it allows users to process their data fully locally for free. Open weight model can be modified, retrained or optimized to run on regular consumer hardware and be accessible to anyone. That's why I used Prism ML Bonsai models so people with less powerfull machines can run it. Also many open weight models can be retrained in a future to make them better at certain things, for example here, I plan to fine tune local Bonsai model to work better with anime data.&lt;/p&gt;

&lt;h2&gt;
  
  
  Prize Categories
&lt;/h2&gt;

&lt;p&gt;Best Use of Gemma&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
    </item>
  </channel>
</rss>
