<?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: Toni Angelchovski</title>
    <description>The latest articles on DEV Community by Toni Angelchovski (@aiflux).</description>
    <link>https://dev.to/aiflux</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%2F2580835%2Fa01ff505-86b2-4ddb-b6a6-40b154de7d16.jpg</url>
      <title>DEV Community: Toni Angelchovski</title>
      <link>https://dev.to/aiflux</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/aiflux"/>
    <language>en</language>
    <item>
      <title>Enchanted Winter Realms - A Journey Through the Solstice</title>
      <dc:creator>Toni Angelchovski</dc:creator>
      <pubDate>Sun, 22 Dec 2024 12:58:01 +0000</pubDate>
      <link>https://dev.to/aiflux/enchanted-winter-realms-a-journey-through-the-solstice-59bf</link>
      <guid>https://dev.to/aiflux/enchanted-winter-realms-a-journey-through-the-solstice-59bf</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for &lt;a href="https://dev.to/challenges/frontend-2024-12-04"&gt;Frontend Challenge - December Edition, Glam Up My Markup: Winter Solstice&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; &lt;em&gt;During the development of this project, I noticed that the theme of the winter solstice has also inspired other participants in the challenge. This highlights how inspiring nature and the magic of this season can be. My inspiration comes from my personal vision of winter, focusing on the details and interpretation of its charm. I hope this project contributes to the diversity of ideas in this challenge.&lt;/em&gt;&lt;/p&gt;

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

&lt;p&gt;"&lt;strong&gt;Winter Solstice Magic&lt;/strong&gt;" is an interactive web scene designed to capture the essence and enchantment of the winter solstice. The project features animated elements like a sun, moon, stars, aurora borealis, falling snow, and additional festive touches such as a glowing fire, twinkling lights, and shooting comets. The goal was to create a visually engaging experience that immerses the viewer in the magic of winter while showcasing the power of modern web technologies.&lt;/p&gt;

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

&lt;p&gt;You can experience the project live here: &lt;a href="https://angelchovski.com/demo/dev_to/Winter_Solstice_Magic.html" rel="noopener noreferrer"&gt;Winter Solstice Magic Demo&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The full code is available The is here:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;!DOCTYPE html&amp;gt;
&amp;lt;html lang="en"&amp;gt;
&amp;lt;head&amp;gt;
    &amp;lt;meta charset="UTF-8"&amp;gt;
    &amp;lt;meta name="viewport" content="width=device-width, initial-scale=1.0"&amp;gt;
    &amp;lt;title&amp;gt;Winter Solstice Scene&amp;lt;/title&amp;gt;
    &amp;lt;style&amp;gt;
        body {
            margin: 0;
            overflow: hidden;
            background: linear-gradient(to bottom, #003366, #000);
            display: flex;
            justify-content: center;
            align-items: center;
            height: 100vh;
            color: white;
            font-family: Arial, sans-serif;
        }

        .sky {
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            background: linear-gradient(to top, #1e3c72, #2a5298);
            z-index: -1;
            animation: skyTransition 20s infinite alternate;
        }

        .sun {
            position: absolute;
            width: 80px;
            height: 80px;
            background: radial-gradient(circle, #ffcc00, #ff9900);
            border-radius: 50%;
            animation: moveSun 8s infinite;
            z-index: 1;
        }

        .moon {
            position: absolute;
            width: 60px;
            height: 60px;
            background: radial-gradient(circle, #ffffff, #cccccc);
            border-radius: 50%;
            animation: moveMoon 8s infinite;
            z-index: 1;
            opacity: 0.8;
        }

        .stars {
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            pointer-events: none;
            z-index: 0;
        }

        .star {
            position: absolute;
            width: 3px;
            height: 3px;
            background: white;
            border-radius: 50%;
            opacity: 0;
            animation: twinkle 3s infinite;
        }

        .aurora {
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            background: radial-gradient(circle, rgba(0, 255, 150, 0.3), transparent);
            opacity: 0.4;
            animation: auroraEffect 10s infinite alternate;
            z-index: -1;
        }

        .comet {
            position: absolute;
            width: 10px;
            height: 10px;
            background: radial-gradient(circle, #ffffff, transparent);
            border-radius: 50%;
            box-shadow: 0 0 10px 5px #ffffff;
            opacity: 0.8;
            animation: flyComet 6s infinite;
        }

        .light-string {
            position: absolute;
            bottom: 10%;
            width: 100%;
            display: flex;
            justify-content: space-evenly;
        }

        .light {
            width: 15px;
            height: 15px;
            background: red;
            border-radius: 50%;
            animation: blinkLight 2s infinite alternate;
        }

        .title {
            position: absolute;
            top: 50%;
            left: 50%;
            transform: translate(-50%, -50%);
            font-size: 3.5rem;
            font-family: 'Cinzel Decorative', cursive;
            color: #ffddcc;
            text-shadow: 3px 3px 10px #000;
            opacity: 0;
            animation: fadeInOut 10s infinite;
        }

        .fire {
            position: absolute;
            bottom: 5%;
            left: 50%;
            transform: translateX(-50%);
            width: 50px;
            height: 100px;
            background: radial-gradient(circle, rgba(255, 165, 0, 1), rgba(255, 69, 0, 0.7));
            border-radius: 50%;
            animation: flicker 0.5s infinite;
        }

        @keyframes flicker {
            0%, 100% {
                transform: scale(1);
                opacity: 0.8;
            }
            50% {
                transform: scale(1.2);
                opacity: 1;
            }
        }

        .tree {
            position: absolute;
            bottom: 10%;
            left: calc(10% + var(--position, 0%));
            width: 40px;
            height: 60px;
            background: linear-gradient(to bottom, #228B22, #006400);
            clip-path: polygon(50% 0%, 0% 100%, 100% 100%);
        }

        @keyframes fadeInOut {
            0%, 100% {
                opacity: 0;
            }
            50% {
                opacity: 1;
            }
        }

        @keyframes moveSun {
            0% {
                top: 80%;
                left: 10%;
            }
            50% {
                top: 20%;
                left: 50%;
            }
            100% {
                top: 80%;
                left: 90%;
            }
        }

        @keyframes moveMoon {
            0% {
                top: 20%;
                left: 90%;
            }
            50% {
                top: 10%;
                left: 50%;
            }
            100% {
                top: 20%;
                left: 10%;
            }
        }

        @keyframes skyTransition {
            0% {
                background: linear-gradient(to top, #1e3c72, #2a5298);
            }
            50% {
                background: linear-gradient(to top, #000428, #004e92);
            }
            100% {
                background: linear-gradient(to top, #2c3e50, #4ca1af);
            }
        }

        @keyframes twinkle {
            0%, 100% {
                opacity: 0;
            }
            50% {
                opacity: 1;
            }
        }

        @keyframes auroraEffect {
            0% {
                transform: translateX(-20px) scale(1.2);
            }
            100% {
                transform: translateX(20px) scale(1.5);
            }
        }

        @keyframes flyComet {
            0% {
                top: -10%;
                left: 110%;
            }
            100% {
                top: 110%;
                left: -10%;
            }
        }

        @keyframes blinkLight {
            0% {
                background: red;
            }
            100% {
                background: yellow;
            }
        }

    &amp;lt;/style&amp;gt;
    &amp;lt;link href="https://fonts.googleapis.com/css2?family=Cinzel+Decorative:wght@400;700&amp;amp;display=swap" rel="stylesheet"&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;
    &amp;lt;div class="sky"&amp;gt;&amp;lt;/div&amp;gt;
    &amp;lt;div class="aurora"&amp;gt;&amp;lt;/div&amp;gt;
    &amp;lt;div class="sun"&amp;gt;&amp;lt;/div&amp;gt;
    &amp;lt;div class="moon"&amp;gt;&amp;lt;/div&amp;gt;
    &amp;lt;div class="stars"&amp;gt;&amp;lt;/div&amp;gt;
    &amp;lt;div class="light-string"&amp;gt;
        &amp;lt;div class="light"&amp;gt;&amp;lt;/div&amp;gt;
        &amp;lt;div class="light"&amp;gt;&amp;lt;/div&amp;gt;
        &amp;lt;div class="light"&amp;gt;&amp;lt;/div&amp;gt;
        &amp;lt;div class="light"&amp;gt;&amp;lt;/div&amp;gt;
        &amp;lt;div class="light"&amp;gt;&amp;lt;/div&amp;gt;
    &amp;lt;/div&amp;gt;
    &amp;lt;div class="title"&amp;gt;Winter Solstice Magic&amp;lt;/div&amp;gt;
    &amp;lt;div class="fire"&amp;gt;&amp;lt;/div&amp;gt;
    &amp;lt;div class="tree" style="--position: 10%;"&amp;gt;&amp;lt;/div&amp;gt;
    &amp;lt;div class="tree" style="--position: 30%;"&amp;gt;&amp;lt;/div&amp;gt;
    &amp;lt;div class="tree" style="--position: 70%;"&amp;gt;&amp;lt;/div&amp;gt;
    &amp;lt;script&amp;gt;
        // Add twinkling stars
        const starContainer = document.querySelector('.stars');
        for (let i = 0; i &amp;lt; 100; i++) {
            const star = document.createElement('div');
            star.classList.add('star');
            star.style.top = `${Math.random() * 100}%`;
            star.style.left = `${Math.random() * 100}%`;
            star.style.animationDelay = `${Math.random() * 5}s`;
            starContainer.appendChild(star);
        }

        // Create a comet
        const createComet = () =&amp;gt; {
            const comet = document.createElement('div');
            comet.classList.add('comet');
            comet.style.top = `-${Math.random() * 50}px`;
            comet.style.left = `${Math.random() * window.innerWidth}px`;
            document.body.appendChild(comet);

            setTimeout(() =&amp;gt; comet.remove(), 6000);
        };

        setInterval(createComet, 8000);

        // Interactive snow effect
        const createSnowflake = () =&amp;gt; {
            const snowflake = document.createElement('div');
            snowflake.classList.add('snowflake');
            snowflake.style.position = 'absolute';
            snowflake.style.top = `-5px`;
            snowflake.style.left = `${Math.random() * window.innerWidth}px`;
            snowflake.style.width = snowflake.style.height = `${Math.random() * 5 + 2}px`;
            snowflake.style.background = 'white';
            snowflake.style.borderRadius = '50%';
            snowflake.style.opacity = `${Math.random() * 0.8 + 0.2}`;
            snowflake.style.transition = 'top 3s linear';
            document.body.appendChild(snowflake);

            setTimeout(() =&amp;gt; {
                snowflake.style.top = `${window.innerHeight + 10}px`;
            }, 50);

            setTimeout(() =&amp;gt; {
                snowflake.remove();
            }, 3000);
        };

        setInterval(createSnowflake, 150);
    &amp;lt;/script&amp;gt;
&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Below is a preview image of the project:&lt;/p&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.amazonaws.com%2Fuploads%2Farticles%2F0jpp475yfvctzhdo9j2j.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.amazonaws.com%2Fuploads%2Farticles%2F0jpp475yfvctzhdo9j2j.png" alt="Image description" width="800" height="380"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Journey
&lt;/h2&gt;

&lt;p&gt;Creating "Winter Solstice Magic" was an exciting and challenging process. Here is an overview of my journey:&lt;/p&gt;

&lt;h2&gt;
  
  
  The Idea
&lt;/h2&gt;

&lt;p&gt;I wanted to bring the beauty and mystique of the winter solstice to life through an immersive web experience. The project was inspired by the natural elements of winter and the peaceful yet vibrant atmosphere of the season.&lt;/p&gt;

&lt;h2&gt;
  
  
  Technologies Used
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;HTML for the basic structure.&lt;/li&gt;
&lt;li&gt;CSS for animations, gradients, and styling.&lt;/li&gt;
&lt;li&gt;JavaScript for dynamic interactivity, including the generation of snowflakes, stars, and comets.&lt;/li&gt;
&lt;li&gt;Google Fonts to enhance the aesthetic appeal of the title text with the "Cinzel Decorative" font.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Key Features
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Dynamic Background:&lt;/strong&gt; &lt;em&gt;The sky transitions smoothly between gradients to mimic different times of the day.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Interactive Elements:&lt;/strong&gt; &lt;em&gt;Stars twinkle, snowflakes fall, and comets streak across the screen to add life to the scene.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Festive Details:&lt;/strong&gt; &lt;em&gt;Twinkling lights and a glowing fire enhance the seasonal charm.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Accessibility:&lt;/strong&gt;  &lt;em&gt;The project was designed to be visually engaging and lightweight, ensuring it works seamlessly across devices.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Challenges and Learnings
&lt;/h2&gt;

&lt;p&gt;One challenge was optimizing animations to ensure smooth performance on various devices. I learned a lot about managing animation performance using CSS and JavaScript. I am particularly proud of the seamless integration of multiple animated elements without compromising the responsiveness of the page.&lt;/p&gt;

&lt;h2&gt;
  
  
  What’s Next
&lt;/h2&gt;

&lt;p&gt;In the future, I would like to:&lt;/p&gt;

&lt;p&gt;Add audio elements, such as subtle winter-themed background music or sound effects.&lt;/p&gt;

&lt;p&gt;Introduce user interactivity, allowing viewers to customize aspects of the scene.&lt;/p&gt;

&lt;p&gt;Expand the project into a series featuring different seasonal themes.&lt;/p&gt;

&lt;h2&gt;
  
  
  License
&lt;/h2&gt;

&lt;p&gt;The code for this project is licensed under the &lt;a href="https://choosealicense.com/licenses/mit/" rel="noopener noreferrer"&gt;MIT License&lt;/a&gt;, making it free and open for anyone to use or adapt.&lt;/p&gt;

&lt;h2&gt;
  
  
  Acknowledgments
&lt;/h2&gt;

&lt;p&gt;Special thanks to the &lt;strong&gt;DEV Community&lt;/strong&gt; for hosting this challenge and providing inspiration through their platform. Thank you for considering my submission! I hope you enjoy "&lt;strong&gt;&lt;em&gt;Winter Solstice Magic&lt;/em&gt;&lt;/strong&gt;."&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>frontendchallenge</category>
      <category>css</category>
      <category>javascript</category>
    </item>
    <item>
      <title>How to Recover Access to BitLocker After Losing Your Password? 🔐</title>
      <dc:creator>Toni Angelchovski</dc:creator>
      <pubDate>Wed, 18 Dec 2024 14:25:58 +0000</pubDate>
      <link>https://dev.to/aiflux/how-to-recover-access-to-bitlocker-after-losing-your-password-24lo</link>
      <guid>https://dev.to/aiflux/how-to-recover-access-to-bitlocker-after-losing-your-password-24lo</guid>
      <description>&lt;p&gt;BitLocker is an incredibly powerful tool for protecting your data, but what happens if you lose your password or Recovery Key? 😟 Don’t worry – this article provides a comprehensive guide to all the options that can help you regain access to your encrypted drive. 🚀&lt;/p&gt;

&lt;p&gt;Recovery Key – Your Lifesaver! 🔑&lt;br&gt;
The Recovery Key is a unique 48-digit code that allows you to unlock BitLocker if you lose your password. Here’s where you can find it:&lt;/p&gt;

&lt;p&gt;Microsoft Account: Check here if the key is saved in your profile.&lt;br&gt;
Text File or USB Device: Look for the Recovery Key file on another computer or USB drive.&lt;br&gt;
Printout: Review documents you might have printed and stored securely.&lt;br&gt;
Active Directory: If the computer is work-related, your IT department may have stored the key in Active Directory.&lt;br&gt;
💡 Tip: Keep your Recovery Key in a secure place, such as the cloud or a physical backup device!&lt;/p&gt;

&lt;p&gt;What to Do If You Don’t Have a Recovery Key? 🚨&lt;br&gt;
If the key is lost, your options are limited, but there are still alternatives:&lt;/p&gt;

&lt;p&gt;🛠 1. Check for Cached Passwords&lt;br&gt;
If your device is part of a domain or corporate network, the password might be cached locally. Check:&lt;/p&gt;

&lt;p&gt;Active Directory (with the help of your IT administrator).&lt;br&gt;
Local user accounts, if auto-login was enabled.&lt;br&gt;
🔍 2. Recover Unencrypted Data&lt;br&gt;
If the disk is partially encrypted, you can use tools such as:&lt;/p&gt;

&lt;p&gt;EaseUS Data Recovery Wizard&lt;br&gt;
Recuva&lt;br&gt;
R-Studio&lt;br&gt;
⚠️ Note: These tools can only retrieve unencrypted files.&lt;/p&gt;

&lt;p&gt;⚡ 3. Extract Using the TPM Chip&lt;br&gt;
If you used BitLocker with TPM (Trusted Platform Module), the encryption keys might be stored in your device’s hardware.&lt;/p&gt;

&lt;p&gt;Specialized tools can extract these keys, but this requires advanced technical knowledge and is a risky process.&lt;br&gt;
📞 4. Contact Data Recovery Professionals&lt;br&gt;
If the data is critical, professional companies can attempt recovery. They use advanced methods for:&lt;/p&gt;

&lt;p&gt;Hardware-level extraction of encryption keys.&lt;br&gt;
File recovery through specialized software.&lt;br&gt;
💰 Drawback: These services are expensive and not always successful.&lt;/p&gt;

&lt;p&gt;🗑️ 5. Last Resort – Format the Disk&lt;br&gt;
If none of the above options work and the data is not critical:&lt;/p&gt;

&lt;p&gt;Open Disk Management.&lt;br&gt;
Delete the encrypted partition and create a new one.&lt;br&gt;
⚠️ Warning: This will completely erase all data on the disk.&lt;/p&gt;

&lt;p&gt;Prevention for the Future: How to Protect Yourself from Such Situations? 🌟&lt;br&gt;
Save the Recovery Key in multiple locations:&lt;br&gt;
In your Microsoft Account.&lt;br&gt;
On a USB drive.&lt;br&gt;
On a securely stored printed document.&lt;br&gt;
Regularly back up important data.&lt;br&gt;
Set up safe data storage: For example, use cloud services like OneDrive or Google Drive.&lt;br&gt;
Conclusion 🧩&lt;br&gt;
BitLocker is an incredibly powerful tool for data protection, but losing the password or Recovery Key can have irreversible consequences. Keep your keys secure and always have backups!&lt;/p&gt;

&lt;p&gt;💬 Share in the comments how you handled a similar situation or ask questions if you need help! 👇&lt;/p&gt;

&lt;p&gt;✨ Your data is valuable – protect it well! ✨&lt;/p&gt;

</description>
      <category>security</category>
      <category>microsoft</category>
    </item>
  </channel>
</rss>
