<?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: aj1thkr1sh</title>
    <description>The latest articles on DEV Community by aj1thkr1sh (@aj1thkr1sh).</description>
    <link>https://dev.to/aj1thkr1sh</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%2F71446%2F324513a4-e995-40ee-b835-4c242aa94eeb.png</url>
      <title>DEV Community: aj1thkr1sh</title>
      <link>https://dev.to/aj1thkr1sh</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/aj1thkr1sh"/>
    <language>en</language>
    <item>
      <title>CNN-LSTM Hybrid Architecture for Thanglish-to-Tamil : Bridging 26 Letters to 247 Characters</title>
      <dc:creator>aj1thkr1sh</dc:creator>
      <pubDate>Tue, 17 Feb 2026 07:13:24 +0000</pubDate>
      <link>https://dev.to/aj1thkr1sh/cnn-lstm-hybrid-architecture-for-thanglish-to-tamil-bridging-26-letters-to-247-characters-j4n</link>
      <guid>https://dev.to/aj1thkr1sh/cnn-lstm-hybrid-architecture-for-thanglish-to-tamil-bridging-26-letters-to-247-characters-j4n</guid>
      <description>&lt;h1&gt;
  
  
  Introduction : Let's do Experiment 🧪
&lt;/h1&gt;

&lt;p&gt;I sometime use Google Input Tools to write Tamil via Thanglish.  Like, if I type "Vanakkam" it will replace with "வணக்கம்"&lt;/p&gt;

&lt;p&gt;Seeing(some years back) and using this on Day 1, I always thought, how they Built this?  What Model they use?  How we can Build this one?  Like those&lt;/p&gt;

&lt;p&gt;So, on past Weekend I decided to Build One 💪&lt;/p&gt;

&lt;h1&gt;
  
  
  Dataset : First thing in Machine Learning / Deep Learning 📊
&lt;/h1&gt;

&lt;p&gt;I analyzed a lot of Dataset and decided to stick with &lt;a href="https://github.com/google-research-datasets/dakshina" rel="noopener noreferrer"&gt;Google Dakshina Dataset&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It contains a lot of Dataset, I chose to use below&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;ta.translit.sampled.train.tsv&lt;/li&gt;
&lt;li&gt;ta.translit.sampled.dev.tsv&lt;/li&gt;
&lt;li&gt;ta.translit.sampled.test.tsv&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So, it is &lt;strong&gt;Character Level&lt;/strong&gt; not Word or Token Level&lt;/p&gt;

&lt;h1&gt;
  
  
  Choosing Architecture 🏗️ : Comes Engineer's Artist 🎨
&lt;/h1&gt;

&lt;h3&gt;
  
  
  Seq2Seq : Fixed
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;Just briefly : Seq2Seq is used to turn one Sequence of Data into another Sequence, typically contain &lt;strong&gt;Encoder Block&lt;/strong&gt; to read the Input then produce the &lt;strong&gt;Context Representation&lt;/strong&gt; and &lt;strong&gt;Decoder Block&lt;/strong&gt; to generate the output&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;First it is understandable that we need &lt;strong&gt;Seq2Seq Model&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Yes, we enter the Sequence of Characters and we need to get Sequence of Characters&lt;/p&gt;

&lt;p&gt;We shall proceed with that&lt;/p&gt;

&lt;h3&gt;
  
  
  Intuition of Architecture
&lt;/h3&gt;

&lt;p&gt;First, intuition that came to me to like&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;💭 Use Bidirectional RNN either BiLSTM or BiGRU with &lt;strong&gt;Attention Mechanism&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That's the intuition that came to me&lt;/p&gt;

&lt;p&gt;But, then I thought, wait, we are going to use Character Level, so, maximum Number of Timesteps will not exceed maximum of 50 time steps.&lt;/p&gt;

&lt;p&gt;So, just LSTM works good here(LONG SHORT-TERM MEMORY!)&lt;/p&gt;

&lt;p&gt;And I got another Thought, kind of FIRST PRINCIPLE&lt;/p&gt;

&lt;h3&gt;
  
  
  Look closely at First Level
&lt;/h3&gt;

&lt;p&gt;Why, my Intuition suggested BiRNN(LSTM or GRU) with &lt;strong&gt;Attention Mechanism&lt;/strong&gt;?  Because of,&lt;/p&gt;

&lt;h4&gt;
  
  
  Thanglish Words Representation
&lt;/h4&gt;

&lt;p&gt;Let us consider an example,&lt;/p&gt;

&lt;p&gt;If we write "Vanakkam" for generating "வ" it needs to look for 'v' and 'a' both, right?&lt;/p&gt;

&lt;p&gt;Similarly, for generating "ண" it needs to look for "na" and needs to decide which "ந", "ன", "ண" for that it needs to decide what comes BEFORE what comes AFTER&lt;/p&gt;

&lt;p&gt;Because, "ன", "ண" won't appear in &lt;strong&gt;starting&lt;/strong&gt; of the word and "ந" won't appear at &lt;strong&gt;end&lt;/strong&gt; of the words &lt;strong&gt;rarely&lt;/strong&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Attention Mechanism
&lt;/h4&gt;

&lt;blockquote&gt;
&lt;p&gt;I will not go too detail about Attention Mechanism here but generally, allows the Decoder to look back at all the Encoder's Hidden States and &lt;em&gt;Pick which ones are most Relevant&lt;/em&gt; at each step of the output&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Here we need to look for surrounding characters and decide&lt;/p&gt;

&lt;p&gt;Note : "na" is just one example, there are other &lt;strong&gt;PATTERNS&lt;/strong&gt; to consider like for "pattam", "tt" should be "ட்ட" like many other patterns too&lt;/p&gt;

&lt;h4&gt;
  
  
  Vanilla LSTM
&lt;/h4&gt;

&lt;p&gt;But, just LSTM on Seq2Seq should solve the use case right?  Because there is no such &lt;em&gt;Long Range Dependencies&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Local Receptive Field
&lt;/h3&gt;

&lt;p&gt;Local Receptive Field is one of the Fundamental concept in Convolutional Neural Networks (CNNs) which focuses on a specific spatial location&lt;/p&gt;

&lt;p&gt;Have explained briefly CNN &lt;a href="https://ajithraghavan.github.io/blog/cnn-intro/" rel="noopener noreferrer"&gt;here&lt;/a&gt;, please take a look!&lt;/p&gt;

&lt;h3&gt;
  
  
  🤷 What to do with Image Here?
&lt;/h3&gt;

&lt;p&gt;We aren't dealing with Image right, then why use CNN?&lt;/p&gt;

&lt;h4&gt;
  
  
  1D Convolution comes to rescue
&lt;/h4&gt;

&lt;p&gt;We are going to use 1D Convolution, where Convolution is performed in Sequential Data, such as Text, Time Series, or Audio Signals etc.,&lt;/p&gt;

&lt;h3&gt;
  
  
  Again why Convolution 🤷
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://ajithraghavan.github.io/blog/cnn-intro/" rel="noopener noreferrer"&gt;You can read more here&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;But briefly, it performs Convolution Operation : A Filter (or Kernel) that slides across an Input Data(mostly Image), Computing &lt;br&gt;
Element Wise Multiplications and Summing the results at each position to produce an output called a Feature Map&lt;/p&gt;
&lt;h4&gt;
  
  
  We have the solution here
&lt;/h4&gt;

&lt;p&gt;Both Attention and Convolution compute weighted combinations of input values, but Convolution is restricted to a small local window, while Attention can relate any positions regardless of distance&lt;/p&gt;

&lt;p&gt;Similar to Attention Mechanism(where Attention dynamically Computes Relationships between positions, often globally),  and Convolution Operation extracts Features from Local Spatial Regions (a small fixed window) to address our use case&lt;/p&gt;
&lt;h3&gt;
  
  
  Best Architecture?
&lt;/h3&gt;

&lt;p&gt;There are many Architectures and Design Choices but let us stick with it as of now&lt;/p&gt;

&lt;p&gt;Any of those which one is the best Architecture, that's the billion dollar question, right?&lt;/p&gt;

&lt;p&gt;Let the Evaluation Speak&lt;/p&gt;
&lt;h2&gt;
  
  
  Evaluation 📈
&lt;/h2&gt;

&lt;p&gt;Training using Google Colab&lt;/p&gt;

&lt;p&gt;Note : These Accuracy are not too high, I am just tweaking Hyperparameter like Regularization, Architectural Design etc., with limited Compute Resource, just sharing the current progress here&lt;/p&gt;
&lt;h3&gt;
  
  
  Vanilla LSTM
&lt;/h3&gt;

&lt;p&gt;Current Total Parameters : 1,411,890&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Train Loss: 0.1314 | Val Loss: 1.4453 | Val Acc: 53.41% | Val CER: 15.67% | LR: 0.000500
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Test Exact Match Accuracy: 51.57%&lt;br&gt;
Test Character Error Rate: 16.36%&lt;/p&gt;
&lt;h4&gt;
  
  
  Good
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;The Model is actually Learning&lt;/li&gt;
&lt;li&gt;Some demo outputs are correct&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;
  
  
  Bad
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Overfitting&lt;/li&gt;
&lt;li&gt;Some Errors in demo&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;
  
  
  Fixes(but not limited to)
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Regularization&lt;/li&gt;
&lt;li&gt;Model Architecture Improvement&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
  
  
  BiGRU with Attention Mechanism
&lt;/h3&gt;

&lt;p&gt;Current Total Parameters : 12,580,914&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Train Loss: 0.1460 | Val Loss: 1.3492 | Val Acc: 54.74% | Val CER: 15.50% | LR: 0.000500
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Test Exact Match Accuracy: 50.60%&lt;br&gt;
Test Character Error Rate: 16.44%&lt;/p&gt;
&lt;h4&gt;
  
  
  Good
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;The Model is actually Learning&lt;/li&gt;
&lt;li&gt;Some demo outputs are correct&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;
  
  
  Bad
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Overfitting&lt;/li&gt;
&lt;li&gt;Some Errors in demo&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;
  
  
  Fixes(but not limited to)
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Regularization&lt;/li&gt;
&lt;li&gt;Model Architecture Improvement&lt;/li&gt;
&lt;li&gt;Residual Connection&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
  
  
  CNN-LSTM Architecture
&lt;/h3&gt;

&lt;p&gt;Current Total Parameters : 767,666&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Train Loss : 0.0903 | Val Loss: 0.9868 | Val Acc : 53.13% | Val CER : 15.77% | LR : 0.000125
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Test Exact Match Accuracy : 50.55%&lt;br&gt;
Test Character Error Rate : 15.81%&lt;/p&gt;

&lt;h4&gt;
  
  
  Good
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Total Parameters size is low comparatively&lt;/li&gt;
&lt;li&gt;The Model is actually Learning&lt;/li&gt;
&lt;li&gt;Some demo outputs are correct&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Bad
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Overfitting&lt;/li&gt;
&lt;li&gt;Some Errors in demo&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Fixes(but not limited to)
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Regularization&lt;/li&gt;
&lt;li&gt;Model Architecture Improvement&lt;/li&gt;
&lt;li&gt;Residual Connection&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  🏆 Billion Dollar Question : Which Architecture is the Winner?
&lt;/h2&gt;

&lt;p&gt;All three Models perform remarkably similarly on test metrics (~50-51% accuracy, ~15.8-16.4% CER)&lt;/p&gt;

&lt;p&gt;But the winner is.....&lt;/p&gt;

&lt;p&gt;.&lt;br&gt;
.&lt;br&gt;
.&lt;br&gt;
.&lt;br&gt;
.&lt;br&gt;
.&lt;br&gt;
.&lt;br&gt;
.&lt;br&gt;
.&lt;/p&gt;

&lt;h3&gt;
  
  
  CNN-LSTM Architecture wins 🎉 🥳
&lt;/h3&gt;

&lt;h3&gt;
  
  
  Why CNN-LSTM wins :
&lt;/h3&gt;

&lt;p&gt;First CNN does Parameter Sharing&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Best generalization : Lowest val loss (0.9868) by a significant margin compared to the other two (~1.35–1.45)&lt;/li&gt;
&lt;li&gt;Best test CER (15.81%)&lt;/li&gt;
&lt;li&gt;Smallest Model : Only 767K parameters, roughly 16x smaller than BiGRU+Attention and 2x smaller than Vanilla LSTM.  This means faster Inference, easier Deployment&lt;/li&gt;
&lt;li&gt;Best efficiency : Achieving comparable (or better) results with far Fewer Parameters is a strong signal that the Architecture suits this task well and CNNs are good at capturing local character-level &lt;strong&gt;n-gram patterns&lt;/strong&gt;, which is exactly what transliteration needs&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Note : In all Three Architectures, we can do fixes to improve all Three Models, may be even with Hyperparameter tuning other Architecture might win but here sharing the current status&lt;/p&gt;

&lt;p&gt;Also, CNN-LSTM is not new it's already applied in other various fields and domain, like&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;OCR : Optical Character Recognition&lt;/li&gt;
&lt;li&gt;The CNN-LSTM Attention-based Seq2Seq model has been shown to be effective for OCR&lt;/li&gt;
&lt;li&gt;Many other Domains and Fields &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Because we need to Experiment and Find&lt;/p&gt;

&lt;p&gt;Repository : &lt;a href="https://github.com/ajithraghavan/VisAI" rel="noopener noreferrer"&gt;https://github.com/ajithraghavan/VisAI&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Please feel free to Clone, Use and Train on your own Dataset for exploration&lt;/p&gt;

&lt;p&gt;Thanks for reading!&lt;/p&gt;

&lt;p&gt;Originally Posted : &lt;a href="https://ajithraghavan.github.io/blog/CNN-and-LSTM-for-Tamil-Typing/" rel="noopener noreferrer"&gt;https://ajithraghavan.github.io/blog/CNN-and-LSTM-for-Tamil-Typing/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>cnn</category>
      <category>lstm</category>
      <category>ai</category>
      <category>tamil</category>
    </item>
    <item>
      <title>Try My ~3.5 Million Parameters Model Instead for ✨😉</title>
      <dc:creator>aj1thkr1sh</dc:creator>
      <pubDate>Mon, 25 Aug 2025 07:26:03 +0000</pubDate>
      <link>https://dev.to/aj1thkr1sh/try-my-35-million-parameters-model-instead-for-18o2</link>
      <guid>https://dev.to/aj1thkr1sh/try-my-35-million-parameters-model-instead-for-18o2</guid>
      <description>&lt;h2&gt;
  
  
  😊 Introduction
&lt;/h2&gt;

&lt;p&gt;I thought to Build a Machine Learning Model to generate Emojis for My Writing content &lt;/p&gt;

&lt;p&gt;Like when typing some sentences, I think I need relevant Emojis in the sentences, as it will give more expressiveness, right&lt;/p&gt;

&lt;p&gt;And also because currently I am searching in Web(using some website like Emoji Finder etc., it is based on keywords only) to pick Emojis&lt;/p&gt;

&lt;p&gt;So I decided to Develop a &lt;strong&gt;LSTM Model&lt;/strong&gt; to automatically generate Emoji for My Sentences&lt;/p&gt;

&lt;h2&gt;
  
  
  🎥 First Demo
&lt;/h2&gt;

&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%2Fr6s1zi8d5phx36rgeeec.gif" 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%2Fr6s1zi8d5phx36rgeeec.gif" alt="Demo Video" width="480" height="245"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  🧑‍🏫 Explanation
&lt;/h2&gt;

&lt;p&gt;When the user types the paragraph, for each paragraph the Model predicts the approximate Emoji &lt;/p&gt;

&lt;p&gt;For example, if you have 5 sentences in a paragraph, the Model will generate 5 Emojis&lt;/p&gt;

&lt;h2&gt;
  
  
  ⚙️ Technical Details
&lt;/h2&gt;

&lt;p&gt;I currently have totally 20 Emojis ❤, 😍, 😂, 💕, 🔥, 😊, 😎, ✨, 💙, 😘, 📷, 🇺🇸, ☀, 💜, 😉, 💯, 😁, 🎄, 📸, 😜&lt;/p&gt;

&lt;p&gt;And used Dataset from &lt;a href="https://huggingface.co/datasets/cardiffnlp/tweet_eval" rel="noopener noreferrer"&gt;Hugging Face&lt;/a&gt; and used Google Colab for Training &lt;/p&gt;

&lt;h3&gt;
  
  
  🎯 Model Selection
&lt;/h3&gt;

&lt;p&gt;I have decided to use BiLSTM(Bidirectional LSTM(Long Short-Term Memory)) &lt;/p&gt;

&lt;p&gt;We could have just used &lt;strong&gt;LSTM&lt;/strong&gt; rather then &lt;strong&gt;BiLSTM&lt;/strong&gt; as we are not doing Seq2Seq Task, like we are not translating English to Emojis &lt;/p&gt;

&lt;p&gt;But, here &lt;strong&gt;BiLSTM&lt;/strong&gt; improves the performance by at least 10% &lt;/p&gt;

&lt;p&gt;So, decided to use &lt;strong&gt;BiLSTM&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Note : &lt;/p&gt;

&lt;p&gt;Here we could have used BiLSTM with Attention Mechanism or even  Fine-Tuned Pre Trained Model like BERT&lt;/p&gt;

&lt;p&gt;But decided to use BiLSTM&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  🏗️ Architecture
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;First have used Embedding Layer &lt;/li&gt;
&lt;li&gt;Then, BiLSTM with 2 Layers &lt;/li&gt;
&lt;li&gt;Dropout for Regularization &lt;/li&gt;
&lt;li&gt;Then Linear Layer with 20 output units for each Emojis 

&lt;ul&gt;
&lt;li&gt;Note : &lt;/li&gt;
&lt;li&gt;We are using BiLSTM, so it will hidden states from both the directions &lt;/li&gt;
&lt;li&gt;So, before passing to Linear Layer we must concatenate both the hidden states&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  🎲 Hyperparameters
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;I have used the Maximum length of the Sequence to be &lt;code&gt;50&lt;/code&gt; &lt;/li&gt;
&lt;li&gt;Embedding Dimension as &lt;code&gt;128&lt;/code&gt; &lt;/li&gt;
&lt;li&gt;Hidden Dimension for LSTM States to be &lt;code&gt;128&lt;/code&gt; &lt;/li&gt;
&lt;li&gt;As stated before, we have chosen Number of Layers to be 2 &lt;/li&gt;
&lt;li&gt;Learning Rate α : 0.0005&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  🚨 Accuracy and Important Study
&lt;/h3&gt;

&lt;p&gt;Regarding Accuracy, it is not relatively higher although with &lt;strong&gt;BiLSTM&lt;/strong&gt; and even low with &lt;strong&gt;Unidirectional LSTM&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Was tweaking and trying to improve the performance then LATER ONLY realized that data has Class Imbalance Problem&lt;/p&gt;

&lt;p&gt;Where ~21% of the Data has "❤" which dominates most and followed by ~10% of Data has "😍" and so on... then "😜" was barely minimum&lt;/p&gt;

&lt;h4&gt;
  
  
  ⚠️ Important action
&lt;/h4&gt;

&lt;p&gt;🥇 First Rule : Data in Training Set, Development Set and Test Set should follow the same Distribution&lt;/p&gt;

&lt;p&gt;Followed by, may be here, we can Augmented Data Synthetically, or may be with some other Architecture so on&lt;/p&gt;

&lt;p&gt;Yes, we can also increase Accuracy with the same Data but as of now saved that for later&lt;/p&gt;

&lt;h3&gt;
  
  
  📜 Little History
&lt;/h3&gt;

&lt;p&gt;I have used Regular LSTM and saw the Model was Overfitting &lt;/p&gt;

&lt;p&gt;So, of various Hyperparameters(still overfitting) after few tweaking various Hyperparameters along with  BiLSTM showed little improvement and continued and seems to work fine&lt;/p&gt;

&lt;p&gt;Originally Posted : &lt;a href="https://ajithraghavan.github.io/blog/emoji-generator/" rel="noopener noreferrer"&gt;https://ajithraghavan.github.io/blog/emoji-generator/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Thanks for reading&lt;/p&gt;

</description>
      <category>ai</category>
      <category>machinelearning</category>
      <category>rnn</category>
      <category>lstm</category>
    </item>
    <item>
      <title>🚀 Meet QMD : Quick Markdown</title>
      <dc:creator>aj1thkr1sh</dc:creator>
      <pubDate>Thu, 17 Jul 2025 14:17:03 +0000</pubDate>
      <link>https://dev.to/aj1thkr1sh/meet-qmd-quick-markdown-1mpc</link>
      <guid>https://dev.to/aj1thkr1sh/meet-qmd-quick-markdown-1mpc</guid>
      <description>&lt;p&gt;Hey Developers! 👋&lt;/p&gt;

&lt;p&gt;TL;DR: Single-character syntax = significant fewer tokens = cheaper AI costs 🎯&lt;/p&gt;




&lt;p&gt;What if I told you there's a way to make your Markdown few percentage more efficient for LLMs while keeping it just as readable for humans?&lt;/p&gt;

&lt;p&gt;Sounds too good to be true? Well, Quick Markdown (QMD) is here to change the game! 🎮&lt;/p&gt;

&lt;h2&gt;
  
  
  🤔 What is Quick Markdown?
&lt;/h2&gt;

&lt;p&gt;Quick Markdown (QMD) is a lightweight markup language that maintains Markdown's readability while significantly reducing storage requirements and token consumption.&lt;/p&gt;

&lt;h2&gt;
  
  
  Enter: QMD 🎯
&lt;/h2&gt;

&lt;p&gt;🧠 Built for LLMs(in addition)&lt;br&gt;
💾 Reduces token &amp;amp; storage usage&lt;br&gt;
📏 Compact, clean, and context-aware&lt;br&gt;
🔁 Still plays nicely with traditional Markdown!&lt;/p&gt;

&lt;p&gt;It’s like Markdown, but on a diet 💪🍃&lt;/p&gt;
&lt;h2&gt;
  
  
  💭 Show us example, man
&lt;/h2&gt;

&lt;p&gt;Yes, yes, here are examples by comparison&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Traditional:    ## Heading Two        (3 tokens)
QMD:            &amp;gt;Heading Two          (1 token) 🎉

Traditional:    **bold text**         (4 tokens)  
QMD:            *bold text*           (2 tokens) ⚡

Traditional:    - [x] Done task       (6 tokens)
QMD:            + Done task           (2 tokens) 🍀 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  💵 Real impact
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Comparison: Traditional vs QMD
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Traditional Markdown&lt;/strong&gt; (231 bytes):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;&lt;span class="gu"&gt;## Shopping List&lt;/span&gt;

&lt;span class="gs"&gt;**Important**&lt;/span&gt; items to buy:
&lt;span class="p"&gt;
-&lt;/span&gt; Milk
&lt;span class="p"&gt;-&lt;/span&gt; Bread
&lt;span class="p"&gt;  -&lt;/span&gt; Whole wheat
&lt;span class="p"&gt;  -&lt;/span&gt; Sourdough
&lt;span class="p"&gt;-&lt;/span&gt; ~~Eggs~~ Already have

&lt;span class="gu"&gt;### Tasks&lt;/span&gt;
&lt;span class="p"&gt;-&lt;/span&gt; [x] Buy groceries
&lt;span class="p"&gt;-&lt;/span&gt; [ ] Call store
&lt;span class="p"&gt;-&lt;/span&gt; [~] Check prices

&lt;span class="gu"&gt;### Notes&lt;/span&gt;

Check https://store.com for &lt;span class="ge"&gt;*deals*&lt;/span&gt;.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;QMD Version&lt;/strong&gt; (217 bytes, approximately 6.1 % reduction):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;gt;Shopping List

*Important* items to buy:

• Milk
• Bread
  • Whole wheat
  • Sourdough
• ~Eggs~ Already have

-Tasks
+ Buy groceries
. Call store
* Check prices

-Notes

Check https://store.com for /deals/.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;For larger files, the compression ratio between QMD and MD should be significantly better&lt;/p&gt;

&lt;h2&gt;
  
  
  🚀 Ready to Start?
&lt;/h2&gt;

&lt;p&gt;Check out the &lt;a href="https://github.com/ajithraghavan/qmd" rel="noopener noreferrer"&gt;GitHub repo&lt;/a&gt; and start using QMD today! Your LLM bills will thank you! 💰&lt;/p&gt;

&lt;p&gt;GitHub : &lt;a href="https://github.com/ajithraghavan/qmd" rel="noopener noreferrer"&gt;https://github.com/ajithraghavan/qmd&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The future of documentation is Quick, Quality, and ready for a Quantum-leap! ⚡&lt;/p&gt;

&lt;p&gt;⭐ Star it on GitHub, clone it, try it out and tell us what you think!&lt;/p&gt;

&lt;p&gt;Built something cool with QMD&lt;/p&gt;

&lt;p&gt;💬 Drop it in the comments!&lt;/p&gt;

</description>
      <category>markdown</category>
      <category>python</category>
      <category>chatgpt</category>
      <category>llm</category>
    </item>
    <item>
      <title>📱🎉 Say Hi to PhoneSlides – The Vertical-First Presentation Tool! 🎉📱</title>
      <dc:creator>aj1thkr1sh</dc:creator>
      <pubDate>Sat, 12 Jul 2025 12:00:21 +0000</pubDate>
      <link>https://dev.to/aj1thkr1sh/say-hi-to-phoneslides-the-vertical-first-presentation-tool-1bb6</link>
      <guid>https://dev.to/aj1thkr1sh/say-hi-to-phoneslides-the-vertical-first-presentation-tool-1bb6</guid>
      <description>&lt;p&gt;Hey Folks 👋&lt;/p&gt;

&lt;p&gt;Introducing 🚀 PhoneSlides : the friendliest slide presentation tool made for your phone!&lt;/p&gt;

&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%2Fc269a765x3iec18z3ou7.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%2Fc269a765x3iec18z3ou7.png" alt="PhoneSlides Logo" width="800" height="800"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  🧠 The Idea
&lt;/h2&gt;

&lt;p&gt;We are consuming everything on vertical screens now:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Reels 📱&lt;/li&gt;
&lt;li&gt;Shorts 🎬&lt;/li&gt;
&lt;li&gt;TikToks 🕺&lt;/li&gt;
&lt;li&gt;Stories 🧃&lt;/li&gt;
&lt;li&gt;etc&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;But what about presentations?&lt;br&gt;
That’s where PhoneSlides comes in&lt;/p&gt;

&lt;h2&gt;
  
  
  📲 What is PhoneSlides?
&lt;/h2&gt;

&lt;p&gt;✅ Create beautiful vertical-first presentations (optimized for phones)&lt;br&gt;
✅ Add titles, descriptions, and images with ease&lt;br&gt;
✅ Record your screen and voice walkthrough (hello, mini-reels!)&lt;br&gt;
✅ Export/share as video to YouTube Shorts, Instagram Reels, or even WhatsApp&lt;/p&gt;

&lt;p&gt;So, just tall, crisp, story-driven slides.&lt;/p&gt;

&lt;h2&gt;
  
  
  🛠️ Tech Stack
&lt;/h2&gt;

&lt;p&gt;We built PhoneSlides using: HTML, CSS, JavaScript&lt;/p&gt;

&lt;h2&gt;
  
  
  🔮 What's Next?
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;✨ Templates and styling options&lt;/li&gt;
&lt;li&gt;🎨 Image uploads and custom themes&lt;/li&gt;
&lt;li&gt;🐛 Bug fixes and performance tweaks&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Your feedback will shape what comes next!&lt;/p&gt;

&lt;h2&gt;
  
  
  🎯 Try It Out!
&lt;/h2&gt;

&lt;p&gt;GitHub Link : &lt;a href="https://github.com/ajithraghavan/PhoneSlides" rel="noopener noreferrer"&gt;https://github.com/ajithraghavan/PhoneSlides&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  💬 We Want Your Feedback!
&lt;/h2&gt;

&lt;p&gt;This is the initial stage release of PhoneSlides, and we are excited to hear from the community:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What features would you love to see?&lt;/li&gt;
&lt;li&gt;How would you use PhoneSlides in your work?&lt;/li&gt;
&lt;li&gt;Found any bugs? We'd love to fix them!&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Drop a comment below or star ⭐️ us on GitHub if you find this interesting!&lt;/p&gt;

&lt;p&gt;Or raise an issue, or even send a PR!&lt;/p&gt;

&lt;p&gt;Let’s build a better mobile presentation future together 💪&lt;/p&gt;

&lt;p&gt;Your feedback helps us build something amazing 🙌&lt;/p&gt;

</description>
      <category>productivity</category>
      <category>javascript</category>
      <category>ui</category>
      <category>ux</category>
    </item>
    <item>
      <title>Yaali, the Tamil conversing AI</title>
      <dc:creator>aj1thkr1sh</dc:creator>
      <pubDate>Wed, 18 Aug 2021 15:41:17 +0000</pubDate>
      <link>https://dev.to/aj1thkr1sh/yaali-the-tamil-conversing-ai-35n8</link>
      <guid>https://dev.to/aj1thkr1sh/yaali-the-tamil-conversing-ai-35n8</guid>
      <description>&lt;h2&gt;
  
  
  Yaali
&lt;/h2&gt;

&lt;p&gt;I have created Yaali AI, using Neural Network, that one can communicate in Tamil&lt;/p&gt;

&lt;p&gt;Please look at the demo &lt;a href="https://www.instagram.com/p/CSkV7qIhs7N/"&gt;here&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Conversation
&lt;/h2&gt;

&lt;p&gt;When I say "Yaali", Yaali will reply "Sollunga"&lt;br&gt;
When I ask to say a joke,&lt;br&gt;
Yaali will say, "risk edukarathellam enakku rusk sapdramathiri",&lt;br&gt;
which is one of the actor Vadivelu's dialogues joke&lt;/p&gt;

&lt;p&gt;Thanks for reading&lt;/p&gt;

&lt;p&gt;Follow on&lt;br&gt;
&lt;a href="https://www.instagram.com/ajith_raghavan/"&gt;Instagram&lt;/a&gt;&lt;br&gt;
&lt;a href="https://twitter.com/ajith2krishna"&gt;Twitter&lt;/a&gt;&lt;/p&gt;

</description>
      <category>showdev</category>
      <category>python</category>
      <category>machinelearning</category>
      <category>yaali</category>
    </item>
    <item>
      <title>Single Page Application Library in Vanilla JS</title>
      <dc:creator>aj1thkr1sh</dc:creator>
      <pubDate>Sat, 20 Mar 2021 19:18:11 +0000</pubDate>
      <link>https://dev.to/aj1thkr1sh/single-page-application-in-vanilla-js-4cce</link>
      <guid>https://dev.to/aj1thkr1sh/single-page-application-in-vanilla-js-4cce</guid>
      <description>&lt;h1&gt;
  
  
  Flyght
&lt;/h1&gt;

&lt;p&gt;Hi, library for making Single Page Application (SPA) in Vanilla JavaScript library&lt;/p&gt;

&lt;p&gt;Flyght works based window.loction.hash whenever the hash changes, the configured URL will be triggered and page will be loaded&lt;/p&gt;

&lt;p&gt;One can easily make Single Page Application using the Flyght&lt;/p&gt;

&lt;p&gt;Simple, yet powerful&lt;/p&gt;

&lt;p&gt;Note : Single Page Application might affect SEO, choose appropriate case to use&lt;/p&gt;

&lt;h2&gt;
  
  
  Usage
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;script type="text/javascript" src="https://unpkg.com/flyght"&amp;gt;&amp;lt;/script&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Simple right?&lt;/p&gt;

&lt;p&gt;Yes, Simple yet powerful&lt;/p&gt;

&lt;h2&gt;
  
  
  Configuration
&lt;/h2&gt;

&lt;p&gt;You need to init the Flyght with required parameter, then your webpage will turn into SPA, like the Flyght way&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Flyght.init({
  idElement : "idElement",
  urlConfiguration : [ {
    hash : "#about",
    url : "/about.html",
    type : "GET"
  }, {
    hash : "#contact",
    url : "/contact.html",
    type : "GET"
  }, {
    hash : "#team",
    url : "/team.html",
    type : "GET"
  } ],
  requestHeader : [ {
    header : 'Content-type',
    value : 'application/json'
  } ]
});
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Configuration Parameters
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;idElement : Is the id of the DOM Element, where the loaded page is rendered&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;urlConfiguration : Is the Array of Object that has, url, hash, and request type&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;hash : The hash we provided&lt;/li&gt;
&lt;li&gt;url : For the given hash respective URL will be called and response will be attached to the idElement content&lt;/li&gt;
&lt;li&gt;type : The request type URL to be called&lt;/li&gt;
&lt;/ol&gt;


&lt;/li&gt;
&lt;li&gt;

&lt;p&gt;requestHeader : The header to be attached to the request&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;header : The header value to be attached to the header&lt;/li&gt;
&lt;li&gt;value : The value to the request header&lt;/li&gt;
&lt;/ol&gt;


&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://github.com/aj1thkr1sh/flyght"&gt;⭐ on GitHub&lt;/a&gt; if you love&lt;/p&gt;

&lt;p&gt;Follow Me on &lt;br&gt;
&lt;a href="https://twitter.com/ajith2krishna"&gt;Twitter&lt;/a&gt;&lt;br&gt;
&lt;a href="//instagram.com/ajith_raghavan/"&gt;Intsagram&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.linkedin.com/in/ajith-raghavan/"&gt;LinkedIn&lt;/a&gt;&lt;/p&gt;

</description>
      <category>flyght</category>
      <category>showdev</category>
      <category>javascript</category>
      <category>spa</category>
    </item>
    <item>
      <title>Access any HTML DOM Element, easier than ever</title>
      <dc:creator>aj1thkr1sh</dc:creator>
      <pubDate>Sat, 09 Jan 2021 08:41:33 +0000</pubDate>
      <link>https://dev.to/aj1thkr1sh/access-any-html-dom-element-easier-than-ever-628</link>
      <guid>https://dev.to/aj1thkr1sh/access-any-html-dom-element-easier-than-ever-628</guid>
      <description>&lt;h1&gt;
  
  
  EnFields
&lt;/h1&gt;

&lt;p&gt;Say, if you are developing the web application in JavaScript&lt;/p&gt;

&lt;p&gt;You need to manipulate the HTML DOM to add event listener or actions or anything by mapping the HTML DOM to JavaScript variables&lt;/p&gt;

&lt;p&gt;Example,&lt;br&gt;
if below is the HTML&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;......
&amp;lt;input type="text" id="name" placeholder="Name"&amp;gt;
&amp;lt;input type="email" id="email" placeholder="EMail"&amp;gt;
&amp;lt;input type="number" id="mobile_number" placeholder="Mobile Number"&amp;gt;
......
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;you need to map those HTML DOM to JavaScript variable to access&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;......
var name = document.getElementById("name");
var email = document.getElementById("email");
var mobileNumber = document.getElementById("mobile_number");
......
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;then you can get the values or attach event or whatever you want to manipulate the HTML DOM&lt;/p&gt;

&lt;h4&gt;
  
  
  🤔 What if the library does this for you?
&lt;/h4&gt;

&lt;h2&gt;
  
  
  Say Hi, to EnFields
&lt;/h2&gt;

&lt;p&gt;EnFields does the process for you&lt;/p&gt;

&lt;h2&gt;
  
  
  😲 How?
&lt;/h2&gt;

&lt;p&gt;It is very simple.  Include the library in you webpage&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;script src="https://unpkg.com/enfields"&amp;gt;&amp;lt;/script&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;then,&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;EnFields.start();
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  🎉 Ta-da!
&lt;/h3&gt;

&lt;p&gt;The&lt;br&gt;
&lt;/p&gt;

&lt;p&gt;&lt;code&gt;&amp;lt;input type="text" id="name" placeholder="Name"&amp;gt;&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;p&gt;DOM will map to variable&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;_name
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h1&gt;
  
  
  😍
&lt;/h1&gt;

&lt;h3&gt;
  
  
  How cool, right?
&lt;/h3&gt;

&lt;h3&gt;
  
  
  ⚙️ Naming Convention( What will be the name of the variable? )
&lt;/h3&gt;

&lt;p&gt;The name given to the id that is&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;id="name"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;, the "name" is taken, appending with preceding underscore, so, the&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;_name
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;is the variable generated, which will be added to window object.  So, directly using&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;_name
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;will refer to that HTML DOM&lt;/p&gt;

&lt;h3&gt;
  
  
  🔧 EnFields parameters
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;EnFields.start()
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;accepts the object of below type,&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;queryElement : is the value, where the variable generation process starts, if not provided then, all id element from the HTML DOM will be generated&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Example&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;  &amp;lt;form id="user-form"&amp;gt;......&amp;lt;/form&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;  EnFields.start({
    queryElement: 'user-form'
  });

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The variable, will be generated for all the HTML DOM element containing id attribute, in user-form HTML DOM, including user-form tag&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;targetObject : is used to assign the generated variable to the provided target object, instead of window object&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Example&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;  var UserForm = {};

  EnFields.start({
    targetObject: UserForm
  });

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The variables will be generated and will be stored to UserForm object instead of window object&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;idList : list of id names in array, if passed, variables will be generated only for the ids, contained in this array&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Example&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;  EnFields.start({
    idList: ['name', 'email']
  });

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The variable will be generated only for name and email HTML DOM&lt;/p&gt;

&lt;p&gt;However, one can use all the three keys to make more flexible&lt;/p&gt;

&lt;p&gt;Example&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;EnFields.start({
  targetObject: UserForm,
  queryElement: 'user-form',
  idList: ['name', 'email']
});

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://github.com/aj1thkr1sh/EnField"&gt;⭐ Star on GitHub&lt;/a&gt; if you love&lt;/p&gt;

</description>
      <category>showdev</category>
      <category>javascript</category>
      <category>web</category>
      <category>enfields</category>
    </item>
    <item>
      <title>Stylq: 5000+ downloads</title>
      <dc:creator>aj1thkr1sh</dc:creator>
      <pubDate>Sat, 21 Nov 2020 08:32:26 +0000</pubDate>
      <link>https://dev.to/aj1thkr1sh/stylq-5000-downloads-3cbi</link>
      <guid>https://dev.to/aj1thkr1sh/stylq-5000-downloads-3cbi</guid>
      <description>&lt;h3&gt;
  
  
  Hi, Thank You for 5000+ downloads on Stylq
&lt;/h3&gt;

&lt;p&gt;Stylq is the cool syntax language, allows user to make website more easily and effectively.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Stlyq is the Rich Syntax file that generate HTML file. &lt;/li&gt;
&lt;li&gt;Stylq uses variable to make website fastly and effectively.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Download and enjoy &lt;a href="https://www.npmjs.com/package/stylq"&gt;here&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/aj1thkr1sh/stylq"&gt;Star on GitHub&lt;/a&gt; if you like Stylq&lt;/p&gt;

&lt;h3&gt;
  
  
  Stylq CLI
&lt;/h3&gt;

&lt;p&gt;One can also use &lt;a href="https://www.npmjs.com/package/stylq-cli"&gt;Stylq CLI&lt;/a&gt; to achieve the same more effectively&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/aj1thkr1sh/stylq-cli"&gt;Stylq-CLI Github&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Thanks for the support&lt;/p&gt;

</description>
      <category>stylq</category>
      <category>javascript</category>
      <category>npm</category>
      <category>showdev</category>
    </item>
    <item>
      <title>Stylq CLI</title>
      <dc:creator>aj1thkr1sh</dc:creator>
      <pubDate>Sat, 04 Jan 2020 06:35:01 +0000</pubDate>
      <link>https://dev.to/aj1thkr1sh/stylq-cli-1gph</link>
      <guid>https://dev.to/aj1thkr1sh/stylq-cli-1gph</guid>
      <description>&lt;h1&gt;
  
  
  Stylq
&lt;/h1&gt;

&lt;p&gt;Stylq is the cool syntax HTML Preprocessor.&lt;br&gt;
Stylq will allow user to make HTML file more easily.&lt;br&gt;
Stlyq is the Rich Syntax file to generator HTML file in the easy way.  Stylq is easy readable and writable.&lt;/p&gt;
&lt;h1&gt;
  
  
  Stylq CLI
&lt;/h1&gt;

&lt;p&gt;Stylq CLI is the easy way to process Stylq file&lt;/p&gt;
&lt;h2&gt;
  
  
  Command Line Usage
&lt;/h2&gt;

&lt;p&gt;For NPM&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;  npm i stylq-cli
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;For YARN&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;  yarn add stylq-cli
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  General Syntax
&lt;/h2&gt;

&lt;p&gt;Use&lt;br&gt;
1.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;stylq FileName.stylq
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;to process the file and save as the same name&lt;/p&gt;

&lt;p&gt;2.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;stylq FileName.stylq TargetFile.html
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;to process and save to the target location&lt;/p&gt;

&lt;p&gt;Thanks for reading.&lt;/p&gt;

&lt;p&gt;Please Star on GitHub if you like it.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/aj1thkr1sh/stylq"&gt;Stylq&lt;/a&gt;&lt;br&gt;
&lt;a href="https://github.com/aj1thkr1sh/Stylq-CLI"&gt;StylqCLI&lt;/a&gt;&lt;/p&gt;

</description>
      <category>stylq</category>
      <category>stylqcli</category>
      <category>cli</category>
      <category>html</category>
    </item>
    <item>
      <title>Find the real world match that you draw</title>
      <dc:creator>aj1thkr1sh</dc:creator>
      <pubDate>Sun, 01 Sep 2019 05:52:05 +0000</pubDate>
      <link>https://dev.to/aj1thkr1sh/find-the-real-world-match-that-you-draw-19pn</link>
      <guid>https://dev.to/aj1thkr1sh/find-the-real-world-match-that-you-draw-19pn</guid>
      <description>&lt;h1&gt;
  
  
  Hi I am Ajith, I have created the web application called MagicDraw
&lt;/h1&gt;

&lt;p&gt;You can draw the image and find the near exact match of the real world picture&lt;/p&gt;

&lt;p&gt;This application (MagicDraw) creation date  :  30/08/2019&lt;/p&gt;

&lt;p&gt;Take a look in Instagram  : &lt;a href="https://www.instagram.com/p/B10_CE-jDq8/?igshid=1toi26d7yxo9b"&gt;https://www.instagram.com/p/B10_CE-jDq8/?igshid=1toi26d7yxo9b&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Take a look&lt;/p&gt;

&lt;p&gt;cover_image:&lt;a href="https://thepracticalde/v.s3.amazonaws.com/i/omss4z0j88w0hesym7ew.png"&gt;https://thepracticalde/v.s3.amazonaws.com/i/omss4z0j88w0hesym7ew.png&lt;/a&gt;&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>showdev</category>
    </item>
    <item>
      <title>Color You console, with iPrint</title>
      <dc:creator>aj1thkr1sh</dc:creator>
      <pubDate>Sat, 15 Jun 2019 05:16:18 +0000</pubDate>
      <link>https://dev.to/aj1thkr1sh/color-you-console-with-iprint-4f3p</link>
      <guid>https://dev.to/aj1thkr1sh/color-you-console-with-iprint-4f3p</guid>
      <description>&lt;h1&gt;
  
  
  iPrint
&lt;/h1&gt;

&lt;p&gt;Hi, cosole.log(value);&lt;br&gt;
is cool 😎 but it is very large syntax to, type.&lt;br&gt;
And,&lt;br&gt;&lt;br&gt;
how cool if you have to just do type&lt;/p&gt;



&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;  iPrint('Hi');
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;and adding color to the console?&lt;br&gt;
😲&lt;/p&gt;

&lt;h2&gt;
  
  
  Here you are!
&lt;/h2&gt;

&lt;p&gt;iPrint is the cool console logger.&lt;/p&gt;

&lt;p&gt;iPrint gives color to your "console"!&lt;/p&gt;

&lt;h2&gt;
  
  
  Command Line Usage
&lt;/h2&gt;

&lt;p&gt;For NPM&lt;/p&gt;



&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;  npm install iprint
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



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



&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;  npm i iprint
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;h1&gt;
  
  
  Example
&lt;/h1&gt;



&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
  var iPrint = require('iPrint').iPrinter;

  iPrint('Hi, everyone');

  iPrint('Hi everyone - Magenta Color','magenta');

  iPrint('Hi, everyone - Blue Background','bgblue');

  iPrint('iPrintDefaultColor','cyan'); // Changes default output color from 'blue' to 'cyan'

  iPrint('Hi, default color changed form blue to cyan');

&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;h2&gt;
  
  
  General Syntax
&lt;/h2&gt;

&lt;p&gt;Just type as follow&lt;/p&gt;

&lt;p&gt;..1. To just print the string (default color is blue)&lt;/p&gt;



&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;    iPrint(value);
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;..2. To add color to your string&lt;/p&gt;



&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;    iPrint(value,colorValue);
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;..3. To add background color to your string&lt;/p&gt;



&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;    iPrint(value,backgroundColorValue);
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;..4. To change default color to your string&lt;/p&gt;



&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;    iPrint('iPrintDefaultColor',colorValue);
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;'iPrintDefaultColor' is strict notation of changing the default color of output string.&lt;/p&gt;

&lt;p&gt;Here after output's default color will be changed.&lt;/p&gt;

&lt;h1&gt;
  
  
  Color Values
&lt;/h1&gt;



&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;    iPrint(value,colorValue);
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;colorValue = 'blue'&lt;/li&gt;
&lt;li&gt;colorValue = 'red'&lt;/li&gt;
&lt;li&gt;colorValue = 'green'&lt;/li&gt;
&lt;li&gt;colorValue = 'yellow'&lt;/li&gt;
&lt;li&gt;colorValue = 'cyan'&lt;/li&gt;
&lt;li&gt;colorValue = 'white'&lt;/li&gt;
&lt;li&gt;colorValue = 'black'&lt;/li&gt;
&lt;li&gt;colorValue = 'magenta'&lt;/li&gt;
&lt;/ol&gt;

&lt;h1&gt;
  
  
  Background Color Values
&lt;/h1&gt;



&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;      iPrint(value,backgroundColorValue);
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;colorValue = 'bgblue'&lt;/li&gt;
&lt;li&gt;colorValue = 'bgred'&lt;/li&gt;
&lt;li&gt;colorValue = 'bggreen'&lt;/li&gt;
&lt;li&gt;colorValue = 'bgyellow'&lt;/li&gt;
&lt;li&gt;colorValue = 'bgcyan'&lt;/li&gt;
&lt;li&gt;colorValue = 'bgwhite'&lt;/li&gt;
&lt;li&gt;colorValue = 'bgblack'&lt;/li&gt;
&lt;li&gt;colorValue = 'bgmagenta'&lt;/li&gt;
&lt;/ol&gt;

</description>
      <category>iprint</category>
      <category>javascript</category>
      <category>node</category>
    </item>
    <item>
      <title>Stylq</title>
      <dc:creator>aj1thkr1sh</dc:creator>
      <pubDate>Mon, 20 Aug 2018 15:56:07 +0000</pubDate>
      <link>https://dev.to/aj1thkr1sh/stylq-4o3p</link>
      <guid>https://dev.to/aj1thkr1sh/stylq-4o3p</guid>
      <description>&lt;p&gt;title: Stylq&lt;br&gt;
published: true&lt;br&gt;
description: Stylq is the cool syntax HTML Preprocessor. Stylq will allow user to make HTML file more easily. Stlyq is the Rich Syntax file to generator HTML file in the easy way. Stylq is the easy readable and writable.&lt;/p&gt;

&lt;p&gt;Usage and Example&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;  var stylq = require('stylq');

  stylq.process('sample.stylq');
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;To Send to another location&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;  stylq.processAndSend('sample.stylq','targetFileName.html');
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Here is the sample file that is given as input.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt; //sample.stylq

  html{
    head{
      title{
        The Title of the Page
      }
    }
    body{
      h1{
        This is header
      }
      p id="paragraph-id"{
        This is paragraph
      }
      h2 style="color: blue;" id="heading-line"{
        The Multi attributes
      }
    }
  }
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://www.npmjs.com/package/stylq"&gt;NPM&lt;/a&gt;&lt;br&gt;
&lt;a href="https://yarnpkg.com/en/package/stylq"&gt;Yarn&lt;/a&gt;&lt;br&gt;
tags: js,stylq,webdev,html&lt;/p&gt;

</description>
      <category>stylq</category>
      <category>html</category>
      <category>javascript</category>
      <category>webdev</category>
    </item>
  </channel>
</rss>
