<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>A. Ghafoor Sayyed on Ghafoor's Personal Blog</title><link>https://ghafoorsblog.com/authors/a.g.sayyed/</link><description>Recent content in A. Ghafoor Sayyed on Ghafoor's Personal Blog</description><generator>Hugo</generator><language>en</language><managingEditor>hello@ghafoorsblog.com (AG Sayyed)</managingEditor><webMaster>hello@ghafoorsblog.com (AG Sayyed)</webMaster><copyright>Copyright © 2024-2026 AG Sayyed. All Rights Reserved.</copyright><atom:link href="https://ghafoorsblog.com/authors/a.g.sayyed/index.xml" rel="self" type="application/rss+xml"/><item><title>Affiliate Disclosure</title><link>https://ghafoorsblog.com/about/affiliate-disclosure/</link><pubDate>Sun, 17 May 2026 00:00:00 +0000</pubDate><author>hello@ghafoorsblog.com (AG Sayyed)</author><guid>https://ghafoorsblog.com/about/affiliate-disclosure/</guid><description>&lt;h2 id="affiliate-disclosure"&gt;Affiliate Disclosure&lt;/h2&gt;
&lt;p&gt;This page contains affiliate disclosure information for &lt;strong&gt;Ghafoor&amp;rsquo;s Blog&lt;/strong&gt; (the &amp;ldquo;Site&amp;rdquo;), located at &lt;a
 href="https://ghafoorsblog.com"
 
 target="_blank" rel="noopener noreferrer"&gt;https://ghafoorsblog.com&lt;/a&gt;. This page was last updated &lt;strong&gt;18 May 2026&lt;/strong&gt;.&lt;/p&gt;
&lt;h3 id="what-are-affiliate-links"&gt;What Are Affiliate Links&lt;/h3&gt;
&lt;p&gt;Some of the links on this Site are &amp;ldquo;affiliate links.&amp;rdquo; If you click on an affiliate link and make a purchase or sign up for a service, we may receive a small commission &lt;strong&gt;at no extra cost to you&lt;/strong&gt;. These commissions help cover the costs of running this site — hosting, domain, tools, and content creation.&lt;/p&gt;</description></item><item><title>How to use prompts with OpenManus</title><link>https://ghafoorsblog.com/posts/ai/openmanus/usage/</link><pubDate>Thu, 15 May 2025 15:00:53 +0000</pubDate><author>hello@ghafoorsblog.com (AG Sayyed)</author><guid>https://ghafoorsblog.com/posts/ai/openmanus/usage/</guid><description>&lt;h2 id="openmanus-usage-guide"&gt;OpenManus Usage Guide&lt;/h2&gt;
&lt;p&gt;This guide assumes you&amp;rsquo;ve already installed OpenManus — if not, start with the &lt;a
 href="https://ghafoorsblog.com/posts/ai/openmanus/intro/"
 
 &gt;OpenManus installation walkthrough&lt;/a&gt;. To run it against a local model instead of OpenRouter, you&amp;rsquo;ll also need &lt;a
 href="https://ghafoorsblog.com/posts/ai/install-ollama/"
 
 &gt;Ollama installed and serving&lt;/a&gt;, and a quick read of the &lt;a
 href="https://ghafoorsblog.com/posts/ai/hyper-parameters/"
 
 &gt;hyperparameter reference&lt;/a&gt; will help you pick sensible &lt;code&gt;max_tokens&lt;/code&gt; and &lt;code&gt;temperature&lt;/code&gt; values for the config below.&lt;/p&gt;
&lt;h2 id="setup"&gt;Setup&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Clone (already done)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;cd&lt;/span&gt; ~/Documents/projects/uv/OpenManus
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;3&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;4&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Run from OpenManus directory (recommended)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;5&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;cd&lt;/span&gt; ~/Documents/projects/uv/OpenManus &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; uv run main.py --prompt &lt;span class="s2"&gt;&amp;#34;your task here&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="running-from-anywhere"&gt;Running from Anywhere&lt;/h2&gt;
&lt;h3 id="option-1-full-path-easiest"&gt;Option 1: Full path (easiest)&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;cd&lt;/span&gt; ~/Documents/projects/uv/OpenManus &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; uv run main.py --prompt &lt;span class="s2"&gt;&amp;#34;your task here&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="option-2-from-this-folder-hbstack-blog"&gt;Option 2: From this folder (HBstack blog)&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;uv run ~/Documents/projects/uv/OpenManus/main.py --prompt &lt;span class="s2"&gt;&amp;#34;your task here&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="option-3-interactive-mode"&gt;Option 3: Interactive mode&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;cd&lt;/span&gt; ~/Documents/projects/uv/OpenManus &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; uv run main.py
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Then type your prompt when asked&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="option-4-planning-flow-for-complex-multi-step-tasks"&gt;Option 4: Planning flow (for complex multi-step tasks)&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;cd&lt;/span&gt; ~/Documents/projects/uv/OpenManus &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; uv run run_flow.py
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;hr&gt;
&lt;h2 id="current-config"&gt;Current Config&lt;/h2&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Setting&lt;/th&gt;
 &lt;th&gt;Value&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Provider&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;OpenRouter&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Model&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;anthropic/claude-haiku-4.5&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Input cost&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;$1.00 per million tokens&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Output cost&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;$5.00 per million tokens&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Max steps&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;20 (per session)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;hr&gt;
&lt;h2 id="writing-good-prompts"&gt;Writing Good Prompts&lt;/h2&gt;
&lt;h3 id="-do-be-specific-with-a-deliverable"&gt;✅ DO: Be specific with a deliverable&lt;/h3&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Good Prompt&lt;/th&gt;
 &lt;th&gt;Why&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;Analyze my Hugo site at /home/ag-sayyed/Documents/projects/hbstack/ghafoors-blog and give a summary of the theme, config, and content structure&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Clear goal + output format&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;Find all broken internal links in my Hugo site at /path/to/site&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Specific task, measurable result&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;Add a new &amp;quot;contact&amp;quot; page with a form to my Hugo site at /path/to/site&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Concrete deliverable&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;Update the homepage hero section to say &amp;quot;Welcome to my blog&amp;quot; in /path/to/site&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Small, focused change&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;List all custom shortcodes in /path/to/site and explain what each does&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Specific scope&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;Suggest 3 performance improvements for my Hugo site based on /path/to/site/config.toml&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Analytical, bounded task&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="-avoid-vague-prompts-with-no-deliverable"&gt;❌ AVOID: Vague prompts with no deliverable&lt;/h3&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Bad Prompt&lt;/th&gt;
 &lt;th&gt;Problem&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;Explore my Hugo site&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;No goal — wanders aimlessly, wastes tokens&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;Look at my site&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Same — no clear end condition&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;Check my config&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Too vague, doesn&amp;rsquo;t know what to check for&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;Help me with my site&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Way too broad&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="-tips-to-save-money"&gt;💡 Tips to Save Money&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Be specific about which files&lt;/strong&gt; — instead of &amp;ldquo;analyze my site&amp;rdquo;, say &amp;ldquo;check config.toml and the homepage content&amp;rdquo;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Set a clear output&lt;/strong&gt; — &amp;ldquo;give me a bullet list&amp;rdquo;, &amp;ldquo;write the changes to file X&amp;rdquo;, &amp;ldquo;summarize in 3 sentences&amp;rdquo;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;One task at a time&lt;/strong&gt; — each prompt is a fresh session, so break big jobs into focused steps&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Use full paths&lt;/strong&gt; — always include the absolute path to your project so OpenManus finds it regardless of where you run from&lt;/li&gt;
&lt;/ol&gt;
&lt;hr&gt;
&lt;h2 id="cost-reference-haiku-45"&gt;Cost Reference (Haiku 4.5)&lt;/h2&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Activity&lt;/th&gt;
 &lt;th&gt;Approx Cost&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;Listing a directory + reading 2 files&lt;/td&gt;
 &lt;td&gt;~$0.02&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Reading a whole Hugo config + summary&lt;/td&gt;
 &lt;td&gt;~$0.05&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Creating a new page with content&lt;/td&gt;
 &lt;td&gt;~$0.10&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Full site analysis (10+ files)&lt;/td&gt;
 &lt;td&gt;~$0.30&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Complex multi-step task (20 steps)&lt;/td&gt;
 &lt;td&gt;~$1.00–2.00&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;hr&gt;
&lt;h2 id="quick-alias-optional"&gt;Quick Alias (Optional)&lt;/h2&gt;
&lt;p&gt;Add to &lt;code&gt;~/.bashrc&lt;/code&gt;:&lt;/p&gt;</description></item><item><title>OpenManus for Local LLMs</title><link>https://ghafoorsblog.com/posts/ai/openmanus/intro/</link><pubDate>Sun, 11 May 2025 15:00:53 +0000</pubDate><author>hello@ghafoorsblog.com (AG Sayyed)</author><guid>https://ghafoorsblog.com/posts/ai/openmanus/intro/</guid><description>&lt;h2 id="openmanus-installation-and-usage-guide"&gt;OpenManus Installation and Usage Guide&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a
 href="https://github.com/FoundationAgents/OpenManus"
 
 target="_blank" rel="noopener noreferrer"&gt;OpenManus&lt;/a&gt; repository on GitHub.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This post covers installation only. Once you have it running, see the companion guide on &lt;a
 href="https://ghafoorsblog.com/posts/ai/openmanus/usage/"
 
 &gt;writing prompts for OpenManus&lt;/a&gt; for cost-effective usage patterns. OpenManus needs a local LLM endpoint — if you don&amp;rsquo;t yet have one, follow the &lt;a
 href="https://ghafoorsblog.com/posts/ai/install-ollama/"
 
 &gt;Ollama install guide&lt;/a&gt; first.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Install &lt;a
 href="https://www.uvicorn.org/"
 
 target="_blank" rel="noopener noreferrer"&gt;uvicorn&lt;/a&gt; for running the FastAPI server.&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;$ curl -LsSf https://astral.sh/uv/install.sh &lt;span class="p"&gt;|&lt;/span&gt; sh
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;uv -h
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;3&lt;/span&gt;&lt;span class="cl"&gt;uv -V
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="essential-uv-commands"&gt;Essential uv Commands&lt;/h2&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Category&lt;/th&gt;
 &lt;th&gt;Command&lt;/th&gt;
 &lt;th&gt;Description&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;Environments&lt;/td&gt;
 &lt;td&gt;uv venv&lt;/td&gt;
 &lt;td&gt;Creates a new virtual environment in the .venv folder.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;td&gt;source .venv/bin/activate&lt;/td&gt;
 &lt;td&gt;Activates the environment (macOS/Linux).&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;td&gt;.venv\Scripts\activate&lt;/td&gt;
 &lt;td&gt;Activates the environment (Windows).&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;td&gt;deactivate&lt;/td&gt;
 &lt;td&gt;Exits the currently active environment.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Project Management&lt;/td&gt;
 &lt;td&gt;uv init&lt;/td&gt;
 &lt;td&gt;Sets up a new project with a pyproject.toml file.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;td&gt;uv add &lt;code&gt;&amp;lt;package&amp;gt;&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Adds a dependency and automatically updates the environment.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;td&gt;uv sync&lt;/td&gt;
 &lt;td&gt;Synchronises the environment with the lockfile (installs/removes).&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;td&gt;uv run &lt;code&gt;&amp;lt;script&amp;gt;&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Runs a script without needing to manually activate the env.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Pip Interface&lt;/td&gt;
 &lt;td&gt;uv pip install -r reqs.txt&lt;/td&gt;
 &lt;td&gt;Fast alternative to pip install for existing requirement files.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;td&gt;uv pip tree&lt;/td&gt;
 &lt;td&gt;Displays a visual tree of all installed dependencies.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Python Versions&lt;/td&gt;
 &lt;td&gt;uv python list&lt;/td&gt;
 &lt;td&gt;Shows available Python versions you can install.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;td&gt;uv python install 3.12&lt;/td&gt;
 &lt;td&gt;Downloads and installs a specific Python version automatically.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;ol start="2"&gt;
&lt;li&gt;Clone the OpenManus repository and navigate to the project directory.&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;git clone https://github.com/FoundationAgents/OpenManus.git
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;cd&lt;/span&gt; OpenManus
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ol start="3"&gt;
&lt;li&gt;Install the required dependencies using pip.&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;uv pip install -r requirements.txt
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="configure-toml-file"&gt;Configure toml file&lt;/h2&gt;
&lt;p&gt;OpenManus uses a &lt;code&gt;config.toml&lt;/code&gt; file to specify the LLMs and their configurations. You can create this file in the root directory of the project.&lt;/p&gt;</description></item><item><title>OpenWebUI</title><link>https://ghafoorsblog.com/posts/ai/open-web-ui/</link><pubDate>Sun, 11 May 2025 15:00:53 +0000</pubDate><author>hello@ghafoorsblog.com (AG Sayyed)</author><guid>https://ghafoorsblog.com/posts/ai/open-web-ui/</guid><description>&lt;p class="lead text-primary"&gt; OpenWebUI transforms how you interact with your local language models, providing a sleek, feature-rich interface that makes working with models like Llama, Mistral, and others both powerful and intuitive. &lt;/p&gt;
&lt;h2 id="what-is-openwebui"&gt;What is OpenWebUI&lt;/h2&gt;
&lt;p&gt;OpenWebUI is an open-source, browser-based graphical user interface designed specifically for interacting with local large language models (LLMs), particularly those running through Ollama. It provides a ChatGPT-like experience for your self-hosted AI models, combining the privacy benefits of running local models with the usability of commercial AI platforms.&lt;/p&gt;</description></item><item><title>How to Run Private LLMs on Your Own Hardware</title><link>https://ghafoorsblog.com/posts/ai/install-ollama/</link><pubDate>Sat, 10 May 2025 23:19:42 +0000</pubDate><author>hello@ghafoorsblog.com (AG Sayyed)</author><guid>https://ghafoorsblog.com/posts/ai/install-ollama/</guid><description>&lt;p class="lead text-primary"&gt; Learn how to run powerful uncensored language models completely offline on affordable hardware for enhanced privacy and unrestricted access to information. &lt;/p&gt;
&lt;h2 id="introduction"&gt;Introduction&lt;/h2&gt;
&lt;p&gt;Welcome to the Global Science Network! I&amp;rsquo;m going to show you how to download and run a large language model that was trained on what would be equivalent to:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Reading 127 million novels&lt;/li&gt;
&lt;li&gt;Reading through all of Wikipedia 2,500 times&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The best part? This model can be downloaded and run on an external flash drive that costs around $12. The model only requires about 10GB of storage space.&lt;/p&gt;</description></item><item><title>Hyper Parameters</title><link>https://ghafoorsblog.com/posts/ai/hyper-parameters/</link><pubDate>Tue, 11 Feb 2025 18:55:28 +0000</pubDate><author>hello@ghafoorsblog.com (AG Sayyed)</author><guid>https://ghafoorsblog.com/posts/ai/hyper-parameters/</guid><description>&lt;p class="lead text-primary"&gt;
This guide covers the key hyperparameters that influence the performance of AI models, including context window size and embedding size.
&lt;/p&gt;
&lt;p&gt;If you haven&amp;rsquo;t set up a local model yet, start with the &lt;a
 href="https://ghafoorsblog.com/posts/ai/install-ollama/"
 
 &gt;Ollama install guide&lt;/a&gt; or the broader &lt;a
 href="https://ghafoorsblog.com/posts/ai/ollama-echo-system/"
 
 &gt;local LLM ecosystem comparison&lt;/a&gt;. The settings below are exposed by most front-ends, including &lt;a
 href="https://ghafoorsblog.com/posts/ai/open-web-ui/"
 
 &gt;OpenWebUI&lt;/a&gt;.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="context-windows-size"&gt;Context Windows Size&lt;/h2&gt;
&lt;p&gt;Context window size is the maximum number of tokens the model can process in a single input. It determines the model&amp;rsquo;s ability to understand and generate text based on the context provided. If you increase the context window size, the model can consider more information when generating responses, but it may require more memory and processing power. It happens when it has to remember what was asked earlier. In other words, it&amp;rsquo;s how much of the conversation or input history the model considers when making its predictions. For example, if you&amp;rsquo;re having a conversation with the AI, the context window determines how many of the previous messages the model can &amp;ldquo;remember&amp;rdquo; and use to generate a coherent response. A larger context window means the model can take into account more of the previous conversation, leading to more contextually aware responses, but it can also require more computational resources, which can slow down performance. The context window size keep increasing as the conversation goes on.&lt;/p&gt;</description></item><item><title>AVX Technology Explained</title><link>https://ghafoorsblog.com/posts/ai/avx/</link><pubDate>Fri, 31 Jan 2025 21:12:40 +0000</pubDate><author>hello@ghafoorsblog.com (AG Sayyed)</author><guid>https://ghafoorsblog.com/posts/ai/avx/</guid><description>&lt;h2 id="avx-technology-explained"&gt;AVX Technology Explained&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;AVX (Advanced Vector Extensions)&lt;/strong&gt; is a CPU instruction set extension designed for high-performance computing. It was first introduced by Intel in 2011 with the Sandy Bridge processor architecture.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="how-avx-works"&gt;How AVX Works&lt;/h2&gt;
&lt;p&gt;At its core, AVX allows a single instruction to operate on multiple data points simultaneously, following the SIMD (Single Instruction, Multiple Data) computing paradigm:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Without AVX&lt;/strong&gt;: Process data one piece at a time&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;With AVX&lt;/strong&gt;: Process multiple pieces of data in parallel with a single instruction&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="avx-versions"&gt;AVX Versions&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;AVX (2011)&lt;/strong&gt;: Original version with 256-bit wide vector operations&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;AVX2 (2013)&lt;/strong&gt;: Added more instructions and expanded integer operations&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;AVX-512 (2016+)&lt;/strong&gt;: Further expanded to 512-bit operations&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="why-avx2-matters-for-ai-and-machine-learning"&gt;Why AVX2 Matters for AI and Machine Learning&lt;/h2&gt;
&lt;p&gt;Modern AI frameworks and LLM runtimes require AVX2 because:&lt;/p&gt;</description></item><item><title>Installing Ollama</title><link>https://ghafoorsblog.com/posts/ai/ollama-echo-system/</link><pubDate>Fri, 31 Jan 2025 21:12:40 +0000</pubDate><author>hello@ghafoorsblog.com (AG Sayyed)</author><guid>https://ghafoorsblog.com/posts/ai/ollama-echo-system/</guid><description>&lt;p class="lead text-primary"&gt;
This guide explores the local LLM ecosystem and Ollama's place within it. The AI landscape includes cloud-based services like ChatGPT and local solutions that offer privacy, cost savings, and control. Local LLM tools function through inference engines (Ollama, LM Studio), various model formats (GGUF, GGML), and different user interfaces. Ollama stands out as an open-source tool that simplifies running large language models locally on personal computers. It provides a user-friendly interface for model management, enabling tasks like text generation, summarization, and code completion without cloud dependencies. While LM Studio offers a full GUI experience and LocalAI focuses on API compatibility, Ollama balances simplicity with power through efficient CLI and basic web interfaces..
&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="ai-ecosystems-and-local-llm-tools"&gt;AI Ecosystems and Local LLM Tools&lt;/h2&gt;
&lt;p&gt;The AI ecosystem for large language models (LLMs) consists of two primary deployment approaches: cloud-based and local. Cloud-based solutions like OpenAI&amp;rsquo;s ChatGPT, Claude, and Google&amp;rsquo;s Gemini offer powerful capabilities but come with subscription costs and data privacy considerations. Local LLM tools have emerged as alternatives that provide greater control over data, reduced costs, and customization options.&lt;/p&gt;
&lt;p&gt;Within the local LLM ecosystem, several tools enable users to run AI models on their personal computers:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Inference Engines&lt;/strong&gt;: Software like Ollama, LM Studio, and LocalAI that handle the actual execution of models&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Model Formats&lt;/strong&gt;: Different standards like GGUF, GGML, and PyTorch formats that define how models are stored and loaded&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;User Interfaces&lt;/strong&gt;: Various ways to interact with models through CLI, GUI, web interfaces, or API endpoints&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Ollama fits into this ecosystem as a leading inference engine that simplifies model management and provides an API for integrations. If you just want to get a model running quickly, my &lt;a
 href="https://ghafoorsblog.com/posts/ai/install-ollama/"
 
 &gt;step-by-step Ollama install guide&lt;/a&gt; walks through the full setup on Ubuntu. Once you have models running, the &lt;a
 href="https://ghafoorsblog.com/posts/ai/hyper-parameters/"
 
 &gt;hyperparameter reference&lt;/a&gt; explains how to tune context window, temperature and quantization for your hardware.&lt;/p&gt;
&lt;h2 id="popular-local-llm-tools"&gt;Popular Local LLM Tools&lt;/h2&gt;
&lt;h3 id="lm-studio"&gt;LM Studio&lt;/h3&gt;
&lt;p&gt;LM Studio is a desktop application designed to provide an intuitive graphical interface for running LLMs locally. Key features include:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;GUI-based model management and inference&lt;/li&gt;
&lt;li&gt;Support for GGUF format models&lt;/li&gt;
&lt;li&gt;Built-in model browser for downloading models from Hugging Face&lt;/li&gt;
&lt;li&gt;Chat interface with conversation history&lt;/li&gt;
&lt;li&gt;OpenAI-compatible API for integration with other applications&lt;/li&gt;
&lt;li&gt;Advanced inference parameter controls&lt;/li&gt;
&lt;li&gt;Support for Windows, macOS, and Linux&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="localai"&gt;LocalAI&lt;/h3&gt;
&lt;p&gt;LocalAI is an open-source, self-hosted alternative to the OpenAI API that supports various models and architectures:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;OpenAI API compatibility for drop-in replacement&lt;/li&gt;
&lt;li&gt;Support for multiple model formats (GGUF, GGML, PyTorch)&lt;/li&gt;
&lt;li&gt;Multi-modal capabilities (text, image, audio)&lt;/li&gt;
&lt;li&gt;Container-friendly design for easy deployment&lt;/li&gt;
&lt;li&gt;Function calling and tools API&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="text-generation-webui"&gt;Text Generation WebUI&lt;/h3&gt;
&lt;p&gt;A comprehensive web interface for running LLMs with extensive features:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Web-based UI accessible from multiple devices&lt;/li&gt;
&lt;li&gt;Support for many model architectures and formats&lt;/li&gt;
&lt;li&gt;Extensions ecosystem&lt;/li&gt;
&lt;li&gt;Character and persona creation tools&lt;/li&gt;
&lt;li&gt;Training and fine-tuning capabilities&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If your CPU does not support AVX2 (see &lt;a
 href="https://ghafoorsblog.com/posts/ai/avx/"
 
 &gt;why AVX matters for LLM runtimes&lt;/a&gt;), Text Generation WebUI is one of the few tools with a &lt;a
 href="https://ghafoorsblog.com/posts/ai/web-ui-installation/"
 
 &gt;working non-AVX install path&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id="koboldcpp"&gt;Koboldcpp&lt;/h3&gt;
&lt;p&gt;A lightweight C++ implementation focused on creative writing and storytelling:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Optimized for narrative and creative text generation&lt;/li&gt;
&lt;li&gt;Low resource requirements&lt;/li&gt;
&lt;li&gt;Integrations with role-playing interfaces&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="comparing-local-llm-tools"&gt;Comparing Local LLM Tools&lt;/h2&gt;
&lt;h3 id="similarities"&gt;Similarities&lt;/h3&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Feature&lt;/th&gt;
 &lt;th&gt;Ollama&lt;/th&gt;
 &lt;th&gt;LM Studio&lt;/th&gt;
 &lt;th&gt;LocalAI&lt;/th&gt;
 &lt;th&gt;Text Generation WebUI&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;Local Model Execution&lt;/td&gt;
 &lt;td&gt;✅&lt;/td&gt;
 &lt;td&gt;✅&lt;/td&gt;
 &lt;td&gt;✅&lt;/td&gt;
 &lt;td&gt;✅&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Privacy-focused&lt;/td&gt;
 &lt;td&gt;✅&lt;/td&gt;
 &lt;td&gt;✅&lt;/td&gt;
 &lt;td&gt;✅&lt;/td&gt;
 &lt;td&gt;✅&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Free to use&lt;/td&gt;
 &lt;td&gt;✅&lt;/td&gt;
 &lt;td&gt;✅&lt;/td&gt;
 &lt;td&gt;✅&lt;/td&gt;
 &lt;td&gt;✅&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;API capabilities&lt;/td&gt;
 &lt;td&gt;✅&lt;/td&gt;
 &lt;td&gt;✅&lt;/td&gt;
 &lt;td&gt;✅&lt;/td&gt;
 &lt;td&gt;✅&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="differences"&gt;Differences&lt;/h3&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Feature&lt;/th&gt;
 &lt;th&gt;Ollama&lt;/th&gt;
 &lt;th&gt;LM Studio&lt;/th&gt;
 &lt;th&gt;LocalAI&lt;/th&gt;
 &lt;th&gt;Text Generation WebUI&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;User Interface&lt;/td&gt;
 &lt;td&gt;CLI + Basic Web&lt;/td&gt;
 &lt;td&gt;Full GUI&lt;/td&gt;
 &lt;td&gt;Web API&lt;/td&gt;
 &lt;td&gt;Advanced Web UI&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Installation Complexity&lt;/td&gt;
 &lt;td&gt;Simple&lt;/td&gt;
 &lt;td&gt;Simple&lt;/td&gt;
 &lt;td&gt;Moderate&lt;/td&gt;
 &lt;td&gt;Complex&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Model Format Support&lt;/td&gt;
 &lt;td&gt;Custom + GGUF&lt;/td&gt;
 &lt;td&gt;GGUF primary&lt;/td&gt;
 &lt;td&gt;Multiple formats&lt;/td&gt;
 &lt;td&gt;Multiple formats&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;System Resource Usage&lt;/td&gt;
 &lt;td&gt;Efficient&lt;/td&gt;
 &lt;td&gt;Moderate&lt;/td&gt;
 &lt;td&gt;Configurable&lt;/td&gt;
 &lt;td&gt;Higher&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Container Support&lt;/td&gt;
 &lt;td&gt;Good&lt;/td&gt;
 &lt;td&gt;Limited&lt;/td&gt;
 &lt;td&gt;Excellent&lt;/td&gt;
 &lt;td&gt;Available&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Model Customization&lt;/td&gt;
 &lt;td&gt;Modelfiles&lt;/td&gt;
 &lt;td&gt;Limited&lt;/td&gt;
 &lt;td&gt;Moderate&lt;/td&gt;
 &lt;td&gt;Advanced&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="model-compatibility-and-sharing"&gt;Model Compatibility and Sharing&lt;/h2&gt;
&lt;h3 id="model-formats"&gt;Model Formats&lt;/h3&gt;
&lt;p&gt;Different tools use different model formats:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;GGUF (GPT-Generated Unified Format)&lt;/strong&gt;: Successor to GGML, used by Ollama and LM Studio, optimized for efficient inference on consumer hardware.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;GGML (GPT-Generated Model Language)&lt;/strong&gt;: Older format still used by some tools, being phased out in favor of GGUF.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;PyTorch/Safetensors&lt;/strong&gt;: Native formats used by many AI research labs, less optimized for consumer hardware.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;ONNX&lt;/strong&gt;: Open standard for machine learning interoperability, supported by various tools.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id="model-storage-locations"&gt;Model Storage Locations&lt;/h3&gt;
&lt;p&gt;Model storage varies by tool:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Ollama&lt;/strong&gt;: Stores models in &lt;code&gt;~/.ollama/models&lt;/code&gt; on Linux/macOS and &lt;code&gt;C:\Users\&amp;lt;username&amp;gt;\.ollama\models&lt;/code&gt; on Windows.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;LM Studio&lt;/strong&gt;: Typically stores models in a user-configurable location, defaulting to &lt;code&gt;~/lmstudio/models&lt;/code&gt; on macOS/Linux.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;LocalAI&lt;/strong&gt;: Stores models in its configured models directory, customizable at setup.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Text Generation WebUI&lt;/strong&gt;: Stores models in the &lt;code&gt;models&lt;/code&gt; subdirectory of its installation.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="model-sharing-between-tools"&gt;Model Sharing Between Tools&lt;/h3&gt;
&lt;p&gt;Models can be shared between different tools with some limitations:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;GGUF models&lt;/strong&gt;: Can generally be used across Ollama, LM Studio, and LocalAI, though parameter settings may need adjustment.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Ollama specific models&lt;/strong&gt;: Models pulled via Ollama may need to be extracted or converted before use in other tools.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Custom formats&lt;/strong&gt;: Some tools have proprietary enhancements or metadata that don&amp;rsquo;t transfer to other platforms.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;To use the same models across tools:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Store models in a central location&lt;/li&gt;
&lt;li&gt;Configure each tool to access this location&lt;/li&gt;
&lt;li&gt;Ensure format compatibility (most tools now support GGUF)&lt;/li&gt;
&lt;li&gt;Be aware that quantization levels and parameters may vary between tools&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="understanding-hugging-face-and-model-hubs"&gt;Understanding Hugging Face and Model Hubs&lt;/h2&gt;
&lt;p&gt;&lt;a
 href="https://huggingface.co"
 
 target="_blank" rel="noopener noreferrer"&gt;Hugging Face&lt;/a&gt; serves as the central hub for machine learning models - essentially the &amp;ldquo;GitHub of machine learning models.&amp;rdquo; It provides a collaborative platform where researchers and developers can share, discover, and use pre-trained models.&lt;/p&gt;
&lt;p&gt;Key characteristics of Hugging Face include:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Vast model repository&lt;/strong&gt;: Hosts thousands of models for various AI tasks&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Multiple access methods&lt;/strong&gt;: Models can be:
&lt;ul&gt;
&lt;li&gt;Downloaded manually through the website&lt;/li&gt;
&lt;li&gt;Accessed via APIs using libraries like Transformers&lt;/li&gt;
&lt;li&gt;Used directly by tools like LM Studio, KoboldCpp, and others&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Community contributions&lt;/strong&gt;: Allows users to upload their own fine-tuned models&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Standardized formats&lt;/strong&gt;: Primarily distributes models in formats like GGUF/GGML for efficient local inference&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;LM Studio primarily pulls models from Hugging Face in &lt;code&gt;.gguf&lt;/code&gt; format, making it a cornerstone of the local LLM ecosystem&amp;rsquo;s model distribution infrastructure.&lt;/p&gt;
&lt;h2 id="the-core-issue-model-silos"&gt;The Core Issue: Model Silos&lt;/h2&gt;
&lt;p&gt;A fundamental challenge in the local LLM ecosystem is that tools like Ollama and LM Studio use separate download systems and storage directories for LLMs. They do not share models by default, even if the same model has already been downloaded to your computer.&lt;/p&gt;
&lt;p&gt;This creates &amp;ldquo;model silos&amp;rdquo; where:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Redundant storage&lt;/strong&gt;: The same model might be stored twice in different locations&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Format incompatibilities&lt;/strong&gt;: Models downloaded for one tool often can&amp;rsquo;t be directly used by another&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Inconsistent experiences&lt;/strong&gt;: The same model might behave differently across tools due to different backends&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id="technical-reasons-for-model-discrepancies"&gt;Technical Reasons for Model Discrepancies&lt;/h3&gt;
&lt;p&gt;The technical reasons for these model discrepancies include:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Different formats and backends&lt;/strong&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Ollama uses a custom model packaging format for optimized serving (typically &lt;code&gt;.modelfile&lt;/code&gt; or &lt;code&gt;.bin&lt;/code&gt; formats)&lt;/li&gt;
&lt;li&gt;LM Studio and many other tools use GGUF or GGML formats (developed for the llama.cpp inference engine)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Isolated storage systems&lt;/strong&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Tools don&amp;rsquo;t look into each other&amp;rsquo;s directories for model files by default&lt;/li&gt;
&lt;li&gt;Each maintains its own metadata about models, making cross-tool discovery difficult&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Runtime differences&lt;/strong&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Ollama: Optimized C++ backend with custom format and API emphasis&lt;/li&gt;
&lt;li&gt;LM Studio: llama.cpp-based with GGUF format and GUI focus&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="advanced-solutions-for-model-sharing"&gt;Advanced Solutions for Model Sharing&lt;/h2&gt;
&lt;h3 id="best-practices-for-model-interoperability"&gt;Best Practices for Model Interoperability&lt;/h3&gt;
&lt;p&gt;To maximize efficiency and avoid duplicating large model files, consider these approaches:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Choose a primary tool for model management&lt;/strong&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Use LM Studio if you prefer a GUI, GGUF models, and local experimentation&lt;/li&gt;
&lt;li&gt;Use Ollama if you want fast server-like local inference and better integration with CLI and APIs&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Use Ollama&amp;rsquo;s API server approach&lt;/strong&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Start Ollama with your preferred model: &lt;code&gt;ollama run mistral&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Connect other applications to Ollama&amp;rsquo;s API at &lt;code&gt;http://localhost:11434&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;This lets you use one model instance across multiple interfaces&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Use advanced configuration&lt;/strong&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Some tools allow specifying alternative model directories&lt;/li&gt;
&lt;li&gt;This can reduce duplication but requires technical configuration&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id="advanced-option-converting-between-formats"&gt;Advanced Option: Converting Between Formats&lt;/h3&gt;
&lt;p&gt;For advanced users, it is theoretically possible (though complex) to convert between model formats:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;GGUF to Ollama format&lt;/strong&gt;:
&lt;ul&gt;
&lt;li&gt;Extract the GGUF model&lt;/li&gt;
&lt;li&gt;Create a &lt;code&gt;Modelfile&lt;/code&gt; defining the model&amp;rsquo;s parameters&lt;/li&gt;
&lt;li&gt;Repackage using &lt;code&gt;ollama create&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;However, this approach is not officially supported and may not work reliably due to backend differences and frequent updates to both tools and formats.&lt;/p&gt;</description></item><item><title>Setting Up Text Generation WebUI (No AVX Required)</title><link>https://ghafoorsblog.com/posts/ai/web-ui-installation/</link><pubDate>Fri, 31 Jan 2025 21:12:40 +0000</pubDate><author>hello@ghafoorsblog.com (AG Sayyed)</author><guid>https://ghafoorsblog.com/posts/ai/web-ui-installation/</guid><description>&lt;h2 id="setting-up-text-generation-webui-no-avx-required"&gt;Setting Up Text Generation WebUI (No AVX Required)&lt;/h2&gt;
&lt;p&gt;Text Generation WebUI is a great alternative to LM Studio that offers non-AVX builds, making it compatible with older CPUs. If you&amp;rsquo;re not sure whether your CPU has AVX2, see my short explainer on &lt;a
 href="https://ghafoorsblog.com/posts/ai/avx/"
 
 &gt;what AVX is and why it matters for LLM runtimes&lt;/a&gt;. For a wider comparison with Ollama, LM Studio and LocalAI, see the &lt;a
 href="https://ghafoorsblog.com/posts/ai/ollama-echo-system/"
 
 &gt;local LLM ecosystem overview&lt;/a&gt;. There are several installation options available:&lt;/p&gt;</description></item><item><title>About Me</title><link>https://ghafoorsblog.com/about/aboutme/</link><pubDate>Fri, 24 Jan 2025 01:40:23 +0000</pubDate><author>hello@ghafoorsblog.com (AG Sayyed)</author><guid>https://ghafoorsblog.com/about/aboutme/</guid><description>&lt;p&gt;&lt;em&gt;Image credit: Unknown author&lt;/em&gt;&lt;/p&gt;
&lt;p class="lead text-primary"&gt;
Hello, I'm Abdul Ghafoor Sayyed, and I welcome you to my website. Here's a bit about me and what you can find here.
&lt;/p&gt;
&lt;h2 id="background"&gt;Background&lt;/h2&gt;
&lt;p&gt;I am based in the suburbs of London, in Reigate, Surrey Hills, UK. My interests span a wide spectrum — from physics and cognitive psychology to software engineering and neuroscience. I hold a BSc in Science with majors in Physics, Mathematics, and Statistics, along with two Postgraduate Diplomas: one in Cognitive Psychology and another in Cognitive and Clinical Neuroscience.&lt;/p&gt;</description></item><item><title>About This site</title><link>https://ghafoorsblog.com/about/aboutsite/</link><pubDate>Thu, 23 Jan 2025 01:40:23 +0000</pubDate><author>hello@ghafoorsblog.com (AG Sayyed)</author><guid>https://ghafoorsblog.com/about/aboutsite/</guid><description>&lt;h2 id="introduction"&gt;Introduction&lt;/h2&gt;
&lt;p&gt;This site serves as a comprehensive platform for sharing knowledge, blog posts, and course materials. It is built using modern web technologies and is designed to be fast, responsive, and user-friendly. The site is part of the HBStack framework and leverages Hugo for static site generation.&lt;/p&gt;
&lt;h2 id="technologies"&gt;Technologies&lt;/h2&gt;
&lt;h3 id="hugo"&gt;Hugo&lt;/h3&gt;
&lt;p&gt;Hugo is a powerful static site generator that allows for rapid development and deployment of websites. It is known for its speed and flexibility, making it an ideal choice for this project.&lt;/p&gt;</description></item><item><title>Contact Us</title><link>https://ghafoorsblog.com/about/contact/</link><pubDate>Wed, 22 Jan 2025 01:40:23 +0000</pubDate><author>hello@ghafoorsblog.com (AG Sayyed)</author><guid>https://ghafoorsblog.com/about/contact/</guid><description>&lt;p class="lead text-primary"&gt;
Have a question, a suggestion, or just want to say hello? Fill in the form below and I'll get back to you as soon as I can, usually within one to two business days. If you'd like to discuss collaboration, tutoring, or course content, please include as much detail as possible so I can respond helpfully.
&lt;/p&gt;
&lt;div class="row row-cols-1 row-cols-lg-1"&gt;
 &lt;div class="col"&gt;
 
 
 &lt;form
 class="hb-contact-form needs-validation"
 novalidate
 action="https://formspree.io/f/xeoraaaq"
 method="post"
 &gt;
 &lt;input type="hidden" name="_gotcha" style="display:none !important" /&gt;
 &lt;div class="form-floating mb-3 required"&gt;
 &lt;input class="form-control" id="contact-name" name="name" required /&gt;
 &lt;label for="contact-name"&gt;Name&lt;/label&gt;
 &lt;div class="invalid-feedback"&gt;
 Please provide a valid name.
 &lt;/div&gt;
 &lt;/div&gt;
 &lt;div class="form-floating mb-3 required"&gt;
 &lt;input
 type="email"
 class="form-control"
 id="contact-email"
 name="email"
 aria-describedby="contact-email-help"
 required /&gt;
 &lt;label for="contact-email"&gt;Email&lt;/label&gt;
 &lt;div id="contact-email-help" class="form-text"&gt;
 We'll never share your email with anyone else.
 &lt;/div&gt;
 &lt;div class="invalid-feedback"&gt;
 Please provide a valid email.
 &lt;/div&gt;
 &lt;/div&gt;
 &lt;div class="form-floating mb-3 required"&gt;
 &lt;input class="form-control" id="contact-subject" name="subject" required /&gt;
 &lt;label for="contact-subject"&gt;Subject&lt;/label&gt;
 &lt;div class="invalid-feedback"&gt;
 Please provide a valid subject.
 &lt;/div&gt;
 &lt;/div&gt;
 &lt;div class="form-floating mb-3 required"&gt;
 &lt;textarea
 class="form-control"
 id="contact-message"
 name="message"
 required&gt;&lt;/textarea&gt;
 &lt;label for="contact-message"&gt;Message&lt;/label&gt;
 &lt;div class="invalid-feedback"&gt;
 Please provide a valid message.
 &lt;/div&gt;
 &lt;/div&gt;
 &lt;button type="submit" class="btn btn-primary"&gt;Submit&lt;/button&gt;
 &lt;/form&gt;
 

 &lt;/div&gt;
&lt;/div&gt;</description></item><item><title>Credits</title><link>https://ghafoorsblog.com/about/credits/</link><pubDate>Tue, 21 Jan 2025 01:40:23 +0000</pubDate><author>hello@ghafoorsblog.com (AG Sayyed)</author><guid>https://ghafoorsblog.com/about/credits/</guid><description>&lt;h2 id="credits-mentioned"&gt;Credits Mentioned&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Banner images are from &lt;a
 href="https://unsplash.com/"
 
 target="_blank" rel="noopener noreferrer"&gt;Unsplash&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Icons are from &lt;a
 href="https://icons.getbootstrap.com/"
 
 target="_blank" rel="noopener noreferrer"&gt;Bootstrap Icons&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="image-credits"&gt;Image Credits&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Blog Banner:&lt;/strong&gt; free image, credit to &lt;a
 href="https://unsplash.com/@enginakyurt"
 
 target="_blank" rel="noopener noreferrer"&gt;Engin Akyurt&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Docs Banner:&lt;/strong&gt; free image, credit to &lt;a
 href="https://unsplash.com/@benkarpinski"
 
 target="_blank" rel="noopener noreferrer"&gt;Ben Karpinski&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Video credit:&lt;/strong&gt; free video, credit to &lt;a
 href="https://www.pexels.com/video/elegant-movement-of-jellyfish-in-black-water-30256243/"
 
 target="_blank" rel="noopener noreferrer"&gt;Lux Werk&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Disclaimer</title><link>https://ghafoorsblog.com/about/disclaimer/</link><pubDate>Mon, 20 Jan 2025 01:40:23 +0000</pubDate><author>hello@ghafoorsblog.com (AG Sayyed)</author><guid>https://ghafoorsblog.com/about/disclaimer/</guid><description>&lt;h2 id="disclaimer"&gt;Disclaimer&lt;/h2&gt;
&lt;p&gt;The information provided on this website is for general informational purposes only. All information on the site is provided in good faith, however, we make no representation or warranty of any kind, express or implied, regarding the &lt;code&gt;accuracy, adequacy, validity, reliability, availability, or completeness of any information&lt;/code&gt; on the site.&lt;/p&gt;
&lt;p&gt;Under no circumstance shall we have any liability to you for any loss or damage of any kind incurred as a result of the use of the site or reliance on any information provided on the site. Your use of the site and your reliance on any information on the site is solely at your own risk.&lt;/p&gt;</description></item><item><title>Open AI Quasi Religious</title><link>https://ghafoorsblog.com/posts/ai/open-ai-quasi-religious/</link><pubDate>Sat, 18 Jan 2025 20:53:23 +0000</pubDate><author>hello@ghafoorsblog.com (AG Sayyed)</author><guid>https://ghafoorsblog.com/posts/ai/open-ai-quasi-religious/</guid><description>&lt;p class="lead text-primary"&gt;
This document explores the quasi-religious nature of OpenAI's artificial general intelligence mission, examining how Sam Altman's company operates more like a belief system than a scientific endeavor, with competing factions of believers and environmental consequences that threaten democratic governance. This is taken from a Youtube video by the author titled [Open AI Quasi Religious](https://www.youtube.com/watch?v=Z4k1h3jvGmA) 
&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="the-quasi-religious-nature-of-openai"&gt;The Quasi-Religious Nature of OpenAI&lt;/h2&gt;
&lt;p&gt;OpenAI&amp;rsquo;s mission represents a unique phenomenon in the technology sector - a company that operates more like a religious movement than a traditional research organization. The company&amp;rsquo;s pursuit of artificial general intelligence (AGI) is fundamentally based on belief rather than scientific evidence.&lt;/p&gt;</description></item><item><title>Privacy Policy</title><link>https://ghafoorsblog.com/about/privacy/</link><pubDate>Sat, 18 Jan 2025 00:00:00 +0000</pubDate><author>hello@ghafoorsblog.com (AG Sayyed)</author><guid>https://ghafoorsblog.com/about/privacy/</guid><description>&lt;p class="lead text-muted"&gt;
This Privacy Policy explains what information is collected when you use this website, how it is used, and the options you have to manage it.
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Last updated:&lt;/strong&gt; 30 September 2025&lt;/p&gt;
&lt;p&gt;A.G. Sayyed operates this website (the “Site”). The Site is hosted as a static Hugo build and embeds a contact form powered by Formspree. Because the experience is intentionally lightweight, only a small amount of personal data is collected and it is handled with care.&lt;/p&gt;</description></item><item><title>Overview of Bash</title><link>https://ghafoorsblog.com/posts/bash/02-bash-basics/</link><pubDate>Thu, 05 Dec 2024 18:48:26 +0000</pubDate><author>hello@ghafoorsblog.com (AG Sayyed)</author><guid>https://ghafoorsblog.com/posts/bash/02-bash-basics/</guid><description>&lt;p class="lead text-primary"&gt;
This article provides an overview of the Bash shell, detailing its startup behaviour across different environments (Linux, macOS, Windows). It explains the initialization files involved in configuring the shell, the differences between login and non-login shells, and the sequence of events that occur when starting a Bash session. Additionally, it includes a flowchart to visually represent the Bash startup process.
&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="bash-startup-overview-10"&gt;Bash Startup Overview (1.0)&lt;/h2&gt;
&lt;p&gt;The behaviour of Bash when starting up depends on the environment, whether you are on Linux, macOS, or Windows. For more on Bash scripting, refer to the &lt;a
 href="https://www.tldp.org/LDP/abs/html/index.html"
 
 target="_blank" rel="noopener noreferrer"&gt;Advanced Bash Scripting Guide&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>History of Bash</title><link>https://ghafoorsblog.com/posts/bash/01-history/</link><pubDate>Mon, 04 Nov 2024 18:22:26 +0000</pubDate><author>hello@ghafoorsblog.com (AG Sayyed)</author><guid>https://ghafoorsblog.com/posts/bash/01-history/</guid><description>&lt;p class="lead text-primary"&gt;
This article briefly explores the history and evolution of the Bash shell, highlighting its origins, features, and significance in Unix-like systems. It also discusses modern alternatives to Bash, such as Zsh, Fish, and Elvish, and clarifies common terminologies like terminal, console, and shell.
&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="history-of-bash-10"&gt;History of Bash (1.0)&lt;/h2&gt;
&lt;p&gt;The Bash Shell, short for Bourne Again Shell, was created in 1989 by &lt;code&gt;Brian Fox&lt;/code&gt; for the GNU Project as a free software replacement for the original Bourne Shell (sh). The Bourne Shell, developed by Stephen Bourne in the late 1970s at AT&amp;amp;T Bell Labs, was designed to enhance Unix’s usability for direct programming in the shell. Bash expanded upon the Bourne Shell’s features while incorporating elements from the C Shell (csh) and KornShell (ksh) to create a user-friendly experience for both interactive use and scripting.&lt;/p&gt;</description></item><item><title>Example Post</title><link>https://ghafoorsblog.com/posts/example-post/</link><pubDate>Mon, 15 Jan 2024 00:00:00 +0000</pubDate><author>hello@ghafoorsblog.com (AG Sayyed)</author><guid>https://ghafoorsblog.com/posts/example-post/</guid><description>&lt;p&gt;This is an example post in the posts section.&lt;/p&gt;</description></item><item><title>JavaScript Basics</title><link>https://ghafoorsblog.com/posts/js/javascript-basics/</link><pubDate>Mon, 15 Jan 2024 00:00:00 +0000</pubDate><author>hello@ghafoorsblog.com (AG Sayyed)</author><guid>https://ghafoorsblog.com/posts/js/javascript-basics/</guid><description>&lt;p&gt;Learn the fundamentals of JavaScript programming.&lt;/p&gt;</description></item><item><title>What and why in JS</title><link>https://ghafoorsblog.com/posts/js/09-what-and-why/</link><pubDate>Wed, 03 May 2017 23:00:00 +0000</pubDate><author>hello@ghafoorsblog.com (AG Sayyed)</author><guid>https://ghafoorsblog.com/posts/js/09-what-and-why/</guid><description>&lt;h2 id="10-since-js-has-no-interfaces-how-it-is-implemented"&gt;1.0 Since JS has no interfaces how it is implemented&lt;/h2&gt;
&lt;p&gt;To understand what interface do and what is required one needs to have some object oriented programming knowledge. It is similar to class but can not be instantiated. It only exposed methods that interested object or class can implement the way they want. When a class implements an interface it is said to inherits the abstract functions, along with any other members defined in interface. e.g, any constant , methods , static methods and any nested types. NOte&amp;gt; Abstract methods do not have any code that are only blue prints for those who inherit them so provide the body by writing the code.&lt;/p&gt;</description></item><item><title>JavaScript Modules</title><link>https://ghafoorsblog.com/posts/js/08-modules/</link><pubDate>Tue, 11 Apr 2017 23:00:00 +0000</pubDate><author>hello@ghafoorsblog.com (AG Sayyed)</author><guid>https://ghafoorsblog.com/posts/js/08-modules/</guid><description>&lt;h2 id="10-what-are-modules"&gt;1.0 What are modules&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Modules play a crucial role in organizing and structuring code within an application. They allow developers to break down large codebases into smaller, manageable pieces. In this article, we&amp;rsquo;ll delve into the concept of modules, their evolution, and how JavaScript and TypeScript handle them.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;It is a technique which keep the code organizes in any programme. Java Script default way of creating object using literals is one of the ways of module pattern.&lt;/p&gt;</description></item><item><title>How to Understand Functional Programming</title><link>https://ghafoorsblog.com/posts/js/07-functional-programming/</link><pubDate>Fri, 31 Mar 2017 23:00:00 +0000</pubDate><author>hello@ghafoorsblog.com (AG Sayyed)</author><guid>https://ghafoorsblog.com/posts/js/07-functional-programming/</guid><description>&lt;h2 id="functional-programming"&gt;Functional programming&lt;/h2&gt;
&lt;p&gt;Early languages like C, BASIC were not functional languages. Then came OOP C++ was a super set of C with Object Oriented approach the came Java but none of them offered functional programming technique. The only functional programming from early days was and still is LISP and its descendant like PROLOG. When Brenden Eich was hired by Netscape to write a language that can be embedded in their web browser. He came up with JavaScript, which was not an object oriented language but object based prototype language. But it was not all, there were some features of functional programming. As JavaScript evolved it turned out that functional programming technique can prove to be more powerful than its counterparts. To understand these techniques, one has to have at least some concept of what a function is and how it works. The term function has come from Mathematics.&lt;/p&gt;</description></item><item><title>JavaScript Objects</title><link>https://ghafoorsblog.com/posts/js/06-objects/</link><pubDate>Wed, 22 Feb 2017 00:00:00 +0000</pubDate><author>hello@ghafoorsblog.com (AG Sayyed)</author><guid>https://ghafoorsblog.com/posts/js/06-objects/</guid><description>&lt;h2 id="10-object-oriented-programming"&gt;1.0 Object Oriented Programming&lt;/h2&gt;
&lt;p&gt;JavaScript was not at all intended to be an Object Oriented Programming Language. At the time of its creation there were already other languages present which were doing this task, namely C++ was the modified version of C with Classes and other object oriented features. Another language which took the grounds was Java which was basically designed to serve the concept revolving around Object Oriented Programming and to overcome the shortcomings present in C++.&lt;/p&gt;</description></item><item><title>Introduction to Functions</title><link>https://ghafoorsblog.com/posts/js/05-functions/</link><pubDate>Thu, 05 Jan 2017 00:00:00 +0000</pubDate><author>hello@ghafoorsblog.com (AG Sayyed)</author><guid>https://ghafoorsblog.com/posts/js/05-functions/</guid><description>&lt;h2 id="objectives"&gt;Objectives&lt;/h2&gt;
&lt;p&gt;At the end of this chapter you will learn to :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Define all different kinds of functions&lt;/li&gt;
&lt;li&gt;Distinguish between an statement and the expression&lt;/li&gt;
&lt;li&gt;Handle functions from JS perspective&lt;/li&gt;
&lt;li&gt;Invoke functions directly and indirectly&lt;/li&gt;
&lt;li&gt;Understand how functions inherits properties too&lt;/li&gt;
&lt;li&gt;Appreciate functions role in object creation&lt;/li&gt;
&lt;li&gt;Explore the power of functional programming&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="introduction-to-javascript-functions"&gt;Introduction to JavaScript Functions&lt;/h3&gt;
&lt;p&gt;They are main building blocks of JavaScript, usually assigned a name so that they can be used time and time again by identifying with the given name.They are self-contained modular units.The structure of the function is shown below.&lt;/p&gt;</description></item><item><title>JavaScript Conditionals</title><link>https://ghafoorsblog.com/posts/js/04-conditionals/</link><pubDate>Sat, 10 Dec 2016 00:00:00 +0000</pubDate><author>hello@ghafoorsblog.com (AG Sayyed)</author><guid>https://ghafoorsblog.com/posts/js/04-conditionals/</guid><description>&lt;h2 id="what-are-conditions"&gt;What are conditions&lt;/h2&gt;
&lt;p&gt;Programming is all about using logic of &lt;code&gt;if and then&lt;/code&gt;. No matter what computer language you are using the rules always revolves around if and then. If this happens do that otherwise do something else, and so on&lt;/p&gt;
&lt;p&gt;JavaScript is not different from other languages, in fact it is a c-based language and most of its syntax is like c language. But it is not a high level language like C. It has almost same procedure to check the conditions of any statement like the way it is done in c-language.&lt;/p&gt;</description></item><item><title>JavaScript Arrays</title><link>https://ghafoorsblog.com/posts/js/03-arrays/</link><pubDate>Sat, 26 Nov 2016 00:00:00 +0000</pubDate><author>hello@ghafoorsblog.com (AG Sayyed)</author><guid>https://ghafoorsblog.com/posts/js/03-arrays/</guid><description>&lt;h2 id="arrays"&gt;Arrays&lt;/h2&gt;
&lt;p&gt;Array is a topic of data structure and deals with collecting of data known as data collection. Data can be homogeneous or heterogeneous, arrays usually deal with homogeneous items. The item in an array or a component (element stored) in an array is accessed by its position using index. Thus there is one-to-one relationship between each index and its component. Take an example of student marks achieved in five subjects &lt;code&gt;var result = [70,69,83,93,73]&lt;/code&gt;. Marks are stored in an array which is referenced by the identifier &lt;code&gt;result.&lt;/code&gt; Thus the relationship b/w its index and value can be shown as below.&lt;/p&gt;</description></item><item><title>JavaScript Variables</title><link>https://ghafoorsblog.com/posts/js/02-variables/</link><pubDate>Tue, 08 Nov 2016 00:00:00 +0000</pubDate><author>hello@ghafoorsblog.com (AG Sayyed)</author><guid>https://ghafoorsblog.com/posts/js/02-variables/</guid><description>&lt;h2 id="introduction-to-variables"&gt;Introduction to variables&lt;/h2&gt;
&lt;p&gt;In computer programming, a variable represents a very small chunk of memory which is a part of memory pool reserved for a program in which it is declared to allow the manipulation of its value.&lt;/p&gt;
&lt;p&gt;For example, if you want to add two numbers, say 5 and 8 and would like to see the result displayed on your standard output. You would ideally need to have three variables so that you can hold their values into these variables. Let&amp;rsquo;s say &lt;code&gt;x,y and z&lt;/code&gt; are those variables which will hold the values of 5,8 and their sum respectively.&lt;/p&gt;</description></item><item><title>History of JavaScript</title><link>https://ghafoorsblog.com/posts/js/01-history/</link><pubDate>Sun, 17 Apr 2016 07:59:10 +0000</pubDate><author>hello@ghafoorsblog.com (AG Sayyed)</author><guid>https://ghafoorsblog.com/posts/js/01-history/</guid><description>&lt;p class="lead text-primary"&gt; This document provides a comprehensive overview of the history and development of JavaScript, from its inception in the early 1990s to its current state. It begins by describing the static nature of early web pages and the need for a programming solution to enhance interactivity. Netscape's introduction of LiveScript, later renamed JavaScript, marked a significant milestone in web development. The standardization of JavaScript as ECMAScript by ECMA is discussed, along with the major updates in various ECMAScript editions. Key features introduced in ECMAScript 6 (ES6) and subsequent editions are outlined, including `const`, `let`, arrow functions, classes, async/await, and more. Overall, the document emphasizes JavaScript's continuous evolution and its importance in modern web development, ensuring it remains a fundamental technology for years to come. &lt;/p&gt;</description></item></channel></rss>