<?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: Mark Matute</title>
    <description>The latest articles on DEV Community by Mark Matute (@markmatute).</description>
    <link>https://dev.to/markmatute</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%2F90093%2F54e1aec9-cdc4-4257-a058-d43f49bf8dfe.jpeg</url>
      <title>DEV Community: Mark Matute</title>
      <link>https://dev.to/markmatute</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/markmatute"/>
    <language>en</language>
    <item>
      <title>Coloring Canvass Generator!</title>
      <dc:creator>Mark Matute</dc:creator>
      <pubDate>Fri, 12 Apr 2024 22:45:16 +0000</pubDate>
      <link>https://dev.to/markmatute/coloring-canvass-generator-2k66</link>
      <guid>https://dev.to/markmatute/coloring-canvass-generator-2k66</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;Generate a printable coloring canvass in PDF format based on &lt;/p&gt;

&lt;p&gt;any themes, genres powered by Artificial Intelligence.&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%2Fb7qejtxyt6p01byyqart.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%2Fb7qejtxyt6p01byyqart.png" alt="Image description" width="800" height="157"&gt;&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;&lt;a href="https://illah-creatives.pages.dev/"&gt;https://illah-creatives.pages.dev/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Step 1&lt;br&gt;
&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/V-gGSn5ad2M"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;Step 2&lt;br&gt;
&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/uhRGX6cNiJU"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;Step 3&lt;br&gt;
&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/VaItaKymCTs"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Sample outputs&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Promt of &lt;em&gt;Cyberpunk Motorcycle hero will generated&lt;/em&gt; &lt;a href="https://drive.google.com/file/d/1vMHBd46HPp405tLp3yTESetN75TbI57k/view"&gt;this&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Prompt of &lt;em&gt;Lion, Bear, Wolf and Owl&lt;/em&gt; will generate &lt;a href="https://drive.google.com/file/d/1X1_cCeSAPahIAtsaim65ub0JekirlAs-/view"&gt;this&lt;/a&gt;.&lt;/p&gt;

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

&lt;p&gt;Web App&lt;br&gt;
&lt;a href="https://github.com/MarkMatute/illah-creatives"&gt;https://github.com/MarkMatute/illah-creatives&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Microservices&lt;br&gt;
&lt;a href="https://github.com/MarkMatute/illah-creatives-text-generator"&gt;https://github.com/MarkMatute/illah-creatives-text-generator&lt;/a&gt;&lt;br&gt;
&lt;a href="https://github.com/MarkMatute/illah-creatives-image-generator"&gt;https://github.com/MarkMatute/illah-creatives-image-generator&lt;/a&gt;&lt;br&gt;
&lt;a href="https://github.com/MarkMatute/illah-creatives-art-assistant"&gt;https://github.com/MarkMatute/illah-creatives-art-assistant&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;I am currenlty in the journey of learning and exploring Machine Learning and Artificial Intelligence when I came accross the post. With this momentum I decided to pick a simple project that me or my family can use. &lt;/p&gt;

&lt;p&gt;With this project that can generate almost unlimited pages of coloring books with any themes you want or based on who you are, or whatever preferences you have.&lt;/p&gt;

&lt;p&gt;With this project, I learned alot about different type of models and how to leverage them. It also exposed me from what I do not know as of the moment, like proper prompting etc. Also opened doors for me to use Cloudflare more than its normal use case. The platform itself trully is cool! I am just proud to come up with this idea that surely some people can enjoy. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Tasks types used:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Text-To-Image

&lt;ol&gt;
&lt;li&gt;Theme to canvass cover image&lt;/li&gt;
&lt;li&gt;Each themes to coloring page image&lt;/li&gt;
&lt;/ol&gt;


&lt;/li&gt;
&lt;li&gt;Text-Generation

&lt;ol&gt;
&lt;li&gt;Illah's chat assistant that focuses on generating themes 
for user&lt;/li&gt;
&lt;li&gt;Cool canvass titles that matches context with generated 
themes&lt;/li&gt;
&lt;li&gt;Cool names for generated canvass pages&lt;/li&gt;
&lt;/ol&gt;


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

&lt;p&gt;&lt;strong&gt;Models used:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;a class="mentioned-user" href="https://dev.to/hf"&gt;@hf&lt;/a&gt;/mistral/mistral-7b-instruct-v0.2&lt;/li&gt;
&lt;li&gt;
&lt;a class="mentioned-user" href="https://dev.to/cf"&gt;@cf&lt;/a&gt;/meta/llama-2-7b-chat-fp16&lt;/li&gt;
&lt;li&gt;
&lt;a class="mentioned-user" href="https://dev.to/cf"&gt;@cf&lt;/a&gt;/stabilityai/stable-diffusion-xl-base-1.0&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Improvements for this project:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Parallel generation of each canvass page for faster processing&lt;/li&gt;
&lt;li&gt;More tailored chat assistant, not only for generating themes but also for more tasks.&lt;/li&gt;
&lt;li&gt;To add an image to image generation of canvasses&lt;/li&gt;
&lt;/ol&gt;

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

&lt;p&gt;Models used:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;a class="mentioned-user" href="https://dev.to/hf"&gt;@hf&lt;/a&gt;/mistral/mistral-7b-instruct-v0.2&lt;/li&gt;
&lt;li&gt;
&lt;a class="mentioned-user" href="https://dev.to/cf"&gt;@cf&lt;/a&gt;/meta/llama-2-7b-chat-fp16&lt;/li&gt;
&lt;li&gt;
&lt;a class="mentioned-user" href="https://dev.to/cf"&gt;@cf&lt;/a&gt;/stabilityai/stable-diffusion-xl-base-1.0&lt;/li&gt;
&lt;/ol&gt;

</description>
      <category>cloudflarechallenge</category>
      <category>devchallenge</category>
      <category>ai</category>
    </item>
    <item>
      <title>Smarter Co-Workers, A Blessing</title>
      <dc:creator>Mark Matute</dc:creator>
      <pubDate>Thu, 15 Feb 2024 23:24:02 +0000</pubDate>
      <link>https://dev.to/markmatute/smarter-co-workers-a-blessing-3pan</link>
      <guid>https://dev.to/markmatute/smarter-co-workers-a-blessing-3pan</guid>
      <description>&lt;p&gt;Working with people who has higher level of intelligence can be a true blessing, having a great opportunity to grow and to be in the right direction.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Learning Opportunities&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;There is a lot of opportunity to learn and grow when working with smart individuals. Discussions alone with this people will always be a learning experience, seeking advice, observing problem solving approaches and being always heading the correct direction.&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%2Fpz8javi9v8d37mhs93q6.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%2Fpz8javi9v8d37mhs93q6.png" alt="Image description" width="800" height="336"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Motivation and Ambition&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Having smarter co-workers can be a motivating factor for development. Seeing their achievements and excellence can inspire others to strive for higher standards. This is something I experienced, seeing my peers having very high standards, high skillset, showed me how big is a gap between where they are and where I am, this inspired me to strive, work hard to bring the gap closer, taking courses, certifications and just continuous learning and practice.&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%2F1tmw18760l41h3u7j5fq.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%2F1tmw18760l41h3u7j5fq.png" alt="Image description" width="800" height="336"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;Working with smarter people is a blessing that can impact individual and collective success in work. Learning opportunities, innovative thinking, increased productivity, motivation contribute to a fulfilling professional experience. Embracing the presence of smarter colleagues can elevate your skills, and ultimately lead to a more successful career.&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%2Fxhd5y4910fgglyy4wtpu.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%2Fxhd5y4910fgglyy4wtpu.png" alt="Image description" width="800" height="336"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>programming</category>
      <category>productivity</category>
      <category>career</category>
      <category>learning</category>
    </item>
    <item>
      <title>Keeping your Node.js environment up to date</title>
      <dc:creator>Mark Matute</dc:creator>
      <pubDate>Mon, 30 Jan 2023 19:46:00 +0000</pubDate>
      <link>https://dev.to/markmatute/keeping-your-nodejs-environment-up-to-date-3d25</link>
      <guid>https://dev.to/markmatute/keeping-your-nodejs-environment-up-to-date-3d25</guid>
      <description>&lt;p&gt;Upgrading a project's NodeJS version from 8.11 to 18.7 was a monumental task that greatly impacted the entire project. To prevent similar issues in the future, it is important to regularly maintain the libraries and the underlying NodeJS engine used.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://i.giphy.com/media/TJawtKM6OCKkvwCIqX/giphy.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://i.giphy.com/media/TJawtKM6OCKkvwCIqX/giphy.gif" width="380" height="280"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Regular checking of packages&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://i.giphy.com/media/3oz8xMUKstxP1IFJIc/giphy.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://i.giphy.com/media/3oz8xMUKstxP1IFJIc/giphy.gif" width="384" height="270"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Staying on top of updates is key for a successful project. That's why I use the dynamic '&lt;a href="https://www.npmjs.com/package/node-modules-browser" rel="noopener noreferrer"&gt;node-modules-browser&lt;/a&gt;' tool to compare my installed library versions to the latest ones. With its user-friendly HTML report and comprehensive library documentation, I'm always up-to-date and ready to tackle any challenge that comes my way.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Keeping packages updated&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://i.giphy.com/media/xT5LMskx2CiLPpAkk8/giphy.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://i.giphy.com/media/xT5LMskx2CiLPpAkk8/giphy.gif" width="480" height="368"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I streamline package updates with the handy npx command &lt;code&gt;npm-check-updates -u --enginesNode&lt;/code&gt;. This command ensures that my libraries are compatible with the specified node version listed in my &lt;em&gt;npmrc&lt;/em&gt; file. It's a quick and easy way to keep my packages up-to-date and ready for action.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Testing your application&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://i.giphy.com/media/vxDbIL03WXg6f7tu0j/giphy.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://i.giphy.com/media/vxDbIL03WXg6f7tu0j/giphy.gif" width="480" height="270"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Regular maintenance only ensures that libraries and the NodeJS engine are updated and not using outdated versions. End-to-end testing is still necessary to fully verify the effectiveness of the upgrade, as with any other task.&lt;/p&gt;

&lt;h2&gt;
  
  
  Disclaimer
&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%2Fb1pigflg2b7sgjc2uom5.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%2Fb1pigflg2b7sgjc2uom5.png" alt="Disclaimer" width="800" height="336"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>watercooler</category>
    </item>
    <item>
      <title>[iOS Swift] - Adding Custom Fonts to your app</title>
      <dc:creator>Mark Matute</dc:creator>
      <pubDate>Mon, 30 Jan 2023 01:44:11 +0000</pubDate>
      <link>https://dev.to/markmatute/ios-swift-adding-custom-fonts-to-your-app-1be8</link>
      <guid>https://dev.to/markmatute/ios-swift-adding-custom-fonts-to-your-app-1be8</guid>
      <description>&lt;p&gt;For this example I will be adding &lt;em&gt;Montserrat-Bold&lt;/em&gt; and &lt;em&gt;Montserrat-Regular&lt;/em&gt; as custom font to my iOS app&lt;/p&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;Steps&lt;/strong&gt;
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Download the font files, &lt;a href="https://fonts.google.com/specimen/Montserrat" rel="noopener noreferrer"&gt;Montserrat&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Create directory &lt;em&gt;Fonts&lt;/em&gt; and drag-n-drop the files to the directory, and on the pop up make sure to check &lt;em&gt;copy files if needed&lt;/em&gt;&lt;br&gt;
&lt;a href="https://media.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%2F3lucdfk3emv6pgsrptxk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2F3lucdfk3emv6pgsrptxk.png"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Register the custom fonts on &lt;em&gt;Info.plist&lt;/em&gt;&lt;br&gt;
&lt;a href="https://media.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%2Ffsl46uupsiebd8wwt4ws.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Ffsl46uupsiebd8wwt4ws.png" alt="Info.plist"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Using the custom fonts on storyboards&lt;br&gt;
&lt;a href="https://media.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%2Fa912gb4r5o9qds2fkasl.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Fa912gb4r5o9qds2fkasl.png" alt="Selecting font on storyboard"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Using the custom fonts on code&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

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

public static func montserratRegular(fontSize: CGFloat) -&amp;gt; UIFont {
        guard let customFont = UIFont(name: "Montserrat-Regular", size: fontSize) else {
            fatalError("""
                Failed to load the "Montserrat-Regular" font.
                Make sure the font file is included in the project and the font name is spelled correctly.
                """
            )
        }
        return customFont
    }


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

&lt;/div&gt;




&lt;h2&gt;
  
  
  Disclaimer
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.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%2F9s0ecwpv06tzfre5up91.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2F9s0ecwpv06tzfre5up91.png" alt="Disclaimer"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Debugging NodeJS</title>
      <dc:creator>Mark Matute</dc:creator>
      <pubDate>Mon, 30 Jan 2023 01:34:59 +0000</pubDate>
      <link>https://dev.to/markmatute/debugging-nodejs-15jb</link>
      <guid>https://dev.to/markmatute/debugging-nodejs-15jb</guid>
      <description>&lt;p&gt;&lt;strong&gt;Use the built-in debugger&lt;/strong&gt;&lt;br&gt;
Node.js comes with a built-in debugger that can be used from the command line.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Use a Node.js debugger tool&lt;/strong&gt;&lt;br&gt;
There are several third-party debugger tools, such as node-inspector and Visual Studio Code, that can be used to debug Node.js applications.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Console logging&lt;/strong&gt;&lt;br&gt;
The console.log() method is a simple and effective way to debug Node.js applications by logging values of variables and expressions.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Using breakpoints&lt;/strong&gt;&lt;br&gt;
Breakpoints can be set in the code to pause the execution and inspect the state of the application at that point.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Heap snapshots&lt;/strong&gt;&lt;br&gt;
Heap snapshots are a great way to understand the memory usage of your application and identify potential memory leaks.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Error handling&lt;/strong&gt;&lt;br&gt;
Make sure to add proper error handling in the code to catch and log any errors that might occur during runtime.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Profiling&lt;/strong&gt;&lt;br&gt;
Node.js has built-in tools, such as the profiler, to help identify performance bottlenecks and optimize the application's performance.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Use a logging library&lt;/strong&gt;&lt;br&gt;
A logging library, such as Winston or Bunyan, can be used to log messages from the application and make it easier to debug.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Debugging in production&lt;/strong&gt;&lt;br&gt;
Debugging in a production environment can be challenging, but it can be done using techniques like remote debugging or using logs to recreate the issue.&lt;/p&gt;

&lt;h2&gt;
  
  
  Disclaimer
&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%2Fbixj4kqim0ubuh4n401f.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%2Fbixj4kqim0ubuh4n401f.png" alt="Disclaimer" width="800" height="336"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>softwaredevelopment</category>
      <category>career</category>
      <category>discuss</category>
    </item>
    <item>
      <title>Share your principles?</title>
      <dc:creator>Mark Matute</dc:creator>
      <pubDate>Tue, 17 Jan 2023 20:14:59 +0000</pubDate>
      <link>https://dev.to/markmatute/share-your-principles-44lj</link>
      <guid>https://dev.to/markmatute/share-your-principles-44lj</guid>
      <description>&lt;h2&gt;
  
  
  What I Follow
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;Depending on one's level of proficiency and availability, the amount of time and effort invested may vary. ⏰&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;1. Make it work 💡&lt;/strong&gt;&lt;br&gt;
It is imperative to first fulfill the necessary requirements, utilizing any means necessary, whether it be through quick and efficient methods or more elaborate and refined approaches. The most important aspect is that the solution is functional and serves its purpose, as a non-operational solution is of no value.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Make it right ✅&lt;/strong&gt;&lt;br&gt;
Once the basic requirements have been met, it is important to consider the long-term maintainability, legibility, and efficiency of the solution. Making the solution easy to understand, modify, and improve in the future allows for greater flexibility and adaptability. Additionally, optimizing the solution for performance and minimizing resource usage can enhance its overall effectiveness. However, it is important to note that this should only be done if time and resources permit, as the primary objective should always be to fulfill the basic requirements&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Make it fast 🌪&lt;/strong&gt;&lt;br&gt;
Finally, after ensuring that the solution meets the necessary requirements and is maintainable, it is important to focus on optimizing performance. This can include implementing techniques to make the software run faster, running tests to ensure that it is functioning correctly, and analyzing metrics to identify areas for improvement. This step will help to ensure that the solution is reliable, efficient, and able to handle any anticipated load or usage.&lt;/p&gt;




&lt;h3&gt;
  
  
  Whats your principles?
&lt;/h3&gt;

&lt;h3&gt;
  
  
  How can I improve mine?
&lt;/h3&gt;




&lt;h2&gt;
  
  
  Disclaimer
&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%2F0knv5a8l9bp3apozrfrv.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%2F0knv5a8l9bp3apozrfrv.png" alt="Disclaimer" width="800" height="336"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>programming</category>
      <category>productivity</category>
    </item>
    <item>
      <title>[iOS Swift] - Setting up project without storyboard 📱</title>
      <dc:creator>Mark Matute</dc:creator>
      <pubDate>Tue, 17 Jan 2023 02:06:11 +0000</pubDate>
      <link>https://dev.to/markmatute/ios-swift-setting-up-project-without-storyboard-45al</link>
      <guid>https://dev.to/markmatute/ios-swift-setting-up-project-without-storyboard-45al</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;First step, to kickstart building iOS UI programmatically is to have at least 1 working ViewController working without story board.&lt;/p&gt;




&lt;p&gt;So why would you want to build UI programmatically instead of using storyboard?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Greater control&lt;/strong&gt; &lt;br&gt;
When building UI programmatically, you have full control over the layout and behavior of your views. This allows for more flexibility and precision when designing your app's user interface.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Easier debugging&lt;/strong&gt;&lt;br&gt;
With programmatic UI, it's easier to trace the source of any issues or bugs since you have a clear view of the entire view hierarchy. This is in contrast to storyboards which can become complex and difficult to navigate, especially as the project scale up.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Easier to scale&lt;/strong&gt;&lt;br&gt;
Building UI programmatically can make it easier to scale your app and add new features. With a storyboard, it can become difficult to manage a large number of views and segues.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Easier to collaborate&lt;/strong&gt;&lt;br&gt;
Programmatic UI can make it easier for multiple developers to work on the same project, as the code can be easily shared and reviewed.&lt;/p&gt;


&lt;h3&gt;
  
  
  Setup
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Step 1: Creating Project&lt;/strong&gt;&lt;br&gt;
Create a new single view app project in XCode,&lt;br&gt;
Select Swift as language and Storyboard as interface&lt;/p&gt;

&lt;p&gt;Yes, we will select &lt;strong&gt;storyboard&lt;/strong&gt; as interface.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 2: Deleting the Main.storyboard&lt;/strong&gt;&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%2Fqdb3900niwf4f2jz49r1.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%2Fqdb3900niwf4f2jz49r1.png" alt="Deleting the main.storyboard" width="286" height="392"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 3: Deleting Main.storyboard config entries&lt;/strong&gt;&lt;br&gt;
Search for "Main" in XCode&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%2Ftr315j9nwn1vmu1fjcvl.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%2Ftr315j9nwn1vmu1fjcvl.png" alt="Deleting Main.storyboard config entries" width="800" height="188"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In the project settings, under the "General" tab, remove the reference to the Main storyboard file in the "Main Interface" field.&lt;/p&gt;

&lt;p&gt;As well as in the Info.plist delete the entry for Main.storyboard&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 4: Update the ViewController.swift&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;So that we can see the result on our emulator lets add a simple UILabel that says &lt;em&gt;Hello, World&lt;/em&gt; in the center of the screen.&lt;/p&gt;

&lt;p&gt;As stated from above, we will be managing our views programatically.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import UIKit

class ViewController: UIViewController {

    lazy private var sampleLabel: UILabel = {
        let label = UILabel()
        label.translatesAutoresizingMaskIntoConstraints = false
        label.text = "Hello World!"
        label.textColor = UIColor.white
        return label
    }()

    override func viewDidLoad() {
        super.viewDidLoad()
        self.view.backgroundColor = UIColor.black
        self.view.addSubview(self.sampleLabel)
        self.setUpConstraints()
    }

    func setUpConstraints() {
        let sampleLabelConstraints = [
            self.sampleLabel.centerXAnchor.constraint(equalTo: self.view.centerXAnchor),
            self.sampleLabel.centerYAnchor.constraint(equalTo: self.view.centerYAnchor)
        ]
        NSLayoutConstraint.activate(sampleLabelConstraints)
    }

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

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Step 5: Updating SceneDelegate.swift&lt;/strong&gt;&lt;br&gt;
Registering the ViewController as the rootViewController&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;   func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) {
        // Use this method to optionally configure and attach the UIWindow `window` to the provided UIWindowScene `scene`.
        // If using a storyboard, the `window` property will automatically be initialized and attached to the scene.
        // This delegate does not imply the connecting scene or session are new (see `application:configurationForConnectingSceneSession` instead).
        guard let windowScene = (scene as? UIWindowScene) else { return }
        window = UIWindow(frame: windowScene.coordinateSpace.bounds)
        window?.windowScene = windowScene
        window?.rootViewController = ViewController()
        window?.makeKeyAndVisible()
    }
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Step 6: Running the app in the emulator&lt;/strong&gt;&lt;br&gt;
Desired output should be this image.&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%2Fbrdasi6ln3908keut2eq.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%2Fbrdasi6ln3908keut2eq.png" alt="Desired output from emulator" width="800" height="1731"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Disclaimer
&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%2F9z5xm410lcpl10ifbjq4.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%2F9z5xm410lcpl10ifbjq4.png" alt="Disclaimer" width="800" height="336"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>productivity</category>
      <category>softwaredevelopment</category>
    </item>
  </channel>
</rss>
