<?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: Kresimir Pendic</title>
    <description>The latest articles on DEV Community by Kresimir Pendic (@kpendic).</description>
    <link>https://dev.to/kpendic</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%2F48180%2F351e1473-2175-427f-8a95-74d3a5ec4b6a.jpeg</url>
      <title>DEV Community: Kresimir Pendic</title>
      <link>https://dev.to/kpendic</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/kpendic"/>
    <language>en</language>
    <item>
      <title>My Google AI Studio submission - ASL reader/generator</title>
      <dc:creator>Kresimir Pendic</dc:creator>
      <pubDate>Sat, 23 Aug 2025 20:53:19 +0000</pubDate>
      <link>https://dev.to/kpendic/my-google-ai-studio-submission-asl-readergenerator-31mg</link>
      <guid>https://dev.to/kpendic/my-google-ai-studio-submission-asl-readergenerator-31mg</guid>
      <description>&lt;p&gt;&lt;em&gt;This post is my submission for &lt;a href="https://dev.to/deved/build-apps-with-google-ai-studio"&gt;DEV Education Track: Build Apps with Google AI Studio&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Built
&lt;/h2&gt;

&lt;p&gt;Simple ASL app - sign language reader and generator :)&lt;/p&gt;

&lt;h3&gt;
  
  
  Main app logic
&lt;/h3&gt;

&lt;p&gt;Users use prompt input field and submit text that they want to convert into sign languages. Imagen generates image array for it.&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%2Fajs88z2ffy2ruxbxxzd8.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%2Fajs88z2ffy2ruxbxxzd8.png" alt="Sign language generator screen"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Another CTA is to get reading from users device camera, here I'm trying camera reader&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%2Fzty2mvc9sdll5a19902z.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%2Fzty2mvc9sdll5a19902z.png" alt="Camera Reading"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://sign-language-generator-935879828605.us-west1.run.app/" rel="noopener noreferrer"&gt;https://sign-language-generator-935879828605.us-west1.run.app/&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  My Experience
&lt;/h2&gt;

&lt;p&gt;The overall flow is excellent—it’s very easy to get up and running. Ideas move from concept to execution faster than you can type “The quick brown fox jumps over the lazy dog.”&lt;/p&gt;

&lt;p&gt;I especially appreciate, and is a revolution on its own, the rocket icon 🚀 and the Cloud Run deployment integration. Developers know all too well how painful and time-consuming deployments can be, so this smooth experience is a real highlight.&lt;/p&gt;

&lt;p&gt;My original prompt:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;"Please create an app that generates a hand-position images array—for sign language - based on a user's prompt. If the prompt is long, summarize it using Gemini. Also, include explanatory captions below each hand-position image."&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;My extension to the prompt:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;"Add a main call-to-action button below the prompt input field, labeled Teach me BASIC ASL signs. When clicked, request access to the user’s device camera, and use it to recognize the user’s signs as input. This allows the system to act as a tutor, guiding and teaching the user basic sign language."&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;I believe this concept has real potential to transform how we think about accessibility tools. By combining AI-generated imagery, summarization, and real-time camera input, developers and learners alike gain an interactive tutor for sign language.&lt;/p&gt;

&lt;p&gt;This could be a genuine game-changer.&lt;/p&gt;

</description>
      <category>deved</category>
      <category>learngoogleaistudio</category>
      <category>ai</category>
      <category>gemini</category>
    </item>
    <item>
      <title>Javascript - dynamically generated variable names!</title>
      <dc:creator>Kresimir Pendic</dc:creator>
      <pubDate>Wed, 06 May 2020 12:13:00 +0000</pubDate>
      <link>https://dev.to/kpendic/javascript-dynamically-generated-variable-names-34ke</link>
      <guid>https://dev.to/kpendic/javascript-dynamically-generated-variable-names-34ke</guid>
      <description>&lt;p&gt;&lt;code&gt;Sometimes i feel like - put my hands up in the air&lt;/code&gt; .. no, sorry this post was not about songs and lyrics and putting your limbs airborne .. it's about my old issue that I thought I can't pull with javascript - but I was wrong. And that is, to generate some sort of 'loop-able' variable names - naming,, naming.. :(&lt;/p&gt;

&lt;p&gt;Sort of, to be able to make variables in series, like: var1, var2, var3 ... simply by looping:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="c1"&gt;// some random arr&lt;/span&gt;
&lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;arr&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;cat&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kc"&gt;null&lt;/span&gt; &lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="c1"&gt;// loop and generate dynamic variable names&lt;/span&gt;
&lt;span class="k"&gt;for&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;i&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="nx"&gt;i&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="nx"&gt;arr&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;length&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="o"&gt;++&lt;/span&gt;&lt;span class="p"&gt;){&lt;/span&gt;
    &lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="kd"&gt;var&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="nx"&gt;i&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;i&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="c1"&gt;// &amp;gt;&amp;gt; this will surely fail, can't do that in JS&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;But that is not doable in javascript.. and that got me pretty hard .. because my brain think in way that should be doable ..?&lt;/p&gt;

&lt;p&gt;So today I found out that solution to that problem was instead of variables, to think of array members .. we can easily change keys in array, and as in this simple example below I'll be able to iterate over loop and add any &lt;code&gt;key as variable&lt;/code&gt; name to it:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="c1"&gt;// some random arr&lt;/span&gt;
&lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;arr&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;cat&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt; &lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="c1"&gt;// foo array is "holder" of dynamic variables&lt;/span&gt;
&lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;foo&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[]&lt;/span&gt; &lt;span class="p"&gt;;&lt;/span&gt; 
&lt;span class="c1"&gt;// loop and generate dynamic variable names&lt;/span&gt;
&lt;span class="k"&gt;for&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;i&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="nx"&gt;i&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="nx"&gt;arr&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;length&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="o"&gt;++&lt;/span&gt;&lt;span class="p"&gt;){&lt;/span&gt;
    &lt;span class="nx"&gt;foo&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;slider&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="nx"&gt;arr&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt; &lt;span class="nx"&gt;i&lt;/span&gt; &lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt; &lt;span class="nx"&gt;i&lt;/span&gt; &lt;span class="p"&gt;]&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="nx"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="nx"&gt;foo&lt;/span&gt; &lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="c1"&gt;// [slider2: 2, slider1: 3, slider4: 0, slidercat: 1, sliderfalse: 6]&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



</description>
      <category>dynamic</category>
      <category>generatevariables</category>
    </item>
  </channel>
</rss>
