<?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: Tao Liu</title>
    <description>The latest articles on Forem by Tao Liu (@taoliu12).</description>
    <link>https://forem.com/taoliu12</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%2F445486%2Ff4747f93-5dba-423a-9872-872f1c791333.jpg</url>
      <title>Forem: Tao Liu</title>
      <link>https://forem.com/taoliu12</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/taoliu12"/>
    <language>en</language>
    <item>
      <title>Make your ruby gems install faster</title>
      <dc:creator>Tao Liu</dc:creator>
      <pubDate>Tue, 17 Oct 2023 00:24:02 +0000</pubDate>
      <link>https://forem.com/taoliu12/make-your-ruby-gems-install-faster-182l</link>
      <guid>https://forem.com/taoliu12/make-your-ruby-gems-install-faster-182l</guid>
      <description>&lt;p&gt;"--no-ri --no-rdoc" &lt;br&gt;
&lt;strong&gt;How to make --no-ri --no-rdoc the default for gem install?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;To make the --no-ri and --no-rdoc options the default for the gem install command, you can configure this behavior in your Gem configuration file or by setting environment variables. Here's how to do it:&lt;/p&gt;

&lt;p&gt;Option 1: Using the Gem Configuration File (Recommended)&lt;/p&gt;

&lt;p&gt;Open your Gem configuration file. The location of the file depends on your operating system:&lt;/p&gt;

&lt;p&gt;On Unix-based systems (Linux, macOS), it's typically located at ~/.gemrc.&lt;br&gt;
On Windows, it might be located at %USERPROFILE%.gemrc or C:\Ruby{version}\etc\gemrc.&lt;br&gt;
If the file doesn't exist, you can create it.&lt;/p&gt;

&lt;p&gt;Add the following lines to the Gem configuration file:&lt;/p&gt;




&lt;p&gt;install: --no-ri --no-rdoc&lt;br&gt;
This sets the default options for gem install to include --no-ri and --no-rdoc.&lt;/p&gt;

&lt;p&gt;Save the Gem configuration file.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>If S3 buckets are for static file hosting, and not for running server side code, then why do we host react sites on S3?</title>
      <dc:creator>Tao Liu</dc:creator>
      <pubDate>Tue, 14 Mar 2023 04:32:11 +0000</pubDate>
      <link>https://forem.com/taoliu12/if-s3-buckets-are-for-static-file-hosting-and-not-for-running-server-side-code-then-why-do-we-host-react-sites-on-s3-3jjj</link>
      <guid>https://forem.com/taoliu12/if-s3-buckets-are-for-static-file-hosting-and-not-for-running-server-side-code-then-why-do-we-host-react-sites-on-s3-3jjj</guid>
      <description>&lt;p&gt;Node.js and Webpack are often used for server-side tasks like bundling and optimizing code. However, in the context of hosting a React app on an S3 bucket, Node.js and Webpack are used during the development and build process, not at runtime on the server.&lt;/p&gt;

&lt;p&gt;When you build a React app, you use Node.js and Webpack to bundle your code into a single JavaScript file that can be served to the client. The resulting bundled file contains the client-side JavaScript code that runs in the user's browser, not on the server.&lt;/p&gt;

&lt;p&gt;Once the React app is built and bundled, you can deploy the static files to an S3 bucket, which is a simple storage service that can serve files over the internet. When a user visits your React app hosted on S3, their browser downloads the static files from the S3 bucket and runs the JavaScript code on the client-side, not on the server.&lt;/p&gt;

&lt;p&gt;In contrast, a Rails or Flask application typically requires server-side code to run, as these applications often generate HTML pages dynamically and handle user requests on the server. This requires a server environment that can run the application code, process incoming requests, and generate responses dynamically.&lt;/p&gt;

&lt;p&gt;While Node.js and Webpack are used during the build process of a React app, they are not used to run the application on the server. Hosting a server-side application, such as a Rails or Flask app, requires a different hosting solution than hosting a static website on S3.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Ways web development teams work together</title>
      <dc:creator>Tao Liu</dc:creator>
      <pubDate>Mon, 13 Mar 2023 21:49:18 +0000</pubDate>
      <link>https://forem.com/taoliu12/ways-web-development-teams-work-together-5f73</link>
      <guid>https://forem.com/taoliu12/ways-web-development-teams-work-together-5f73</guid>
      <description>&lt;p&gt;Here are some common practices used by professional web development teams:&lt;/p&gt;

&lt;p&gt;Agile methodologies: Many web development teams use agile methodologies, such as Scrum or Kanban, to manage their projects. These methodologies emphasize collaboration, flexibility, and continuous improvement. Teams work in sprints or iterations, focusing on delivering small, functional pieces of the project on a regular basis.&lt;/p&gt;

&lt;p&gt;Version control: Teams use version control systems, such as Git, to manage changes to their codebase. This allows team members to work on separate features or branches of the codebase without interfering with each other's work. Version control also provides a history of changes, making it easier to track down bugs or revert to previous versions if necessary.&lt;/p&gt;

&lt;p&gt;Communication tools: Web development teams use a variety of communication tools to stay in touch and collaborate, including email, chat platforms like Slack or Microsoft Teams, and video conferencing tools like Zoom. Many teams also use project management software like Jira or Asana to keep track of tasks and deadlines.&lt;/p&gt;

&lt;p&gt;Code reviews: Code reviews are an important part of the development process, where team members review each other's code to check for errors, suggest improvements, and ensure that the code adheres to established standards and best practices.&lt;/p&gt;

&lt;p&gt;Testing and quality assurance: Web development teams also use testing and quality assurance processes to ensure that their code works as intended and is free of bugs and errors. This can include manual testing, automated testing, and continuous integration and deployment processes.&lt;/p&gt;

&lt;p&gt;Design collaboration: For web development teams that include designers, collaboration tools like Figma, Sketch, or Adobe XD can be used to collaborate on design elements and ensure that design decisions are integrated into the development process.&lt;/p&gt;

&lt;p&gt;Overall, professional web development teams prioritize collaboration, communication, and quality assurance to ensure that their projects are completed on time, within budget, and to the highest possible standard.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>What are no-go's and rabbit holes in software development?</title>
      <dc:creator>Tao Liu</dc:creator>
      <pubDate>Mon, 13 Mar 2023 21:44:19 +0000</pubDate>
      <link>https://forem.com/taoliu12/what-are-no-gos-and-rabbit-holes-in-software-development-3dao</link>
      <guid>https://forem.com/taoliu12/what-are-no-gos-and-rabbit-holes-in-software-development-3dao</guid>
      <description>&lt;p&gt;"No-go's" and "rabbit holes" are both terms used to describe issues that can arise during development that can cause delays or problems with the project.&lt;/p&gt;

&lt;p&gt;A "no-go" refers to a significant issue that prevents the project from progressing. For example, a critical bug in the code or an insurmountable obstacle in the design could be a no-go issue. When a no-go issue arises, the project cannot move forward until the issue is resolved.&lt;/p&gt;

&lt;p&gt;A "rabbit hole" refers to a situation where a developer spends an excessive amount of time investigating a particular issue, often at the expense of other important tasks. The term "rabbit hole" comes from the story of Alice in Wonderland, where Alice falls down a rabbit hole and ends up in a strange and confusing world. Similarly, when a developer goes down a "rabbit hole," they can become lost in a complex and time-consuming investigation that distracts them from other important work.&lt;/p&gt;

&lt;p&gt;Both no-go's and rabbit holes can be costly in terms of time and resources, and it is important for developers to be aware of these issues and try to avoid them when possible. Good project management, clear communication, and a focus on priorities can help minimize the risk of encountering no-go's and rabbit holes.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Update rails 5.2 to 6 (THOR MERGE solution included)</title>
      <dc:creator>Tao Liu</dc:creator>
      <pubDate>Sat, 04 Mar 2023 00:15:25 +0000</pubDate>
      <link>https://forem.com/taoliu12/update-rails-52-to-6-thor-merge-solution-included-3gbd</link>
      <guid>https://forem.com/taoliu12/update-rails-52-to-6-thor-merge-solution-included-3gbd</guid>
      <description>&lt;p&gt;Summary of steps&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;gem 'rails', '~&amp;gt; 6.0'&lt;/li&gt;
&lt;li&gt;bundle update rails&lt;/li&gt;
&lt;li&gt;&lt;p&gt;rails app:update&lt;br&gt;
     if you get a merge tool error "Please specify merge tool to &lt;code&gt;THOR_MERGE&lt;/code&gt; env." Follow these steops:&lt;br&gt;
    exit the update process&lt;br&gt;
          run:  $  THOR_MERGE=code rails app:update (selects vs code as your merge tool)&lt;br&gt;
     run rails app:update&lt;br&gt;
      select 'm' to merge files&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Uncomment defaults in new_framework_defaults_6_0.rb&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Go to new framework_defaults_6_0.rb I suggest to read the comments - there are several new defaults which are recommended to uncomment once you are confident that your app is stable on Rails 6. I did as it was suggested.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Delete new framework_defaults_6_0.rb when app is tested and working.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;src - &lt;a href="https://fullstackheroes.com/tutorials/rails/upgrade-to-rails-6/"&gt;https://fullstackheroes.com/tutorials/rails/upgrade-to-rails-6/&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Fix HTML page not filling up entire viewport vertically</title>
      <dc:creator>Tao Liu</dc:creator>
      <pubDate>Fri, 13 Jan 2023 18:23:33 +0000</pubDate>
      <link>https://forem.com/taoliu12/fix-page-not-filling-up-entire-viewport-vertically-3ofl</link>
      <guid>https://forem.com/taoliu12/fix-page-not-filling-up-entire-viewport-vertically-3ofl</guid>
      <description>&lt;p&gt;in CSS:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;main {
  height: 100%;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;to&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;main {
  height: 100vh;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
    </item>
    <item>
      <title>Possible fix: React Uncaught ReferenceError: process is not defined</title>
      <dc:creator>Tao Liu</dc:creator>
      <pubDate>Thu, 12 Jan 2023 19:10:28 +0000</pubDate>
      <link>https://forem.com/taoliu12/possible-fix-react-uncaught-referenceerror-process-is-not-defined-pl4</link>
      <guid>https://forem.com/taoliu12/possible-fix-react-uncaught-referenceerror-process-is-not-defined-pl4</guid>
      <description>&lt;p&gt;&lt;code&gt;install "react-scripts": "5.0.0"&lt;br&gt;
&lt;/code&gt;&lt;br&gt;
&lt;a href="https://stackoverflow.com/questions/70368760/react-uncaught-referenceerror-process-is-not-defined"&gt;https://stackoverflow.com/questions/70368760/react-uncaught-referenceerror-process-is-not-defined&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Things I did to get SCSS to work in a legacy react app</title>
      <dc:creator>Tao Liu</dc:creator>
      <pubDate>Wed, 11 Jan 2023 19:23:39 +0000</pubDate>
      <link>https://forem.com/taoliu12/things-i-did-to-get-scss-to-work-in-a-legacy-react-app-6dl</link>
      <guid>https://forem.com/taoliu12/things-i-did-to-get-scss-to-work-in-a-legacy-react-app-6dl</guid>
      <description>&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;  676  npm install sass
  677  npm install node-sass
  678  npm install

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

&lt;/div&gt;



&lt;p&gt;in package.json, change: &lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;"react-scripts": "2.0.0",
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;to&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;"react-scripts": "4.0.3",
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

</description>
      <category>watercooler</category>
    </item>
    <item>
      <title>Rails error: Your bundle is locked to mimemagic (0.3.5)</title>
      <dc:creator>Tao Liu</dc:creator>
      <pubDate>Tue, 10 Jan 2023 02:25:42 +0000</pubDate>
      <link>https://forem.com/taoliu12/rails-error-your-bundle-is-locked-to-mimemagic-035-5846</link>
      <guid>https://forem.com/taoliu12/rails-error-your-bundle-is-locked-to-mimemagic-035-5846</guid>
      <description>&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Your bundle is locked to mimemagic (0.3.5), but that version could not be found in any of the sources
listed in your Gemfile. If you haven't changed sources, that means the author of mimemagic (0.3.5) has removed it. You'll need to update your bundle to a version other than mimemagic (0.3.5) that hasn't been
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Delete gemfile.lock and run bundle&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>beginners</category>
      <category>career</category>
      <category>discuss</category>
    </item>
    <item>
      <title>Run pgsql migrations on WSL</title>
      <dc:creator>Tao Liu</dc:creator>
      <pubDate>Wed, 14 Apr 2021 02:41:16 +0000</pubDate>
      <link>https://forem.com/taoliu12/run-pgsql-migrations-on-wsl-5g54</link>
      <guid>https://forem.com/taoliu12/run-pgsql-migrations-on-wsl-5g54</guid>
      <description>&lt;p&gt;First you must run: rake db:create&lt;br&gt;
 Then: rake db:migrate&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Gems needed for Github Omniauth in Rails</title>
      <dc:creator>Tao Liu</dc:creator>
      <pubDate>Thu, 08 Apr 2021 21:16:46 +0000</pubDate>
      <link>https://forem.com/taoliu12/gems-needed-for-github-omniauth-in-rails-59b7</link>
      <guid>https://forem.com/taoliu12/gems-needed-for-github-omniauth-in-rails-59b7</guid>
      <description>&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ijE9XXJd--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/4kp9x3yy8sry0rr9m6to.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ijE9XXJd--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/4kp9x3yy8sry0rr9m6to.jpg" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Install MongoDB on WSL</title>
      <dc:creator>Tao Liu</dc:creator>
      <pubDate>Sun, 21 Mar 2021 21:19:19 +0000</pubDate>
      <link>https://forem.com/taoliu12/install-mongodb-on-wsl-3133</link>
      <guid>https://forem.com/taoliu12/install-mongodb-on-wsl-3133</guid>
      <description>&lt;p&gt;Use these two links:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://dev.to/seanwelshbrown/installing-mongodb-on-windows-subsystem-for-linux-wsl-2-19m9"&gt;https://dev.to/seanwelshbrown/installing-mongodb-on-windows-subsystem-for-linux-wsl-2-19m9&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://stackoverflow.com/questions/62495999/installing-mongodb-in-wsl"&gt;https://stackoverflow.com/questions/62495999/installing-mongodb-in-wsl&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
