<?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: Sean Velasco</title>
    <description>The latest articles on Forem by Sean Velasco (@seanvelasco).</description>
    <link>https://forem.com/seanvelasco</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%2F721775%2Fb32a9e66-0278-42d3-958b-858aafcce17d.jpeg</url>
      <title>Forem: Sean Velasco</title>
      <link>https://forem.com/seanvelasco</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/seanvelasco"/>
    <language>en</language>
    <item>
      <title>memegraph - search and explore memes</title>
      <dc:creator>Sean Velasco</dc:creator>
      <pubDate>Mon, 13 May 2024 02:11:36 +0000</pubDate>
      <link>https://forem.com/seanvelasco/memegraph-search-and-explore-memes-533c</link>
      <guid>https://forem.com/seanvelasco/memegraph-search-and-explore-memes-533c</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/netlify"&gt;Netlify Dynamic Site Challenge&lt;/a&gt;: Visual Feast.&lt;/em&gt;&lt;/p&gt;

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

&lt;p&gt;Memegraph is a search engine and recommendation engine for memes using OpenAI CLIP.&lt;/p&gt;

&lt;p&gt;Search memes via keywords, explore memes with the same template, and discover memes that are visually similar.&lt;/p&gt;

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

&lt;p&gt;Please check it out here - &lt;a href="https://memegraph.netlify.app" rel="noopener noreferrer"&gt;memegraph.netlify.app&lt;/a&gt;!&lt;/p&gt;

&lt;p&gt;Source available here - &lt;a href="https://github.com/seanvelasco/memegraph" rel="noopener noreferrer"&gt;github.com/seanvelasco/memegraph&lt;/a&gt;!&lt;/p&gt;

&lt;h4&gt;
  
  
  Don't know the name of a meme? Just describe the meme!
&lt;/h4&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%2Fsczkb2uwcfhox9rn7rlz.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%2Fsczkb2uwcfhox9rn7rlz.png" alt="Guy Thinking In Bed meme" width="800" height="389"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Discover memes about your favorite topics
&lt;/h4&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%2Fiitsst385tuokjwr7ekd.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%2Fiitsst385tuokjwr7ekd.png" alt="The Office memes" width="800" height="451"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Look up that obscure meme you saw
&lt;/h4&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%2F9hkir8tzn7bdfwel3u9f.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%2F9hkir8tzn7bdfwel3u9f.png" alt="Memes about Spongebob and Myers-Briggs Type Indicator (MBTI)" width="800" height="455"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Discover memes that are visually similar
&lt;/h4&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%2F93rs54z43dd4zyeibpu0.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%2F93rs54z43dd4zyeibpu0.png" alt="Boardroom meme" width="800" height="455"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  New way to browse memes
&lt;/h4&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%2F6g0hkgu0hevum8lhqxqr.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%2F6g0hkgu0hevum8lhqxqr.png" alt="Memegraph home" width="800" height="455"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Platform Primitives
&lt;/h2&gt;

&lt;p&gt;This uses Netlify Image CDN to deliver and transform memes efficiently to enhance user experience. &lt;/p&gt;

&lt;p&gt;Because memes stay the same throughout its lifetime, the cache policy is to cache the memes by default, for the longest amount of time possible. The challenge is, memes are retrieved at random on the homepage, so some memes are cached and some are not.&lt;/p&gt;

&lt;p&gt;All the memes are stored in another Blob storage provider, however I plan to migrate them to Netlify Blobs (just need to figure out how to upload in bulk or in batches efficiently). &lt;/p&gt;

</description>
      <category>netlifychallenge</category>
      <category>devchallenge</category>
      <category>webdev</category>
      <category>javascript</category>
    </item>
    <item>
      <title>Slater - virtual language learning companion</title>
      <dc:creator>Sean Velasco</dc:creator>
      <pubDate>Mon, 15 Apr 2024 05:26:52 +0000</pubDate>
      <link>https://forem.com/seanvelasco/slater-virtual-language-learning-companion-4flp</link>
      <guid>https://forem.com/seanvelasco/slater-virtual-language-learning-companion-4flp</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/devteam/join-us-for-the-cloudflare-ai-challenge-3000-in-prizes-5f99"&gt;Cloudflare AI Challenge&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

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

&lt;p&gt;A simple virtual foreign language learning companion specialized in holding conversations, helping with translations, and improving diction.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvmk8ps3uaaux9aivih9j.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvmk8ps3uaaux9aivih9j.png" alt="Image description" width="800" height="850"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqeq722w45gxrg3edli5w.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqeq722w45gxrg3edli5w.png" alt="Image description" width="800" height="476"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdwz904lk0ltz5r68yxdu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdwz904lk0ltz5r68yxdu.png" alt="Image description" width="800" height="544"&gt;&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;Please check out the demo at &lt;a href="https://slater.sean.app"&gt;slater.sean.app&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  My Code
&lt;/h2&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--A9-wwsHG--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/seanvelasco"&gt;
        seanvelasco
      &lt;/a&gt; / &lt;a href="https://github.com/seanvelasco/slater"&gt;
        slater
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      Cloudflare AI challenge submission: Slater - your virtual foreign language friend
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;Slater - your virtual foreign language friend&lt;/h1&gt;
&lt;/div&gt;
&lt;p&gt;Conversational, context-aware, and multi-modal chatbot specialized in carrying basic conversations in foreign languages.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://dev.to/seanvelasco" rel="nofollow"&gt;Submission&lt;/a&gt; to the &lt;a href="https://dev.to/devteam/join-us-for-the-cloudflare-ai-challenge-3000-in-prizes-5f99" rel="nofollow"&gt;Cloudflare AI Challenge&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Please check out the &lt;a href="https://slater.sean.app" rel="nofollow"&gt;demo&lt;/a&gt;.&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Problem and pain points&lt;/h2&gt;
&lt;/div&gt;
&lt;p&gt;I want to learn Mandarin, but I don't have a Mandarin-speaking friend to practice with. I'm also not confident enough with my foreign language skills to speak with a Mandarin-speaking person online.&lt;/p&gt;
&lt;p&gt;Duolingo doesn't teach me how to write or speak the things I want to express. For example, I want to say &lt;em&gt;This is my favorite coffee shop&lt;/em&gt;. I know how to construct the sentence, but I don't know the Mandarin word for &lt;em&gt;favorite&lt;/em&gt;. So, I end up saying - &lt;em&gt;Zhe tiao wo de &lt;strong&gt;favorite&lt;/strong&gt; kafei guan&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;Google Translate lacks certain language nuances. It also doesn't keep track of the things I looked up.&lt;/p&gt;
&lt;p&gt;Keeping notes of the words…&lt;/p&gt;
&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/seanvelasco/slater"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;



&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--A9-wwsHG--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/seanvelasco"&gt;
        seanvelasco
      &lt;/a&gt; / &lt;a href="https://github.com/seanvelasco/slater-worker"&gt;
        slater-worker
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      Cloudflare Workers that power Slater
    &lt;/h3&gt;
  &lt;/div&gt;
&lt;/div&gt;


&lt;h2&gt;
  
  
  Journey
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Pain points and motivation
&lt;/h3&gt;

&lt;p&gt;I want to learn Mandarin, but I don't have a Mandarin-speaking friend to practice with. I'm also not confident enough with my foreign language skills to speak with a Mandarin-speaking person online.&lt;/p&gt;

&lt;p&gt;Duolingo doesn't teach me how to write or speak the things I want to express. For example, I want to say &lt;em&gt;This is my favorite coffee shop&lt;/em&gt;. I know how to construct the sentence, but I don't know the Mandarin word for &lt;em&gt;favorite&lt;/em&gt;. So, I end up saying - &lt;em&gt;Zhe tiao wo de &lt;strong&gt;favorite&lt;/strong&gt; kafei guan&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;Google Translate lacks certain language nuances. It also doesn't keep track of the things I looked up.&lt;/p&gt;

&lt;p&gt;Keeping notes of the words I learn takes effort - I have to write down the English word, hanzi, pinyin, and how it is used in a sentence.&lt;/p&gt;

&lt;p&gt;Therefore, I wanted to create an experience where I can converse freely in a foreign language without fear of judgement, where I can quickly translate (and save as "learned") words, and where I can practice my diction (Chinese pronunciations are really hard).&lt;/p&gt;

&lt;p&gt;This is my first time developing an LLM app. I learned a lot in a span of two days (I learned of this challenge a little bit late). The next steps would be, developing this further for personal use, and to extend the use-cases for other languages.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Multiple Models and/or Triple Task Types&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Slater has three modes: conversation mode, translation mode, and speaking/diction mode.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Meta LLama 2 for general conversations, but instructed to limit and focus its scope to language learning.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Meta Meta M2M-100 for text translations between English and Mandarin Chinese.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;OpenAI Whisper for speech-to-text. However, currently figuring out how to make it work with Mandarin Chinese.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>cloudflarechallenge</category>
      <category>devchallenge</category>
      <category>ai</category>
    </item>
  </channel>
</rss>
