<?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: Abraham Duno</title>
    <description>The latest articles on Forem by Abraham Duno (@3duno).</description>
    <link>https://forem.com/3duno</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%2F1037308%2F8b800c61-131e-45ad-8aa5-fc370149a71c.png</url>
      <title>Forem: Abraham Duno</title>
      <link>https://forem.com/3duno</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/3duno"/>
    <language>en</language>
    <item>
      <title>Study.taxi — a Duolingo clone for everything and anything: an AI WebApp Experiment</title>
      <dc:creator>Abraham Duno</dc:creator>
      <pubDate>Tue, 06 May 2025 00:54:54 +0000</pubDate>
      <link>https://forem.com/3duno/studytaxi-a-duolingo-clone-for-everything-and-anything-an-ai-webapp-experiment-3pii</link>
      <guid>https://forem.com/3duno/studytaxi-a-duolingo-clone-for-everything-and-anything-an-ai-webapp-experiment-3pii</guid>
      <description>&lt;p&gt;In an era where traditional education systems are being challenged by technological innovation, &lt;a href="https://www.study.taxi/" rel="noopener noreferrer"&gt;study.taxi&lt;/a&gt; emerges as a new approach to learning on the go. This AI-powered course creation platform is a procedurally generated educational tool — it’s a clone of how we consume educational content, with a shift on how we create 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%2Fzkp0bjhppad0ycglcuf7.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%2Fzkp0bjhppad0ycglcuf7.png" alt="study.taxi dashboard" width="800" height="289"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The Problem with Traditional Learning
&lt;/h2&gt;

&lt;p&gt;Traditional learning courses often follow a one-size-fits-all approach, leaving many niche learners behind. Whether it’s the pace of learning, the teaching style, or the content itself, conventional education systems struggle to accommodate individual learning needs. This is where &lt;a href="https://www.study.taxi/" rel="noopener noreferrer"&gt;study.taxi&lt;/a&gt; steps in, offering a solution that’s as unique as each learner.&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%2Ft6pk2yi87raxh5qfg5t5.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%2Ft6pk2yi87raxh5qfg5t5.png" alt="study.taxi profile dashboard" width="800" height="232"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;At its core, &lt;a href="https://www.study.taxi/" rel="noopener noreferrer"&gt;study.taxi&lt;/a&gt; is an AI-powered platform that generates personalized courses for any subject imaginable. What sets it apart is its ability to create procedurally generated, multi-options gamified lessons that adapt to each learner’s needs. Whether you’re a beginner taking your first steps in a subject or an expert looking to build a habit and deepen your knowledge, &lt;a href="https://www.study.taxi/" rel="noopener noreferrer"&gt;study.taxi&lt;/a&gt; provides an intuitive interface for your learning journey.&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%2Fav1iyuorathtwgf1n7bo.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%2Fav1iyuorathtwgf1n7bo.png" alt="study.taxi graphic" width="800" height="478"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Key Features
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;AI-Powered Personalization&lt;br&gt;
— Multiple AI models working in harmony&lt;br&gt;
— Content generation tailored to individual learning styles&lt;br&gt;
— Adaptive difficulty levels&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;User-Centric Design&lt;br&gt;
— Intuitive interface for both learners and educators&lt;br&gt;
— Mobile-optimized experience for learning on the go&lt;br&gt;
— Advanced learning analytics for progress tracking&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Modern Tech Stack&lt;br&gt;
— Built on Next.js for optimal performance&lt;br&gt;
— Powered by Supabase for robust data management&lt;br&gt;
— Enhanced with 3D visualization capabilities through react-three ecosystem.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  The Technology Behind the Innovation
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://www.study.taxi/" rel="noopener noreferrer"&gt;study.taxi&lt;/a&gt; leverages cutting-edge technology to deliver its promise of personalized learning:&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%2F3jhquja5k4gjflnzq1l2.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%2F3jhquja5k4gjflnzq1l2.png" alt="study.taxi dashboard tool" width="800" height="365"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;AI Integration: Multiple AI models work together to generate and personalize content&lt;/li&gt;
&lt;li&gt;3D Visualization: The platform incorporates three.js for immersive learning experiences&lt;/li&gt;
&lt;li&gt;Real-time Collaboration: Built-in tools for study groups and collaborative learning&lt;/li&gt;
&lt;li&gt;Progress Tracking: Advanced analytics to monitor learning outcomes&lt;/li&gt;
&lt;/ul&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%2Fkpof2xd5kscdlu1zycgw.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%2Fkpof2xd5kscdlu1zycgw.png" alt="study.taxi graphic" width="800" height="386"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The Road Ahead
&lt;/h2&gt;

&lt;p&gt;The platform’s roadmap reveals an ambitious vision for the future of education:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Enhanced AI model selection for even better course customization&lt;/li&gt;
&lt;li&gt;Mobile-first approach for ubiquitous native app learners&lt;/li&gt;
&lt;li&gt;Advanced profile analytics for deeper insights into learning patterns&lt;/li&gt;
&lt;li&gt;Tools for educators to create and manage courses and donations&lt;/li&gt;
&lt;li&gt;Multiplayer collaborative features to foster community learning along channels and chat groups&lt;/li&gt;
&lt;/ul&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%2Fpx51jacye5hc6ah1yi4d.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%2Fpx51jacye5hc6ah1yi4d.png" alt="study.taxi dashboard lessons" width="800" height="366"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.study.taxi/" rel="noopener noreferrer"&gt;study.taxi&lt;/a&gt; stands out by combining AI technology with proven learning methodologies, it creates a platform that can adapt to any learning style, pace, or subject matter.&lt;/p&gt;

&lt;p&gt;The platform’s commitment to personalization and engagement through gamification makes learning not just effective but enjoyable. This approach could be the key to solving one of education’s biggest challenges: maintaining learner engagement while ensuring effective knowledge transfer.&lt;/p&gt;




&lt;h2&gt;
  
  
  Important links: &lt;a href="https://www.study.taxi/" rel="noopener noreferrer"&gt;study.taxi&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;Website / Application: study.taxi&lt;/p&gt;

&lt;p&gt;Anonymous feedback: study.taxi/feedback&lt;/p&gt;

&lt;p&gt;Contact: x.com/webduno&lt;/p&gt;

</description>
      <category>learning</category>
      <category>ai</category>
      <category>webdev</category>
      <category>softwaredevelopment</category>
    </item>
    <item>
      <title>Jueguificacion</title>
      <dc:creator>Abraham Duno</dc:creator>
      <pubDate>Sat, 06 Apr 2024 00:43:29 +0000</pubDate>
      <link>https://forem.com/3duno/jueguificacion-1ik9</link>
      <guid>https://forem.com/3duno/jueguificacion-1ik9</guid>
      <description>&lt;p&gt;Una metodología general orientada a soluciones para tratar problemas comunes.&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%2Ftyys735kxps3it0bs54a.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%2Ftyys735kxps3it0bs54a.png" alt="Image description" width="800" height="456"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  ¿Qué es la Jueguificacion o Ludificación?
&lt;/h2&gt;

&lt;p&gt;La gamificación es un patrón de abstracción por el cual un sistema es capaz de formar propiedades universales de los juegos. La intencion de las personas a interactuar y disfrutar de todo tipo de contextos de sistemas es incorporando a los elementos y mecánicas de juegos de mesa o videojuegos.&lt;br&gt;
Una estrategia de transformacion exitosa implica identificar principios de diseño de juegos y recompensas que se tengan sentido con los objetivos del proyecto y las preferencias de los usuarios. Es importante promover la gestion del tiempo de manera efectiva y actualizar la estrategia con el tiempo basándose en la retroalimentación y el comportamiento de los usuarios. Esto también puede usarse para reforzar comportamientos positivos y crear nuevos hábitos y rutinas desglosando tareas complejas en pasos más pequeños y manejables y recompensando los comportamientos positivos.&lt;br&gt;
Etapas de un Juego&lt;/p&gt;

&lt;h3&gt;
  
  
  Creación, Actualización y Accion o Comportamiento:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;1. Creando un Mundo&lt;/li&gt;
&lt;li&gt;2. Actualizando los Objetivos&lt;/li&gt;
&lt;li&gt;3. Generando las acciones del Jugador&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Elementos de un Juego
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Mundo

&lt;ul&gt;
&lt;li&gt;DOM&lt;/li&gt;
&lt;li&gt;NPC&lt;/li&gt;
&lt;/ul&gt;


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

&lt;ul&gt;
&lt;li&gt;Largo&lt;/li&gt;
&lt;li&gt;Corto&lt;/li&gt;
&lt;/ul&gt;


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

&lt;ul&gt;
&lt;li&gt;Control&lt;/li&gt;
&lt;li&gt;Estadísticas&lt;/li&gt;
&lt;/ul&gt;


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

&lt;h3&gt;
  
  
  Tipos de Juegos
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;1 = Juguete&lt;/li&gt;
&lt;li&gt;1 + 2 = Caja de arena&lt;/li&gt;
&lt;li&gt;1 + 2 + 3 = Misión&lt;/li&gt;
&lt;/ul&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%2Fxoopwv5e3wduw14lxugp.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%2Fxoopwv5e3wduw14lxugp.png" alt="Image description" width="800" height="253"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Etapas de un Juego
&lt;/h2&gt;

&lt;h4&gt;
  
  
  Paso 1: Creacion
&lt;/h4&gt;

&lt;p&gt;El aspecto de “crear” en la gamificación o jueguificación implica diseñar elementos similares a juegos que involucren y motiven a los usuarios, como puntos, metas, tareas y recompensas. Es importante establecer un diagrama de juego para definir cómo se usarán estos elementos.&lt;/p&gt;

&lt;p&gt;El siguiente paso es “observar” cómo los usuarios interactúan con el sistema gamificado y actualizar la lógica del juego según sea necesario.&lt;/p&gt;

&lt;h4&gt;
  
  
  Paso 2: Actualizacion
&lt;/h4&gt;

&lt;p&gt;Esto implica monitorear el comportamiento del usuario y recolectar y gestionar datos sobre cosas como la frecuencia con la que los usuarios interactúan con los elementos, cuáles acciones son más populares y qué tipos de comportamientos se están fomentando.&lt;/p&gt;

&lt;p&gt;Para aprovechar al máximo la gamificación, se deben crear objetivos específicos, medibles, alcanzables, relevantes y limitados por tiempo (SMART) para rastrear el progreso, mantener la motivación y lograr el éxito.&lt;/p&gt;

&lt;h4&gt;
  
  
  Paso 3: Accion
&lt;/h4&gt;

&lt;p&gt;Finalmente, el paso de la “accion” implica usar las percepciones obtenidas de observar el comportamiento del usuario para refinar y optimizar los elementos de gamificación.&lt;/p&gt;

&lt;p&gt;El éxito de una estrategia de gamificación depende en última instancia de cómo se comportan y se sienten los usuarios al usar el sistema, y hacer ajustes según sea necesario es clave para mantener su efectividad.&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%2F7k5p3g3nj1s1rm3lrprj.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%2F7k5p3g3nj1s1rm3lrprj.png" alt="Image description" width="800" height="455"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;La jueguificacion o gamificación es una herramienta poderosa para involucrar a los usuarios y motivar comportamientos positivos. Las actualizaciones y ajustes regulares son necesarios para garantizar su efectividad. Recuerda, jugar es la forma más avanzada de investigar.&lt;/p&gt;

&lt;p&gt;Conoce mas de como transformar aplicaciones de navegador a juegos 3D para movil siguiendo nuestras redes sociales&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Pagina del Juego Princial: &lt;a href="https://webpov.vercel.app"&gt;https://webpov.vercel.app&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Twitter: &lt;a href="https://x.com/webpov"&gt;https://x.com/webpov&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Youtube: &lt;a href="https://youtube.com/@webpov"&gt;https://youtube.com/@webpov&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>webdev</category>
      <category>programming</category>
      <category>gamedev</category>
      <category>systemdesign</category>
    </item>
    <item>
      <title>What is a Super Synced Software</title>
      <dc:creator>Abraham Duno</dc:creator>
      <pubDate>Tue, 27 Jun 2023 15:36:48 +0000</pubDate>
      <link>https://forem.com/3duno/what-is-a-super-synced-software-m89</link>
      <guid>https://forem.com/3duno/what-is-a-super-synced-software-m89</guid>
      <description>&lt;p&gt;Layer 1: Owned Data&lt;br&gt;
The first layer of data is the owned data, which is data that is created and owned by the developer.&lt;br&gt;
Owned Data includes three sub-layers of data that are owned and controlled by the developer. Handwritten data is manually created and can be modified easily. File-based databases are imported from external files and can be modified through server code. Database schema connections are queried from connected databases and can be modified through queries.&lt;br&gt;
1.1 Handwritten by Developer &lt;br&gt;
This sub-layer comprises of data that is handwritten by the developer and is available from the server. It doesn't need to be imported, queried, fetched, or retrieved, and it is manually mutable data.&lt;br&gt;
1.2 File-based Database &lt;br&gt;
This sub-layer consists of data that is available from the server and is imported from a file (.env, json, csv, etc.). This data can be mutated via server code.&lt;br&gt;
1.3 Database Schema Connection &lt;br&gt;
This sub-layer consists of data that is available from the server and is queried from a connected database. This data can be mutated via queries.&lt;/p&gt;

&lt;p&gt;Layer 2: Fetched Data&lt;br&gt;
The second layer of data is the fetched data, which is data that is fetched from external sources.&lt;br&gt;
Fetched Data includes three sub-layers of data that are fetched from external sources. Cached data is fetched from 3rd party servers and cached on re-entry. Fetched data from 3rd party endpoints is always updated on re-entry. Data saved in the browser is retrieved from the browser's local storage and can be modified by the user.&lt;br&gt;
2.1 Stored in Cache &lt;br&gt;
This sub-layer comprises data that is available from the server and is fetched from a third-party server. The data is cached upon re-entering, and it can be mutated via endpoint requests.&lt;br&gt;
2.2 Fetched from 3rd Party Endpoint &lt;br&gt;
This sub-layer consists of data that is available from the server and is fetched from a third-party server. The data is always updated upon re-entering, and it can be mutated via endpoint requests.&lt;br&gt;
2.3 Saved in Browser &lt;br&gt;
This sub-layer consists of data that is available from the client and is retrieved from the browser's local storage. This data can be mutated by the user and defaults to data available from the server.&lt;/p&gt;

&lt;p&gt;Layer 3: User Data&lt;br&gt;
The third and final layer of data is the user data, which is data that is generated by the user.&lt;br&gt;
User Data includes three sub-layers of data that are generated and modified by the user. Authorized local endpoint data is fetched from 3rd party servers but called through a local endpoint that is authorized. Fetched data from 3rd party endpoints is available from the client and can be modified. Data saved in the browser is an empty list that can be filled by the user and is reactive.&lt;br&gt;
3.1 Authorized Local Endpoint &lt;br&gt;
This sub-layer comprises data that is available from the client and is fetched from a third-party server, but calling a local endpoint. The data and request are authorized.&lt;br&gt;
3.2 3rd Party Endpoint Data &lt;br&gt;
This sub-layer consists of data that is available from the client and is fetched from a third-party endpoint.&lt;br&gt;
3.3 Saved in Browser &lt;br&gt;
This sub-layer comprises an empty list ready to be filled by the user. This data is reactive and user-generated.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>programming</category>
      <category>react</category>
      <category>javascript</category>
    </item>
    <item>
      <title>Inventory Simulation for General App Development</title>
      <dc:creator>Abraham Duno</dc:creator>
      <pubDate>Wed, 17 May 2023 00:23:43 +0000</pubDate>
      <link>https://forem.com/3duno/inventory-simulation-for-general-app-development-60b</link>
      <guid>https://forem.com/3duno/inventory-simulation-for-general-app-development-60b</guid>
      <description>&lt;p&gt;&lt;strong&gt;All applications are just "inventories" of arbitrary data.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A while back, after years of software design and development, I've come to realize that most of the software out there, is in it's essence; an inventory data tracking system.&lt;/p&gt;

&lt;p&gt;It all comes down to state machines and the most efficient way to funnel the specific type of data, generally coming from the most obscure corners of a hard-coded file, to the live rendering of the last just-typed key code by the user. All you need to do, is make the data travel throughout the system as seamlessly as possible, to the end of the current data-layer.&lt;/p&gt;

&lt;p&gt;While I do think its important to make distinctions between an app specific goals and objectives and its architecture, it is my opinion that following "CRUD" practices makes us follow the path of "all apps are just state machines".&lt;/p&gt;

&lt;p&gt;Chatting with LLMs about it, it is clear that they rather validate "all apps are just state machines" over "all apps are just inventory-like systems" because it seems that generalizing is frowned upon among LLMs, but ultimately they do agree on the general statement and the abstraction of the core idea, that most apps are doing, is receiving, computing and giving data to the user, meaning the magic is indeed gone from all conventional apps.&lt;/p&gt;

&lt;p&gt;LLMs however give a glimpse of hope into the future of software architecture and the mystical ways "applications" or "higher-intelligence" entities evolve. Unanswered questions for the future, what is software, what is an LLM? what is an entity, and again; what are applications?&lt;/p&gt;

</description>
      <category>programming</category>
      <category>discuss</category>
      <category>productivity</category>
      <category>ai</category>
    </item>
    <item>
      <title>AI Code Refactoring Tests</title>
      <dc:creator>Abraham Duno</dc:creator>
      <pubDate>Mon, 15 May 2023 21:28:58 +0000</pubDate>
      <link>https://forem.com/3duno/more-ai-code-generation-tests-1b1k</link>
      <guid>https://forem.com/3duno/more-ai-code-generation-tests-1b1k</guid>
      <description>&lt;p&gt;I want to test Bard, ChatGPT, and Bing; they will try to help me refactor a component that wraps around another one. The code is for a simple alert notification component made in a Next.js app (React) using TypeScript.&lt;/p&gt;

&lt;p&gt;I coded this component a while back while learning about React hooks, and I strongly believe it has a lot of room for improvement.&lt;/p&gt;

&lt;h1&gt;
  
  
  Working Code (Bad Code)
&lt;/h1&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import { useEffect } from "react"
import { useState } from "react"
import { useTimeout } from "usehooks-ts"


function AlertContainer({
    msg,
    delay = 4000,
    s__msg,
    badgeClass="ims-badge-faded",
}: any) {
    useEffect(()=&amp;gt;{
        if (msg == "") return

    },[msg])
    const onHide = ()=&amp;gt;{
        s__msg("")
    }

    if (msg != "") {
        return &amp;lt;AlertNotification s__msg={s__msg} delay={delay} onHide={onHide} alertMsg={msg} badgeClass={badgeClass} /&amp;gt;
    }
    return &amp;lt;&amp;gt;&amp;lt;/&amp;gt;
}

/**
 * Primary message to user with crucial information
 */
export function AlertNotification ({
    onHide=()=&amp;gt;{}, delay=4000, badgeClass="ims-badge-faded", alertMsg="",s__msg,
}: any) {
    const [visible, setVisible] = useState(true)

    const hide = ()=&amp;gt;{
        s__msg("")
        setVisible(false)
        onHide()
    }
    // console.log("delay", delay)
    // useEffect(()=&amp;gt;{
    useTimeout(()=&amp;gt;{
        if (!!delay) {
            hide()
        }
    }, delay)
// },[delay])

    if (alertMsg == "") return &amp;lt;&amp;gt;&amp;lt;/&amp;gt;
    return (
        &amp;lt;div className={
                `${visible ? (!!delay ? "appear-once-4 " : "appear-appear ") : ""} appear-hiding pos-fixed top-0 left-50p mt-3 z-999 translate-x--50`
            }
        &amp;gt;
            &amp;lt;div className={` ${badgeClass} px-3 py-2`}&amp;gt;
                {alertMsg}
            &amp;lt;/div&amp;gt;
        &amp;lt;/div&amp;gt;
    )
}

export default AlertContainer
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;To compare the responses of different AI Tutors, I will send the same prompt to each one and add the sentence "think about this" to encourage a general response.&lt;/p&gt;

&lt;p&gt;I am expecting a good explanation of the code in the style of a documentation page.&lt;/p&gt;

&lt;h2&gt;
  
  
  ChatGPT
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--iJfKm70l--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6z9useuwf5dm08jjbqb2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--iJfKm70l--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6z9useuwf5dm08jjbqb2.png" alt="Image description" width="654" height="417"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Bing
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--SSi1w2mM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/hjcr0oafxkhk1ivt1g98.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--SSi1w2mM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/hjcr0oafxkhk1ivt1g98.png" alt="Image description" width="800" height="358"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Bard
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--jIt55bIL--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/99je1exjbz3o8b6lsog3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--jIt55bIL--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/99je1exjbz3o8b6lsog3.png" alt="Image description" width="690" height="720"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I chose the versions I did because they are all free and open versions of LLMs. GPT-4 is likely to give the best results at the current time, but I’m solely testing free products to provide a reference for the price-quality ratio.&lt;/p&gt;

&lt;p&gt;Additionally i tested vicuna13b and gpt4all.&lt;/p&gt;

&lt;h2&gt;
  
  
  Vicuna
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--C3e-P7ND--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6fjy3gjca2u15wsjwlvb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--C3e-P7ND--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6fjy3gjca2u15wsjwlvb.png" alt="Image description" width="678" height="204"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  GPT4All
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--_QgQEjmr--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/hhe4x0mjszwd7muy79jr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--_QgQEjmr--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/hhe4x0mjszwd7muy79jr.png" alt="Image description" width="713" height="253"&gt;&lt;/a&gt;&lt;br&gt;
10 minutes later...&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--n-l6BPr---/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/o5jy9fm13jpn7pcnjiv4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--n-l6BPr---/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/o5jy9fm13jpn7pcnjiv4.png" alt="Image description" width="800" height="574"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Refactoring
&lt;/h1&gt;

&lt;p&gt;Clearing the chat history when generating code is important, as the iterative nature of past messages affect the accuracy of achieving a 0-error code.&lt;/p&gt;

&lt;p&gt;Now I'll explain my thinking process on coming up with a good first prompt, then follow the same prompts after in the same order to get me to a decent production ready result straight out of the tutor's response.&lt;/p&gt;

&lt;p&gt;As per my previous experiments i have a 3 step process in mind to get to a good result.&lt;/p&gt;

&lt;p&gt;First thing is straight up send the code in quotes so the tutors understand the limits of whats text and whats code with the context, a code description and a goal. As you you may guess we'll use one of the descriptions given to us by the tutors themselves on a previous life.&lt;/p&gt;

&lt;h1&gt;
  
  
  New First Prompt:
&lt;/h1&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;The code provided is a React component that displays an alert message to the user and dissapears thnks to a css class plus some react hooks logic. im using typescript
your task is refactor the code so that the duration is not only 4000ms, fix the logic and make it more dynamic
generate only the code snippet with a optimized version of the components

code:"""
// ... code
"""
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Secondly, if an answer has more than five errors after the first prompt, I do not attempt to fix them manually. Instead, I send a second prompt that says "The code you gave me has errors. Please detect and fix them."&lt;/p&gt;

&lt;p&gt;However, I have not had good results with this approach after many attempts. It seems that code generation is currently more advanced than code refactoring using LLMs.&lt;/p&gt;

&lt;p&gt;In future tests, I plan to completely abstract the component's idea in order to generate good and clean code from scratch. I believe that this will be a better approach for "refactoring" code as long as the logic is simple and probably done before. Past experiments have hinted to the fact that the current state of intelligence provided by free LLMs alternatives is on par with previously posted code on stackoverflow, reddit, github or other code-sharing platforms.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>bing</category>
      <category>bard</category>
      <category>chatgpt</category>
    </item>
    <item>
      <title>AI Code Generation Experiments</title>
      <dc:creator>Abraham Duno</dc:creator>
      <pubDate>Tue, 28 Mar 2023 14:59:38 +0000</pubDate>
      <link>https://forem.com/3duno/prompt-development-1bod</link>
      <guid>https://forem.com/3duno/prompt-development-1bod</guid>
      <description>&lt;p&gt;`&lt;br&gt;
im making simple browser game of simulated bitcoin trading, merged with mindful breathing practices&lt;br&gt;
generate a 1 month development sprint plan with initiatives, epics, story and tasks about &lt;/p&gt;

&lt;p&gt;follow this format for stories "As a  I want  so that"&lt;br&gt;
remember to generate the response in a structured tables format&lt;br&gt;
`&lt;/p&gt;

&lt;p&gt;&lt;code&gt;&lt;br&gt;
generate a game in a single block of code (for copy paste),&lt;br&gt;
use native javascript and canvas, don't use any third parties libraries&lt;br&gt;
the game is like the of pong, but rotated 90deg, &lt;br&gt;
the ball goes up and down, and only goes from left to right, and the movement of the ball is influenced by the candle price of a candle of the bitcoin price, use the native js fetch function, to build the "level" for the game, fetch from the public binance api&lt;br&gt;
the player scores once it places the platform correctly where the price bounced, just like the point you get, on pong once you bounce correctly the ball to the oponent&lt;br&gt;
&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;`make a standalone component that wraps around this component and rotates the light around the 0,0,0 of the scene&lt;/p&gt;

&lt;p&gt;"""&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;        &amp;lt;pointLight castShadow color={"#ffddcc"} intensity={1.2} position={[xOut*2, yOut*2, zOut*1.5]} /&amp;gt;
        &amp;lt;fog attach="fog" args={['#000000', 5, 10]} /&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;"""&lt;br&gt;
`&lt;/p&gt;

&lt;p&gt;&lt;code&gt;&lt;br&gt;
generate a js code-snippet, the html only where it will be pasted uses threejs (thru cdn) and no other third party libraries&lt;br&gt;
the scene has controller with 2 buttons (1 big box, with 2 smaller boxes on top)&lt;br&gt;
each button (smaller cube) when clicked respectively and lowers the "y" position as so to appear "pressed",&lt;br&gt;
only one button can be in a "pressed" state at one time&lt;br&gt;
only generate the js copy-pasteable block of code&lt;br&gt;
&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;&lt;br&gt;
generate a business plan for the digital startup complete with idea name, a short one liner, target user persona, user's pain points to solve, main value propositions, sales &amp;amp; marketing channels, revenue stream sources, cost structures, key activities, key resources, key partners, idea validation steps, estimated 1st year cost of operation, and potential business challenges to look for. Write the result in a markdown table&lt;br&gt;
&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;&lt;br&gt;
Act as a tech writer. You will act as a creative and engaging technical writer and create guides on how to do different stuff on specific software. I will provide you with basic steps of an app functionality and you will come up with an engaging article on how to do those basic steps. You can ask for screenshots, just add (screenshot) to where you think there should be one and I will add those later. These are the first basic steps of the app functionality: "1.Click on the download button depending on your platform 2.Install the file. 3.Double click to open the app"&lt;br&gt;
&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--OOHwsy1K--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/qf5lvnb3lgu51t7f7s8f.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--OOHwsy1K--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/qf5lvnb3lgu51t7f7s8f.png" alt="Image description" width="800" height="269"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>programming</category>
      <category>productivity</category>
      <category>ai</category>
      <category>chatgpt</category>
    </item>
    <item>
      <title>Gamification</title>
      <dc:creator>Abraham Duno</dc:creator>
      <pubDate>Thu, 23 Mar 2023 23:08:49 +0000</pubDate>
      <link>https://forem.com/3duno/gamification-52o</link>
      <guid>https://forem.com/3duno/gamification-52o</guid>
      <description>&lt;p&gt;&lt;em&gt;Gamified Abstraction Modeling Engine.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;A general solution-oriented methodology for dealing with common problems&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--GH5YecBg--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/fl19cwwt6qzd9s4ci0bl.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--GH5YecBg--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/fl19cwwt6qzd9s4ci0bl.jpg" alt="Image description" width="499" height="201"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  What is Gamification?
&lt;/h1&gt;

&lt;p&gt;Gamification is an abstraction pattern by which the mind is able to form universal properties of distinct objects. This encourages people to engage with and enjoy all type of system contexts by incorporating game elements and mechanics. Succinctness is key.&lt;br&gt;
A successful gamification strategy involves identifying game design principles and rewards that align with project objectives and user preferences, managing time effectively, and updating the strategy over time based on user feedback and behavior.  This can also be used to reinforce positive behaviors and create new habits by breaking down complex tasks into smaller, more manageable steps and rewarding positive behaviors.&lt;/p&gt;

&lt;h1&gt;
  
  
  Stages of a Game
&lt;/h1&gt;

&lt;p&gt;Creation, Update, Behavior:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Creating a World&lt;/li&gt;
&lt;li&gt;Updating the Goals&lt;/li&gt;
&lt;li&gt;Behaving the Player&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Elements of a Game
&lt;/h2&gt;

&lt;p&gt;World&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;DOM&lt;/li&gt;
&lt;li&gt;NPC&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Goal&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Long&lt;/li&gt;
&lt;li&gt;Short&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Player&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Control&lt;/li&gt;
&lt;li&gt;Stats&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  Types of Games
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;1 = Toy&lt;/li&gt;
&lt;li&gt;1 + 2 = Sandbox&lt;/li&gt;
&lt;li&gt;1 + 2 + 3 = Mission&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  Stages of a Game
&lt;/h1&gt;

&lt;h3&gt;
  
  
  Create
&lt;/h3&gt;

&lt;p&gt;The "create" aspect of gamification involves designing game-like elements that will engage and motivate users, such as points, goals, tasks, and rewards. It's important to establish a game diagram to define how these elements will be used.&lt;br&gt;
The next step is to "observe" how users interact with the gamified system and update the game logic as needed.&lt;/p&gt;

&lt;p&gt;Update&lt;br&gt;
This involves monitoring user behavior and collecting and managing data on things like how often users engage with the elements, which actions are most popular, and what types of behaviors are being encouraged.&lt;br&gt;
To make the most of gamification, specific, measurable, achievable, relevant, and time-bound (SMART) goals need to be created to track progress, stay motivated, and achieve success.&lt;/p&gt;

&lt;h3&gt;
  
  
  Behave
&lt;/h3&gt;

&lt;p&gt;Finally, the "behave" step involves using the insights gained from observing user behavior to refine and optimize the gamification elements.&lt;br&gt;
The success of a gamification strategy ultimately depends on how users behave and feel when using the system, and making adjustments as necessary is key to maintaining its effectiveness.&lt;/p&gt;

&lt;h1&gt;
  
  
  Conclusion
&lt;/h1&gt;

&lt;p&gt;Gamification is a powerful tool for engaging users and motivating positive behaviors. Regular updates and adjustments are necessary to ensure its effectiveness. Remember, play is the highest form of research.&lt;/p&gt;

</description>
      <category>programming</category>
      <category>productivity</category>
      <category>architecture</category>
      <category>computerscience</category>
    </item>
    <item>
      <title>CSSCSS 1.0.7 Released!</title>
      <dc:creator>Abraham Duno</dc:creator>
      <pubDate>Sat, 04 Mar 2023 15:57:26 +0000</pubDate>
      <link>https://forem.com/3duno/csscss-107-released-4bai</link>
      <guid>https://forem.com/3duno/csscss-107-released-4bai</guid>
      <description>&lt;p&gt;We're excited to announce the release of CSSCSS version 1.0.7! &lt;/p&gt;

&lt;h1&gt;
  
  
  New Features
&lt;/h1&gt;

&lt;h3&gt;
  
  
  Font Family
&lt;/h3&gt;

&lt;p&gt;We've added the tx-sans font family, which is sets the font family property to the popular Open Sans font. You can now use this font family in your CSS by simply including the following class:&lt;/p&gt;

&lt;blockquote&gt;
&lt;h3&gt;
  
  
  tx-sans
&lt;/h3&gt;

&lt;p&gt;CSS Code: &lt;code&gt;.tx-sans {font-family: 'Open Sans', sans-serif;}&lt;/code&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Transparent Backgrounds
&lt;/h2&gt;

&lt;p&gt;We've also added support for transparent backgrounds with the new bg-trans class. This makes it easy to create backgrounds that are transparent, without having to write any complicated CSS. Here's how you can use it:&lt;/p&gt;

&lt;blockquote&gt;
&lt;h3&gt;
  
  
  bg-trans
&lt;/h3&gt;

&lt;p&gt;CSS Code: &lt;code&gt;.bg-trans {background: transparent;}&lt;/code&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Inset Box Shadow
&lt;/h2&gt;

&lt;p&gt;Finally, we've added support for inset box shadows. This allows you to create more complex box shadows that appear inside an element. Here's how you can use it:&lt;/p&gt;

&lt;blockquote&gt;
&lt;h3&gt;
  
  
  box-shadow-i-1
&lt;/h3&gt;

&lt;p&gt;CSS Code: &lt;code&gt;.box-shadow-i-1 {box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.1); }&lt;/code&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Upgrade Instructions&lt;br&gt;
To upgrade to CSSCSS 1.0.7, simply update your package.json file with the new version number:&lt;br&gt;
&lt;code&gt;"dependencies": {&lt;br&gt;
  "csscss": "^1.0.7"&lt;br&gt;
}&lt;/code&gt;&lt;br&gt;
Then, run npm install to install the new version.&lt;/p&gt;

&lt;h1&gt;
  
  
  Conclusion
&lt;/h1&gt;

&lt;p&gt;We hope you enjoy using CSSCSS 1.0.7! As always, if you have any questions or feedback, please don't hesitate to get in touch with us.&lt;/p&gt;

</description>
      <category>css</category>
      <category>npm</category>
      <category>webdev</category>
      <category>productivity</category>
    </item>
    <item>
      <title>CUB Methodology</title>
      <dc:creator>Abraham Duno</dc:creator>
      <pubDate>Thu, 02 Mar 2023 19:50:59 +0000</pubDate>
      <link>https://forem.com/3duno/cubf-development-5e60</link>
      <guid>https://forem.com/3duno/cubf-development-5e60</guid>
      <description>&lt;p&gt;Introducing the CUB Methodology: A Fresh Approach to Software Development&lt;/p&gt;

&lt;p&gt;Software development is a complex process that requires careful planning and execution. The CUB methodology is a new approach that combines &lt;a href="https://www.scrum.org/resources/scrum-guide"&gt;Scrum framework &lt;/a&gt;and &lt;a href="https://www.visual-paradigm.com/guide/uml-unified-modeling-language/what-is-uml/"&gt;UML design principles&lt;/a&gt; to create a more efficient and effective development process by focusing on three main stages of software development; &lt;strong&gt;create&lt;/strong&gt;, &lt;strong&gt;update&lt;/strong&gt; and &lt;strong&gt;behave&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Create
&lt;/h2&gt;

&lt;p&gt;First up is Create. This is where the development team collaborates with the Product Owner to create a product backlog. To help with this process, they use UML use case diagrams to model the interactions between users and the system, and UML class diagrams to model the structure of the system.&lt;/p&gt;

&lt;h2&gt;
  
  
  Update
&lt;/h2&gt;

&lt;p&gt;Once the product backlog is created, it's time for the Update stage. This is where the team adapts their processes and practices based on feedback received from the previous sprint. To aid in this process, they use UML sequence diagrams to model the interactions between objects in the system over time.&lt;/p&gt;

&lt;h2&gt;
  
  
  Behave
&lt;/h2&gt;

&lt;p&gt;Finally, there's Behave. Throughout the development process, the team must ensure that the system behaves as intended. To help with this, they use UML object diagrams to model specific instances of classes and test how objects interact with each other. They also use UML component and deployment diagrams to model the physical components of the system and make sure they're deployed correctly.&lt;/p&gt;

&lt;p&gt;Let's take a closer look at how the CUB methodology can be applied to both front-end and back-end development.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--kuTIVX3K--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/kxjw182ozl9yfzz23skl.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--kuTIVX3K--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/kxjw182ozl9yfzz23skl.jpg" alt="Image description" width="479" height="359"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Front-End CUB: Creating Robust and Responsive Web Applications
&lt;/h1&gt;

&lt;p&gt;The CAB method can be applied to front-end development to create robust and responsive web applications. The following is a breakdown of how the CAB method can be used in front-end development:&lt;/p&gt;

&lt;h3&gt;
  
  
  Create:
&lt;/h3&gt;

&lt;p&gt;UML class diagrams can be used to model the structure of the web application.&lt;br&gt;
In the "Create" phase, the front-end development team can use Server-side Rendering (SSR) to create the initial structure of the web application. SSR generates the HTML for a web page on the server-side and sends it to the client-side for display. This ensures fast loading times and better search engine optimization (SEO). &lt;/p&gt;

&lt;h3&gt;
  
  
  Update:
&lt;/h3&gt;

&lt;p&gt;Client-side Fetching and First Web Paint techniques can be used to improve the user experience. UML sequence diagrams can be used to model the interactions between client-side and server-side components of the web application.&lt;br&gt;
In the "Update" phase, the team can use Client-side Fetching and First Web Paint techniques to improve the user experience. Client-side Fetching allows the client-side to fetch data asynchronously and dynamically from the server, improving the web application's performance. First Web Paint is the first time the user sees the web application displayed on their device. The team can optimize the First Web Paint experience by reducing the time to first paint and improving the perceived load time.&lt;/p&gt;

&lt;h3&gt;
  
  
  Behave:
&lt;/h3&gt;

&lt;p&gt;Reactivity and Routing can be implemented to create a reactive web application.&lt;br&gt;
UML component diagrams can be used to model the physical components of the web application, including the various pages and their relationships.&lt;br&gt;
In the "Behave" phase, the team can focus on creating a reactive web application by using frameworks such as React or Vue. These frameworks allow for real-time updates of web application data without requiring the page to refresh. UML object diagrams can be used to model specific instances of classes and to test how objects interact with each other. Routing can be implemented to ensure that the web application's different pages are accessible and navigable.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--MvvFRW5P--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/tko1cujxltndwz7m8s96.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--MvvFRW5P--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/tko1cujxltndwz7m8s96.jpg" alt="Image description" width="612" height="427"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Back-End CUB: Creating Scalable and Secure Web Applications
&lt;/h1&gt;

&lt;p&gt;The CUB methodology can be applied to back-end development to create scalable and secure web applications. The following is a breakdown of how the CUB method can be used in back-end development:&lt;/p&gt;

&lt;h3&gt;
  
  
  Create:
&lt;/h3&gt;

&lt;p&gt;In the "Create" phase, a web server is set up with a server-side programming language like Node.js, Python, or PHP. The server is configured to handle HTTP requests and responses. UML use case diagrams can be used to model the interactions between users and the system.&lt;/p&gt;

&lt;h3&gt;
  
  
  Update:
&lt;/h3&gt;

&lt;p&gt;In the "Update" phase, the team adapts their processes and practices based on feedback received from the previous sprint. The system is adapted to work with a database management system like MySQL or PostgreSQL. Stored procedures can be created to execute database commands repeatedly. UML sequence diagrams can be used to model the interactions between objects in the system over time.&lt;/p&gt;

&lt;h3&gt;
  
  
  Behave:
&lt;/h3&gt;

&lt;p&gt;In the "Behave" phase, the team should focus on ensuring the system behaves as intended. A router can be created to map URLs to the appropriate code in the back-end. Controllers can be created to handle the business logic of the system. Security measures can be implemented to protect the system from unauthorized access. Logging and monitoring can be set up to track system performance. UML component and deployment diagrams can be used to model the physical components of the system and to ensure they are deployed correctly.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--X3rULJ6N--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/nmfbfs5y8hpv9nlnbj2n.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--X3rULJ6N--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/nmfbfs5y8hpv9nlnbj2n.png" alt="Image description" width="800" height="800"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Overall, the CUB methodology can help software development teams create robust and secure back-end systems by focusing on the creation, updating, and behavior of the system. By using UML diagrams to monitor progress, communicate with stakeholders, and ensure everyone is on the same page, software development teams can streamline their work and deliver high-quality systems. Give the CUB methodology a try in your next software development project and see the difference it can make!&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>programming</category>
      <category>productivity</category>
      <category>devops</category>
    </item>
    <item>
      <title>Insight Development</title>
      <dc:creator>Abraham Duno</dc:creator>
      <pubDate>Thu, 02 Mar 2023 19:14:01 +0000</pubDate>
      <link>https://forem.com/3duno/insight-development-5bn7</link>
      <guid>https://forem.com/3duno/insight-development-5bn7</guid>
      <description>&lt;p&gt;The Power of Blogging for Developers: How Sharing Your Knowledge Can Benefit Your Career&lt;/p&gt;

&lt;h2&gt;
  
  
  I. Introduction:
&lt;/h2&gt;

&lt;p&gt;Explanation of the importance of writing blog posts for developers&lt;/p&gt;

&lt;p&gt;As a developer, you may believe that your job is solely to write code and solve problems. However, sharing your knowledge and experiences through blog posts can provide many benefits for your personal and professional growth. In this article, we will explore the advantages of writing blog posts and how it can establish you as an expert in your field, help you build a strong professional network, and improve your skills.&lt;/p&gt;

&lt;h2&gt;
  
  
  II. Establishing Expertise:
&lt;/h2&gt;

&lt;p&gt;Benefits of showcasing knowledge and expertise; potential for new job opportunities and career growth&lt;/p&gt;

&lt;p&gt;As a developer, one of the most significant benefits of writing blog posts is the opportunity to establish yourself as an expert in your field. When you share your insights on topics such as patterns, frameworks, and workflows, you showcase your knowledge and expertise to potential clients and employers. By demonstrating your expertise, you can differentiate yourself from other developers and increase your chances of getting hired or securing new business. Writing blog posts can also help you stay up-to-date with the latest industry trends, which can further improve your expertise.&lt;/p&gt;

&lt;h2&gt;
  
  
  III. Building Your Professional Network:
&lt;/h2&gt;

&lt;p&gt;Opportunities for building connections with other developers; establishing a stronger professional network; potential for collaboration and mentorship&lt;/p&gt;

&lt;p&gt;Writing blog posts can also help you build a stronger professional network. By sharing your knowledge and experiences, you can engage with other developers and build connections within the community. This can lead to potential collaboration opportunities, mentorship, and new job opportunities. Additionally, by engaging with your readers and responding to comments, you can establish yourself as an active member of the community, which can lead to more opportunities and connections.&lt;/p&gt;

&lt;p&gt;IV. Improving Your Skills:&lt;br&gt;
Reflection on own processes and identification of areas for improvement; gaining a deeper understanding of your own work&lt;/p&gt;

&lt;p&gt;In addition to external benefits, writing blog posts can help you improve your skills. By putting your thoughts and experiences into words, you can reflect on your own processes and identify areas for improvement. This can help you develop better coding practices and improve your skills as a developer. Additionally, by writing blog posts, you can gain a deeper understanding of your own work, which can help you approach challenges in new and innovative ways.&lt;/p&gt;

&lt;h2&gt;
  
  
  V. Conclusion:
&lt;/h2&gt;

&lt;p&gt;Recap of the benefits of writing blog posts and encouragement to start writing blog posts for personal and professional growth&lt;/p&gt;

&lt;p&gt;In summary, writing blog posts as a developer can provide numerous benefits. By sharing your knowledge and experiences, you can establish yourself as an expert in your field, build a strong professional network, and improve your skills. Writing blog posts is an excellent way to differentiate yourself from other developers, and it can lead to new job opportunities and career growth. So if you are a developer who has not yet started writing blog posts, consider giving it a try and see how it can benefit your personal and professional growth.&lt;/p&gt;

</description>
      <category>programming</category>
      <category>productivity</category>
      <category>devops</category>
      <category>computerscience</category>
    </item>
  </channel>
</rss>
