<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Cless</title>
    <description>The latest articles on Forem by Cless (@liberifatali).</description>
    <link>https://forem.com/liberifatali</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3613549%2Fa2c3e8cd-b4b3-43ab-823f-80ad1367ffeb.jpg</url>
      <title>Forem: Cless</title>
      <link>https://forem.com/liberifatali</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/liberifatali"/>
    <language>en</language>
    <item>
      <title>Give your AI agent a wallet in under 5 mins with Aethergent</title>
      <dc:creator>Cless</dc:creator>
      <pubDate>Fri, 24 Apr 2026 13:37:47 +0000</pubDate>
      <link>https://forem.com/liberifatali/give-your-ai-agent-a-wallet-in-under-5-mins-with-aethergent-39b4</link>
      <guid>https://forem.com/liberifatali/give-your-ai-agent-a-wallet-in-under-5-mins-with-aethergent-39b4</guid>
      <description>&lt;p&gt;Building an autonomous agent is one thing; giving it the ability to pay for its own API credits or interact with on-chain protocols is another. Traditionally, this required complex SDKs and API keys.&lt;/p&gt;

&lt;p&gt;With &lt;strong&gt;&lt;a href="https://aethergent.com/" rel="noopener noreferrer"&gt;Aethergent&lt;/a&gt;&lt;/strong&gt;, you can bypass the onboarding friction and give your agent a wallet with a single HTTP call.&lt;/p&gt;




&lt;h2&gt;
  
  
  1. The Basics: Crypto, Wallets, and Keypairs
&lt;/h2&gt;

&lt;p&gt;Before we code, let's break down what your agent actually needs to interact with a blockchain like Ethereum:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;What is a "Wallet"?&lt;/strong&gt; In the context of an AI agent, a wallet isn't an app or a physical object. It is a digital identity that allows the agent to sign transactions and hold assets.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;The Keypair:&lt;/strong&gt; Every wallet consists of two mathematically linked strings of characters:

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;Private Key:&lt;/strong&gt; A secret 256-bit number that acts like a digital signature. If your agent has this key, it can move funds. &lt;strong&gt;Never share this.&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Public Address:&lt;/strong&gt; Derived from the public key, this is the "account number" (e.g., &lt;code&gt;0x742...&lt;/code&gt;) that others use to send funds to your agent.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;  &lt;strong&gt;Ethereum/EVM:&lt;/strong&gt; Ethereum is the network, and the EVM (Ethereum Virtual Machine) is the standard it uses. A wallet generated via Aethergent works across all EVM-compatible chains, including Base, Optimism, Arbitrum, and Polygon.&lt;/li&gt;

&lt;/ul&gt;




&lt;h2&gt;
  
  
  2. How Aethergent Works
&lt;/h2&gt;

&lt;p&gt;Aethergent is an open API that performs the math required to generate these keys and returns them instantly over HTTPS. It is stateless and zero-auth, meaning no signups or API keys are required.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;⚠️ &lt;strong&gt;Security Note:&lt;/strong&gt; Aethergent does not log or store private keys. However, because the key is generated on a server, it is best suited for micropayment wallets and agent operations rather than storing large amounts of capital.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  3. Step-by-Step Integration
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Step A: Generate the Wallet
&lt;/h3&gt;

&lt;p&gt;Your agent simply needs to make a &lt;code&gt;POST&lt;/code&gt; request to the Aethergent root URL.&lt;/p&gt;

&lt;h4&gt;
  
  
  Using CURL
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-X&lt;/span&gt; POST https://aethergent.com/
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Using Python
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;requests&lt;/span&gt;

&lt;span class="c1"&gt;# One call to get a fresh Ethereum keypair
&lt;/span&gt;&lt;span class="n"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;requests&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;post&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;https://aethergent.com/&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;wallet&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;json&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Address: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;wallet&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;address&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Private Key: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;wallet&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;private_key&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Using Node.js
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;res&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nf"&gt;fetch&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;https://aethergent.com/&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;method&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;POST&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="p"&gt;});&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;wallet&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;res&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;json&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;

&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;`Agent Address: &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;wallet&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;address&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;`&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Step B: Fund the Agent
&lt;/h3&gt;

&lt;p&gt;Once you have the address, send a small amount of ETH or USDC to it from your own wallet.&lt;/p&gt;

&lt;h3&gt;
  
  
  Step C: Secure the Key
&lt;/h3&gt;

&lt;p&gt;Do not hardcode the private key. For agents, we recommend:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;Environment Variables:&lt;/strong&gt; Best for Docker or Cloud deployments.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Secret Managers:&lt;/strong&gt; Use AWS Secrets Manager, GitHub Secrets, or equivalent to keep the key encrypted at rest.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Ephemeral Use:&lt;/strong&gt; Generate a new wallet for every session if the task is one-off.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  4. Advanced: Model Context Protocol (MCP)
&lt;/h2&gt;

&lt;p&gt;If you are using frameworks like &lt;strong&gt;Claude Code&lt;/strong&gt; or &lt;strong&gt;Cursor&lt;/strong&gt;, Aethergent supports &lt;a href="https://modelcontextprotocol.io/" rel="noopener noreferrer"&gt;MCP&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Your agent can natively discover the &lt;code&gt;generate_wallet&lt;/code&gt; tool via a JSON-RPC 2.0 call to &lt;code&gt;/mcp&lt;/code&gt;, allowing it to create its own wallet without you writing any custom HTTP logic.&lt;/p&gt;




&lt;p&gt;Your agent is now ready to transact on the open web!&lt;/p&gt;

&lt;p&gt;&lt;em&gt;What will you build next?&lt;/em&gt; Let me know in the comments! 👇&lt;/p&gt;

</description>
      <category>ai</category>
      <category>agents</category>
      <category>cryptocurrency</category>
      <category>ethereum</category>
    </item>
    <item>
      <title>Google Antigravity - Increase font size for the agent chat area</title>
      <dc:creator>Cless</dc:creator>
      <pubDate>Thu, 23 Apr 2026 10:06:14 +0000</pubDate>
      <link>https://forem.com/liberifatali/google-antigravity-increase-font-size-for-the-agent-chat-area-3fem</link>
      <guid>https://forem.com/liberifatali/google-antigravity-increase-font-size-for-the-agent-chat-area-3fem</guid>
      <description>&lt;p&gt;Google Antigravity is a good IDE for AI-assisted coding. From the release, there has been no option to increase the font size in the agent chat, so it's a pain to read text there.&lt;/p&gt;

&lt;p&gt;This &lt;strong&gt;&lt;a href="https://gist.github.com/LiberiFatali/b8482ba2b5030b73aa0fac420a4df650" rel="noopener noreferrer"&gt;Python script&lt;/a&gt;&lt;/strong&gt; will enable setting the font size.&lt;/p&gt;

&lt;p&gt;Before&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkk0m80ancsx2rh6q1fjq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkk0m80ancsx2rh6q1fjq.png" alt="Chat area before" width="680" height="422"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;After&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fonkpjvrcyop50bam2szz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fonkpjvrcyop50bam2szz.png" alt="Chat area after" width="680" height="623"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It implemented steps described &lt;strong&gt;&lt;a href="https://www.reddit.com/r/google_antigravity/comments/1qw4r19/heres_how_to_fix_the_small_font_size_in_google/" rel="noopener noreferrer"&gt;here&lt;/a&gt;&lt;/strong&gt;.&lt;/p&gt;

</description>
      <category>antigravity</category>
    </item>
    <item>
      <title>Advent of Agents - Day 8</title>
      <dc:creator>Cless</dc:creator>
      <pubDate>Fri, 26 Dec 2025 04:35:29 +0000</pubDate>
      <link>https://forem.com/liberifatali/advent-of-agents-day-8-4h88</link>
      <guid>https://forem.com/liberifatali/advent-of-agents-day-8-4h88</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fml3tmrkn7wxxc0837nvv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fml3tmrkn7wxxc0837nvv.png" alt="ADK Context Engineering Infographic" width="800" height="447"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;  &lt;iframe src="https://www.youtube.com/embed/eQDx90dVc38"&gt;
  &lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.kaggle.com/whitepaper-context-engineering-sessions-and-memory" rel="noopener noreferrer"&gt;More details&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>agents</category>
    </item>
    <item>
      <title>Advent of Agents - Day 4</title>
      <dc:creator>Cless</dc:creator>
      <pubDate>Mon, 08 Dec 2025 07:18:32 +0000</pubDate>
      <link>https://forem.com/liberifatali/advent-of-agents-day-4-1843</link>
      <guid>https://forem.com/liberifatali/advent-of-agents-day-4-1843</guid>
      <description>&lt;p&gt;Agent Engine supports source-based deployment. Your source code deploys directly to production.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Get started with Agent Starter Pack:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;For a new project:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;uvx agent-starter-pack create my-agent &lt;span class="nt"&gt;-a&lt;/span&gt; adk_base &lt;span class="nt"&gt;-d&lt;/span&gt; agent_engine
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Already have an ADK agent? Use enhance:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;uvx agent-starter-pack enhance &lt;span class="nt"&gt;--d&lt;/span&gt; agent_engine
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then trigger the deployment with&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;make deploy
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
      <category>ai</category>
      <category>agents</category>
      <category>adventofagents</category>
    </item>
    <item>
      <title>Advent of Agents - Day 3</title>
      <dc:creator>Cless</dc:creator>
      <pubDate>Thu, 04 Dec 2025 09:00:15 +0000</pubDate>
      <link>https://forem.com/liberifatali/advent-of-agents-day-3-2565</link>
      <guid>https://forem.com/liberifatali/advent-of-agents-day-3-2565</guid>
      <description>&lt;p&gt;&lt;em&gt;Build a powerful AI Agent using Gemini 3 and ADK with native support for Google Search grounding, computer use, and real-time streaming.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Setup the project&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;One liner with Agent Starter Pack&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;uvx agent-starter-pack create -y --api-key &amp;lt;YOUR_GEMINI_API_KEY&amp;gt; my_agent
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;or&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Using ADK CLI&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;uv init
uv add google-adk
uv add google-genai
export GOOGLE_API_KEY="YOUR_API_KEY"
source .venv/bin/activate
adk create my_agent
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;2. Download sample and run locally&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;curl 'https://raw.githubusercontent.com/GoogleCloudPlatform/devrel-demos/refs/heads/main/ai-ml/agent-labs/gemini-3-pro-agent-demo/my_agent/agent.py' &amp;gt; my_agent/agent.py
adk web
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
      <category>ai</category>
      <category>agents</category>
      <category>adventoagents</category>
    </item>
    <item>
      <title>Advent of Agents - Day 2</title>
      <dc:creator>Cless</dc:creator>
      <pubDate>Wed, 03 Dec 2025 01:35:35 +0000</pubDate>
      <link>https://forem.com/liberifatali/advent-of-agents-day-2-4mnp</link>
      <guid>https://forem.com/liberifatali/advent-of-agents-day-2-4mnp</guid>
      <description>&lt;ul&gt;
&lt;li&gt;4 lines of text = 1 working AI agent.&lt;/li&gt;
&lt;li&gt;No coding. Just YAML.&lt;/li&gt;
&lt;li&gt;A working AI agent powered by Gemini 3&lt;/li&gt;
&lt;li&gt;Google Search integration
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;uvx --from google-adk adk create --type=config my_agent
uvx --from google-adk adk web
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
      <category>ai</category>
      <category>agents</category>
      <category>adventofagents</category>
    </item>
    <item>
      <title>Advent of Agents - Day 1</title>
      <dc:creator>Cless</dc:creator>
      <pubDate>Tue, 02 Dec 2025 13:31:47 +0000</pubDate>
      <link>https://forem.com/liberifatali/advent-of-agents-day-1-4hb9</link>
      <guid>https://forem.com/liberifatali/advent-of-agents-day-1-4hb9</guid>
      <description>&lt;p&gt;&lt;a href="https://notebooklm.google.com/notebook/35f2378a-1cbe-448d-a3dd-b34a84f93ea3?authuser=1" rel="noopener noreferrer"&gt;Introduction to Agents&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;  &lt;iframe src="https://www.youtube.com/embed/nOYWU9f5p3M"&gt;
  &lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;&lt;a href="https://adventofagents.com/" rel="noopener noreferrer"&gt;More info here&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>agents</category>
      <category>adventofagents</category>
    </item>
    <item>
      <title>Story of Esperanto</title>
      <dc:creator>Cless</dc:creator>
      <pubDate>Sat, 29 Nov 2025 14:23:04 +0000</pubDate>
      <link>https://forem.com/liberifatali/story-of-esperanto-n1l</link>
      <guid>https://forem.com/liberifatali/story-of-esperanto-n1l</guid>
      <description>&lt;p&gt;I'm learning Esperanto, lingvo de paco - the language of peace. Here are interesting things about its history.&lt;/p&gt;

&lt;p&gt;  &lt;iframe src="https://www.youtube.com/embed/mcX1OF7fEas"&gt;
  &lt;/iframe&gt;
&lt;/p&gt;

</description>
      <category>esperanto</category>
      <category>polygot</category>
    </item>
    <item>
      <title>Google ADK Tutorials</title>
      <dc:creator>Cless</dc:creator>
      <pubDate>Sun, 23 Nov 2025 12:12:16 +0000</pubDate>
      <link>https://forem.com/liberifatali/google-adk-tutorials-1e2b</link>
      <guid>https://forem.com/liberifatali/google-adk-tutorials-1e2b</guid>
      <description>&lt;p&gt;I'm putting a list of tutorials for Google ADK (Agent Development Kit). This is the foundation.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://codelabs.developers.google.com/devsite/codelabs/build-agents-with-adk-foundation" rel="noopener noreferrer"&gt;A quick start to get a feel of Google ADK&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://cloud.google.com/blog/topics/developers-practitioners/building-collaborative-ai-a-developers-guide-to-multi-agent-systems-with-adk" rel="noopener noreferrer"&gt;Foundational concepts&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://codelabs.developers.google.com/devsite/codelabs/build-agents-with-adk-empowering-with-tools" rel="noopener noreferrer"&gt;First experience with ADK tools&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://codelabs.developers.google.com/onramp/instructions" rel="noopener noreferrer"&gt;A good crash course&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://codelabs.developers.google.com/adkcourse/instructions" rel="noopener noreferrer"&gt;ADK pattern with Memory and MCP (Model Context Protocol)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/google/adk-samples" rel="noopener noreferrer"&gt;google/adk-samples&lt;/a&gt;: A collection of sample agents built with Agent Development (ADK)&lt;/li&gt;
&lt;li&gt;&lt;a href="https://tidal-draw-67c.notion.site/Study-Note-AI-Agent-2b4b2866cc68805c8018dfb996578c94" rel="noopener noreferrer"&gt;Study Note « AI Agent from Annie Wang&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>agents</category>
      <category>ai</category>
    </item>
    <item>
      <title>Setup Gstreamer with Python on Windows</title>
      <dc:creator>Cless</dc:creator>
      <pubDate>Wed, 19 Nov 2025 04:44:49 +0000</pubDate>
      <link>https://forem.com/liberifatali/setup-gstreamer-with-python-on-windows-59n3</link>
      <guid>https://forem.com/liberifatali/setup-gstreamer-with-python-on-windows-59n3</guid>
      <description>&lt;p&gt;&lt;em&gt;When I started trying GStreamer with Python on Windows 10, it took me quite some time to set up the development environment. So this might help others on the way.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The most convenient approach is through MSYS2. Here are the steps:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1.&lt;/strong&gt; Download and install MSYS2: &lt;a href="https://www.msys2.org" rel="noopener noreferrer"&gt;https://www.msys2.org&lt;/a&gt;. Remember [msys2_path] for environment variable.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2.&lt;/strong&gt; Install Python, GStreamer, tools, plugins, and PyGObject&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Open MSYS2 UCRT64 terminal&lt;/li&gt;
&lt;li&gt;Update MSYS2 &lt;code&gt;pacman -Syu&lt;/code&gt;. After this, the terminal may close; you need to open it again.&lt;/li&gt;
&lt;li&gt;Install gcc &lt;code&gt;pacman -S mingw-w64-ucrt-x86_64-gcc&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Install Python, GStreamer, tools, plugins, and PyGObject
&lt;code&gt;pacman -S mingw-w64-x86_64-python3 mingw-w64-x86_64-gstreamer mingw-w64-x86_64-gst-devtools mingw-w64-x86_64-gst-plugins-{base,good,bad,ugly} mingw-w64-x86_64-python3-gobject&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Add the following paths to &lt;code&gt;~/.bashrc&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;export PATH="&amp;lt;msys2_path&amp;gt;/mingw64/bin:$PATH"
export XDG_DATA_DIRS="&amp;lt;msys2_path&amp;gt;/mingw64/share/:$XDG_DATA_DIRS"
&lt;/code&gt;&lt;/pre&gt;

&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Apply bashrc: &lt;code&gt;source ~/.bashrc&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;3.&lt;/strong&gt; Test: run this on the terminal&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;pip install pygobject
python -c "import gi; gi.require_version('Gst', '1.0'); from gi.repository import Gst; print(Gst.version_string())"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
      <category>gstreamer</category>
      <category>python</category>
      <category>windows</category>
    </item>
  </channel>
</rss>
