<?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: NoFoster</title>
    <description>The latest articles on DEV Community by NoFoster (@nofoster).</description>
    <link>https://dev.to/nofoster</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%2F3840873%2Fa27bc6e6-7368-4dba-a8f4-3d77504ef4cb.png</url>
      <title>DEV Community: NoFoster</title>
      <link>https://dev.to/nofoster</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/nofoster"/>
    <language>en</language>
    <item>
      <title>App Dev Project Mindset Shift</title>
      <dc:creator>NoFoster</dc:creator>
      <pubDate>Thu, 28 May 2026 22:05:04 +0000</pubDate>
      <link>https://dev.to/nofoster/app-dev-project-mindset-shift-447m</link>
      <guid>https://dev.to/nofoster/app-dev-project-mindset-shift-447m</guid>
      <description>&lt;p&gt;Continuation of building App Dev project.&lt;/p&gt;

&lt;p&gt;Quick Note: After additional consideration, I decided to pivot the main objective of the application. It's objective was to track habits, give a pomodoro timer, and keep updated with the progress of friends. For now, I am removing that social functionality. I would rather have an application that's well-geared for individual use than some bloated social media app that has features solely for the sake of wide adoption. So my objective will be to build out a clean, nice individual user experience. Plan it to spin up the web version and then convert it over to a native app.&lt;/p&gt;

</description>
      <category>devjournal</category>
      <category>product</category>
      <category>sideprojects</category>
      <category>ux</category>
    </item>
    <item>
      <title>TIL 5/27/26</title>
      <dc:creator>NoFoster</dc:creator>
      <pubDate>Thu, 28 May 2026 01:47:23 +0000</pubDate>
      <link>https://dev.to/nofoster/til-52726-5ail</link>
      <guid>https://dev.to/nofoster/til-52726-5ail</guid>
      <description>&lt;p&gt;Tomato Crusher (working title) Test-Build-Resolution Tracker&lt;/p&gt;

&lt;p&gt;I'm taking the approach of build, test, fail, iterate. This will be a short-hand recap of tests, what went wrong, and what the fix was. Stream of Consciousness style&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Show page first test -&amp;gt; NoMethodError -&amp;gt; had to add

&lt;code&gt;.to_a&lt;/code&gt;

to code because the .at(0) pulls an array, so the data had to be converted
2. Attempt to add destroy function to HabitController -&amp;gt; No Route matches get -&amp;gt; updated link URL to match route URL
3. Destroy record attempt -&amp;gt; NoMethodError -&amp;gt; array fix as used in attempt 1 on this post
4. Pomodoro Session Page first try -&amp;gt; ActionView::Missing Template -&amp;gt; Needed to update view folder to be pomodoro_session_templates
5. Testing the Start Timer Button -&amp;gt; timer did not count down -&amp;gt; pomodoro.js was nested in an erroneously created folder&lt;/li&gt;
&lt;/ol&gt;

</description>
      <category>devjournal</category>
      <category>rails</category>
      <category>ruby</category>
      <category>webdev</category>
    </item>
    <item>
      <title>TIL 5/27/2026</title>
      <dc:creator>NoFoster</dc:creator>
      <pubDate>Wed, 27 May 2026 22:08:33 +0000</pubDate>
      <link>https://dev.to/nofoster/til-5272026-4dg5</link>
      <guid>https://dev.to/nofoster/til-5272026-4dg5</guid>
      <description>&lt;p&gt;Spin up from FirstDraft Co-pilot.&lt;/p&gt;

&lt;p&gt;It's been a while since I've done this, so I'll outline the process.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Include devise gem on gemfile&lt;/li&gt;
&lt;li&gt;bundle install devise gem&lt;/li&gt;
&lt;li&gt;run rails generate file from co-pilot with users line&lt;/li&gt;
&lt;li&gt;check generated migration file&lt;/li&gt;
&lt;li&gt;run rails db:migrate&lt;/li&gt;
&lt;li&gt;Change config.sign_out_via = :get on the config/initializers/devise.rb file&lt;/li&gt;
&lt;li&gt;Spin up app, check that /users/sign_up and /users/sign_in screens work&lt;/li&gt;
&lt;li&gt;First go through was successful&lt;/li&gt;
&lt;li&gt;I began working off of Claude Code window to help run the rest of the files&lt;/li&gt;
&lt;li&gt;Files ran, and routes began to be built out, but I learned that tokens ran out quickly because Claude was re-reading the whole file and making changes which is very expensive.&lt;/li&gt;
&lt;li&gt;Next step was to get claude to recommend a path forward (build out habit route), then leverage first draft study buddy to help me build out that code.&lt;/li&gt;
&lt;li&gt;New plan of attack - write out as much code using study buddy, build out the basic RCAV functionality by hand&lt;/li&gt;
&lt;li&gt;Leverage Claude Claude once credits are available to work out bugs.&lt;/li&gt;
&lt;/ol&gt;

</description>
      <category>claude</category>
      <category>devjournal</category>
      <category>rails</category>
      <category>ruby</category>
    </item>
    <item>
      <title>TIL 5/27/2026</title>
      <dc:creator>NoFoster</dc:creator>
      <pubDate>Wed, 27 May 2026 17:43:28 +0000</pubDate>
      <link>https://dev.to/nofoster/til-5272026-41cm</link>
      <guid>https://dev.to/nofoster/til-5272026-41cm</guid>
      <description>&lt;p&gt;Building the ERD:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Leveraged FirstDraft template to get a base level idea of the number of columns and tables I had&lt;/li&gt;
&lt;li&gt;Sent my app description through Claude to get recommendations of if I was missing any columns&lt;/li&gt;
&lt;li&gt;Claude recommended adding category, tag, streak functionality. &lt;/li&gt;
&lt;li&gt;My idea of tables was 7 (user, user profile, friendship, habit, pomodoro session, habit comments) - claude streamlined some tables and added 5 more (habit tabs, habit logs, categories&lt;/li&gt;
&lt;li&gt;Claude was helpful with mapping 1:N relationships&lt;/li&gt;
&lt;/ol&gt;

</description>
      <category>ai</category>
      <category>claude</category>
      <category>database</category>
      <category>devjournal</category>
    </item>
    <item>
      <title>TIL: 5/26/26</title>
      <dc:creator>NoFoster</dc:creator>
      <pubDate>Wed, 27 May 2026 00:58:24 +0000</pubDate>
      <link>https://dev.to/nofoster/til-52626-4a0j</link>
      <guid>https://dev.to/nofoster/til-52626-4a0j</guid>
      <description>&lt;p&gt;Main focus of today: App Dev 2 Final Project Base Outline&lt;/p&gt;

&lt;p&gt;Base Objective: Create a habit-tracking app that allows users to list habits, track completion, monitor the progress of "friends", and includes a pomodoro-style timer plug-in. Habit progress is tracked based on streaks (days habit is continued) and tomatoes smashed (pomodoro sessions completed)&lt;/p&gt;

&lt;p&gt;Main screens:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Homepage/Feed (dynamic) - see current habit status of friends/public users&lt;/li&gt;
&lt;li&gt;User Profile (form) - basic user information and status controls&lt;/li&gt;
&lt;li&gt;Habit Creation Page (form) - Base screen where new habits are tracked&lt;/li&gt;
&lt;li&gt;Habit Edit page (form) - Modify information about a habit&lt;/li&gt;
&lt;li&gt;Pomodoro timer - Enables users to set number of pomodoro sessions, has countdown timer that creates 25 minute work chunks and 5 minute break chunks, after 3 work chunks, user is prompted for a 15 minute break&lt;/li&gt;
&lt;li&gt;Personal Habit Dash - High level dashboard of where user's current habits stand.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Must Haves (basic functionality)-&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;user profiles&lt;/li&gt;
&lt;li&gt;login ability&lt;/li&gt;
&lt;li&gt;Pomodoro tracker&lt;/li&gt;
&lt;li&gt;CRUD Functionality for Habits&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Nice to Haves (improved UX) -&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;User feed&lt;/li&gt;
&lt;li&gt;Pomodoros count up and tie automatically into habits&lt;/li&gt;
&lt;li&gt;Add/Track a friend ability&lt;/li&gt;
&lt;li&gt;Clean, consistent CSS pages&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Good to Have (reach items if you have time or in later iterations)-&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Native iOS application&lt;/li&gt;
&lt;li&gt;Push Notifications&lt;/li&gt;
&lt;li&gt;Bank of motivational quotes to promote building habits&lt;/li&gt;
&lt;li&gt;Ability to like/comment on friend's progress&lt;/li&gt;
&lt;li&gt;AI prompts that give user tips on how to tackle specific habits&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Things to consider while developing&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;DRY code&lt;/li&gt;
&lt;li&gt;Error monitoring&lt;/li&gt;
&lt;li&gt;Performance monitoring&lt;/li&gt;
&lt;li&gt;ABC&lt;/li&gt;
&lt;li&gt;Claude/Codex for ideas/learnings&lt;/li&gt;
&lt;li&gt;Track how long items take to make (tomatoes smashed)&lt;/li&gt;
&lt;/ol&gt;

</description>
      <category>devjournal</category>
      <category>learning</category>
      <category>productivity</category>
      <category>softwaredevelopment</category>
    </item>
    <item>
      <title>TIL: 5/26/26</title>
      <dc:creator>NoFoster</dc:creator>
      <pubDate>Wed, 27 May 2026 00:58:24 +0000</pubDate>
      <link>https://dev.to/nofoster/til-52626-ld3</link>
      <guid>https://dev.to/nofoster/til-52626-ld3</guid>
      <description>&lt;p&gt;Main focus of today: App Dev 2 Final Project Base Outline&lt;/p&gt;

&lt;p&gt;Base Objective: Create a habit-tracking app that allows users to list habits, track completion, monitor the progress of "friends", and includes a pomodoro-style timer plug-in. Habit progress is tracked based on streaks (days habit is continued) and tomatoes smashed (pomodoro sessions completed)&lt;/p&gt;

&lt;p&gt;Main screens:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Homepage/Feed (dynamic) - see current habit status of friends/public users&lt;/li&gt;
&lt;li&gt;User Profile (form) - basic user information and status controls&lt;/li&gt;
&lt;li&gt;Habit Creation Page (form) - Base screen where new habits are tracked&lt;/li&gt;
&lt;li&gt;Habit Edit page (form) - Modify information about a habit&lt;/li&gt;
&lt;li&gt;Pomodoro timer - Enables users to set number of pomodoro sessions, has countdown timer that creates 25 minute work chunks and 5 minute break chunks, after 3 work chunks, user is prompted for a 15 minute break&lt;/li&gt;
&lt;li&gt;Personal Habit Dash - High level dashboard of where user's current habits stand.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Must Haves (basic functionality)-&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;user profiles&lt;/li&gt;
&lt;li&gt;login ability&lt;/li&gt;
&lt;li&gt;Pomodoro tracker&lt;/li&gt;
&lt;li&gt;CRUD Functionality for Habits&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Nice to Haves (improved UX) -&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;User feed&lt;/li&gt;
&lt;li&gt;Pomodoros count up and tie automatically into habits&lt;/li&gt;
&lt;li&gt;Add/Track a friend ability&lt;/li&gt;
&lt;li&gt;Clean, consistent CSS pages&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Good to Have (reach items if you have time or in later iterations)-&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Native iOS application&lt;/li&gt;
&lt;li&gt;Push Notifications&lt;/li&gt;
&lt;li&gt;Bank of motivational quotes to promote building habits&lt;/li&gt;
&lt;li&gt;Ability to like/comment on friend's progress&lt;/li&gt;
&lt;li&gt;AI prompts that give user tips on how to tackle specific habits&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Things to consider while developing&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;DRY code&lt;/li&gt;
&lt;li&gt;Error monitoring&lt;/li&gt;
&lt;li&gt;Performance monitoring&lt;/li&gt;
&lt;li&gt;ABC&lt;/li&gt;
&lt;li&gt;Claude/Codex for ideas/learnings&lt;/li&gt;
&lt;li&gt;Track how long items take to make (tomatoes smashed)&lt;/li&gt;
&lt;/ol&gt;

</description>
      <category>devjournal</category>
      <category>productivity</category>
      <category>programming</category>
      <category>softwaredevelopment</category>
    </item>
    <item>
      <title>TIL 5/22/2026</title>
      <dc:creator>NoFoster</dc:creator>
      <pubDate>Tue, 26 May 2026 23:35:29 +0000</pubDate>
      <link>https://dev.to/nofoster/til-5222026-1668</link>
      <guid>https://dev.to/nofoster/til-5222026-1668</guid>
      <description>&lt;p&gt;Rails X XCode Tips&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;When reading commands from a textbook, the \ in the command instruction line is usually just a line continuation in instructions. I do not need that if you type it all on one line.&lt;/li&gt;
&lt;li&gt;Use

&lt;code&gt;bin/rails destroy model sample_model_name&lt;/code&gt;

to remove an erroneous model&lt;/li&gt;
&lt;li&gt;I have a tendency to type "customer" when I should be typing "custom". Watch out for this mistake.&lt;/li&gt;
&lt;/ol&gt;

</description>
      <category>beginners</category>
      <category>cli</category>
      <category>rails</category>
      <category>ruby</category>
    </item>
    <item>
      <title>TIL 5/21/2026</title>
      <dc:creator>NoFoster</dc:creator>
      <pubDate>Fri, 22 May 2026 03:59:27 +0000</pubDate>
      <link>https://dev.to/nofoster/til-5212026-3235</link>
      <guid>https://dev.to/nofoster/til-5212026-3235</guid>
      <description>&lt;p&gt;Building iOS Bridge Components with Swift Tips&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Double check your JS for typos&lt;/li&gt;
&lt;li&gt;Event name typos will also be present in suggested events, so if you have to fix a mistake early in the code, check for other errors.&lt;/li&gt;
&lt;li&gt;Ensure you have a disconnect() in your rails bridge code, but make sure it's not nested in your connect()&lt;/li&gt;
&lt;li&gt;Be careful about accidentally typing / instead of the enter key&lt;/li&gt;
&lt;/ol&gt;

</description>
    </item>
    <item>
      <title>TIL 5/20/2026</title>
      <dc:creator>NoFoster</dc:creator>
      <pubDate>Thu, 21 May 2026 02:49:18 +0000</pubDate>
      <link>https://dev.to/nofoster/til-5202026-293d</link>
      <guid>https://dev.to/nofoster/til-5202026-293d</guid>
      <description>&lt;p&gt;Using XCode Tips:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Clicking the triangle icon on the left hand-bar spins up the iPhone simulation&lt;/li&gt;
&lt;li&gt;&lt;p&gt;If your codespace stops, restart it with bin/dev then type&lt;br&gt;
&lt;br&gt;
&lt;code&gt;gh codespace ports forward 3000:3000&lt;/code&gt;&lt;br&gt;
&lt;br&gt;
into the terminal to reconnect XCode. There is no reason to go through the authentication flow again.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Build frequently and look for errors so you don't end up with a black screen and host of problems that have to be fixed.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

</description>
      <category>devjournal</category>
      <category>github</category>
      <category>ios</category>
      <category>productivity</category>
    </item>
    <item>
      <title>TIL 5/18/2026</title>
      <dc:creator>NoFoster</dc:creator>
      <pubDate>Wed, 20 May 2026 18:07:26 +0000</pubDate>
      <link>https://dev.to/nofoster/til-5182026-1183</link>
      <guid>https://dev.to/nofoster/til-5182026-1183</guid>
      <description>&lt;p&gt;Beginning to create Native Apps!&lt;br&gt;
Troubleshooting Tips&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;If you have a connection error, remember to restart the server and go through the terminal connection flow. Occasionally the system times out due to inactivity (more than 15 minutes)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;500 after editing ERB often means Rails could not render the template -&amp;gt; One common cause is an unmatched &amp;lt;% end %&amp;gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

</description>
      <category>beginners</category>
      <category>devjournal</category>
      <category>rails</category>
      <category>ruby</category>
    </item>
    <item>
      <title>TIL 5/16/26</title>
      <dc:creator>NoFoster</dc:creator>
      <pubDate>Mon, 18 May 2026 02:27:29 +0000</pubDate>
      <link>https://dev.to/nofoster/til-51626-2plj</link>
      <guid>https://dev.to/nofoster/til-51626-2plj</guid>
      <description>&lt;p&gt;Today we are learning how to write Javascript&lt;/p&gt;

&lt;p&gt;Stimulus tips&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;The template holds fields that are not yet rendered. This is the go to blueprint:
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;template&lt;/span&gt; &lt;span class="na"&gt;data-dynamic-fields-target=&lt;/span&gt;&lt;span class="s"&gt;"template"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="c"&gt;&amp;lt;!-- Blueprint for new fields --&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/template&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;Traditional Action format:
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;event-&amp;gt;controller#method
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
      <category>javascript</category>
      <category>learning</category>
      <category>tutorial</category>
      <category>webdev</category>
    </item>
    <item>
      <title>TIL 5/15/2026</title>
      <dc:creator>NoFoster</dc:creator>
      <pubDate>Sat, 16 May 2026 02:56:10 +0000</pubDate>
      <link>https://dev.to/nofoster/til-5152026-2leb</link>
      <guid>https://dev.to/nofoster/til-5152026-2leb</guid>
      <description>&lt;ol&gt;
&lt;li&gt;&lt;p&gt;When bundle adding a new gem. you shouldn't have spaces between the '''&amp;gt;''' and version name. Ex. &lt;code&gt;bundle add factory_bot_rails --version "~&amp;gt;6.5.1" --group="development, test"&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Every do has a corresponding end in a code block.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

</description>
      <category>beginners</category>
      <category>devjournal</category>
      <category>learning</category>
      <category>ruby</category>
    </item>
  </channel>
</rss>
