<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:series="https://publishpress.com/"
	>

<channel>
	<title>Nguyen Anh, Author at Tomoshare</title>
	<atom:link href="https://blog.tomosia.com.vn/author/nguyenanh/feed/" rel="self" type="application/rss+xml" />
	<link>https://blog.tomosia.com.vn/author/nguyenanh/</link>
	<description>Kênh chia sẻ kiến thức Tomosia Việt Nam</description>
	<lastBuildDate>Thu, 25 Jan 2024 14:37:06 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0.2</generator>

<image>
	<url>https://blog.tomosia.com.vn/wp-content/uploads/2023/09/cropped-icon-32x32.png</url>
	<title>Nguyen Anh, Author at Tomoshare</title>
	<link>https://blog.tomosia.com.vn/author/nguyenanh/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Cài đặt Ruby trên M1 Mac</title>
		<link>https://blog.tomosia.com.vn/cai-dat-ruby-tren-m1-mac/</link>
					<comments>https://blog.tomosia.com.vn/cai-dat-ruby-tren-m1-mac/#comments</comments>
		
		<dc:creator><![CDATA[Nguyen Anh]]></dc:creator>
		<pubDate>Thu, 25 Jan 2024 14:37:05 +0000</pubDate>
				<category><![CDATA[Ruby]]></category>
		<category><![CDATA[OS & Command]]></category>
		<guid isPermaLink="false">https://blog.tomosia.com.vn/?p=3099</guid>

					<description><![CDATA[<p>Thỉnh thoảng việc cài đặt Ruby trên M1 Macs như là một cơn ác mộng. Chúng ta sẽ&#8230;</p>
<p>The post <a href="https://blog.tomosia.com.vn/cai-dat-ruby-tren-m1-mac/">Cài đặt Ruby trên M1 Mac</a> appeared first on <a href="https://blog.tomosia.com.vn">Tomoshare</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Thỉnh thoảng việc cài đặt Ruby trên M1 Macs như là một cơn ác mộng. Chúng ta sẽ mất rất nhiều thời gian để có thể tìm được giải pháp nhưng cuối cùng mọi thứ vẫn không work.</p>



<p class="wp-block-paragraph">Dưới đây là một giải pháp nhanh chóng với bạn có thể thử với những dòng command<br></p>



<div class="wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#f6f6f4;--cbp-line-number-width:16.859375px;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#333545;color:#ebebe6">Bash</span><span role="button" tabindex="0" data-code="brew install openssl@1.1

export PATH=&quot;$(brew --prefix)/opt/openssl@1.1/bin:$PATH&quot;
export LDFLAGS=&quot;-L$(brew --prefix)/opt/openssl@1.1/lib&quot;
export CPPFLAGS=&quot;-I$(brew --prefix)/opt/openssl@1.1/include&quot;
export PKG_CONFIG_PATH=&quot;$(brew --prefix)/opt/openssl@1.1/lib/pkgconfig&quot;

rvm autolibs disable

export RUBY_CFLAGS=-DUSE_FFI_CLOSURE_ALLOC
export optflags=&quot;-Wno-error=implicit-function-declaration&quot;

rvm install 3.2.2 --with-openssl-dir=$(brew --prefix)/opt/openssl@1.1" style="color:#f6f6f4;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki dracula-soft" style="background-color: #282A36" tabindex="0"><code><span class="line"><span style="color: #62E884">brew</span><span style="color: #F6F6F4"> </span><span style="color: #E7EE98">install</span><span style="color: #F6F6F4"> </span><span style="color: #E7EE98">openssl@1.1</span></span>
<span class="line"></span>
<span class="line"><span style="color: #F286C4">export</span><span style="color: #F6F6F4"> </span><span style="color: #BF9EEE">PATH</span><span style="color: #F286C4">=</span><span style="color: #DEE492">&quot;</span><span style="color: #E7EE98">$(</span><span style="color: #62E884">brew</span><span style="color: #E7EE98"> </span><span style="color: #BF9EEE">--prefix</span><span style="color: #E7EE98">)/opt/openssl@1.1/bin:</span><span style="color: #BF9EEE">$PATH</span><span style="color: #DEE492">&quot;</span></span>
<span class="line"><span style="color: #F286C4">export</span><span style="color: #F6F6F4"> </span><span style="color: #BF9EEE">LDFLAGS</span><span style="color: #F286C4">=</span><span style="color: #DEE492">&quot;</span><span style="color: #E7EE98">-L$(</span><span style="color: #62E884">brew</span><span style="color: #E7EE98"> </span><span style="color: #BF9EEE">--prefix</span><span style="color: #E7EE98">)/opt/openssl@1.1/lib</span><span style="color: #DEE492">&quot;</span></span>
<span class="line"><span style="color: #F286C4">export</span><span style="color: #F6F6F4"> </span><span style="color: #BF9EEE">CPPFLAGS</span><span style="color: #F286C4">=</span><span style="color: #DEE492">&quot;</span><span style="color: #E7EE98">-I$(</span><span style="color: #62E884">brew</span><span style="color: #E7EE98"> </span><span style="color: #BF9EEE">--prefix</span><span style="color: #E7EE98">)/opt/openssl@1.1/include</span><span style="color: #DEE492">&quot;</span></span>
<span class="line"><span style="color: #F286C4">export</span><span style="color: #F6F6F4"> </span><span style="color: #BF9EEE">PKG_CONFIG_PATH</span><span style="color: #F286C4">=</span><span style="color: #DEE492">&quot;</span><span style="color: #E7EE98">$(</span><span style="color: #62E884">brew</span><span style="color: #E7EE98"> </span><span style="color: #BF9EEE">--prefix</span><span style="color: #E7EE98">)/opt/openssl@1.1/lib/pkgconfig</span><span style="color: #DEE492">&quot;</span></span>
<span class="line"></span>
<span class="line"><span style="color: #62E884">rvm</span><span style="color: #F6F6F4"> </span><span style="color: #E7EE98">autolibs</span><span style="color: #F6F6F4"> </span><span style="color: #E7EE98">disable</span></span>
<span class="line"></span>
<span class="line"><span style="color: #F286C4">export</span><span style="color: #F6F6F4"> </span><span style="color: #BF9EEE">RUBY_CFLAGS</span><span style="color: #F286C4">=</span><span style="color: #E7EE98">-DUSE_FFI_CLOSURE_ALLOC</span></span>
<span class="line"><span style="color: #F286C4">export</span><span style="color: #F6F6F4"> </span><span style="color: #BF9EEE">optflags</span><span style="color: #F286C4">=</span><span style="color: #DEE492">&quot;</span><span style="color: #E7EE98">-Wno-error=implicit-function-declaration</span><span style="color: #DEE492">&quot;</span></span>
<span class="line"></span>
<span class="line"><span style="color: #62E884">rvm</span><span style="color: #F6F6F4"> </span><span style="color: #E7EE98">install</span><span style="color: #F6F6F4"> </span><span style="color: #BF9EEE">3.2</span><span style="color: #E7EE98">.2</span><span style="color: #F6F6F4"> </span><span style="color: #BF9EEE">--with-openssl-dir=</span><span style="color: #E7EE98">$(</span><span style="color: #62E884">brew</span><span style="color: #E7EE98"> </span><span style="color: #BF9EEE">--prefix</span><span style="color: #E7EE98">)</span><span style="color: #BF9EEE">/opt/openssl@1.1</span></span></code></pre></div>



<p class="wp-block-paragraph">Nếu đã chạy các command ở trên vẫn không được hãy thử dụng tuyệt chiêu cuối cùng với command</p>



<div class="wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#f6f6f4;--cbp-line-number-width:8.4296875px;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#333545;color:#ebebe6">Bash</span><span role="button" tabindex="0" data-code="arch -x86_64 rvm install 3.2.2 -j 1" style="color:#f6f6f4;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki dracula-soft" style="background-color: #282A36" tabindex="0"><code><span class="line"><span style="color: #62E884">arch</span><span style="color: #F6F6F4"> </span><span style="color: #BF9EEE">-x86_64</span><span style="color: #F6F6F4"> </span><span style="color: #E7EE98">rvm</span><span style="color: #F6F6F4"> </span><span style="color: #E7EE98">install</span><span style="color: #F6F6F4"> </span><span style="color: #BF9EEE">3.2</span><span style="color: #E7EE98">.2</span><span style="color: #F6F6F4"> </span><span style="color: #BF9EEE">-j</span><span style="color: #F6F6F4"> </span><span style="color: #BF9EEE">1</span></span></code></pre></div>



<p class="wp-block-paragraph">Tôi cũng đang sử dụng M1 và mọi thứ đã work đối với tôi.</p>
<p>The post <a href="https://blog.tomosia.com.vn/cai-dat-ruby-tren-m1-mac/">Cài đặt Ruby trên M1 Mac</a> appeared first on <a href="https://blog.tomosia.com.vn">Tomoshare</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.tomosia.com.vn/cai-dat-ruby-tren-m1-mac/feed/</wfw:commentRss>
			<slash:comments>5</slash:comments>
		
		
			</item>
		<item>
		<title>Review Code: Một số tips để đạt được hiệu quả.</title>
		<link>https://blog.tomosia.com.vn/review-code-mot-so-tips-de-dat-duoc-hieu-qua/</link>
					<comments>https://blog.tomosia.com.vn/review-code-mot-so-tips-de-dat-duoc-hieu-qua/#comments</comments>
		
		<dc:creator><![CDATA[Nguyen Anh]]></dc:creator>
		<pubDate>Wed, 20 Dec 2023 03:07:26 +0000</pubDate>
				<category><![CDATA[Kinh nghiệm]]></category>
		<category><![CDATA[review code]]></category>
		<guid isPermaLink="false">https://blog.tomosia.com.vn/?p=2737</guid>

					<description><![CDATA[<p>Khi comment vào PR của người khác, việc thể hiện sự tôn trọng và hỗ trợ là chìa khóa để xây dựng một môi trường hợp tác và phát triển tích cực trong nhóm. Trong mọi hoàn cảnh hãy thử đặt mình vào vị trí người khác bạn sẽ có cách giải quyết đúng đắn và hợp lý.</p>
<p>The post <a href="https://blog.tomosia.com.vn/review-code-mot-so-tips-de-dat-duoc-hieu-qua/">Review Code: Một số tips để đạt được hiệu quả.</a> appeared first on <a href="https://blog.tomosia.com.vn">Tomoshare</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Khi comment vào Pull Request (PR) của người khác, việc thể hiện sự tôn trọng và hỗ trợ là chìa khóa để xây dựng một môi trường hợp tác và phát triển tích cực trong nhóm. Review code cũng là một cách để chúng ta truyền đạt những kinh nghiệm của bản thân tới cho người khác, vì thể hãy đưa nó về đúng với bản chất, target mà chúng ta mong muốn.</p>



<p class="wp-block-paragraph">Trong mọi hoàn cảnh hãy thử đặt mình vào vị trí người khác chúng sẽ dễ có cách giải quyết đúng đắn và thuyết phục, dưới đây là một vài lời khuyên &#8220;không cụ thể&#8221;.</p>



<h3 id="1-dua-ra-gop-y-xay-dung" class="wp-block-heading">1. Đưa ra góp ý xây dựng:</h3>



<ul class="wp-block-list">
<li><strong>Tập trung vào vấn đề:</strong> Chú ý vào các phần của code hoặc logic cần cải thiện hoặc có vấn đề.</li>



<li><strong>Đề xuất cải thiện:</strong> Đưa ra ý kiến xây dựng, gợi ý cách để cải thiện mã nguồn, thay vì chỉ nhấn mạnh vấn đề.</li>



<li><strong>Đánh nhãn nếu có thể:</strong> Hãy tập trung vào những điểm <strong>High</strong> cần phải thay đổi, <strong>Middle</strong> nên thay đổi, <strong>Low</strong> thay đổi càng tốt</li>
</ul>



<h3 id="2-su-dung-ngon-ngu-tich-cuc-va-ton-trong" class="wp-block-heading">2. Sử dụng ngôn ngữ tích cực và tôn trọng:</h3>



<ul class="wp-block-list">
<li><strong>Lời khuyên thay vì chỉ trích:</strong> Sử dụng ngôn ngữ tích cực để gợi ý cách sửa đổi hoặc cải thiện.</li>



<li><strong>Tôn trọng ý kiến:</strong> Đề xuất ý kiến của bạn một cách lịch sự và tôn trọng, tránh ngôn từ hoặc cách diễn đạt có thể bị hiểu là chỉ trích.</li>
</ul>



<h3 id="3-giai-thich-ro-rang-va-minh-bach" class="wp-block-heading">3. Giải thích rõ ràng và minh bạch:</h3>



<ul class="wp-block-list">
<li><strong>Minh bạch:</strong> Giải thích tại sao bạn đề xuất thay đổi hoặc cần sửa đổi để người khác hiểu rõ lý do.</li>



<li><strong>Ví dụ cụ thể (nếu có thể):</strong> Nếu có thể, cung cấp ví dụ cụ thể để minh họa vấn đề hoặc cải thiện đề xuất của bạn.</li>
</ul>



<h3 id="4-tranh-mau-thuan-va-xung-dot" class="wp-block-heading">4. Tránh mâu thuẫn và xung đột:</h3>



<ul class="wp-block-list">
<li><strong>Hỏi trước khi giả định:</strong> Nếu có điều gì không rõ ràng, hãy hỏi trước khi đưa ra giả định hoặc nhận xét.</li>



<li><strong>Tránh tranh cãi:</strong> Tránh tranh cãi không cần thiết và tập trung vào giải quyết vấn đề.</li>
</ul>



<h3 id="5-de-xuat-giai-phap" class="wp-block-heading">5. Đề xuất giải pháp:</h3>



<ul class="wp-block-list">
<li><strong>Đề xuất sửa đổi cụ thể:</strong> Nếu có thể, đề xuất cách thức cụ thể để sửa đổi vấn đề đã được xác định.</li>



<li><strong>Hỗ trợ người gửi PR:</strong> Nếu bạn có kiến thức hoặc kinh nghiệm để giúp người gửi PR hoàn thiện mã nguồn, hãy chia sẻ.</li>
</ul>



<h3 id="6-theo-doi-va-phan-hoi" class="wp-block-heading">6. Theo dõi và phản hồi:</h3>



<ul class="wp-block-list">
<li><strong>Theo dõi và phản hồi:</strong> Theo dõi sự phản hồi từ người gửi PR và trả lời các câu hỏi hoặc bất kỳ yêu cầu giải thích nào.</li>



<li><strong>Hiểu và thấu hiểu:</strong> Đôi khi, người gửi PR có lý do riêng cho cách họ viết mã nguồn. Hiểu và cân nhắc trước khi yêu cầu thay đổi, có câu<em> hiểu người khác là khôn ngoan, hiểu được chính mình là giác ngộ!!!</em></li>
</ul>



<p class="wp-block-paragraph">Cám ơn mọi người đã vào và đọc được dòng chữ này!!!!</p>
<p>The post <a href="https://blog.tomosia.com.vn/review-code-mot-so-tips-de-dat-duoc-hieu-qua/">Review Code: Một số tips để đạt được hiệu quả.</a> appeared first on <a href="https://blog.tomosia.com.vn">Tomoshare</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.tomosia.com.vn/review-code-mot-so-tips-de-dat-duoc-hieu-qua/feed/</wfw:commentRss>
			<slash:comments>5</slash:comments>
		
		
			</item>
		<item>
		<title>Cài đặt nginx trên Amazon Linux 2 (ECS Optimized)</title>
		<link>https://blog.tomosia.com.vn/cai-dat-nginx-tren-amazon-linux-2-ecs-optimized/</link>
					<comments>https://blog.tomosia.com.vn/cai-dat-nginx-tren-amazon-linux-2-ecs-optimized/#comments</comments>
		
		<dc:creator><![CDATA[Nguyen Anh]]></dc:creator>
		<pubDate>Fri, 24 Nov 2023 06:43:30 +0000</pubDate>
				<category><![CDATA[AWS]]></category>
		<category><![CDATA[Web Server]]></category>
		<category><![CDATA[Kinh nghiệm]]></category>
		<guid isPermaLink="false">https://blog.tomosia.com.vn/?p=1978</guid>

					<description><![CDATA[<p>Đối với một số bài toàn sử dụng ECS docker và muốn chạy nhiều dịch vụ trên một&#8230;</p>
<p>The post <a href="https://blog.tomosia.com.vn/cai-dat-nginx-tren-amazon-linux-2-ecs-optimized/">Cài đặt nginx trên Amazon Linux 2 (ECS Optimized)</a> appeared first on <a href="https://blog.tomosia.com.vn">Tomoshare</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Đối với một số bài toàn sử dụng ECS docker và muốn chạy nhiều dịch vụ trên một EC2 để tiết kiệm chi phí thì đôi lúc chúng ta cần setup nginx và đây là cách hướng dẫn. Trong bài toán này hệ thống sử dụng ECS và EC2 Amazon Linux 2 (ECS Optimized).</p>



<p class="wp-block-paragraph">1. <strong>Sử dụng kho lưu trữ Extra Packages for Enterprise Linux (EPEL)</strong>:</p>



<p class="wp-block-paragraph">Kho lưu trữ EPEL thường chứa các gói phần mềm bổ sung mà có thể không có sẵn trong các kho lưu trữ mặc định của Amazon Linux.</p>



<p class="wp-block-paragraph">Đầu tiên, cài đặt kho lưu trữ EPEL:</p>



<div class="wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#f6f6f4;--cbp-line-number-width:8.4296875px;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#333545;color:#ebebe6">JavaScript</span><span role="button" tabindex="0" data-code="sudo amazon-linux-extras install epel -y" style="color:#f6f6f4;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki dracula-soft" style="background-color: #282A36" tabindex="0"><code><span class="line"><span style="color: #F6F6F4">sudo amazon</span><span style="color: #F286C4">-</span><span style="color: #F6F6F4">linux</span><span style="color: #F286C4">-</span><span style="color: #F6F6F4">extras install epel </span><span style="color: #F286C4">-</span><span style="color: #F6F6F4">y</span></span></code></pre></div>



<p class="wp-block-paragraph">2<strong>. Cài đặt Nginx</strong>:</p>



<p class="wp-block-paragraph">Sau khi thêm kho lưu trữ EPEL, bạn có thể thử cài đặt Nginx bằng <code>yum</code>:</p>



<div class="wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#f6f6f4;--cbp-line-number-width:8.4296875px;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#333545;color:#ebebe6">JavaScript</span><span role="button" tabindex="0" data-code="sudo yum install nginx -y" style="color:#f6f6f4;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki dracula-soft" style="background-color: #282A36" tabindex="0"><code><span class="line"><span style="color: #F6F6F4">sudo yum install nginx </span><span style="color: #F286C4">-</span><span style="color: #F6F6F4">y</span></span></code></pre></div>



<p class="wp-block-paragraph">3. <strong>Khởi động và Kích hoạt Nginx</strong>:</p>



<p class="wp-block-paragraph">Sau khi cài đặt, khởi động và kích hoạt dịch vụ Nginx:</p>



<div class="wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#f6f6f4;--cbp-line-number-width:8.4296875px;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#333545;color:#ebebe6">JavaScript</span><span role="button" tabindex="0" data-code="sudo systemctl start nginx
sudo systemctl enable nginx" style="color:#f6f6f4;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki dracula-soft" style="background-color: #282A36" tabindex="0"><code><span class="line"><span style="color: #F6F6F4">sudo systemctl start nginx</span></span>
<span class="line"><span style="color: #F6F6F4">sudo systemctl enable nginx</span></span></code></pre></div>



<p class="wp-block-paragraph">4. <strong>Kiểm tra Trạng thái Nginx</strong>:</p>



<p class="wp-block-paragraph">Kiểm tra trạng thái của dịch vụ Nginx để xác nhận rằng nó đang chạy:</p>



<div class="wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#f6f6f4;--cbp-line-number-width:8.4296875px;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#333545;color:#ebebe6">JavaScript</span><span role="button" tabindex="0" data-code="sudo systemctl status nginx" style="color:#f6f6f4;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki dracula-soft" style="background-color: #282A36" tabindex="0"><code><span class="line"><span style="color: #F6F6F4">sudo systemctl status nginx</span></span></code></pre></div>
<p>The post <a href="https://blog.tomosia.com.vn/cai-dat-nginx-tren-amazon-linux-2-ecs-optimized/">Cài đặt nginx trên Amazon Linux 2 (ECS Optimized)</a> appeared first on <a href="https://blog.tomosia.com.vn">Tomoshare</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.tomosia.com.vn/cai-dat-nginx-tren-amazon-linux-2-ecs-optimized/feed/</wfw:commentRss>
			<slash:comments>5</slash:comments>
		
		
			</item>
		<item>
		<title>Rails 7.1 đã cho phép ErrorReporter để handle error classes.</title>
		<link>https://blog.tomosia.com.vn/don-gian-hoa-xu-ly-rescue-trong-rails-7-1/</link>
					<comments>https://blog.tomosia.com.vn/don-gian-hoa-xu-ly-rescue-trong-rails-7-1/#comments</comments>
		
		<dc:creator><![CDATA[Nguyen Anh]]></dc:creator>
		<pubDate>Wed, 08 Nov 2023 06:19:54 +0000</pubDate>
				<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Rails]]></category>
		<category><![CDATA[Rails7.1]]></category>
		<guid isPermaLink="false">https://blog.tomosia.com.vn/?p=1773</guid>

					<description><![CDATA[<p>ErrorReporter was added to Rails in version 7.0. It was introduced as a way to provide a more consistent and standardized way to handle errors in the Rails applications.</p>
<p>The post <a href="https://blog.tomosia.com.vn/don-gian-hoa-xu-ly-rescue-trong-rails-7-1/">Rails 7.1 đã cho phép ErrorReporter để handle error classes.</a> appeared first on <a href="https://blog.tomosia.com.vn">Tomoshare</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph"><strong>Before Rails 7.1</strong></p>



<pre class="wp-block-code"><code># to handle a single error
begin
  code_that_raises_exception
rescue ArgumentError =&gt; e
  puts e.message
end   

# to handle multiple errors
exceptions = &#91;ArgumentError, StandarError]

begin
  code_that_raises_argument_error
  code_that_raises_standard_error
rescue *exceptions =&gt; e
  puts "Error: #{e.message} occurred."
end</code></pre>



<p class="wp-block-paragraph"><strong>In Rails 7.1</strong></p>



<pre class="wp-block-code"><code>@post = Post.new(params&#91;:post])

Rails.error.handle(ActiveRecord::Errors, StandardError) do
  @post.save!
end</code></pre>



<p class="wp-block-paragraph"><em><a href="https://github.com/rails/rails/pull/46299">PR of the update</a></em></p>
<p>The post <a href="https://blog.tomosia.com.vn/don-gian-hoa-xu-ly-rescue-trong-rails-7-1/">Rails 7.1 đã cho phép ErrorReporter để handle error classes.</a> appeared first on <a href="https://blog.tomosia.com.vn">Tomoshare</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.tomosia.com.vn/don-gian-hoa-xu-ly-rescue-trong-rails-7-1/feed/</wfw:commentRss>
			<slash:comments>7</slash:comments>
		
		
			</item>
	</channel>
</rss>
