Activity

abdurahmansharif.uk

Devlog #1 — 2h 47m (January 7th, 2026)

Portfolio Improvements

  • Added an Animations section to showcase Flipaclip and Roblox VFX work.
  • Structured video cards with titles, specs, and descriptions for each animation.
  • Improved the description for “My First Project” to better explain motion and timing.
  • Ensured alt text for images and accessibility labels for videos.

UI/UX Enhancements

  • Refined grid layout for animations for responsiveness.
  • Added clear labels and headings for screen readers (aria-labelledby).
  • Standardized formatting for animation specs (Frames • FPS • Duration).

Content Polishing

  • Updated descriptions to be more vivid and engaging.
  • Highlighted motion, timing, and sequence details in the animations section.
  • Checked for consistency in style across all portfolio sections.

Technical Adjustments

  • Verified video playback for autoplay, loop, and playsinline.
  • Confirmed mobile-friendly responsiveness of the new section.
  • Ensured links and modals remain functional with new content.

Reflections

  • Learned how to showcase frame-by-frame animations in a portfolio effectively.
  • Practiced balancing technical detail and readability for viewers.
  • Gained confidence in structuring new sections without breaking layout or accessibility.
Attachment
0
abdurahmansharif.uk

Devlog #2 – URL & State Persistence Fix
📅 Date: 07/01/2026
⏱ Time Spent: 33 minutes
🧠 Focus: State loading, URL parameters, and persistence


✅ What I Worked On

  • Diagnosed an issue where URL/state loading always reverted to the first ability/level (Illumination 1.5)
  • Investigated interaction between URL params, localStorage, and initialization logic

🔁 Changes & Fixes

  • Relaxed option validation in URL and localStorage loaders
  • Ensured loaders return explicit booleans to prevent unintended fallbacks
  • Fixed race/overwrite issues by preventing populateLevels from auto-calling updateChart during initialization
  • Introduced a triggerUpdate flag so URL parameters and saved preferences can set the correct level before updates occur
  • Removed temporary debug logging after confirming the fix

🐞 Bug Details

  • Issue: State always reset to default ability/level on load
  • Cause: Initialization order caused updateChart to overwrite URL/localStorage values
  • Status: Fixed

🧪 What I Learned

  • Why initialization order matters in state-driven UIs
  • How returning explicit booleans can prevent silent fallback logic
  • How to debug race conditions in client-side state loading

⏭ Next Steps

  • Add basic tests for URL/state loading
  • Harden validation logic without breaking persistence

🛠 Tooling Notes

  • Used GitHub Copilot prompts extensively to reason through the bug and validate fixes
Attachment
0
abdurahmansharif.uk

Created a Player class in Python with:

  • Health, level, EXP, and stats.
  • EXP system with level up mechanics and automatic stat point allocation.
  • Validation methods for safe input handling.
  • Added stat point allocation method with error handling.
  • Implemented string representation for easy console display of player stats.
  • Tested the class with example player instances and EXP/stat point updates.
  • Added ANSI color formatting for terminal outputs.
Attachment
0
abdurahmansharif.uk

Committed previous work.
Ran into multiple issues while testing the site.
Fixed problems including HTML conflicts and broken image paths.
Problem was denoted by the leading trailing slash, server responded with 404 error
Verified that images now load correctly on both local live server and GitHub Pages deployment.

Attachment
0