<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet href="https://ragibhasin.github.io/feed_style.xsl" type="text/xsl"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
    <tabi:metadata xmlns:tabi="https://github.com/welpo/tabi">
        <tabi:base_url>https:&#x2F;&#x2F;ragibhasin.github.io</tabi:base_url>
        <tabi:separator>
            •
        </tabi:separator>
        <tabi:about_feeds>This is a web feed, also known as an Atom feed. Subscribe by copying the URL from the address bar into your newsreader. Visit About Feeds to learn more and get started. It&#x27;s free.</tabi:about_feeds>
        <tabi:visit_the_site>Visit website</tabi:visit_the_site>
        <tabi:recent_posts>Recent posts</tabi:recent_posts>
        <tabi:last_updated_on>Updated on $DATE</tabi:last_updated_on>
        <tabi:default_theme></tabi:default_theme>
        <tabi:post_listing_date>date</tabi:post_listing_date>
        <tabi:current_section>Ragib&#x27;s Homepage</tabi:current_section>
    </tabi:metadata><link rel="extra-stylesheet" href="https://ragibhasin.github.io/skins/mint_peach.css?h=6d5f79736ddca2052992" /><title>Ragib's Homepage</title>
        <subtitle>Personal website of Muhammad Ragib Hasin</subtitle>
    <link href="https://ragibhasin.github.io/atom.xml" rel="self" type="application/atom+xml"/>
    <link href="https://ragibhasin.github.io" rel="alternate" type="text/html"/>
    <generator uri="https://www.getzola.org/">Zola</generator><updated>2026-04-14T00:00:00+00:00</updated><id>https://ragibhasin.github.io/atom.xml</id><entry xml:lang="en">
        <title>linebender&#x2F;xilem</title>
        <published>2026-04-14T00:00:00+00:00</published>
        <updated>2026-04-14T00:00:00+00:00</updated>
        <author>
            <name>Muhammad Ragib Hasin</name>
        </author>
        <link rel="alternate" href="https://ragibhasin.github.io/contributions/linebender-xilem/" type="text/html"/>
        <id>https://ragibhasin.github.io/contributions/linebender-xilem/</id>
        
            <content type="html">&lt;p&gt;Xilem is a high-level reactive framework inspired by React, SwiftUI and Elm. It lets users create a lightweight view tree, and changes the rendered app based on changes to the tree. It has a web backend and a Masonry backend.&lt;&#x2F;p&gt;
&lt;p&gt;Masonry is a foundational crate for building natively compiled GUIs in Rust. It provides a retained widget tree and runs event handling and update passes on it.&lt;&#x2F;p&gt;
&lt;p&gt;This is the project I’ve contributed most prolifically to, as I use this for all my GUI endeavors and find it joyful to work with the project and the community, both.&lt;&#x2F;p&gt;
</content>
        </entry><entry xml:lang="en">
        <title>endoli&#x2F;understory</title>
        <published>2026-03-28T00:00:00+00:00</published>
        <updated>2026-03-28T00:00:00+00:00</updated>
        <author>
            <name>Muhammad Ragib Hasin</name>
        </author>
        <link rel="alternate" href="https://ragibhasin.github.io/contributions/endoli-understory/" type="text/html"/>
        <id>https://ragibhasin.github.io/contributions/endoli-understory/</id>
        
            <content type="html">&lt;p&gt;Understory is a small family of crates designed to be combined in different stacks over time,
that provides foundational spatial and scene data structures for user interfaces, graphics editors, and CAD viewers.&lt;&#x2F;p&gt;
&lt;p&gt;My contribution was to the &lt;code&gt;understory_virtual_list&lt;&#x2F;code&gt; crate that provides abstractions for 1D virtualization primitives, in particular, adding support for sparse lazy loading of list items.&lt;&#x2F;p&gt;
</content>
        </entry><entry xml:lang="en">
        <title>Scrolled Quran</title>
        <published>2026-02-15T00:00:00+00:00</published>
        <updated>2026-02-15T00:00:00+00:00</updated>
        <author>
            <name>Muhammad Ragib Hasin</name>
        </author>
        <link rel="alternate" href="https://ragibhasin.github.io/projects/scrolled-quran/" type="text/html"/>
        <id>https://ragibhasin.github.io/projects/scrolled-quran/</id>
        
            <content type="html">&lt;div id=&quot;infobar&quot; class=&quot;centered-text&quot;&gt;
  
  &lt;a
    href=&quot;https:&#x2F;&#x2F;github.com&#x2F;RagibHasin&amp;#x2F;scrolled-quran&quot;
    target=&quot;_blank&quot;
    rel=&quot;noopener&quot;
  &gt;
    GitHub
  &lt;&#x2F;a&gt;
     ∙ Apache-2.0  
&lt;&#x2F;div&gt;
&lt;p&gt;It is a Quran reader app that automatically scrolls the text for hands-free, uninterrupted recitation.&lt;&#x2F;p&gt;
&lt;p&gt;I built it mainly for personal use in Ramadan of 1447 AH, and did two full recitation of the Holy Quran using this.&lt;&#x2F;p&gt;
&lt;p&gt;It uses resources from the &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;qul.tarteel.ai&quot;&gt;Quranic Universal Library (QUL)&lt;&#x2F;a&gt; by Tarteel.ai, in particular the &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;digitalkhatt.org&quot;&gt;DigitalKhatt&lt;&#x2F;a&gt; font by Dr. Amine Anan which is a digitized replica of the calligraphy by Master Calligrapher Uthman Taha in the 1441H mushaf from King Fahad Glorious Quran Printing Complex.&lt;&#x2F;p&gt;
&lt;p&gt;This project is written in Rust using &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;linebender&#x2F;xilem&quot;&gt;Xilem&lt;&#x2F;a&gt; GUI library from &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;linebender.org&#x2F;&quot;&gt;Linebender&lt;&#x2F;a&gt; and brought the opportunity for a few community contributions, involving the &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;endoli&#x2F;understory&quot;&gt;&lt;code&gt;understory&lt;&#x2F;code&gt;&lt;&#x2F;a&gt; crates.&lt;&#x2F;p&gt;
</content>
        <summary type="html">A horizontally scrolling Quran reader app</summary>
        </entry><entry xml:lang="en">
        <title>Ũõ (ঙ) Keyboard</title>
        <published>2026-01-02T00:00:00+00:00</published>
        <updated>2026-01-02T00:00:00+00:00</updated>
        <author>
            <name>Muhammad Ragib Hasin</name>
        </author>
        <link rel="alternate" href="https://ragibhasin.github.io/projects/uo-keyboard/" type="text/html"/>
        <id>https://ragibhasin.github.io/projects/uo-keyboard/</id>
        
            <content type="html">&lt;div id=&quot;infobar&quot; class=&quot;centered-text&quot;&gt;
  
  &lt;a
    href=&quot;https:&#x2F;&#x2F;github.com&#x2F;RagibHasin&amp;#x2F;uo-keyboard&quot;
    target=&quot;_blank&quot;
    rel=&quot;noopener&quot;
  &gt;
    GitHub
  &lt;&#x2F;a&gt;
     ∙ MPL-2.0  
&lt;&#x2F;div&gt;
&lt;p&gt;It is an input method editor (IME) for Windows that implements &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;omicronlab.com&#x2F;avro-keyboard.html&quot;&gt;Avro Phonetic&lt;&#x2F;a&gt; scheme using Windows Text Service Framework and Rust.&lt;&#x2F;p&gt;
&lt;p&gt;It is loosely based on the &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;microsoft&#x2F;Windows-classic-samples&#x2F;blob&#x2F;main&#x2F;Samples&#x2F;IME&#x2F;&quot;&gt;sample IME from Windows classic samples&lt;&#x2F;a&gt; and its partial &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;saschanaz&#x2F;ime-rs&quot;&gt;Rust port&lt;&#x2F;a&gt;. Phonetic conversion uses &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;OpenBangla&#x2F;rupantor-rs&quot;&gt;&lt;code&gt;rupantor&lt;&#x2F;code&gt;&lt;&#x2F;a&gt; by the OpenBangla project.&lt;&#x2F;p&gt;
</content>
        <summary type="html">A Windows TSF IME implementing Avro Phonetic scheme</summary>
        </entry><entry xml:lang="en">
        <title>DirectWrite Font Fallback Override</title>
        <published>2025-12-17T00:00:00+00:00</published>
        <updated>2025-12-17T00:00:00+00:00</updated>
        <author>
            <name>Muhammad Ragib Hasin</name>
        </author>
        <link rel="alternate" href="https://ragibhasin.github.io/projects/dwrite-font-fallback/" type="text/html"/>
        <id>https://ragibhasin.github.io/projects/dwrite-font-fallback/</id>
        
            <content type="html">&lt;div id=&quot;infobar&quot; class=&quot;centered-text&quot;&gt;
  
  &lt;a
    href=&quot;https:&#x2F;&#x2F;github.com&#x2F;RagibHasin&amp;#x2F;wh-dwrite-font-fallback-override&quot;
    target=&quot;_blank&quot;
    rel=&quot;noopener&quot;
  &gt;
    GitHub
  &lt;&#x2F;a&gt;
     ∙
  &lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;windhawk.net&amp;#x2F;mods&amp;#x2F;dwrite-font-fallback-override&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt; Windhawk Mods &lt;&#x2F;a&gt;
     ∙ MIT  
&lt;&#x2F;div&gt;
&lt;p&gt;It is a Windhawk mod that hooks into font fallback selection and text formatting routines of DirectWrite engine to change fallback font for any Unicode character the user chooses.&lt;&#x2F;p&gt;
&lt;p&gt;This is a result of being frustrated with default Bangla font (Nirmala UI) and wishing to learn more about COM archiecture.&lt;&#x2F;p&gt;
&lt;p&gt;Incidentally, it was my first (mostly) positive interaction with AI chatbots, as the first iteration of this mod has been created by Claude.&lt;&#x2F;p&gt;
</content>
        <summary type="html">A Windhawk mod to override font fallbacks of DirectWrite</summary>
        </entry><entry xml:lang="en">
        <title>tackler-ng&#x2F;tackler</title>
        <published>2025-01-10T00:00:00+00:00</published>
        <updated>2025-01-10T00:00:00+00:00</updated>
        <author>
            <name>Muhammad Ragib Hasin</name>
        </author>
        <link rel="alternate" href="https://ragibhasin.github.io/contributions/tackler-ng-tackler/" type="text/html"/>
        <id>https://ragibhasin.github.io/contributions/tackler-ng-tackler/</id>
        
            <content type="html">&lt;p&gt;Tackler is a plaintext accounting software (like &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;www.ledger-cli.org&#x2F;&quot;&gt;Ledger&lt;&#x2F;a&gt;) written in Rust that has built-in integrity check&lt;&#x2F;p&gt;
&lt;p&gt;I added the initial market price analysis (PriceDB) support to Tackler, which then have been further developed.&lt;&#x2F;p&gt;
</content>
        </entry><entry xml:lang="en">
        <title>itt-ustutt&#x2F;num-dual</title>
        <published>2024-11-14T00:00:00+00:00</published>
        <updated>2024-11-14T00:00:00+00:00</updated>
        <author>
            <name>Muhammad Ragib Hasin</name>
        </author>
        <link rel="alternate" href="https://ragibhasin.github.io/contributions/itt-ustutt-num-dual/" type="text/html"/>
        <id>https://ragibhasin.github.io/contributions/itt-ustutt-num-dual/</id>
        
            <content type="html">&lt;p&gt;&lt;code&gt;num-dual&lt;&#x2F;code&gt; is a Rust library that provides generalized, recursive, scalar and vector (hyper) dual numbers for the automatic and exact calculation of (partial) derivatives.&lt;&#x2F;p&gt;
&lt;p&gt;I have been looking into it for &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;RagibHasin&#x2F;try_hyperbez&quot;&gt;a curve research&lt;&#x2F;a&gt; and needed quadrant-preserving arctangent (&lt;code&gt;atan2&lt;&#x2F;code&gt;) calculation for second order dual numbers and just added that.&lt;&#x2F;p&gt;
</content>
        </entry><entry xml:lang="en">
        <title>AudioVis</title>
        <published>2023-07-24T00:00:00+00:00</published>
        <updated>2023-07-24T00:00:00+00:00</updated>
        <author>
            <name>Muhammad Ragib Hasin</name>
        </author>
        <link rel="alternate" href="https://ragibhasin.github.io/projects/audio-vis/" type="text/html"/>
        <id>https://ragibhasin.github.io/projects/audio-vis/</id>
        
            <content type="html">&lt;div id=&quot;infobar&quot; class=&quot;centered-text&quot;&gt;
  
  &lt;a
    href=&quot;https:&#x2F;&#x2F;github.com&#x2F;RagibHasin&amp;#x2F;AudioVis&quot;
    target=&quot;_blank&quot;
    rel=&quot;noopener&quot;
  &gt;
    GitHub
  &lt;&#x2F;a&gt;
     ∙ Artistic License 2.0  
&lt;&#x2F;div&gt;
&lt;p&gt;It is an app for visualizing audio files in a manner like colorful raindrops in a pool of black water.&lt;&#x2F;p&gt;
&lt;div class=&quot;full-width&quot;&gt;
    &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;ragibhasin.github.io&amp;#x2F;projects&amp;#x2F;audio-vis&amp;#x2F;screenshot.png?h=78e12dfb649dedbc36db&quot; alt=&quot;A screenshot of a visualization&quot; width=&quot;5120&quot; height=&quot;2880&quot; loading=&quot;lazy&quot;&#x2F;&gt;
&lt;&#x2F;div&gt;
&lt;p&gt;Motivation to work on this struck me as I was thinking of learning GPU programming concepts, an here it is!&lt;&#x2F;p&gt;
</content>
        <summary type="html">A tiny audio visualizer</summary>
        </entry><entry xml:lang="en">
        <title>dfrg&#x2F;swash</title>
        <published>2023-05-01T00:00:00+00:00</published>
        <updated>2023-05-01T00:00:00+00:00</updated>
        <author>
            <name>Muhammad Ragib Hasin</name>
        </author>
        <link rel="alternate" href="https://ragibhasin.github.io/contributions/dfrg-swash/" type="text/html"/>
        <id>https://ragibhasin.github.io/contributions/dfrg-swash/</id>
        
            <content type="html">&lt;p&gt;Swash is a pure Rust, cross-platform crate that provides font introspection, complex text shaping and glyph rendering.&lt;&#x2F;p&gt;
&lt;p&gt;I fixed a (trivial) issue with unaligned pointer read (rightfully) causing panic.&lt;&#x2F;p&gt;
</content>
        </entry><entry xml:lang="en">
        <title>lapce&#x2F;floem</title>
        <published>2023-05-01T00:00:00+00:00</published>
        <updated>2023-05-01T00:00:00+00:00</updated>
        <author>
            <name>Muhammad Ragib Hasin</name>
        </author>
        <link rel="alternate" href="https://ragibhasin.github.io/contributions/lapce-floem/" type="text/html"/>
        <id>https://ragibhasin.github.io/contributions/lapce-floem/</id>
        
            <content type="html">&lt;p&gt;Floem is a native cross-platform Rust UI library with fine-grained reactivity inspired by &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;leptos.dev&#x2F;&quot;&gt;Leptos&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
&lt;p&gt;It is the UI library that powers the &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;lap.dev&#x2F;lapce&#x2F;&quot;&gt;Lapce&lt;&#x2F;a&gt; code editor.&lt;&#x2F;p&gt;
&lt;p&gt;I fixed non-standard text input behavior on Windows when using non-standard input method editors (IME) that hooks keyboard events directly, like &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;omicronlab.com&#x2F;avro-keyboard.html&quot;&gt;Avro Keyboard&lt;&#x2F;a&gt; which I used heavily at that time.&lt;&#x2F;p&gt;
&lt;p&gt;However, I’ve switched to my &lt;a href=&quot;https:&#x2F;&#x2F;ragibhasin.github.io&#x2F;projects&#x2F;uo-keyboard&#x2F;&quot;&gt;homegrown replacement&lt;&#x2F;a&gt; of it that uses proper IME framework.&lt;&#x2F;p&gt;
</content>
        </entry><entry xml:lang="en">
        <title>ModiaSim&#x2F;Modia.jl</title>
        <published>2023-03-28T00:00:00+00:00</published>
        <updated>2023-03-28T00:00:00+00:00</updated>
        <author>
            <name>Muhammad Ragib Hasin</name>
        </author>
        <link rel="alternate" href="https://ragibhasin.github.io/contributions/modiasim-modia-jl/" type="text/html"/>
        <id>https://ragibhasin.github.io/contributions/modiasim-modia-jl/</id>
        
            <content type="html">&lt;p&gt;Modia.jl is a Julia package to model and simulate physical systems (electrical, mechanical, thermo-dynamical, etc.) described by differential and algebraic equations.&lt;&#x2F;p&gt;
&lt;p&gt;I discovered this package while exploring open-source physical modeling and simulation software and fixed a (trivial) issue with enabling log skipping some calculations.&lt;&#x2F;p&gt;
</content>
        </entry><entry xml:lang="en">
        <title>fschutt&#x2F;printpdf</title>
        <published>2023-03-09T00:00:00+00:00</published>
        <updated>2023-03-09T00:00:00+00:00</updated>
        <author>
            <name>Muhammad Ragib Hasin</name>
        </author>
        <link rel="alternate" href="https://ragibhasin.github.io/contributions/fschutt-printpdf/" type="text/html"/>
        <id>https://ragibhasin.github.io/contributions/fschutt-printpdf/</id>
        
            <content type="html">&lt;p&gt;&lt;code&gt;printpdf&lt;&#x2F;code&gt; is a Rust library for creating, reading, writing and rendering PDF documents.&lt;&#x2F;p&gt;
&lt;p&gt;I has been intending to use this library to render some PDF documents, but found some issues with how it rendered complex-script texts.&lt;&#x2F;p&gt;
&lt;p&gt;I brought this codebase up to Rust 2018 edition in anticipation of improving the text rendering issue, but found out about &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;typst.app&quot;&gt;Typst&lt;&#x2F;a&gt; at the same time.&lt;&#x2F;p&gt;
&lt;p&gt;Thus that sadly remains my only contribution to this codebase.&lt;&#x2F;p&gt;
</content>
        </entry><entry xml:lang="en">
        <title>lunacookies&#x2F;sema</title>
        <published>2022-03-10T00:00:00+00:00</published>
        <updated>2022-03-10T00:00:00+00:00</updated>
        <author>
            <name>Muhammad Ragib Hasin</name>
        </author>
        <link rel="alternate" href="https://ragibhasin.github.io/contributions/lunacookies-sema/" type="text/html"/>
        <id>https://ragibhasin.github.io/contributions/lunacookies-sema/</id>
        
            <content type="html">&lt;p&gt;sema is a family of VSCode themes that emphasizes using color budget on semantically significant tokens.&lt;&#x2F;p&gt;
&lt;p&gt;Its ‘chroma’ variant has been my editor theme since 2021.&lt;&#x2F;p&gt;
&lt;p&gt;I fixed colors of inline hints when that feature stabilized on VSCode.&lt;&#x2F;p&gt;
</content>
        </entry><entry xml:lang="en">
        <title>AdhaanGUI</title>
        <published>2021-10-18T00:00:00+00:00</published>
        <updated>2021-10-18T00:00:00+00:00</updated>
        <author>
            <name>Muhammad Ragib Hasin</name>
        </author>
        <link rel="alternate" href="https://ragibhasin.github.io/projects/adhaan-gui/" type="text/html"/>
        <id>https://ragibhasin.github.io/projects/adhaan-gui/</id>
        
            <content type="html">&lt;p&gt;&lt;img src=&quot;https:&#x2F;&#x2F;ragibhasin.github.io&#x2F;projects&#x2F;adhaan-gui&#x2F;icon.png&quot; alt=&quot;AdhaanGUI icon&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
&lt;div id=&quot;infobar&quot; class=&quot;centered-text&quot;&gt;
  
  &lt;a
    href=&quot;https:&#x2F;&#x2F;github.com&#x2F;RagibHasin&amp;#x2F;AdhaanGUI&quot;
    target=&quot;_blank&quot;
    rel=&quot;noopener&quot;
  &gt;
    GitHub
  &lt;&#x2F;a&gt;
     ∙ AGPL-3.0  
&lt;&#x2F;div&gt;
&lt;p&gt;It is small Windows app that lives as a notification area icon and shows prayer times using &lt;a href=&quot;..&#x2F;adhaan&quot;&gt;&lt;code&gt;adhaan&lt;&#x2F;code&gt;&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;img src=&quot;https:&#x2F;&#x2F;ragibhasin.github.io&#x2F;projects&#x2F;adhaan-gui&#x2F;screenshot.png&quot; alt=&quot;A screenshot&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
&lt;p&gt;It is written in Rust using the &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;docs.rs&#x2F;druid&quot;&gt;Druid&lt;&#x2F;a&gt; GUI library. Working on this lead to my first serious foray into community contribution in the &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;linebender.org&#x2F;&quot;&gt;Linebender&lt;&#x2F;a&gt; community.&lt;&#x2F;p&gt;
&lt;p&gt;This project is currently on hiatus. I’m in the process of porting it to &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;linebender&#x2F;xilem&quot;&gt;Xilem&lt;&#x2F;a&gt;, which is the successor of Druid.&lt;&#x2F;p&gt;
</content>
        <summary type="html">A small taskbar app for showing prayer times</summary>
        </entry><entry xml:lang="en">
        <title>Adhaan</title>
        <published>2021-05-24T00:00:00+00:00</published>
        <updated>2021-05-24T00:00:00+00:00</updated>
        <author>
            <name>Muhammad Ragib Hasin</name>
        </author>
        <link rel="alternate" href="https://ragibhasin.github.io/projects/adhaan/" type="text/html"/>
        <id>https://ragibhasin.github.io/projects/adhaan/</id>
        
            <content type="html">&lt;div id=&quot;infobar&quot; class=&quot;centered-text&quot;&gt;
  
  &lt;a
    href=&quot;https:&#x2F;&#x2F;github.com&#x2F;RagibHasin&amp;#x2F;adhaan&quot;
    target=&quot;_blank&quot;
    rel=&quot;noopener&quot;
  &gt;
    GitHub
  &lt;&#x2F;a&gt;
     ∙
  &lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;crates.io&amp;#x2F;crates&amp;#x2F;adhaan&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt; Crates.io &lt;&#x2F;a&gt;
     ∙ MIT  
&lt;&#x2F;div&gt;
&lt;p&gt;It is a Rust library for calculating prayer times. It originally started as a fork of &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;insha&#x2F;salah&quot;&gt;&lt;code&gt;salah&lt;&#x2F;code&gt;&lt;&#x2F;a&gt;, which I and have been using for making a GUI and [Azzam S.A.] was using to make a TUI, but has been causing us lots of pain.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;code&gt;salah&lt;&#x2F;code&gt; was ported to Rust by Farhan Ahmed from &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;batoulapps&#x2F;Adhan&quot;&gt;Adhan&lt;&#x2F;a&gt; by BatoulApps. May Allah grant him bountiful rewards.&lt;&#x2F;p&gt;
&lt;p&gt;Key differences between &lt;code&gt;salah&lt;&#x2F;code&gt; and &lt;code&gt;adhaan&lt;&#x2F;code&gt; are:&lt;&#x2F;p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;adhaan&lt;&#x2F;code&gt; extensible in regard of calculation method.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;code&gt;adhaan&lt;&#x2F;code&gt; uses &lt;code&gt;jiff&lt;&#x2F;code&gt; for its date-time vocabulary, in stead of &lt;code&gt;chrono&lt;&#x2F;code&gt;.&lt;&#x2F;li&gt;
&lt;&#x2F;ol&gt;
&lt;p&gt;Motivation for this arose when I started to work on [AdhaanGUI] and although whereas AdhaanGUI itself is on hiatus, I use both &lt;code&gt;adhaan&lt;&#x2F;code&gt; and AdhaanGUI frequently.&lt;&#x2F;p&gt;
</content>
        <summary type="html">A library for calculating prayer times in Rust</summary>
        </entry><entry xml:lang="en">
        <title>Data Importer TUI</title>
        <published>2017-10-03T00:00:00+00:00</published>
        <updated>2017-10-03T00:00:00+00:00</updated>
        <author>
            <name>Muhammad Ragib Hasin</name>
        </author>
        <link rel="alternate" href="https://ragibhasin.github.io/projects/dwa-data-importer/" type="text/html"/>
        <id>https://ragibhasin.github.io/projects/dwa-data-importer/</id>
        
            <content type="html">&lt;p&gt;It was a data entry and import solution to a government data management system, that has been designed and used internally.&lt;&#x2F;p&gt;
&lt;p&gt;Web UI of the target system was very cumbersome and slow, 3-5x slower than one-by-one entry with the TUI, up to 10x slower when doing bulk upload. This lead to me designing and optimizing it for easier data entry first in JavaScript using NodeJS and later using Rust.&lt;&#x2F;p&gt;
&lt;p&gt;Its working procedure involved:&lt;&#x2F;p&gt;
&lt;ol&gt;
&lt;li&gt;Logging into the service&lt;&#x2F;li&gt;
&lt;li&gt;Composing a HTTP POST request for a new data&lt;&#x2F;li&gt;
&lt;li&gt;Appropriately fetching and displaying the captcha in command line&lt;&#x2F;li&gt;
&lt;li&gt;Submitting the captcha&lt;&#x2F;li&gt;
&lt;&#x2F;ol&gt;
&lt;p&gt;This data importer took approximately 25 person-hours of development and maintenance time and saved about 65 hours in usage, netting on 40 hours saved in total.&lt;&#x2F;p&gt;
&lt;p&gt;This project was a proprietary one and is no longer maintained.&lt;&#x2F;p&gt;
</content>
        <summary type="html">A TUI for importing large data into a web system</summary>
        </entry><entry xml:lang="en">
        <title>Mudawanah</title>
        <published>2017-07-03T00:00:00+00:00</published>
        <updated>2017-07-03T00:00:00+00:00</updated>
        <author>
            <name>Muhammad Ragib Hasin</name>
        </author>
        <link rel="alternate" href="https://ragibhasin.github.io/projects/mudawanah/" type="text/html"/>
        <id>https://ragibhasin.github.io/projects/mudawanah/</id>
        
            <content type="html">&lt;p&gt;It was a static blogsite generator that I created because I had recently received a free domain from participating in a programming competition and I was unwilling to run Ruby on my machine.&lt;&#x2F;p&gt;
&lt;p&gt;It soon ballooned up to consume most of my month-and-half-long Ramadan-Summer break from college, involving adding a home-grown visitor analytics system.&lt;&#x2F;p&gt;
&lt;p&gt;After the fact I very much learned to hate JavaScript ecosystem (Gulp-vs-Grunt, paralysis over HTTP server options) of that time and decided to move on from JavaScript ecosystem.&lt;&#x2F;p&gt;
&lt;p&gt;Fortunately, I can say I’ve recovered from that aversion and enjoy coding in TypeScript a lot nowadays.&lt;&#x2F;p&gt;
&lt;p&gt;Sadly, Its code is lost to time! 😢&lt;&#x2F;p&gt;
</content>
        <summary type="html">A static(-ish) blog framework from ground up</summary>
        </entry><entry xml:lang="en">
        <title>SierraSoftworks&#x2F;Iridium</title>
        <published>2017-05-30T00:00:00+00:00</published>
        <updated>2017-05-30T00:00:00+00:00</updated>
        <author>
            <name>Muhammad Ragib Hasin</name>
        </author>
        <link rel="alternate" href="https://ragibhasin.github.io/contributions/sierrasoftworks-iridium/" type="text/html"/>
        <id>https://ragibhasin.github.io/contributions/sierrasoftworks-iridium/</id>
        
            <content type="html">&lt;p&gt;This was my first contribution to open-source ecosystem.&lt;&#x2F;p&gt;
&lt;p&gt;I was using this library in my &lt;a href=&quot;https:&#x2F;&#x2F;ragibhasin.github.io&#x2F;projects&#x2F;mudawanah&#x2F;&quot;&gt;Mudawanah&lt;&#x2F;a&gt; project and as the natural cause progresses, needed a feature that was unavailable.&lt;&#x2F;p&gt;
&lt;p&gt;Thus I created and pushed through &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;SierraSoftworks&#x2F;Iridium&#x2F;pulls?q=sort%3Aupdated-desc+is%3Apr+is%3Amerged+author%3ARagibHasin&quot;&gt;two PRs&lt;&#x2F;a&gt;, that enabled &lt;code&gt;mapReduce&lt;&#x2F;code&gt; method in ODM models.&lt;&#x2F;p&gt;
&lt;p&gt;I learned MongoDB queries in the process of contributing to this project.&lt;&#x2F;p&gt;
</content>
        </entry><entry xml:lang="en">
        <title>FontVis</title>
        <published>2016-02-24T00:00:00+00:00</published>
        <updated>2016-02-24T00:00:00+00:00</updated>
        <author>
            <name>Muhammad Ragib Hasin</name>
        </author>
        <link rel="alternate" href="https://ragibhasin.github.io/projects/fontvis/" type="text/html"/>
        <id>https://ragibhasin.github.io/projects/fontvis/</id>
        
            <content type="html">&lt;div id=&quot;infobar&quot; class=&quot;centered-text&quot;&gt;
  
  &lt;a
    href=&quot;https:&#x2F;&#x2F;github.com&#x2F;RagibHasin&amp;#x2F;FontVis&quot;
    target=&quot;_blank&quot;
    rel=&quot;noopener&quot;
  &gt;
    GitHub
  &lt;&#x2F;a&gt;
     ∙ MIT   ∙ Archived 
&lt;&#x2F;div&gt;
&lt;p&gt;It is a tool to visualize and try fonts without installing, written in .NET Framework.&lt;&#x2F;p&gt;
&lt;p&gt;I made this back in 2016, because I was unaware of any such utility and liked learning C#&#x2F;.NET technologies.&lt;&#x2F;p&gt;
&lt;p&gt;Most of my C# knowledge are from that time as I do not use C# much anymore.&lt;&#x2F;p&gt;
</content>
        <summary type="html">A tool to visualize and try fonts without installing</summary>
        </entry>
</feed>
