<?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>DEV Community: Haki</title>
    <description>The latest articles on DEV Community by Haki (@shellhaki).</description>
    <link>https://dev.to/shellhaki</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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3265328%2Fb78cc32a-b029-42c1-bb24-ca8919316322.jpeg</url>
      <title>DEV Community: Haki</title>
      <link>https://dev.to/shellhaki</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/shellhaki"/>
    <language>en</language>
    <item>
      <title>QUERY METHOD HAS NOW COME TO HONO</title>
      <dc:creator>Haki</dc:creator>
      <pubDate>Mon, 20 Jul 2026 13:13:38 +0000</pubDate>
      <link>https://dev.to/shellhaki/query-method-has-now-come-to-hono-2m2a</link>
      <guid>https://dev.to/shellhaki/query-method-has-now-come-to-hono-2m2a</guid>
      <description>&lt;p&gt;Hono Just Added Support for the New HTTP QUERY Method — and I Got to Contribute ❤️&lt;/p&gt;

&lt;p&gt;A few weeks ago, the new HTTP method QUERY was standardized, making it necessary for frameworks and tooling to begin adopting it.&lt;/p&gt;

&lt;p&gt;One thing I love about Hono is how quickly it evolves. Even before official support existed, Hono already made it possible to work with custom HTTP methods. Thanks to the amazing Hono community, I had the opportunity to contribute to adding first-class support for the new QUERY method.&lt;/p&gt;

&lt;p&gt;That was a fun contribution to be a part of!&lt;/p&gt;

&lt;p&gt;What is the QUERY method?&lt;/p&gt;

&lt;p&gt;We’re all familiar with GET and POST, and while you can technically use either for almost anything, HTTP semantics exist for a reason.&lt;/p&gt;

&lt;p&gt;GET&lt;/p&gt;

&lt;p&gt;GET is used to retrieve data from a server without changing its state. It should not create, update, or delete resources.&lt;/p&gt;

&lt;p&gt;One limitation of GET is that it doesn’t have a request body. Any data sent with the request typically has to be included in the URL as query parameters.&lt;/p&gt;

&lt;p&gt;For example:&lt;/p&gt;

&lt;p&gt;GET /users?name=John&amp;amp;age=25&lt;/p&gt;

&lt;p&gt;This means request data becomes part of the URL, which can be inconvenient for larger or more complex queries.&lt;/p&gt;

&lt;p&gt;POST&lt;/p&gt;

&lt;p&gt;POST is commonly used to send data that may change the server’s state, such as creating or updating resources.&lt;/p&gt;

&lt;p&gt;Unlike GET, it supports a request body:&lt;/p&gt;

&lt;p&gt;{&lt;br&gt;
  "name": "John",&lt;br&gt;
  "age": 25&lt;br&gt;
}&lt;/p&gt;

&lt;p&gt;However, using POST purely for data retrieval isn’t always semantically correct since it’s generally associated with state-changing operations.&lt;/p&gt;

&lt;p&gt;Enter QUERY&lt;/p&gt;

&lt;p&gt;The new QUERY method fills this gap.&lt;/p&gt;

&lt;p&gt;It allows clients to retrieve data without modifying server state, just like GET, while also allowing a request body. This means complex filters or search payloads can be sent as JSON instead of being encoded into the URL.&lt;/p&gt;

&lt;p&gt;In other words:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;GET → Read data, no request body&lt;/li&gt;
&lt;li&gt;POST → Usually changes server state, supports request body&lt;/li&gt;
&lt;li&gt;QUERY → Read data, supports request body&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This provides a cleaner and more expressive way to perform complex queries while preserving HTTP semantics.&lt;/p&gt;

&lt;p&gt;Hono Supports It&lt;/p&gt;

&lt;p&gt;Hono is among the first frameworks to officially support the new QUERY method, continuing its reputation for staying modern and developer-friendly.&lt;/p&gt;

&lt;p&gt;I’m also happy that I got to contribute to making that happen.&lt;/p&gt;

&lt;p&gt;If you haven’t tried Hono yet, I’d definitely recommend checking it out. It’s fast, lightweight, and a joy to build APIs with.&lt;/p&gt;

&lt;p&gt;Happy coding! ❤️&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>http</category>
    </item>
    <item>
      <title>How noise cancellation technology works (without the annoying math)</title>
      <dc:creator>Haki</dc:creator>
      <pubDate>Fri, 08 May 2026 19:46:55 +0000</pubDate>
      <link>https://dev.to/shellhaki/how-noise-cancellation-technology-works-without-the-annoying-math-2jn5</link>
      <guid>https://dev.to/shellhaki/how-noise-cancellation-technology-works-without-the-annoying-math-2jn5</guid>
      <description>&lt;p&gt;Ever wondered how you’re wearing a modern headphone or EarPod, and suddenly the noise/sounds around you reduce drastically ?Its not magic, it’s a cool technology called &lt;strong&gt;noise cancellation&lt;/strong&gt; and I’ll explain how it works;&lt;/p&gt;

&lt;p&gt;So there are two ways this can be achieved;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Passive noise cancellation&lt;/li&gt;
&lt;li&gt;Active Noise cancellation (ANC)
Passive noise cancellation is simply the use of materials to partially block sound waves, as simple as that. However this method is not very effective, there is a more effective means;

&lt;ul&gt;
&lt;li&gt;Active Noise cancellation (ANC) works in a more advanced way, applies methodologies on physics, let me explain properly;
Sound is a wave, and that wave has a few properties, such as frequency and direction. ANC exploits this property by first of all analyzing the incoming sound in real time, then process it, and produce an inverse of that sound, in lame terms:
If sound go forward, noise cancellation reproduces that same sound but backwards, this causes something called &lt;strong&gt;destructive interference&lt;/strong&gt;. Then noise is partially cancelled. 
&lt;strong&gt;IMPORTANT&lt;/strong&gt; : The end product of the destructive interference is not 2 different sounds at thesame time, it is one sound produced from the collision of the two opposite sounds. &lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;As easy as that :)&lt;/p&gt;

</description>
      <category>iot</category>
      <category>architecture</category>
    </item>
    <item>
      <title>Prompt engineering vs RAG vs Finetuning</title>
      <dc:creator>Haki</dc:creator>
      <pubDate>Sun, 03 May 2026 12:00:58 +0000</pubDate>
      <link>https://dev.to/shellhaki/prompt-engineering-vs-rag-vs-finetuning-202n</link>
      <guid>https://dev.to/shellhaki/prompt-engineering-vs-rag-vs-finetuning-202n</guid>
      <description>&lt;p&gt;Before I get started, this is my first blog on this platform, I hope it goes well.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;MAIN FOCUS&lt;/strong&gt;&lt;br&gt;
It’s become a very easy thing to mistake prompt engineering for finetuning, especially the scenario of “when should I use which”, this blog posts explains everything.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Difference between Prompt Engineering and finetuning&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Straight to the point!&lt;/p&gt;

&lt;p&gt;Prompt engineering essentially changes/tailors the output of the model, &lt;strong&gt;FROM&lt;/strong&gt; the input itself &lt;br&gt;
An example might be &lt;br&gt;
“Give me a dummy list of students and their cgpa in JSON format, the advantage of this is that the result you’re getting is something you expect, not just random or unstructured.&lt;br&gt;
&lt;strong&gt;key focus&lt;/strong&gt; : in prompt engineering, you change the input, NOT the model itself.&lt;/p&gt;

&lt;p&gt;While on the other hand…&lt;/p&gt;

&lt;p&gt;Finetuning is much broader, in this case, you retrain the model on your own data, directly modifying the model behavior, this can be done in different environments although expensive, eg: google collab (free), hugging face (models and data), or even server/ locally (very expensive). Finetuning is more expensive because it requires very large compute to be performed, depending on the data and model.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;When should you use which&lt;/strong&gt; ?&lt;br&gt;
Use prompt engineering in most cases when you need structured output. &lt;br&gt;
Use finetuning only in extreme cases that you need to modify the model itself &lt;/p&gt;

&lt;p&gt;In between these two concepts there’s something called rag (RETRIEVAL AUGMENTED GENERATION)&lt;br&gt;
in this paradigm, you provide search context for the model to respond with, this involves embedding, vectorization and so on. &lt;br&gt;
Mental model: user -&amp;gt; model -&amp;gt;  search -&amp;gt; model -&amp;gt; user&lt;br&gt;
This is good for large context based operations &lt;/p&gt;

&lt;p&gt;I hope this helps :)&lt;/p&gt;

</description>
      <category>ai</category>
      <category>beginners</category>
      <category>llm</category>
      <category>rag</category>
    </item>
  </channel>
</rss>
