<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Development on eziosoft</title>
    <link>https://eziosoft.com/categories/development/</link>
    <description>Recent content in Development on eziosoft</description>
    <generator>Hugo</generator>
    <language>en</language>
    <lastBuildDate>Fri, 18 Apr 2025 00:00:00 +0000</lastBuildDate>
    <atom:link href="https://eziosoft.com/categories/development/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>I Taught My Phone to Know I&#39;m Lying on the Couch. Here&#39;s How.</title>
      <link>https://eziosoft.com/posts/taught-phone-to-know-lying/</link>
      <pubDate>Fri, 18 Apr 2025 00:00:00 +0000</pubDate>
      <guid>https://eziosoft.com/posts/taught-phone-to-know-lying/</guid>
      <description>&lt;p&gt;I&amp;rsquo;ve been fascinated by real-time signal processing for a while. You know that feeling when you&amp;rsquo;re watching a live graph of sensor data and it wiggles around in response to the real world? That&amp;rsquo;s basically digital sorcery and I love it.&lt;/p&gt;&#xA;&lt;p&gt;I was thinking where to get the data and what to classify.&lt;/p&gt;&#xA;&lt;p&gt;One day I thought: what if I could make my phone figure out what I&amp;rsquo;m doing, just from its motion sensors?&lt;/p&gt;</description>
    </item>
    <item>
      <title>Real-time MAVLink Drone Monitoring</title>
      <link>https://eziosoft.com/posts/mavlink-stats/</link>
      <pubDate>Fri, 18 Apr 2025 00:00:00 +0000</pubDate>
      <guid>https://eziosoft.com/posts/mavlink-stats/</guid>
      <description>&lt;p&gt;This project provides a real-time MAVLink-based drone monitoring system. It connects to a MAVLink-enabled drone, listens for messages, and visualizes data such as message frequencies, detected systems, and requested data streams via a web interface.&lt;/p&gt;&#xA;&lt;h2 id=&#34;features&#34;&gt;&#xA;  Features&#xA;  &lt;a class=&#34;heading-link&#34; href=&#34;#features&#34;&gt;&#xA;    &lt;i class=&#34;fa-solid fa-link&#34; aria-hidden=&#34;true&#34; title=&#34;Link to heading&#34;&gt;&lt;/i&gt;&#xA;    &lt;span class=&#34;sr-only&#34;&gt;Link to heading&lt;/span&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;MAVLink Connection&lt;/strong&gt;: Automatically connects to a MAVLink system and listens for messages&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Live Data Display&lt;/strong&gt;: Shows detected MAVLink systems and components&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Message Frequency Monitoring&lt;/strong&gt;: Tracks expected vs. actual frequencies of MAVLink messages&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;REQUEST_DATA_STREAM Capturing&lt;/strong&gt;: Logs data stream requests from the drone&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Web Interface&lt;/strong&gt;: Real-time dashboard for monitoring&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Reset Functionality&lt;/strong&gt;: Allows resetting the collected MAVLink data&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;installation&#34;&gt;&#xA;  Installation&#xA;  &lt;a class=&#34;heading-link&#34; href=&#34;#installation&#34;&gt;&#xA;    &lt;i class=&#34;fa-solid fa-link&#34; aria-hidden=&#34;true&#34; title=&#34;Link to heading&#34;&gt;&lt;/i&gt;&#xA;    &lt;span class=&#34;sr-only&#34;&gt;Link to heading&lt;/span&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&#xA;&lt;h3 id=&#34;prerequisites&#34;&gt;&#xA;  Prerequisites&#xA;  &lt;a class=&#34;heading-link&#34; href=&#34;#prerequisites&#34;&gt;&#xA;    &lt;i class=&#34;fa-solid fa-link&#34; aria-hidden=&#34;true&#34; title=&#34;Link to heading&#34;&gt;&lt;/i&gt;&#xA;    &lt;span class=&#34;sr-only&#34;&gt;Link to heading&lt;/span&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Python 3.8+&lt;/li&gt;&#xA;&lt;li&gt;pip&lt;/li&gt;&#xA;&lt;li&gt;MAVProxy or any MAVLink-compatible communication method&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;dependencies&#34;&gt;&#xA;  Dependencies&#xA;  &lt;a class=&#34;heading-link&#34; href=&#34;#dependencies&#34;&gt;&#xA;    &lt;i class=&#34;fa-solid fa-link&#34; aria-hidden=&#34;true&#34; title=&#34;Link to heading&#34;&gt;&lt;/i&gt;&#xA;    &lt;span class=&#34;sr-only&#34;&gt;Link to heading&lt;/span&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h3&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pip install -r requirements.txt&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;configuration&#34;&gt;&#xA;  Configuration&#xA;  &lt;a class=&#34;heading-link&#34; href=&#34;#configuration&#34;&gt;&#xA;    &lt;i class=&#34;fa-solid fa-link&#34; aria-hidden=&#34;true&#34; title=&#34;Link to heading&#34;&gt;&lt;/i&gt;&#xA;    &lt;span class=&#34;sr-only&#34;&gt;Link to heading&lt;/span&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Modify the &lt;code&gt;config.py&lt;/code&gt; file to set the correct drone connection string:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Wolfenstein 3D Clone in Android with Jetpack Compose</title>
      <link>https://eziosoft.com/posts/raytracer-android/</link>
      <pubDate>Fri, 18 Apr 2025 00:00:00 +0000</pubDate>
      <guid>https://eziosoft.com/posts/raytracer-android/</guid>
      <description>&lt;p&gt;A real-time raycasting engine (Wolfenstein 3D style) built entirely in Kotlin using Jetpack Compose for Android. Think classic FPS rendered on a modern Android device.&lt;/p&gt;&#xA;&lt;h2 id=&#34;what-is-raycasting&#34;&gt;&#xA;  What is Raycasting?&#xA;  &lt;a class=&#34;heading-link&#34; href=&#34;#what-is-raycasting&#34;&gt;&#xA;    &lt;i class=&#34;fa-solid fa-link&#34; aria-hidden=&#34;true&#34; title=&#34;Link to heading&#34;&gt;&lt;/i&gt;&#xA;    &lt;span class=&#34;sr-only&#34;&gt;Link to heading&lt;/span&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Raycasting is a rendering technique used in early 3D games like Wolfenstein 3D, Doom, and Duke Nukem 3D. Instead of full 3D polygons, it casts rays from the player&amp;rsquo;s view into a 2D grid map to determine wall heights. This creates a pseudo-3D effect that runs efficiently on limited hardware.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
