<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>whois JoeByjo</title><link>https://joebyjo.dev/</link><description>Recent content on whois JoeByjo</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Mon, 23 Mar 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://joebyjo.dev/index.xml" rel="self" type="application/rss+xml"/><item><title>Getting GitHub updates on Discord</title><link>https://joebyjo.dev/posts/github_updates_on_discord/</link><pubDate>Mon, 23 Mar 2026 00:00:00 +0000</pubDate><guid>https://joebyjo.dev/posts/github_updates_on_discord/</guid><description>&lt;p&gt;I’ll be honest, I set this up because GitHub email notifications just weren’t cutting it. They’re delayed, easy to miss, and honestly a bit noisy.&lt;/p&gt;
&lt;p&gt;Instead of over-engineering a solution (which I was &lt;em&gt;very&lt;/em&gt; tempted to do), I went with the simplest possible approach:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Let GitHub send events directly to Discord using a webhook.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;No backend. No scripts. Just HTTP.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="requirements"&gt;Requirements&lt;/h2&gt;
&lt;p&gt;Before starting, make sure you have:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;A &lt;strong&gt;GitHub account&lt;/strong&gt; with a repository&lt;/li&gt;
&lt;li&gt;A &lt;strong&gt;Discord server&lt;/strong&gt; where you can create webhooks&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="how-this-works"&gt;How This Works&lt;/h2&gt;
&lt;p&gt;At a high level:&lt;/p&gt;</description></item><item><title>Catwiz</title><link>https://joebyjo.dev/projects/catwiz/</link><pubDate>Thu, 12 Mar 2026 00:00:00 +0000</pubDate><guid>https://joebyjo.dev/projects/catwiz/</guid><description>&lt;h1 id="building-catwiz-a-prompt-injection-ctf-challenge"&gt;Building CatWiz: A Prompt Injection CTF Challenge&lt;/h1&gt;
&lt;h2 id="introduction"&gt;Introduction&lt;/h2&gt;
&lt;p&gt;As large language models become more integrated into real-world applications, &lt;strong&gt;prompt injection&lt;/strong&gt; has emerged as a critical security concern. These attacks exploit how AI systems interpret input, often allowing users to bypass safeguards and extract sensitive information.&lt;/p&gt;
&lt;p&gt;To explore this problem in a hands-on and engaging way, my teammate Hiten Gupta and I partnered with the &lt;strong&gt;AIML Club - Adelaide University&lt;/strong&gt; to design and host &lt;em&gt;Catwiz&lt;/em&gt;, a Capture The Flag (CTF) challenge centered around AI prompt injection.&lt;/p&gt;</description></item><item><title>My Insane Blog Pipeline</title><link>https://joebyjo.dev/posts/my_insane_blog_pipeline/</link><pubDate>Tue, 24 Feb 2026 00:00:00 +0000</pubDate><guid>https://joebyjo.dev/posts/my_insane_blog_pipeline/</guid><description>&lt;p&gt;I’ve reached a point where my brain is essentially a browser with too many tabs open. To fix this, I decided to start blogging for two reasons: I needed a &amp;ldquo;second brain&amp;rdquo; to offload everything I’m learning, and I stumbled upon a &lt;a href="https://www.youtube.com/watch?v=dnE7c0ELEH8"&gt;NetworkChuck video&lt;/a&gt; that made building a blog pipeline look like the perfect sandbox for some DevOps experimentation.&lt;/p&gt;
&lt;p&gt;Instead of just &amp;ldquo;making a website&amp;rdquo; I decided to treat this like a real engineering project. I’ve been procrastinating on my portfolio for years, so I figured I’d finally build it properly using CI/CD, GitHub Actions, and modern static site practices.&lt;/p&gt;</description></item><item><title>Minesweeper 2.0</title><link>https://joebyjo.dev/projects/minesweeper2/</link><pubDate>Sat, 07 Feb 2026 00:00:00 +0000</pubDate><guid>https://joebyjo.dev/projects/minesweeper2/</guid><description>&lt;h1 id="reinventing-a-classic-building-minesweeper-20"&gt;Reinventing a Classic: Building Minesweeper 2.0&lt;/h1&gt;
&lt;h2 id="introduction"&gt;Introduction&lt;/h2&gt;
&lt;p&gt;Few games are as iconic and deceptively simple as &lt;strong&gt;Minesweeper&lt;/strong&gt;. Beneath its minimal interface lies a game of logic, probability, and careful decision-making. However, while the original game is timeless, it leaves little room for variation or innovation.&lt;/p&gt;
&lt;p&gt;That’s exactly the challenge &lt;em&gt;Minesweeper 2.0&lt;/em&gt; set out to solve.&lt;/p&gt;
&lt;p&gt;The goal of this project was to reimagine the traditional Minesweeper experience by introducing powerups, while preserving the core logic-driven mechanics that make the game so engaging. Built using &lt;strong&gt;C++&lt;/strong&gt; and the &lt;strong&gt;SFML&lt;/strong&gt; graphics library, the project focuses on delivering a smooth, responsive, and visually intuitive desktop gaming experience.&lt;/p&gt;</description></item><item><title>Smartcourse Advisor</title><link>https://joebyjo.dev/projects/smartcourse/</link><pubDate>Sat, 07 Feb 2026 00:00:00 +0000</pubDate><guid>https://joebyjo.dev/projects/smartcourse/</guid><description>&lt;h1 id="smartcourse-advisor-merging-ai-data-and-student-voices"&gt;SmartCourse Advisor: Merging AI, Data, and Student Voices&lt;/h1&gt;
&lt;h2 id="introduction"&gt;Introduction&lt;/h2&gt;
&lt;p&gt;Choosing the right university courses is a decision that can significantly shape a student’s academic journey, yet the process is often fragmented and overwhelming. Students typically rely on scattered sources such as informal reviews, outdated course guides, or trial-and-error when planning their degree.&lt;/p&gt;
&lt;p&gt;This challenge becomes even more relevant in the context of institutional change, such as the &lt;strong&gt;University of Adelaide&lt;/strong&gt; merger, where navigating course options can become even more complex.&lt;/p&gt;</description></item><item><title>Backing Up iPhone Photos to an External HDD</title><link>https://joebyjo.dev/posts/backing_up_iphone_photos_to_an_external_hdd/</link><pubDate>Sun, 19 Oct 2025 00:00:00 +0000</pubDate><guid>https://joebyjo.dev/posts/backing_up_iphone_photos_to_an_external_hdd/</guid><description>&lt;h3 id="1-connect-iphone"&gt;1. Connect iPhone&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Plug in your iPhone using a USB or USB-C to Lightning cable.&lt;/li&gt;
&lt;li&gt;Unlock your phone and tap &lt;strong&gt;&amp;ldquo;Trust This Computer&amp;rdquo;&lt;/strong&gt; if prompted.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h3 id="2-open-image-capture"&gt;2. Open Image Capture&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;On your Mac, press &lt;code&gt;Cmd + Space&lt;/code&gt; → type &lt;code&gt;Image Capture&lt;/code&gt; → press &lt;strong&gt;Enter&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;In the left sidebar, click your &lt;strong&gt;iPhone&lt;/strong&gt; under “Devices”.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src="https://joebyjo.dev/images/posts/backing_up_iphone_photos_to_an_external_hdd/474AA3804CE6F6FBAA942BFC7802FAA1.png" alt="474AA3804CE6F6FBAA942BFC7802FAA1.png"&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id="3-choose-destination-folder"&gt;3. Choose Destination Folder&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;At the bottom of Image Capture, locate the &lt;strong&gt;“Import To:”&lt;/strong&gt; dropdown.&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;“Other…”&lt;/strong&gt; and navigate to your external HDD.&lt;/li&gt;
&lt;li&gt;Create a new folder for today’s backup, for example:&lt;/li&gt;
&lt;/ul&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;
/Volumes/YourHDD/Backups/iPhone Backup 18-10-25
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;img src="https://joebyjo.dev/images/posts/backing_up_iphone_photos_to_an_external_hdd/E7CDD9FEB3D64D0D2747B33FC70CB52C.png" alt="E7CDD9FEB3D64D0D2747B33FC70CB52C.png"&gt;&lt;/p&gt;</description></item><item><title>VLC tricks</title><link>https://joebyjo.dev/posts/vlc_tricks/</link><pubDate>Sun, 19 Oct 2025 00:00:00 +0000</pubDate><guid>https://joebyjo.dev/posts/vlc_tricks/</guid><description>&lt;h3 id="to-add-subtitles-to-video"&gt;To add subtitles to video&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;drag and drop &lt;code&gt;.srt&lt;/code&gt; or &lt;code&gt;.vtt&lt;/code&gt; file onto video&lt;/li&gt;
&lt;li&gt;to sync subtitles go to &lt;code&gt;window &amp;gt; track syncronization &amp;gt; subtitles track sync&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;can also use &lt;code&gt;h&lt;/code&gt; and &lt;code&gt;j&lt;/code&gt; keys during playtime to delay subtitles&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="launch-vlc-from-terminal"&gt;Launch vlc from terminal&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;open terminal and execute &lt;code&gt;code ~/.zshrc&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;add alias by adding the following to the file&lt;/li&gt;
&lt;/ol&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;
alias vlc=/Applications/VLC.app/Contents/MacOS/VLC
&lt;/code&gt;&lt;/pre&gt;&lt;ol start="3"&gt;
&lt;li&gt;save and close the file and run the following in terminal&lt;/li&gt;
&lt;/ol&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;
source ~/.zshrc
&lt;/code&gt;&lt;/pre&gt;&lt;ol start="4"&gt;
&lt;li&gt;restart terminal session and run &lt;code&gt;vlc&lt;/code&gt; to ensure it worked&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;a href="https://wiki.videolan.org/Command-line_interface/"&gt;Wiki&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Cinematch</title><link>https://joebyjo.dev/projects/cinematch/</link><pubDate>Tue, 09 Sep 2025 00:00:00 +0000</pubDate><guid>https://joebyjo.dev/projects/cinematch/</guid><description>&lt;h1 id="building-cinematch-a-full-stack-movie-discovery-platform"&gt;Building Cinematch: A Full-Stack Movie Discovery Platform&lt;/h1&gt;
&lt;p&gt;&lt;img src="https://joebyjo.dev/images/projects/cinematch/DD2850F505CA855C9A4DE298B27A8DFD.png" alt="DD2850F505CA855C9A4DE298B27A8DFD.png"&gt;&lt;/p&gt;
&lt;h2 id="introduction"&gt;Introduction&lt;/h2&gt;
&lt;p&gt;One of the biggest problems with modern streaming platforms is not the lack of content, it’s deciding &lt;em&gt;what to watch&lt;/em&gt;. With thousands of movies and TV shows available, users often spend more time browsing than actually watching.&lt;/p&gt;
&lt;p&gt;To solve this, We worked on &lt;strong&gt;Cinematch&lt;/strong&gt;, a full-stack web application designed to make movie and TV discovery fast, personalised, and interactive. The goal was to create a platform that feels engaging like a swipe-based app, while still providing powerful filtering, search, and watchlist management features.&lt;/p&gt;</description></item><item><title>Spotify Analysis</title><link>https://joebyjo.dev/projects/spotifyanalysis/</link><pubDate>Tue, 22 Jul 2025 00:00:00 +0000</pubDate><guid>https://joebyjo.dev/projects/spotifyanalysis/</guid><description>&lt;h1 id="exploring-music-through-data-spotify-audio-feature-analysis"&gt;Exploring Music Through Data: Spotify Audio Feature Analysis&lt;/h1&gt;
&lt;h2 id="introduction"&gt;Introduction&lt;/h2&gt;
&lt;p&gt;Music is often described as emotional and subjective, but beneath that subjectivity lies a rich layer of measurable data. Platforms like &lt;strong&gt;Spotify&lt;/strong&gt; analyze tracks using detailed audio features such as &lt;em&gt;danceability&lt;/em&gt;, &lt;em&gt;energy&lt;/em&gt;, and &lt;em&gt;valence&lt;/em&gt;, offering a unique opportunity to study music from a data-driven perspective.&lt;/p&gt;
&lt;p&gt;This project, &lt;em&gt;Spotify Audio Feature Analysis&lt;/em&gt;, was designed to explore how these characteristics vary across genres, popularity levels, and time. By combining publicly available datasets from &lt;strong&gt;Kaggle&lt;/strong&gt; with additional metadata retrieved via the Spotify Web API, the goal was to uncover patterns in how music evolves and what defines different styles of sound.&lt;/p&gt;</description></item><item><title>Typing Speed V2</title><link>https://joebyjo.dev/projects/typingspeedv2/</link><pubDate>Sat, 07 Jan 2023 00:00:00 +0000</pubDate><guid>https://joebyjo.dev/projects/typingspeedv2/</guid><description>&lt;h1 id="building-a-fast-minimal-typing-speed-test-with-python-and-mysql"&gt;Building a Fast, Minimal Typing Speed Test with Python and MySQL&lt;/h1&gt;
&lt;h2 id="introduction"&gt;Introduction&lt;/h2&gt;
&lt;p&gt;Typing speed tests are a simple but effective way to improve accuracy, speed, and consistency while working on a computer. Most online typing platforms rely heavily on graphical interfaces and web-based systems, but I wanted to explore a different challenge: building a fast, responsive, and fully terminal-based typing experience powered by a real backend database.&lt;/p&gt;
&lt;p&gt;That idea led to the development of &lt;strong&gt;Typing-Speed-TUI-V2&lt;/strong&gt;, a Python-based typing speed application featuring a Text User Interface (TUI) and persistent MySQL storage. The project was designed to combine low-level terminal interaction with backend engineering concepts such as authentication, database management, statistics tracking, and secure password handling.&lt;/p&gt;</description></item><item><title>Showcase</title><link>https://joebyjo.dev/posts/showcase/</link><pubDate>Thu, 04 Apr 2019 00:00:00 +0000</pubDate><guid>https://joebyjo.dev/posts/showcase/</guid><description>&lt;p&gt;This article offers a sample of basic Markdown syntax that can be used in Hugo content files, also it shows whether basic HTML elements are decorated with CSS in a Hugo theme.&lt;/p&gt;</description></item><item><title>About Me</title><link>https://joebyjo.dev/about/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://joebyjo.dev/about/</guid><description>&lt;p&gt;I am currently pursuing a Bachelor of Computer Science at the University of Adelaide and completed my schooling at DPS Dubai. My journey in technology has been driven by curiosity and a passion for learning, which has led me to explore a variety of fields and projects.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://joebyjo.dev/images/experience/headshot.png" alt="Headshot"&gt;&lt;/p&gt;
&lt;p&gt;I have hands-on experience in areas such as automation tools, developing games, Web and API penetration testing, creating Discord and Reddit bots.My work has given me broad exposure to APIs, low-level and high-level programming. I have a strong foundational knowledge of Linux and practical experience with Git for version control. I also have experience with home labbing using platforms like Ubuntu, Proxmox, and Red Hat, as well as networking and computer servicing support.&lt;/p&gt;</description></item><item><title>About Me Brief</title><link>https://joebyjo.dev/_private/about-brief/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://joebyjo.dev/_private/about-brief/</guid><description>&lt;p&gt;I am a Bachelor of Computer Science student at University of Adelaide and currently working as a Full
Stack Developer at Marsupium. I have developed hands-on experience across web development, APIs,
automation, cybersecurity, and machine learning projects. I enjoy tackling complex technical challenges, participating in CTFs and hackathons, and continuously expanding my skills across both software engineering and systems technologies.&lt;/p&gt;</description></item></channel></rss>