tag:blogger.com,1999:blog-36416380545475260592024-03-14T15:35:07.541+07:00Jundat95System.out.print('Hello world!');Anonymoushttp://www.blogger.com/profile/05863775982731470627noreply@blogger.comBlogger327125truetag:blogger.com,1999:blog-3641638054547526059.post-49585285049407393962023-08-21T13:54:00.007+07:002023-08-21T13:55:46.496+07:00How to install PHP 7.4 in MacOS Venture 13.4<p></p><h1 style="text-align: left;"> How to install PHP 7.4 in MacOSX Venture 13.4</h1><br /><br /><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjzlyIITbf0-H6D76p4m1x2JXb-vZiaeVmgRrBVUO6GPdgsZyUqLzqfi-YKhfcBc1mQmZJVxjsC6HvjbWFIg3s_xFkG9S6favcuHUAM4P_iODBVaQs670TjRszTFTc9-2m17Wjc6xSoQ1MCVotgyxKPzdDCdBLiZkFKec6u-L4Xe9B1egEy2N_a_vOpj8U/s1024/php-1024x538.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="php" border="0" data-original-height="538" data-original-width="1024" height="210" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjzlyIITbf0-H6D76p4m1x2JXb-vZiaeVmgRrBVUO6GPdgsZyUqLzqfi-YKhfcBc1mQmZJVxjsC6HvjbWFIg3s_xFkG9S6favcuHUAM4P_iODBVaQs670TjRszTFTc9-2m17Wjc6xSoQ1MCVotgyxKPzdDCdBLiZkFKec6u-L4Xe9B1egEy2N_a_vOpj8U/w400-h210/php-1024x538.png" title="php" width="400" /></a></div><br /><p><br /></p><p>Please follow those steps to install PHP in the MacOSX Venture</p><p><br /></p><p>1, brew install dylanngo95/homebrew-php https://github.com/dylanngo95/homebrew-php.git</p><p>2, brew install dylanngo95/php/php@7.4</p><p>If you want to use OpenSSL 1.1</p><div style="background-color: #282a36; color: #f8f8f2; font-family: Menlo, Monaco, "Courier New", monospace, "Anonymice Nerd Font Complete Mono", Menlo, Monaco, "Courier New", monospace; font-size: 17px; line-height: 26px; white-space: pre;"><div>OPENSSL_CFLAGS="-I/usr/local/opt/openssl@1.1/include" \</div><div>OPENSSL_LIBS="-L/usr/local/opt/openssl@1.1/lib -lcrypto -lssl" \</div><div>brew install shivammathur/php/php@7.4</div></div><p>4, Installed done</p><p>php -v</p><p>3, Some cases got errors</p><p>Type Error occurred when creating object: Magento\Framework\Locale\Resolver, rtrim() expects parameter 1 to be string, bool given</p><div>You must install mcrypt</div><div><br /></div><div><p class="p1" style="background-color: rgba(0, 0, 0, 0.9); color: #2fff12; font-family: "Anonymice Nerd Font Mono"; font-feature-settings: normal; font-kerning: auto; font-optical-sizing: auto; font-size: 18px; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variation-settings: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;">pecl install mcrypt <<<"$(ls -d $(brew --prefix)/Cellar/mcrypt/* | tail -1)"</span></p></div><div><br /></div><div>Thanks.</div>Tinh Ngohttp://www.blogger.com/profile/04404524425512639918noreply@blogger.com0tag:blogger.com,1999:blog-3641638054547526059.post-89944982196254301742022-11-08T07:59:00.006+07:002022-11-08T07:59:59.023+07:00How to install odoo 16<p></p><h1 style="text-align: left;"> How to install Odoo 16 on Docker compose?</h1><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjm36IyPcYMOcBOmwUjMDDoPgqq0ZzCUz6h9IR12cWUdn-jyN3wa-7qAW6pAkfRm43szhGrgRiykzVNQSndEbWdUSRSD0B0USfINTCqrUxx4OvcvsiId6eIeYnsKngRaP7Hrg_-nwMVUDaDyksNKD_JnWl0mBe8okctikyyITtvPw5GlyEffcleBsAp/s900/odoo-vector-logo.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="install odoo 16 docker compose" border="0" data-original-height="500" data-original-width="900" height="356" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjm36IyPcYMOcBOmwUjMDDoPgqq0ZzCUz6h9IR12cWUdn-jyN3wa-7qAW6pAkfRm43szhGrgRiykzVNQSndEbWdUSRSD0B0USfINTCqrUxx4OvcvsiId6eIeYnsKngRaP7Hrg_-nwMVUDaDyksNKD_JnWl0mBe8okctikyyITtvPw5GlyEffcleBsAp/w640-h356/odoo-vector-logo.png" title="install odoo 16 docker compose" width="640" /></a></div><div>Odoo is a suite of business management software tools including, for example, CRM, e-commerce, billing, accounting, manufacturing, warehouse, project management, and inventory management.</div><div><br /></div><div>During Odoo experience which took place in Belgium in October 2022, Fabien Pinckaers announced that moving forward Odoo will make all applications available for free in enterprise edition, making Odoo an unparalleled suite of +70 integrated business apps.<br /><br />Make sure your computer is installed docker compose and run docker deamon :))<br /><br />The docker compose support run on AMD/ARM architecture<br /><br />1, Clone code<br />git clone https://github.com/dylanops/docker-odoo.git</div><div>cd docker-odoo<br /><br />2, Setup env<br />cp .env.sample .env<br /><br />3, Start odoo<br /><br />docker compose up -d<br /><br />docker exec -ti --user root odoo chown -R odoo:odoo /mnt/extra-addons/ var/lib/odoo/<br /><br />4, Setup odoo<br /><br /><ul dir="auto" style="background-color: white; box-sizing: border-box; color: #24292f; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji"; font-size: 16px; margin-bottom: 16px; margin-top: 0px; padding-left: 2em;"><li style="box-sizing: border-box;">Go to <a href="http://localhost:8069/" rel="nofollow" style="background-color: transparent; box-sizing: border-box; text-decoration-line: none;">http://localhost:8069/</a></li><li style="box-sizing: border-box; margin-top: 0.25em;">Database Name: odoo</li></ul><div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgFkdmKFujSdWLFzHoQ9iGu1ZDA620ygmeMa-OM5qrwGTC1SFSKYY_rUo1K6rxAFqbNHvjqTIllNuKms7ozBSLTI5d_gu7vZjU6L99DxAmiyYDaX52kC4AMT1TE641DfB7hb0e0-LBXu-LGp01f5IxClSlv-glogDKclTyVD5yuXw62oON2TOhi1ikL/s1917/step1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="install odoo" border="0" data-original-height="1016" data-original-width="1917" height="340" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgFkdmKFujSdWLFzHoQ9iGu1ZDA620ygmeMa-OM5qrwGTC1SFSKYY_rUo1K6rxAFqbNHvjqTIllNuKms7ozBSLTI5d_gu7vZjU6L99DxAmiyYDaX52kC4AMT1TE641DfB7hb0e0-LBXu-LGp01f5IxClSlv-glogDKclTyVD5yuXw62oON2TOhi1ikL/w640-h340/step1.png" title="install odoo" width="640" /></a></div><br /><span style="color: #24292f; font-family: -apple-system, BlinkMacSystemFont, Segoe UI, Helvetica, Arial, sans-serif, Apple Color Emoji, Segoe UI Emoji;"><br /><br /><br /></span></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjSRDG9X87yneBnb05g2DRFheTnATMmi8wBVy04tZS_6hpsCdgE69KZnT3cUWmEl9m7eHq5IDYYsQah5LTyRq-OyNZID5sYq9VL8JhZzfL-6ITyn0tcryHIsChzlwqjagt1gHD47jf1tcijHr3Gb4MX5Mmt-DdzzalNM3UiMMRWxQQ7C0qcR1joqzpV/s1920/step2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="odoo 16" border="0" data-original-height="1013" data-original-width="1920" height="338" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjSRDG9X87yneBnb05g2DRFheTnATMmi8wBVy04tZS_6hpsCdgE69KZnT3cUWmEl9m7eHq5IDYYsQah5LTyRq-OyNZID5sYq9VL8JhZzfL-6ITyn0tcryHIsChzlwqjagt1gHD47jf1tcijHr3Gb4MX5Mmt-DdzzalNM3UiMMRWxQQ7C0qcR1joqzpV/w640-h338/step2.png" title="odoo 16" width="640" /></a></div><br /><br />Thanks</div>Tinh Ngohttp://www.blogger.com/profile/04404524425512639918noreply@blogger.com0Singapore1.352083 103.819836-26.958150836178845 68.663586 29.662316836178846 138.976086tag:blogger.com,1999:blog-3641638054547526059.post-64931296604719607102022-05-03T16:24:00.006+07:002022-05-03T16:25:46.498+07:00Hướng dẫn đọc nghi file với hợp ngữ assembly TASM<h1 style="text-align: left;">Đọc nghi file/IO với Assembly TASM</h1><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEifp7bsJh0eL-q7hFAW_BaEmRG2aDD0PlGFESbIaQfzp2DihmblV_GfIcCPOhAo9nJrYsapD0nvLhW1VsgOuVGcTIccBWCxFnViPNU7JejWGhfunT4mNaJogh8zlo_i5jZhpesfWnEn1x2i6FijplNYdht1epvSKAkTdjGc4HLI99ZQk-QHf0-uzbej/s1571/2022-05-03_16-18.png" style="margin-left: 1em; margin-right: 1em;"><img alt="Assembly" border="0" data-original-height="950" data-original-width="1571" height="388" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEifp7bsJh0eL-q7hFAW_BaEmRG2aDD0PlGFESbIaQfzp2DihmblV_GfIcCPOhAo9nJrYsapD0nvLhW1VsgOuVGcTIccBWCxFnViPNU7JejWGhfunT4mNaJogh8zlo_i5jZhpesfWnEn1x2i6FijplNYdht1epvSKAkTdjGc4HLI99ZQk-QHf0-uzbej/w640-h388/2022-05-03_16-18.png" title="Assembly" width="640" /></a></div><br /><p>Ví dụ hướng đọc file và in ra màn hình.<br /><br /><script src="https://gist.github.com/dylanngo95/7924559df9e5a5f5677a0413bf61aec2.js"></script></p><p><br /></p><p>Ví dụ hướng dẫn nhập từ bàn phím và nghi ra file.</p><p> </p><script src="https://gist.github.com/dylanngo95/5b823f846beaddb476df29efd9cb9f58.js"></script><p><br /></p><p>Thanks.</p>Tinh Ngohttp://www.blogger.com/profile/04404524425512639918noreply@blogger.com0tag:blogger.com,1999:blog-3641638054547526059.post-79624729473933457762022-04-21T15:55:00.004+07:002022-04-21T15:55:35.255+07:00How to setup JIT php 8.1 on ubuntu 20.04<p>How to setup JIT php 8.1 on ubuntu 20.04<br /><br /><br /></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi8jtp210IdXpfw9gz9HrhB8a8LmKryZB9C4GPBrOEvjUBKSwzVh7BE_JO934O2c8Tx7dRxk-Qh7SieLicalbhHGn7KdA72lD-Ov10OPt7mtjRXUoglZVSRykwJl0rQphLE19CtGA1PKscjexv6CbEgabh4YLMLRqcJFHFR5qHA5jHQ6Hrz_mOMVCTN/s1024/jit1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="PHP JIT" border="0" data-original-height="679" data-original-width="1024" height="424" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi8jtp210IdXpfw9gz9HrhB8a8LmKryZB9C4GPBrOEvjUBKSwzVh7BE_JO934O2c8Tx7dRxk-Qh7SieLicalbhHGn7KdA72lD-Ov10OPt7mtjRXUoglZVSRykwJl0rQphLE19CtGA1PKscjexv6CbEgabh4YLMLRqcJFHFR5qHA5jHQ6Hrz_mOMVCTN/w640-h424/jit1.png" title="PHP JIT" width="640" /></a></div><br /><div>1, Disable Xdebug</div><div><br /></div><div>sudo mv /etc/php/8.1/mods-available/xdebug.ini /etc/php/8.1/mods-available/xdebug.ini.bak</div><div><br /></div><div>2, Install Opcache</div><div><br /></div><div>sudo apt-update install php-opcache</div><div><br /></div><div>// Let install specify php8.1</div><div>sudo apt-update install php8.1-opcache</div><div><br /></div><div>3, Setting turn on JIT</div><div><br /></div><div>sudo vim /etc/php/8.1/mods-available/opcache.ini</div><div><br /></div><div><div>; configuration for php opcache module</div><div>; priority=10</div><div>zend_extension=opcache.so</div><div>opcache.enable=1</div><div>opcache.enable_cli=1</div><div>opcache.jit_buffer_size=128M</div><div>opcache.jit=tracing</div></div><div><br /></div><div>4, Test JIT with script</div><div><br /></div><div><?php</div><div><br /></div><div><div>function isJitEnabled(): bool</div><div>{</div><div> if (!function_exists('opcache_get_status')) {</div><div> return false;</div><div> }</div><div> </div><div> return !empty(opcache_get_status()['jit']['enabled']);</div><div>}</div><div> </div><div>echo isJitEnabled() ? 'Enabled' : 'Disabled';</div></div><div><br /></div><div>5, Good for you !!</div>Tinh Ngohttp://www.blogger.com/profile/04404524425512639918noreply@blogger.com0tag:blogger.com,1999:blog-3641638054547526059.post-18014057202193715242022-01-15T20:28:00.008+07:002022-01-15T20:48:51.240+07:00Hướng dẫn cài đặt Erlang version manager trên ubuntu<h1 style="text-align: left;"> Hướng dẫn cài đặt Erlang management version trên ubuntu</h1><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEjBp21GW0LwaMiiljNQn6U9paLZF7Py0yWGaiAb2WZXWVZSSOiTWn4_IIt7RDOkrmCoQgViXBCnGrB9onRXIAZhm-qCSOskTPrIe7xqqspgGzue5SZost7sODxu-KcwdaxYr2Ovm8_bkssxKg907BA8e6PJyg6lKTeQXBVhIwBR5dGy54QXbozNRdP_=s1200" style="margin-left: 1em; margin-right: 1em;"><img alt="Hướng dẫn cài đặt Erlang version manager trên ubuntu" border="0" data-original-height="1200" data-original-width="1200" height="640" src="https://blogger.googleusercontent.com/img/a/AVvXsEjBp21GW0LwaMiiljNQn6U9paLZF7Py0yWGaiAb2WZXWVZSSOiTWn4_IIt7RDOkrmCoQgViXBCnGrB9onRXIAZhm-qCSOskTPrIe7xqqspgGzue5SZost7sODxu-KcwdaxYr2Ovm8_bkssxKg907BA8e6PJyg6lKTeQXBVhIwBR5dGy54QXbozNRdP_=w640-h640" title="Hướng dẫn cài đặt Erlang version manager trên ubuntu" width="640" /></a></div><br /><p><br /></p><p>1, Install package management</p><p>git clone https://github.com/asdf-vm/asdf.git ~/.asdf</p><p>2, Config your shell</p><p>echo ". $HOME/.asdf/asdf.sh" >> ~/.bashrc</p><p>source ~/.bashrc</p><p>3, Install plugins<br /></p><p>asdf plugin add erlang</p><p>asdf plugin add elixir</p><p>4, Show Erlang version available for install<br /><br />asdf list-all erlang</p><p>5, Install specify erlang version</p><p>asdf install erlang 23.2.1</p><p>6, Install elixir and OPT</p><p>asdf install elixir 1.11.2-otp-23<br /><br /></p><p>7, Set version for project</p><p>asdf local erlang 23.2.1</p><p>asdf local elixir 1.11.2-otp-23</p><p>8, Set version for global<br /></p><p>asdf global erlang 23.2.1</p><p>asdf global elixir 1.11.2-otp-23<br /><br />Thanks.</p>Tinh Ngohttp://www.blogger.com/profile/04404524425512639918noreply@blogger.com0tag:blogger.com,1999:blog-3641638054547526059.post-86079586244999840582021-12-26T22:12:00.009+07:002021-12-27T07:23:06.625+07:00Hash string to number<h1 style="text-align: left;">Hash string to number</h1><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEhm5rJe7uxN5cio-j8TkYrkP2D8qUMDBRYcOfWhdJjxAXVYGkqgCJTKCOx2DJ8KoDN0Dh6gyR63Qtkc8uSzKy9jnBfdePz8E50Y-3ooz-wIpR-T1FDNC6256oX5tqMBELozpLn5qhARtbgNRvVFaTpXyUJJEnd61KtyEzmL_eqz5qAnsG2LvYimD4eR=s750" style="margin-left: 1em; margin-right: 1em;"><img alt="hash" border="0" data-original-height="269" data-original-width="750" height="230" src="https://blogger.googleusercontent.com/img/a/AVvXsEhm5rJe7uxN5cio-j8TkYrkP2D8qUMDBRYcOfWhdJjxAXVYGkqgCJTKCOx2DJ8KoDN0Dh6gyR63Qtkc8uSzKy9jnBfdePz8E50Y-3ooz-wIpR-T1FDNC6256oX5tqMBELozpLn5qhARtbgNRvVFaTpXyUJJEnd61KtyEzmL_eqz5qAnsG2LvYimD4eR=w640-h230" title="hash" width="640" /></a></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: center;"><br /><br /><div style="text-align: left;"><h3 style="text-align: left;">djb2</h3><div>this algorithm (k=33) was first reported by dan bernstein many years ago in comp.lang.c. another version of this algorithm (now favored by bernstein) uses xor: hash(i) = hash(i - 1) * 33 ^ str[i]; the magic of number 33 (why it works better than many other constants, prime or not) has never been adequately explained.<br /><br /></div><div> unsigned long</div><div> hash(unsigned char *str)</div><div> {</div><div> unsigned long hash = 5381;</div><div> int c;</div><div><br /></div><div> while (c = *str++)</div><div> hash = ((hash << 5) + hash) + c; /* hash * 33 + c */</div><div><br /></div><div> return hash;</div><div> }</div><div><br /></div><div><br /></div><h3 style="text-align: left;">sdbm</h3><div>this algorithm was created for sdbm (a public-domain reimplementation of ndbm) database library. it was found to do well in scrambling bits, causing better distribution of the keys and fewer splits. it also happens to be a good general hashing function with good distribution. the actual function is hash(i) = hash(i - 1) * 65599 + str[i]; what is included below is the faster version used in gawk. [there is even a faster, duff-device version] the magic constant 65599 was picked out of thin air while experimenting with different constants, and turns out to be a prime. this is one of the algorithms used in berkeley db (see sleepycat) and elsewhere.<br /><br /></div><div> static unsigned long</div><div> sdbm(str)</div><div> unsigned char *str;</div><div> {</div><div> unsigned long hash = 0;</div><div> int c;</div><div><br /></div><div> while (c = *str++)</div><div> hash = c + (hash << 6) + (hash << 16) - hash;</div><div><br /></div><div> return hash;</div><div> }</div><div><br /></div><div><br /></div><h3 style="text-align: left;">lose lose</h3><div>This hash function appeared in K&R (1st ed) but at least the reader was warned: "This is not the best possible algorithm, but it has the merit of extreme simplicity." This is an understatement; It is a terrible hashing algorithm, and it could have been much better without sacrificing its "extreme simplicity." [see the second edition!] Many C programmers use this function without actually testing it, or checking something like Knuth's Sorting and Searching, so it stuck. It is now found mixed with otherwise respectable code, eg. cnews. sigh. [see also: tpop]<br /><br /></div><div> unsigned long</div><div> hash(unsigned char *str)</div><div> {</div><div><span style="white-space: pre;"> </span>unsigned int hash = 0;</div><div><span style="white-space: pre;"> </span>int c;</div><div><br /></div><div><span style="white-space: pre;"> </span>while (c = *str++)</div><div><span style="white-space: pre;"> </span> hash += c;</div><div><br /></div><div><span style="white-space: pre;"> </span>return hash;</div><div> }</div><div><br /></div><div><br /></div><div>Posts reference:</div><div><ol style="text-align: left;"><li><a href="https://aras-p.info/blog/2016/08/02/Hash-Functions-all-the-way-down/">https://aras-p.info/blog/2016/08/02/Hash-Functions-all-the-way-down/</a></li><li><a href="http://www.cse.yorku.ca/~oz/hash.html">http://www.cse.yorku.ca/~oz/hash.html</a></li></ol></div></div></div>Tinh Ngohttp://www.blogger.com/profile/04404524425512639918noreply@blogger.com0tag:blogger.com,1999:blog-3641638054547526059.post-90592251253813252302021-12-13T08:48:00.006+07:002021-12-13T10:48:04.012+07:00Rust encrypt with rsa public key<h1 style="text-align: left;"> Rust encrypt with RSA public key</h1><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEg7MAVL_NMmED4KIxjXP7pjCv1q2rI3Ad7WWViyBj4lfNOksfZo78OtDMzeL-4ixAOZDz8jWkgNknG70GjqwOPOgME_YlSQWKK_BWO09qB6EoAvDPiue38XPLYJRnoq-Nit-cuTh0-6qitVJLcnxfhiCkfCQOazVeZ8g8B0SlETKCuWVszK7aHLCwKl=s1040" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="Rust encrypt with RSA public key" border="0" data-original-height="585" data-original-width="1040" height="360" src="https://blogger.googleusercontent.com/img/a/AVvXsEg7MAVL_NMmED4KIxjXP7pjCv1q2rI3Ad7WWViyBj4lfNOksfZo78OtDMzeL-4ixAOZDz8jWkgNknG70GjqwOPOgME_YlSQWKK_BWO09qB6EoAvDPiue38XPLYJRnoq-Nit-cuTh0-6qitVJLcnxfhiCkfCQOazVeZ8g8B0SlETKCuWVszK7aHLCwKl=w640-h360" title="Rust encrypt with RSA public key" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><br /></div><br /><p>We use cargo to build this example.<br /><br />Require modules:<br /></p><p>rsa = "0.5.0"</p><p>rand = "0.8.4"</p><p>My code to show, How to encrypt, decrypt with RSA</p><p><br />//src/cargo.toml</p><p>[package]</p><p>name = "algorithm"</p><p>version = "0.1.0"</p><p>edition = "2021"</p><p><br /></p><p>[dependencies]</p><p>rsa = "0.5.0"</p><p>rand = "0.8.4"</p><p><br />//src/main.rs<br /></p><div style="background-color: #282a36; color: #f8f8f2; font-family: "Droid Sans Mono", monospace, monospace, "Droid Sans Fallback"; line-height: 27px; white-space: pre;"><div><span style="color: #ed1b24;">use</span> rand<span style="color: #ed1b24;">::</span>rngs<span style="color: #ed1b24;">::</span><span style="color: #8be9fd; font-style: italic;">OsRng</span>;</div><div><span style="color: #ed1b24;">use</span> rsa<span style="color: #ed1b24;">::</span>{<span style="color: #8be9fd; font-style: italic;">PaddingScheme</span>, <span style="color: #8be9fd; font-style: italic;">PublicKey</span>, <span style="color: #8be9fd; font-style: italic;">RsaPrivateKey</span>, <span style="color: #8be9fd; font-style: italic;">RsaPublicKey</span>};</div><br /><div><span style="color: #ed1b24;">pub</span> <span style="color: #ed1b24;">fn</span> <span style="color: #50fa7b;">main</span>() {</div><div> <span style="color: #ed1b24;">let</span> <span style="color: #ed1b24;">mut</span> rng <span style="color: #ed1b24;">=</span> <span style="color: #8be9fd; font-style: italic;">OsRng</span>;</div><div> <span style="color: #ed1b24;">let</span> bits <span style="color: #ed1b24;">=</span> <span style="color: #bd93f9;">512</span>;</div><div> <span style="color: #ed1b24;">let</span> private_key <span style="color: #ed1b24;">=</span> <span style="color: #8be9fd; font-style: italic;">RsaPrivateKey</span><span style="color: #ed1b24;">::</span><span style="color: #50fa7b;">new</span>(<span style="color: #ed1b24;">&mut</span> rng, bits)
<span style="color: #ed1b24;"><span> </span><span> </span>.</span><span style="color: #50fa7b;">expect</span>(<span style="color: #f1fa8c;">"failed to generate a key"</span>);</div><div> <span style="color: #ed1b24;">let</span> public_key <span style="color: #ed1b24;">=</span> <span style="color: #8be9fd; font-style: italic;">RsaPublicKey</span><span style="color: #ed1b24;">::</span><span style="color: #50fa7b;">from</span>(<span style="color: #ed1b24;">&</span>private_key);</div><br /><div><span style="color: #6272a4;"> // Encrypt</span></div><div> <span style="color: #ed1b24;">let</span> plain_text <span style="color: #ed1b24;">=</span> <span style="color: #f1fa8c;">b"Hello world!"</span>;</div><div> <span style="color: #ed1b24;">let</span> cipher_text <span style="color: #ed1b24;">=</span> public_key</div><div> <span style="color: #ed1b24;">.</span><span style="color: #50fa7b;">encrypt</span>(</div><div> <span style="color: #ed1b24;">&mut</span> rng,</div><div> <span style="color: #8be9fd; font-style: italic;">PaddingScheme</span><span style="color: #ed1b24;">::</span><span style="color: #50fa7b;">new_pkcs1v15_encrypt</span>(),</div><div> <span style="color: #ed1b24;">&</span>plain_text[<span style="color: #ed1b24;">..</span>],</div><div> )</div><div> <span style="color: #ed1b24;">.</span><span style="color: #50fa7b;">expect</span>(<span style="color: #f1fa8c;">"failed to encrypt"</span>);</div><div> <span style="color: #50fa7b;">println!</span>(<span style="color: #f1fa8c;">"Cipher Text: {:?}"</span>, cipher_text);</div><br /><div><span style="color: #6272a4;"> // Decrypt</span></div><div> <span style="color: #ed1b24;">let</span> decrypted_text <span style="color: #ed1b24;">=</span> private_key</div><div> <span style="color: #ed1b24;">.</span><span style="color: #50fa7b;">decrypt</span>(
<span style="color: #8be9fd; font-style: italic;"><span> </span><span> </span><span> </span>PaddingScheme</span><span style="color: #ed1b24;">::</span><span style="color: #50fa7b;">new_pkcs1v15_encrypt</span>(),
<span style="color: #ed1b24;"><span> </span><span> </span><span> </span>&</span>cipher_text)</div><div> <span style="color: #ed1b24;">.</span><span style="color: #50fa7b;">expect</span>(<span style="color: #f1fa8c;">"failed to decrypt"</span>);</div><br /><div> <span style="color: #50fa7b;">println!</span>(
<span style="color: #f1fa8c;"><span> </span><span> </span>"Plain text: {}"</span>,
<span style="color: #8be9fd; font-style: italic;"><span> </span><span> </span>String</span><span style="color: #ed1b24;">::</span><span style="color: #50fa7b;">from_utf8_lossy</span>(<span style="color: #ed1b24;">&</span>decrypted_text)
<span> </span><span> </span>);</div><div>}</div></div><p><br /></p><p>Thanks.</p>Tinh Ngohttp://www.blogger.com/profile/04404524425512639918noreply@blogger.com0tag:blogger.com,1999:blog-3641638054547526059.post-51192789258222093842021-12-13T08:38:00.004+07:002021-12-13T08:39:52.993+07:00How to hash files on rust<h1 style="text-align: left;">how to hash files on rust</h1><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEgZIJ5Xh1HFA8EnbyWFcu8Tz_UJpuXJACj4wpmmmNSiD6LhUuOCKesvOlnZhseF09Jwn16y9A2xWw6Tiaa_WU96f1kvCHTAcx5M0cvxet6hesSdOzQKAXJfCRX9DIIfRgpvY8FoqkobcnlEXYMqgaayD78jLHZ1ygotqU8JVvEJq8s8vYYpaK6g-RLW=s1040" style="margin-left: 1em; margin-right: 1em;"><img alt="how to hash files on rust" border="0" data-original-height="585" data-original-width="1040" height="360" src="https://blogger.googleusercontent.com/img/a/AVvXsEgZIJ5Xh1HFA8EnbyWFcu8Tz_UJpuXJACj4wpmmmNSiD6LhUuOCKesvOlnZhseF09Jwn16y9A2xWw6Tiaa_WU96f1kvCHTAcx5M0cvxet6hesSdOzQKAXJfCRX9DIIfRgpvY8FoqkobcnlEXYMqgaayD78jLHZ1ygotqU8JVvEJq8s8vYYpaK6g-RLW=w640-h360" title="how to hash files on rust" width="640" /></a></div><br /><p>We use cargo to build this example:<br />Require modules:</p><p>sha2 = "0.10.0"<br /><br />Code example:<br /><br />//src/main.rs</p><div style="background-color: #282a36; color: #f8f8f2; font-family: "Droid Sans Mono", monospace, monospace, "Droid Sans Fallback"; line-height: 27px; white-space: pre;"><div><span style="color: #ed1b24;">use</span> sha2<span style="color: #ed1b24;">::</span>{<span style="color: #8be9fd; font-style: italic;">Digest</span>, <span style="color: #8be9fd; font-style: italic;">Sha256</span>};</div><div><span style="color: #ed1b24;">use</span> std<span style="color: #ed1b24;">::</span>{fs, io};</div><br /><div><span style="color: #ed1b24;">pub</span> <span style="color: #ed1b24;">fn</span> <span style="color: #50fa7b;">main</span>() {</div><div> <span style="color: #ed1b24;">let</span> <span style="color: #ed1b24;">mut</span> file <span style="color: #ed1b24;">=</span> fs<span style="color: #ed1b24;">::</span><span style="color: #8be9fd; font-style: italic;">File</span><span style="color: #ed1b24;">::</span><span style="color: #50fa7b;">open</span>(<span style="color: #f1fa8c;">"./src/hash/index.html"</span>)<span style="color: #ed1b24;">.</span><span style="color: #50fa7b;">unwrap</span>();</div><br /><div><span style="color: #6272a4;"> // create a Sha256 object</span></div><div> <span style="color: #ed1b24;">let</span> <span style="color: #ed1b24;">mut</span> hasher <span style="color: #ed1b24;">=</span> <span style="color: #8be9fd; font-style: italic;">Sha256</span><span style="color: #ed1b24;">::</span><span style="color: #50fa7b;">new</span>();</div><br /><div> <span style="color: #ed1b24;">let</span> n <span style="color: #ed1b24;">=</span> io<span style="color: #ed1b24;">::</span><span style="color: #50fa7b;">copy</span>(<span style="color: #ed1b24;">&mut</span> file, <span style="color: #ed1b24;">&mut</span> hasher);</div><br /><div><span style="color: #6272a4;"> // read hash digest and consume hasher</span></div><div> <span style="color: #ed1b24;">let</span> result <span style="color: #ed1b24;">=</span> hasher<span style="color: #ed1b24;">.</span><span style="color: #50fa7b;">finalize</span>();</div><br /><div> <span style="color: #50fa7b;">println!</span>(<span style="color: #f1fa8c;">"Bytes processed: {:?}"</span>, n);</div><br /><div> <span style="color: #50fa7b;">println!</span>(<span style="color: #f1fa8c;">"Hash: {:x}"</span>, result);</div><div>}</div><span style="font-size: 20px;"><br /></span></div><p><br />//src/index.html</p><div style="background-color: #282a36; color: #f8f8f2; font-family: "Droid Sans Mono", monospace, monospace, "Droid Sans Fallback"; line-height: 27px; white-space: pre;"><div><!<span style="color: #ed1b24;">DOCTYPE</span> <span style="color: #50fa7b; font-style: italic;">html</span>></div><div><<span style="color: #ed1b24;">html</span> <span style="color: #50fa7b; font-style: italic;">lang</span><span style="color: #ed1b24;">=</span><span style="color: #e9f284;">"</span><span style="color: #f1fa8c;">en</span><span style="color: #e9f284;">"</span>></div><br /><div><<span style="color: #ed1b24;">head</span>></div><div> <<span style="color: #ed1b24;">meta</span> <span style="color: #50fa7b; font-style: italic;">charset</span><span style="color: #ed1b24;">=</span><span style="color: #e9f284;">"</span><span style="color: #f1fa8c;">UTF-8</span><span style="color: #e9f284;">"</span>></div><div> <<span style="color: #ed1b24;">meta</span> <span style="color: #50fa7b; font-style: italic;">http-equiv</span><span style="color: #ed1b24;">=</span><span style="color: #e9f284;">"</span><span style="color: #f1fa8c;">X-UA-Compatible</span><span style="color: #e9f284;">"</span> <span style="color: #50fa7b; font-style: italic;">content</span><span style="color: #ed1b24;">=</span><span style="color: #e9f284;">"</span><span style="color: #f1fa8c;">IE=edge</span><span style="color: #e9f284;">"</span>></div><div> <<span style="color: #ed1b24;">title</span>>Document</<span style="color: #ed1b24;">title</span>></div><div></<span style="color: #ed1b24;">head</span>></div><br /><div><<span style="color: #ed1b24;">body</span>></div><div> <<span style="color: #ed1b24;">h1</span>>Dylan Ngo</<span style="color: #ed1b24;">h1</span>></div><div> <<span style="color: #ed1b24;">div</span>></div><div> <<span style="color: #ed1b24;">p</span>>Hash this file</<span style="color: #ed1b24;">p</span>></div><div> </<span style="color: #ed1b24;">div</span>></div><div></<span style="color: #ed1b24;">body</span>></div><br /><div></<span style="color: #ed1b24;">html</span>></div></div><p>Thanks.</p><p><br /></p>Tinh Ngohttp://www.blogger.com/profile/04404524425512639918noreply@blogger.com0tag:blogger.com,1999:blog-3641638054547526059.post-75874969946765643032021-12-12T09:56:00.012+07:002021-12-12T15:52:41.313+07:00 How to separate files in the rust module<h1 style="text-align: left;"> How to separate files in the rust module</h1><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEiFt8gyzPpi2ODeYC2-oMQ1P6cyRHoyW463j9BBU-HibH758pbfDWI2uvxaqH8fcYheWr4oUXVbwzWdegAOAmjOZ30sP75V30TMA5eObiYprdDk2b4bVtjla9Flc5-4zWuxLJijCw5qOae4R9jt90Z9OAuIDNfipVs9pIobamowfNu_zOy49mcKJO-k=s2048" style="margin-left: 1em; margin-right: 1em;"><img alt="How to separate files in the rust module" border="0" data-original-height="1152" data-original-width="2048" height="360" src="https://blogger.googleusercontent.com/img/a/AVvXsEiFt8gyzPpi2ODeYC2-oMQ1P6cyRHoyW463j9BBU-HibH758pbfDWI2uvxaqH8fcYheWr4oUXVbwzWdegAOAmjOZ30sP75V30TMA5eObiYprdDk2b4bVtjla9Flc5-4zWuxLJijCw5qOae4R9jt90Z9OAuIDNfipVs9pIobamowfNu_zOy49mcKJO-k=w640-h360" title="How to separate files in the rust module" width="640" /></a></div><br /><h3 style="text-align: left;">Maybe you are mixing the concepts of crates and modules. They are somewhat related but different. </h3><div style="text-align: left;"><ol style="text-align: left;"><li><span style="font-size: medium;">Crates are separated units of compilation, distribution, versioning, and dependency management.</span></li><li><span style="font-size: medium;">Modules are pieces of a crate that are logically separated, with visibility barriers maybe also compiled separately, but finally linked together, and bundled into a crate.</span></li></ol></div><p style="text-align: left;"></p><p style="text-align: left;"></p><p style="text-align: left;"></p><p style="text-align: left;">Now we have three options for creating a separate file in the rust module:</p>1, Write module inline, It's means whole module same file.<p></p><p><script src="https://gist.github.com/dylanngo95/d0b114ad1a5243e918c06ca019f2c5a0.js"></script><br /></p><p>2, Write module separate file same folder(source directory)</p><p><script src="https://gist.github.com/dylanngo95/e620c1e8b24c1af8745c97eaf382f726.js"></script><br /></p><p>3, Write module in a subdirectory, "and the file name must be mod.rs"</p><p><script src="https://gist.github.com/dylanngo95/8183b607ba293fc58b076f0354c65a05.js"></script><br /></p><p>4, So another way we can use Cargo for load library. Cargo is Rust package management so easy to load libraries.<br />We create two files main.rs and lib.rs for separate code.<br /><script src="https://gist.github.com/dylanngo95/17e0c292da74b09fef00af94e94eea6c.js"></script><br /><br />My project to demo: <a href="https://github.com/dylanngo95/rust-module-example">https://github.com/dylanngo95/rust-module-example</a><br /><br />Thanks.</p>Tinh Ngohttp://www.blogger.com/profile/04404524425512639918noreply@blogger.com0tag:blogger.com,1999:blog-3641638054547526059.post-91540194202095618742021-12-10T20:36:00.007+07:002021-12-10T20:45:54.831+07:00Hướng dẫn cài đặt rust trên ubuntu 20.04<h1 style="text-align: left;"> Hướng dẫn cài đặt rust trên ubuntu 20.04</h1><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEhP-8P9LVyS6Br_x-4yRfMgGlzwZE8FLpRP0SbCwCwuN2_mGDW10N7514McbhCKekOnyIsJyPvvPlVL6FCbvVaHGgnHcsgnLF5exOVUSfX3cTXdKRb4uwapIaF8tdua1H5Oty9ElQXgV-XTF7T21I0D50XTfKmuBkrpyWi8gxlEdObjX5Iuf8K2ZJXz=s709" style="margin-left: 1em; margin-right: 1em;"><img alt="Huong dan cai dat Rust" border="0" data-original-height="438" data-original-width="709" height="396" src="https://blogger.googleusercontent.com/img/a/AVvXsEhP-8P9LVyS6Br_x-4yRfMgGlzwZE8FLpRP0SbCwCwuN2_mGDW10N7514McbhCKekOnyIsJyPvvPlVL6FCbvVaHGgnHcsgnLF5exOVUSfX3cTXdKRb4uwapIaF8tdua1H5Oty9ElQXgV-XTF7T21I0D50XTfKmuBkrpyWi8gxlEdObjX5Iuf8K2ZJXz=w640-h396" title="Huong dan cai dat Rust" width="640" /></a></div><br /><p></p><h2 style="text-align: left;">Rust (đọc là rớt-xtờ /rʌst/) là một ngôn ngữ lập trình hệ thống được quảng bá là có tốc độ cực kì nhanh, ngăn chặn được phần lớn mọi bug crash, ngăn chặn được data race, rất memory safe mà lại không cần tới garbage collector. <br />Hiện tại Rust đang được sử dụng để tạo ra các hệ thống web chịu tải cao, các hệ thống cryptocurrency, đặc biệt Rust đã trở thành ngôn ngữ chính cùng với C/C++ để tạo ra nhân Linux nổi tiếng mà chúng ta đang sử dụng. :))</h2><h3 style="text-align: left;"><br />Để trải nghiệm ngôn ngữ này chúng ta bắt đầu cài đặt nó trên Ubuntu nhé.<br />Yêu cầu hệ điều hành bạn đang sử dụng là Ubuntu nhé :))</h3><br /><br /><p></p><p>Mở terminal lên và chạy các câu lệnh sau:<br /></p><ol style="text-align: left;"><li>Chạy lệnh<br /><br />curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh<br /><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEgLeGM9e-jFMz4aYU5oVWLXFwPX1yg2XDJh-NloHiV1aKT-PALOnZWelEa_iWUnQuspvxK8U2hUZN1X0BHlb-rSpY76duxJFhBZBZ0j4lTQgIJMuV6ikcSOa70_aK4S8LWMzAsprmNCn_RxLcx12Uq6YCKoofjf6X3L5TjT8Dx2WHmWzTfXNhySQf6a=s988" style="margin-left: 1em; margin-right: 1em;"><img alt="Cai dat Rust" border="0" data-original-height="624" data-original-width="988" height="404" src="https://blogger.googleusercontent.com/img/a/AVvXsEgLeGM9e-jFMz4aYU5oVWLXFwPX1yg2XDJh-NloHiV1aKT-PALOnZWelEa_iWUnQuspvxK8U2hUZN1X0BHlb-rSpY76duxJFhBZBZ0j4lTQgIJMuV6ikcSOa70_aK4S8LWMzAsprmNCn_RxLcx12Uq6YCKoofjf6X3L5TjT8Dx2WHmWzTfXNhySQf6a=w640-h404" title="Cai dat Rust" width="640" /></a></div></li><li><br />Chọn 1 để cài đặt Rust mặc định.<br /><br /></li><li><span style="text-align: left;">Chạy lệnh để update lại môi trường.<br /><br />source $HOME/.cargo/env<br /><br /></span><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEhbWmzzk63STyTcO1FcYPBtHcn9n-brdGzh0Wo9Pce-asjkDNorI0gQ_vsVzbpJyErSUqs6DPtJLe7iD1chMDyBLYhbcY8A2abDrwufIcWoZh1wk3eWdbzyMNUwdSKNuEVTrFseP5cPgJeXEpAv20ijZIEOxCFnv4MBKgNOdkNLCL5kKSf7QtuOFPpd=s989" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="Rust" border="0" data-original-height="626" data-original-width="989" height="406" src="https://blogger.googleusercontent.com/img/a/AVvXsEhbWmzzk63STyTcO1FcYPBtHcn9n-brdGzh0Wo9Pce-asjkDNorI0gQ_vsVzbpJyErSUqs6DPtJLe7iD1chMDyBLYhbcY8A2abDrwufIcWoZh1wk3eWdbzyMNUwdSKNuEVTrFseP5cPgJeXEpAv20ijZIEOxCFnv4MBKgNOdkNLCL5kKSf7QtuOFPpd=w640-h406" title="Rust" width="640" /></a></div><br /></li><li><span style="text-align: left;">Kiểm tra Rust version.<br /><br />rustc -V</span></li></ol><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEgR-zfKJDHkDr0Gmsf0-s3fsNcKaOZ9y6I2RvaVK5ojlHN2o8orzsj9H8Iuo34Br9DDRZike-5sL0ZTvl57vpRQdZ26kqHE8jKu1UkHobfEaOtYg8DQCwhgGMDDkUAmwEQawWUAaiEh6L_xrTUe_wBNlgSBnDVIXI9oh97cRAdzmX_mmjVtS22PdSK2=s987" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="Rust version" border="0" data-original-height="623" data-original-width="987" height="404" src="https://blogger.googleusercontent.com/img/a/AVvXsEgR-zfKJDHkDr0Gmsf0-s3fsNcKaOZ9y6I2RvaVK5ojlHN2o8orzsj9H8Iuo34Br9DDRZike-5sL0ZTvl57vpRQdZ26kqHE8jKu1UkHobfEaOtYg8DQCwhgGMDDkUAmwEQawWUAaiEh6L_xrTUe_wBNlgSBnDVIXI9oh97cRAdzmX_mmjVtS22PdSK2=w640-h404" title="Rust version" width="640" /></a></div><br /><p><br /></p><p>Thanks.</p>Tinh Ngohttp://www.blogger.com/profile/04404524425512639918noreply@blogger.com0tag:blogger.com,1999:blog-3641638054547526059.post-18255886304757937162021-12-04T08:54:00.002+07:002021-12-04T08:54:15.852+07:00Cài đặt PHP 8.1 trên Ubuntu 20.04 đơn giản như đan rổ<h2 style="text-align: left;"> Cài đặt PHP 8.1 trên Ubuntu 20.04 đơn giản như đan rổ</h2><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZLuWyZ_uxAwlGpL3FWloatwnV-6tftlBlz3GO4-lLiAiYHdUTqEsk0MVs0Y4NpIPfKKV5aALwFe1n4eEoJZr9jmiKW6jGLEyz_XJtcb-srdDp7xel2ruHq-W6NBLOjPF1YMjvf4jehI8/s1280/php_8_1_released.png" style="margin-left: 1em; margin-right: 1em;"><img alt="Cài đặt PHP 8.1 trên Ubuntu 20.04 đơn giản như đan rổ" border="0" data-original-height="800" data-original-width="1280" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZLuWyZ_uxAwlGpL3FWloatwnV-6tftlBlz3GO4-lLiAiYHdUTqEsk0MVs0Y4NpIPfKKV5aALwFe1n4eEoJZr9jmiKW6jGLEyz_XJtcb-srdDp7xel2ruHq-W6NBLOjPF1YMjvf4jehI8/w640-h400/php_8_1_released.png" title="Cài đặt PHP 8.1 trên Ubuntu 20.04 đơn giản như đan rổ" width="640" /></a></div><br /><p>Yêu cầu, hệ điều hành Ubuntu hoặc Debian.</p><p>PHP 8.1 bao gồm những chức năng mới và cải thiện hiệu năng.<br /></p><p>1. Enumerations.</p><p>2. Readonly Properties.</p><p>3. First-class Callable.</p><p>4. Initializers.</p><p>5. Pure Intersection Type.</p><p>6. Nerver return type.</p><p>7. Final class constants.</p><p>8. Fibers.</p><p>9. Array unpacking - hỗ trợ mảng bất tuần tự.</p><p>10. Cải tiến về mặt hiệu năng.</p><p><br /></p><p><br /></p><p><script src="https://gist.github.com/dylanngo95/6458f9cb7c22872557d35f8d578e4253.js"></script><br /></p><p>Thanks</p>Tinh Ngohttp://www.blogger.com/profile/04404524425512639918noreply@blogger.com0tag:blogger.com,1999:blog-3641638054547526059.post-47143848366332397062021-09-23T07:38:00.011+07:002021-09-23T08:01:27.437+07:00How to debug Magento 2 with Docker, PHPStorm<h1 style="text-align: left;"> How to debug Magento 2 with Docker, PHPStorm</h1><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjUPy-lZRqgFycPAdmBYiL1ll1Ee9Cs9OQ3F0O3gRkJtqxIe1Faw9P9BbHCobOWygd6bWYjqqPTHPHbaVkW-imjn1B1BoxHSpHgYCRq4shHyAYBELcdZbXzk-_Y93bORgbn5q_69IQa0uA/s1400/phpStorm_2-68.png" style="margin-left: 1em; margin-right: 1em;"><img alt="How to debug Magento 2 with Docker, PHPStorm" border="0" data-original-height="700" data-original-width="1400" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjUPy-lZRqgFycPAdmBYiL1ll1Ee9Cs9OQ3F0O3gRkJtqxIe1Faw9P9BbHCobOWygd6bWYjqqPTHPHbaVkW-imjn1B1BoxHSpHgYCRq4shHyAYBELcdZbXzk-_Y93bORgbn5q_69IQa0uA/w640-h320/phpStorm_2-68.png" title="How to debug Magento 2 with Docker, PHPStorm" width="640" /></a></div><br />Docker-compose for Magento 2<br /><p><br /><script src="https://gist.github.com/dylanngo95/d25980fae99a9ad9b1ce2f516e5e5cca.js"></script><br /></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjP2AviRRg8a4O8akJxdr2Mue9LUdVXGSiapkWGwLfI1ITW54D-Mmwuvu228y4LT1BmjBMGF3OPsp0YVH9w-2hNCgMU1790BdhKeHLctXm6nkU_Db9dZnruXwasJltN0_0iG0mOAr6jmDo/s1016/debug1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="magento 2 debug" border="0" data-original-height="728" data-original-width="1016" height="458" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjP2AviRRg8a4O8akJxdr2Mue9LUdVXGSiapkWGwLfI1ITW54D-Mmwuvu228y4LT1BmjBMGF3OPsp0YVH9w-2hNCgMU1790BdhKeHLctXm6nkU_Db9dZnruXwasJltN0_0iG0mOAr6jmDo/w640-h458/debug1.png" title="magento 2 debug" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhW2cQwonEjHtCUsWgRekwdxtbGI3S2IDGVOiF4JQ2tzzm4mzDN1EsLEAqEvSiId2O9HMCQlyDot-wv-CaO2LIH1stu1z9y1oUeGUhmvl9FOAdiIy8nA-lNy8Hm87P6Hj2LcZgDdb6g0Bk/s1022/debug2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="magento 2 debug" border="0" data-original-height="736" data-original-width="1022" height="460" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhW2cQwonEjHtCUsWgRekwdxtbGI3S2IDGVOiF4JQ2tzzm4mzDN1EsLEAqEvSiId2O9HMCQlyDot-wv-CaO2LIH1stu1z9y1oUeGUhmvl9FOAdiIy8nA-lNy8Hm87P6Hj2LcZgDdb6g0Bk/w640-h460/debug2.png" title="magento 2 debug" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjbtzuwBwf2XqWt1A4u3w2dRmeIleLHwwQjmUDjA4jDjnJKclx-yqtD-3LFCN28T0aMSOp2aaYM2r-D84rypaAlAi2JPIa-jpbaulJ7Ria4H_NNaevgLgqyfIYc4oETScdHs8gM4mnzdyA/s1018/debug3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="magento 2 debug" border="0" data-original-height="733" data-original-width="1018" height="460" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjbtzuwBwf2XqWt1A4u3w2dRmeIleLHwwQjmUDjA4jDjnJKclx-yqtD-3LFCN28T0aMSOp2aaYM2r-D84rypaAlAi2JPIa-jpbaulJ7Ria4H_NNaevgLgqyfIYc4oETScdHs8gM4mnzdyA/w640-h460/debug3.png" title="magento 2 debug" width="640" /></a></div><div><br /></div><h2 style="text-align: left;"><span style="font-weight: normal;">I have created documentation and DockerFile for debug Magento 2 with PHPStorm on Ubuntu.</span></h2><p>It works very fast, Let's try it with this link: <a href="https://github.com/dylanngo95/docker-magento/tree/dev-73">https://github.com/dylanngo95/docker-magento/tree/dev-73</a></p><p>Thanks.</p>Tinh Ngohttp://www.blogger.com/profile/04404524425512639918noreply@blogger.com0tag:blogger.com,1999:blog-3641638054547526059.post-15404596061143337002021-09-11T19:40:00.004+07:002021-09-11T19:40:38.573+07:00How to run erlang on docker-compose<h1 style="text-align: left;"> How to run erlang on docker-compose.yml</h1><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiDGRu9FQlwYjf1bQuzirOwp6sukkO_u9x_UQqIlaTbiz7WHT3vdXHDkcmMB3pMtBLLp8LfoACnaN68pkctV-qmn7zbkjeCvzbaz5I6Z16m50buc4lF_Hu3jjna42xe2azEXMb6zF4TxTc/s2048/Erlang_logo.svg.png" style="margin-left: 1em; margin-right: 1em;"><img alt="How to run erlang on docker-compose" border="0" data-original-height="1795" data-original-width="2048" height="560" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiDGRu9FQlwYjf1bQuzirOwp6sukkO_u9x_UQqIlaTbiz7WHT3vdXHDkcmMB3pMtBLLp8LfoACnaN68pkctV-qmn7zbkjeCvzbaz5I6Z16m50buc4lF_Hu3jjna42xe2azEXMb6zF4TxTc/w640-h560/Erlang_logo.svg.png" title="How to run erlang on docker-compose" width="640" /></a></div><br /><p>Run Erlang/OTP distributed system on docker, docker-compose.yml</p><p>There is an example for run Erlang code on Docker.<br /><br /></p><p><br /><script src="https://gist.github.com/dylanngo95/a79fcef7ffa26426c9ac39a8cb7c9f6d.js"></script></p><p><br /></p><p><br /></p><p><br />Reference to Github: <a href="https://github.com/dylanngo95/docker-erlang">https://github.com/dylanngo95/docker-erlang</a></p>Tinh Ngohttp://www.blogger.com/profile/04404524425512639918noreply@blogger.com0tag:blogger.com,1999:blog-3641638054547526059.post-45653285432608005062021-09-02T16:30:00.003+07:002021-09-02T16:35:08.717+07:00how to downgrade postman version<h1 style="text-align: left;"> How to downgrade postman to version 7</h1><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEidFqHHHqjTSF2CEt48Vtk8vg0oO72vXJ1einM3Hp0KUjq2MGh6Y79foAYkoOlZkoUjN_eA3yyYeFZb-n6T5-2RxtX3B4PjFZI6cX19gvaa7vgtu4iAdcddOoqdXt1jr6PKqWkFpJvzFlw/s1834/2021-09-02_16-26.png" style="margin-left: 1em; margin-right: 1em;"><img alt="How to downgrade postman to version 7" border="0" data-original-height="561" data-original-width="1834" height="196" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEidFqHHHqjTSF2CEt48Vtk8vg0oO72vXJ1einM3Hp0KUjq2MGh6Y79foAYkoOlZkoUjN_eA3yyYeFZb-n6T5-2RxtX3B4PjFZI6cX19gvaa7vgtu4iAdcddOoqdXt1jr6PKqWkFpJvzFlw/w640-h196/2021-09-02_16-26.png" title="How to downgrade postman to version 7" width="640" /></a></div><br /><h4 style="text-align: left;"><span style="background-color: white; color: #212529; font-family: Roboto; font-size: 18px;">If you are using Postman for Linux, and had installed the app via 'Ubuntu Software Center' or 'Snap Store', please use the following commands to switch to Postman v7.</span></h4><p><span style="background-color: white; font-size: 18px;"><span style="color: #212529; font-family: Roboto;">sudo snap switch --channel=v7/stable postman</span></span></p><p><span style="background-color: white; font-size: 18px;"><span style="color: #212529; font-family: Roboto;">sudo snap refresh postman</span></span></p><p><br /></p><p>So we can download by the link:<br /><br /><a href="https://go.pstmn.io/dl-linux64-v7-latest">https://go.pstmn.io/dl-linux64-v7-latest</a></p><p><a href="https://go.pstmn.io/dl-macos64-v7-latest">https://go.pstmn.io/dl-macos64-v7-latest</a></p><p><a href="https://go.pstmn.io/dl-win64-v7-latest">https://go.pstmn.io/dl-win64-v7-latest</a></p><p><br /></p><p>Thanks.</p>Tinh Ngohttp://www.blogger.com/profile/04404524425512639918noreply@blogger.com0tag:blogger.com,1999:blog-3641638054547526059.post-77615303090865615252021-08-25T14:09:00.005+07:002021-08-25T14:17:15.139+07:00Magento 2 form uiComponent validation<h1 style="text-align: left;"> Magento 2 form uiComponent validation</h1><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhyHbCKzCb8bJQmCUqWfPjPTUC7ujJVUWVyiRj9Vrmtu1zMKjxT7M-FX1wsa7tNLUhdnWXq3wQYluWXlSWOnhWl3xKi75KvdXWZq0WHOz2lLrMQrum40d7FMdbzFWsVJccN7Ys_GcD7naQ/s1200/ui-components-in-magento-2-fb.png" style="margin-left: 1em; margin-right: 1em;"><img alt="Magento 2 form uiComponent validation" border="0" data-original-height="628" data-original-width="1200" height="334" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhyHbCKzCb8bJQmCUqWfPjPTUC7ujJVUWVyiRj9Vrmtu1zMKjxT7M-FX1wsa7tNLUhdnWXq3wQYluWXlSWOnhWl3xKi75KvdXWZq0WHOz2lLrMQrum40d7FMdbzFWsVJccN7Ys_GcD7naQ/w640-h334/ui-components-in-magento-2-fb.png" title="Magento 2 form uiComponent validation" width="640" /></a></div><br /><pre class="default s-code-block" style="border-radius: 5px; border: 0px; box-sizing: inherit; font-stretch: inherit; font-variant-east-asian: inherit; font-variant-numeric: inherit; line-height: 1.30769; margin-bottom: calc(var(--s-prose-spacing) + 0.4em); margin-top: 0px; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 12px; vertical-align: baseline; width: auto;"><span style="font-family: Times New Roman;"><item name="validation" xsi:type="array">
<item name="validate-digits" xsi:type="boolean">true</item>
</item></span></pre><pre class="default s-code-block" style="border-radius: 5px; border: 0px; box-sizing: inherit; font-stretch: inherit; font-variant-east-asian: inherit; font-variant-numeric: inherit; line-height: 1.30769; margin-bottom: calc(var(--s-prose-spacing) + 0.4em); margin-top: 0px; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 12px; vertical-align: baseline; width: auto;"><span style="font-family: Times New Roman;"> <field name="amount">
<argument name="data" xsi:type="array">
<item name="config" xsi:type="array">
<item name="dataType" xsi:type="string">number</item>
<item name="label" xsi:type="string" translate="true">Amount</item>
<item name="formElement" xsi:type="string">input</item>
<item name="source" xsi:type="string">sales_receivable</item>
<item name="dataScope" xsi:type="string">amount</item>
<item name="validation" xsi:type="array">
<item name="validate-digits" xsi:type="boolean">true</item>
<item name="required-entry" xsi:type="boolean">true</item>
</item>
</item>
</argument>
</field></span></pre><h4 style="border-radius: 5px; border: 0px; box-sizing: inherit; color: var(--highlight-color); font-family: var(--ff-mono); font-size: 13px; font-stretch: inherit; font-variant-east-asian: inherit; font-variant-numeric: inherit; line-height: 1.30769; margin-bottom: calc(var(--s-prose-spacing) + 0.4em); margin-top: 0px; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 12px; text-align: left; vertical-align: baseline; width: auto;"><br /></h4><h4 style="border-radius: 5px; border: 0px; box-sizing: inherit; color: var(--highlight-color); font-family: var(--ff-mono); font-size: 13px; font-stretch: inherit; font-variant-east-asian: inherit; font-variant-numeric: inherit; line-height: 1.30769; margin-bottom: calc(var(--s-prose-spacing) + 0.4em); margin-top: 0px; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 12px; text-align: left; vertical-align: baseline; width: auto;">Some type validation:</h4><pre class="default s-code-block" style="border-radius: 5px; border: 0px; box-sizing: inherit; font-stretch: inherit; font-variant-east-asian: inherit; font-variant-numeric: inherit; line-height: 1.30769; margin-bottom: calc(var(--s-prose-spacing) + 0.4em); margin-top: 0px; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 12px; vertical-align: baseline; width: auto;"><span style="font-family: Times New Roman;">min_text_length
max_text_length
max-words
min-words
range-words
letters-with-basic-punc
alphanumeric
letters-only
no-whitespace
zip-range
integer
vinUS
dateITA
dateNL
time
time12h
phoneUS
phoneUK
mobileUK
stripped-min-length
email2
url2
credit-card-types
ipv4
ipv6
pattern
validate-no-html-tags
validate-select
validate-no-empty
validate-alphanum-with-spaces
validate-data
validate-street
validate-phoneStrict
validate-phoneLax
validate-fax
validate-email
validate-emailSender
validate-password
validate-admin-password
validate-url
validate-clean-url
validate-xml-identifier
validate-ssn
validate-zip-us
validate-date-au
validate-currency-dollar
validate-not-negative-number
validate-zero-or-greater
validate-greater-than-zero
validate-css-length
validate-number
validate-number-range
validate-digits
validate-digits-range
validate-range
validate-alpha
validate-code
validate-alphanum
validate-date
validate-identifier
validate-zip-international
validate-state
less-than-equals-to
greater-than-equals-to
validate-emails
validate-cc-number
validate-cc-ukss
required-entry
checked
not-negative-amount
validate-per-page-value-list
validate-new-password
validate-item-quantity
equalTo</span></pre>Tinh Ngohttp://www.blogger.com/profile/04404524425512639918noreply@blogger.com0tag:blogger.com,1999:blog-3641638054547526059.post-75373423443008980342021-07-14T09:56:00.006+07:002021-07-14T09:58:24.117+07:00How to show git branch on the terminal linux<h1 style="text-align: left;"> How to show git branch on the terminal Linux</h1><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj88ApRqsVYItlYVdpBW17wBgWwL72vvVNbJRjPHkna5q3z3BPTUypbvZM2ujOEfw6UQTKPfqf2udvpty8RoKc2RkDBOw63pTEuYNQumCG-RAsmuDW9olYEWRorsrOOEgBDVHfEWLiig90/s1280/sitemap-using-php.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="How to show git branch on the terminal Linux" border="0" data-original-height="682" data-original-width="1280" height="342" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj88ApRqsVYItlYVdpBW17wBgWwL72vvVNbJRjPHkna5q3z3BPTUypbvZM2ujOEfw6UQTKPfqf2udvpty8RoKc2RkDBOw63pTEuYNQumCG-RAsmuDW9olYEWRorsrOOEgBDVHfEWLiig90/w640-h342/sitemap-using-php.jpg" title="How to show git branch on the terminal Linux" width="640" /></a></div><br /><p><br /></p><div class="separator" style="clear: both; text-align: center;"><br /></div><br /><p><br /></p><p>Add scripts to bottom in the file .bashrc with command line:</p><p>sudo vim ~/.bashrc</p><p><br /></p><p><script src="https://gist.github.com/dylanngo95/79249df2e9cbc04f12f3b8060db9e1d2.js"></script><br /></p><p>Thanks.</p>Tinh Ngohttp://www.blogger.com/profile/04404524425512639918noreply@blogger.com0tag:blogger.com,1999:blog-3641638054547526059.post-1734156032994250112021-05-15T10:31:00.008+07:002021-05-15T14:46:20.305+07:00How to install terraform on ubuntu 20.04<h1 style="text-align: left;"> How to install terraform on ubuntu 20.04</h1><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgT7gNksZPdDmtCVWneTRXAAjpOKAh3ajSV0URwT5itzDAi8HUyPpeDQJV_pR7UxiR5I712NX56eLPqSCni4vVJv2e80a9FOwINZqrEQ1grQaayjsrFHwfNIn0oUPqAbRfPXFawohUAJb4/s810/cicd-jenkins-aws.png" style="margin-left: 1em; margin-right: 1em;"><img alt="How to install terraform on ubuntu 20.04" border="0" data-original-height="421" data-original-width="810" height="332" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgT7gNksZPdDmtCVWneTRXAAjpOKAh3ajSV0URwT5itzDAi8HUyPpeDQJV_pR7UxiR5I712NX56eLPqSCni4vVJv2e80a9FOwINZqrEQ1grQaayjsrFHwfNIn0oUPqAbRfPXFawohUAJb4/w640-h332/cicd-jenkins-aws.png" title="How to install terraform on ubuntu 20.04" width="640" /></a></div><br /><h3 style="text-align: left;">Install Terraform on ubuntu 20.04</h3><div class="separator" style="clear: both; text-align: center;"><iframe allowfullscreen='allowfullscreen' webkitallowfullscreen='webkitallowfullscreen' mozallowfullscreen='mozallowfullscreen' width='551' height='458' src='https://www.blogger.com/video.g?token=AD6v5dxIUkt_poQCR4NgpEtMpp2YMq72T095UGwZip0A4BSEmVHZXfaQ4HmOfJSV7lLHWt2t1zT7rthocFVX5Wg2-g' class='b-hbp-video b-uploaded' frameborder='0'></iframe></div><br /><div><br /></div><div><h4 style="background-color: white; box-sizing: border-box; line-height: 1.765em; margin: 0px 0px 16px; text-align: left;"><span style="color: #1d1e23; font-family: metro-web, Metro, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Oxygen-Sans, Ubuntu, Cantarell, Helvetica Neue, sans-serif;"><span style="font-size: 17.008px; letter-spacing: 0.17008px;">What is Terraform?</span></span></h4><p style="background-color: white; box-sizing: border-box; line-height: 1.765em; margin: 0px 0px 16px;"></p><ul style="text-align: left;"><li><span style="color: #1d1e23; font-family: metro-web, Metro, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Oxygen-Sans, Ubuntu, Cantarell, Helvetica Neue, sans-serif;"><span style="font-size: 17.008px; letter-spacing: 0.17008px;">Terraform is a tool for building, changing, and versioning infrastructure safely and efficiently. Terraform can manage existing and popular service providers as well as custom in-house solutions.</span></span></li><li><span style="color: #1d1e23; font-family: metro-web, Metro, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Oxygen-Sans, Ubuntu, Cantarell, Helvetica Neue, sans-serif;"><span style="font-size: 17.008px; letter-spacing: 0.17008px;">Configuration files describe to Terraform the components needed to run a single application or your entire datacenter. Terraform generates an execution plan describing what it will do to reach the desired state, and then executes it to build the described infrastructure. As the configuration changes, Terraform is able to determine what changed and create incremental execution plans which can be applied.</span></span></li><li><span style="color: #1d1e23; font-family: metro-web, Metro, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Oxygen-Sans, Ubuntu, Cantarell, Helvetica Neue, sans-serif;"><span style="font-size: 17.008px; letter-spacing: 0.17008px;">The infrastructure Terraform can manage includes low-level components such as compute instances, storage, and networking, as well as high-level components such as DNS entries, SaaS features, etc.</span></span></li></ul><p></p></div><p><br /></p><script src="https://gist.github.com/dylanngo95/1ecdde02cc14927239986b512ab4d9b2.js"></script><p>Thanks.</p>Tinh Ngohttp://www.blogger.com/profile/04404524425512639918noreply@blogger.com0tag:blogger.com,1999:blog-3641638054547526059.post-40662407159676373472021-05-08T17:10:00.001+07:002021-05-08T17:10:16.899+07:00Magento 2 MySQL master slave with Docker<p> Magento 2 MySQL master-slave with Docker</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgo9aoAzmnkIJXZUpR1UDB4iIwMTgXeX4dUHX0jbd71MUdOHiYSONeRBzFj9ITAvU_Ln9qFu02w9KUidxF_UlEerdoggUlzZkCdhuoYhQLHC1YlYvYeNhHdwqp4MGM8eGaJFZjXwJ_e2eg/s640/mysql-master-slave.jpeg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="Magento 2 MySQL master slave with Docker" border="0" data-original-height="468" data-original-width="640" height="468" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgo9aoAzmnkIJXZUpR1UDB4iIwMTgXeX4dUHX0jbd71MUdOHiYSONeRBzFj9ITAvU_Ln9qFu02w9KUidxF_UlEerdoggUlzZkCdhuoYhQLHC1YlYvYeNhHdwqp4MGM8eGaJFZjXwJ_e2eg/w640-h468/mysql-master-slave.jpeg" title="Magento 2 MySQL master slave with Docker" width="640" /></a></div><br /><p>MySQL Replication is probably the most popular high availability solution for MySQL, and widely used by top web properties like Twitter and Facebook. Although easy to set up, ongoing maintenance like software upgrades, schema changes, topology changes, failover and recovery have always been tricky. At least until MySQL 5.6.</p><p>Fortunately, MySQL 5.6 brought a number of significant enhancements to Replication, including Global Transaction IDs, event checksums, multi-threaded slaves and crash-safe slaves/masters. Replication got even better with MySQL 5.7 and MySQL 8.0.</p><p><br /></p><p>My example for MySQL Master/Slave with Magento database:</p><p>Go to my Github: <a href="https://github.com/dylanngo95/mysql-master-slave-magento">https://github.com/dylanngo95/mysql-master-slave-magento</a></p><p>Thanks.</p>Tinh Ngohttp://www.blogger.com/profile/04404524425512639918noreply@blogger.com0tag:blogger.com,1999:blog-3641638054547526059.post-12202806859480617932021-05-08T07:57:00.004+07:002021-05-08T09:49:12.160+07:00How to install php 7.4 on ubuntu 20.04<h1 style="text-align: left;">How to install php 7.4 on ubuntu 20.04</h1><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhZj8eaT7vE4uhneN1-3gnZSyce1OSGZyzCwzMoQoMvJ3Exf17KSsWam3pgM2tVHRhBWC06jQpea5OS6i4zE09qThFjrNdK_1ckdXh0DipdElL6uO6Yb4L3DjWLblO7UkYcHkMF7cRvFgM/s1000/php-7-4-new-features.jpg" style="margin-left: 1em; margin-right: 1em;"><img alt="How to install PHP 7.4 in Ubuntu 20.04 LTS" border="0" data-original-height="420" data-original-width="1000" height="268" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhZj8eaT7vE4uhneN1-3gnZSyce1OSGZyzCwzMoQoMvJ3Exf17KSsWam3pgM2tVHRhBWC06jQpea5OS6i4zE09qThFjrNdK_1ckdXh0DipdElL6uO6Yb4L3DjWLblO7UkYcHkMF7cRvFgM/w640-h268/php-7-4-new-features.jpg" title="How to install PHP 7.4 in Ubuntu 20.04 LTS" width="640" /></a></div><br /><div><br /></div><div><h2 style="text-align: left;">What’s New in PHP with PHP 7.4?</h2><h3 style="text-align: left;">In this post we’re covering several changes and features that should be added to the language with the final release of PHP 7.4:</h3><div><br /></div><div><ul style="text-align: left;"><li>Forget array_merge: PHP 7.4 Brings Spread Operator in Array Expression</li><li>Arrow Functions 2.0 (Short Closures)</li><li>Null Coalescing Assignment Operator</li><li>Typed Properties 2.0</li><li>Weak References</li><li>Covariant Returns and Contravariant Parameters</li><li>Preloading</li><li>New Custom Object Serialization Mechanism</li><li>Deprecations</li></ul><div><script src="https://gist.github.com/dylanngo95/c4db8b4727827da6be5102bd688d26f3.js"></script><br /></div></div></div><div>Thanks.</div>Tinh Ngohttp://www.blogger.com/profile/04404524425512639918noreply@blogger.com0tag:blogger.com,1999:blog-3641638054547526059.post-85612993207396216582021-04-25T15:54:00.002+07:002021-04-25T15:54:10.211+07:00How to check last reboot time linux<p> How to check last reboot and shutdown time Linux</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEigRkTesng3GFw2-FHUvZpMEeHxrzVWpnFE2SmtF__vnjDHKAd7zes-RN3qRD395WSGWJFuIprXGnhTN18IE8B2lO0bAbqGlY8FwKh-MIVPy_xjcucjExClM7_c_ew6WbSZbuVEZ3mkxQ4/s825/12-phuong-phap-toi-uu-bao-mat-cho-he-thong-server-linux-1.jpeg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="How to check last reboot and shutdown time Linux" border="0" data-original-height="576" data-original-width="825" height="446" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEigRkTesng3GFw2-FHUvZpMEeHxrzVWpnFE2SmtF__vnjDHKAd7zes-RN3qRD395WSGWJFuIprXGnhTN18IE8B2lO0bAbqGlY8FwKh-MIVPy_xjcucjExClM7_c_ew6WbSZbuVEZ3mkxQ4/w640-h446/12-phuong-phap-toi-uu-bao-mat-cho-he-thong-server-linux-1.jpeg" title="How to check last reboot and shutdown time Linux" width="640" /></a></div><br /><h2 style="text-align: left;">Follow some command to check time reboot on Linux:</h2><p>Where,</p><p></p><ul style="text-align: left;"><li>-x: Display the system shutdown entries and run level changes.</li></ul><p></p><p></p><ol style="text-align: left;"><li>last</li><li>last -x</li><li>last -x reboot</li><li>last -x shutdown</li></ol><div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjrj54hyphenhyphendoVzCp_YtlBFWQUU1MxxyHfN54OKakZPnsHwgiwtaIlBa-3ipPF1wBQqjE3Ucn7pbam5THodovN3URiW213_W6UCf3T4kTPQyH49VOYlJfPCXmBxqv1-mRgJCH4Rcrnl3035mU/" style="margin-left: 1em; margin-right: 1em;"><img alt="How to check last reboot time linux" data-original-height="344" data-original-width="573" height="384" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjrj54hyphenhyphendoVzCp_YtlBFWQUU1MxxyHfN54OKakZPnsHwgiwtaIlBa-3ipPF1wBQqjE3Ucn7pbam5THodovN3URiW213_W6UCf3T4kTPQyH49VOYlJfPCXmBxqv1-mRgJCH4Rcrnl3035mU/w640-h384/Screen+Shot+2021-04-25+at+3.53.20+PM.png" title="How to check last reboot time linux" width="640" /></a></div><br />Thanks.</div><p></p>Tinh Ngohttp://www.blogger.com/profile/04404524425512639918noreply@blogger.com0tag:blogger.com,1999:blog-3641638054547526059.post-26605092609251437222021-04-25T15:44:00.002+07:002021-04-25T15:44:11.774+07:00Things to know when optimizing a backend system.<p></p><h1 style="text-align: left;"> Things to know when optimizing a backend system.</h1><br /><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhwguRE4Sl_C7LBIaZ4w9Q15AnsZolXz8-xaoMuFihyphenhyphenQf-oFdmfE6wbSBDnI1jzXrXXXu2JfzRt-Y2jcxwiyDKDjI1skb1-uN9I1z-gbb34cZnNW_Was-KrPJu8ThhfpPVr7d0L99hVHbg/s1024/cafedev_front_end_back_end_blog.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="optimizing backend" border="0" data-original-height="640" data-original-width="1024" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhwguRE4Sl_C7LBIaZ4w9Q15AnsZolXz8-xaoMuFihyphenhyphenQf-oFdmfE6wbSBDnI1jzXrXXXu2JfzRt-Y2jcxwiyDKDjI1skb1-uN9I1z-gbb34cZnNW_Was-KrPJu8ThhfpPVr7d0L99hVHbg/w640-h400/cafedev_front_end_back_end_blog.png" title="optimizing backend" width="640" /></a></div><br /><div><br /></div><div>Maybe something you don't know when optimizing backend system + MySQL databases.</div><div><br /></div><div><br /></div><div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh_QFBGBYxH8nP3EwlDU1LzV6-nS2gRrhXUdR4b7FKlcN5H9VBq3dUuEhrkOh3vpDDdvPYdUHm47zwrzjpAo5yd07Z9f7o6_H62xpBZBuSeizQ_XN0vWeJvgaBglywyyfu3tcBdvjsJn_M/" style="margin-left: 1em; margin-right: 1em;"></a><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh_QFBGBYxH8nP3EwlDU1LzV6-nS2gRrhXUdR4b7FKlcN5H9VBq3dUuEhrkOh3vpDDdvPYdUHm47zwrzjpAo5yd07Z9f7o6_H62xpBZBuSeizQ_XN0vWeJvgaBglywyyfu3tcBdvjsJn_M/" style="margin-left: 1em; margin-right: 1em;"></a><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh_QFBGBYxH8nP3EwlDU1LzV6-nS2gRrhXUdR4b7FKlcN5H9VBq3dUuEhrkOh3vpDDdvPYdUHm47zwrzjpAo5yd07Z9f7o6_H62xpBZBuSeizQ_XN0vWeJvgaBglywyyfu3tcBdvjsJn_M/" style="margin-left: 1em; margin-right: 1em;"></a><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiQ3P882LRHcv8ypZkVMPS79Tuz6k5IufAli1s1HaMrD6J3rsYUQL6Fi6iXbSlUbW33DHVkQB16tjgZmk5gdLFs4jt2LSiZdVTaSWBUFWMUXrM-5hJamJ1DRSHtgs3zKEz8vJ625YeCrGE/" style="margin-left: 1em; margin-right: 1em;"><img alt="optimizing backend" data-original-height="1068" data-original-width="1900" height="360" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiQ3P882LRHcv8ypZkVMPS79Tuz6k5IufAli1s1HaMrD6J3rsYUQL6Fi6iXbSlUbW33DHVkQB16tjgZmk5gdLFs4jt2LSiZdVTaSWBUFWMUXrM-5hJamJ1DRSHtgs3zKEz8vJ625YeCrGE/w640-h360/Screen+Shot+2021-04-24+at+9.39.19+AM.png" title="optimizing backend" width="640" /></a></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: center;"><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjpwYTe6_ZoFs1sVg2Yz2S3soc3BJVmSiTnLeGRSepiPOfFuGvu8qkggNkEPZr0TgzuGRWWhnK67qGRIBp_wXGnU4OUEWqotTVAm-9FT2KeCRswcBuxHfmK1C6xvYO0152VBSe4qrssdAQ/" style="margin-left: 1em; margin-right: 1em;"><img alt="optimizing backend" data-original-height="1080" data-original-width="1914" height="362" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjpwYTe6_ZoFs1sVg2Yz2S3soc3BJVmSiTnLeGRSepiPOfFuGvu8qkggNkEPZr0TgzuGRWWhnK67qGRIBp_wXGnU4OUEWqotTVAm-9FT2KeCRswcBuxHfmK1C6xvYO0152VBSe4qrssdAQ/w640-h362/Screen+Shot+2021-04-24+at+9.26.46+AM.png" title="optimizing backend" width="640" /></a></div><br /><br /></div><br /><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEje8CW453uSrhhbA3brozi5lLmMuFsSJiJen6vpA4jUdqy4mcpedd1UYA3wKQt7v9K43F2GnNZb9oninU2pzoVzvuvjtqjtoG7wTrOKUGKDfNe6N1wWRb0CdsGMgxQr-i084M9aRYbPk_s/" style="margin-left: 1em; margin-right: 1em;"><img alt="optimizing backend" data-original-height="1078" data-original-width="1918" height="360" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEje8CW453uSrhhbA3brozi5lLmMuFsSJiJen6vpA4jUdqy4mcpedd1UYA3wKQt7v9K43F2GnNZb9oninU2pzoVzvuvjtqjtoG7wTrOKUGKDfNe6N1wWRb0CdsGMgxQr-i084M9aRYbPk_s/w640-h360/Screen+Shot+2021-04-24+at+9.28.55+AM.png" title="optimizing backend" width="640" /></a></div><br /><br /></div><br /><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiTiYEyOsLthrtbSVhELWzcHTLbZK4hPPaJvsjwtN749xENlwveKv_85muDY44xN-CjqID_i-9_fVWeLIEYZPf8xug_elZVpnM3VE2jjAfMLSCJEOy-FAXp1PA-IwrgGnSMYcCkqBp2TxI/" style="margin-left: 1em; margin-right: 1em;"><img alt="optimizing backend" data-original-height="1080" data-original-width="1915" height="360" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiTiYEyOsLthrtbSVhELWzcHTLbZK4hPPaJvsjwtN749xENlwveKv_85muDY44xN-CjqID_i-9_fVWeLIEYZPf8xug_elZVpnM3VE2jjAfMLSCJEOy-FAXp1PA-IwrgGnSMYcCkqBp2TxI/w640-h360/Screen+Shot+2021-04-24+at+9.25.53+AM.png" title="optimizing backend" width="640" /></a></div><br /><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj8xKoFmh1Ub9TvFrsf7mDWSpa1VXH-45W3RImHcl-s3L5wxZB6g2byQ1_KQ2NhdVA9Z21XDJNdB2yBZZ-u6Za_ZV1ICbm2UwcpvOCQxMO1tPywvMO50n66TmveEnDWCY7mgd75uyWPrp4/" style="margin-left: 1em; margin-right: 1em;"><img alt="optimizing backend" data-original-height="1071" data-original-width="1909" height="360" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj8xKoFmh1Ub9TvFrsf7mDWSpa1VXH-45W3RImHcl-s3L5wxZB6g2byQ1_KQ2NhdVA9Z21XDJNdB2yBZZ-u6Za_ZV1ICbm2UwcpvOCQxMO1tPywvMO50n66TmveEnDWCY7mgd75uyWPrp4/w640-h360/Screen+Shot+2021-04-24+at+9.29.47+AM.png" title="optimizing backend" width="640" /></a></div></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: center;"><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgNuadTV2_N4WOwM2vw2yroEPl96J7IRnHO2yNocnCgOGHUpYpggKJknQicdLoe3dnziYeOiyFbNu9zDZS-xMxRmHIV0Dmi126bc41WVN5deRfes2giS3TUL0fq9Qybxf2JRdDCk0Z5WjU/" style="margin-left: 1em; margin-right: 1em;"><img alt="optimizing backend" data-original-height="1071" data-original-width="1899" height="360" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgNuadTV2_N4WOwM2vw2yroEPl96J7IRnHO2yNocnCgOGHUpYpggKJknQicdLoe3dnziYeOiyFbNu9zDZS-xMxRmHIV0Dmi126bc41WVN5deRfes2giS3TUL0fq9Qybxf2JRdDCk0Z5WjU/w640-h360/Screen+Shot+2021-04-24+at+9.30.41+AM.png" title="optimizing backend" width="640" /></a></div><br /><br /></div><div class="separator" style="clear: both; text-align: center;"><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgY2h7n0LXv00ltOfN1eqDMLw_VCCUVvX9kI0KMnQIACpEjRLMyM4rbIBAJt8eag6IAm_TyimLHAbRdC6n3JEWrnGDWmvo4jXgbTlvVwa_1mPgTQCQqbfzI4KD5tnUXdZ9IaSW4EGOtjdc/" style="margin-left: 1em; margin-right: 1em;"><img alt="optimizing backend" data-original-height="1069" data-original-width="1900" height="360" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgY2h7n0LXv00ltOfN1eqDMLw_VCCUVvX9kI0KMnQIACpEjRLMyM4rbIBAJt8eag6IAm_TyimLHAbRdC6n3JEWrnGDWmvo4jXgbTlvVwa_1mPgTQCQqbfzI4KD5tnUXdZ9IaSW4EGOtjdc/w640-h360/Screen+Shot+2021-04-24+at+9.32.41+AM.png" title="optimizing backend" width="640" /></a></div><br /><br /></div><div><br /></div><div>Thanks.</div>Tinh Ngohttp://www.blogger.com/profile/04404524425512639918noreply@blogger.com0tag:blogger.com,1999:blog-3641638054547526059.post-75151234999149301642021-04-19T06:52:00.001+07:002021-04-19T06:52:53.692+07:00How to configuration MAMP PRO Nginx Magento 2<h2 style="text-align: left;"> How to configuration MAMP PRO Nginx Magento 2</h2><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi61_kOGskpQIo05fdLFePcjIQOJwlSg_VvGMmhHmLHhKf427JI8zpizBum6yhXRdhQjX0hs1ME4PzClZU9zbz7D9-PWdaNKYo5mgzUin8-GXeOzGJJkPSQ0y-2yVQ77lKjgD0g3OPFV2I/" style="margin-left: 1em; margin-right: 1em;"><img alt="How to configuration MAMP PRO Nginx Magento 2" data-original-height="787" data-original-width="1276" height="394" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi61_kOGskpQIo05fdLFePcjIQOJwlSg_VvGMmhHmLHhKf427JI8zpizBum6yhXRdhQjX0hs1ME4PzClZU9zbz7D9-PWdaNKYo5mgzUin8-GXeOzGJJkPSQ0y-2yVQ77lKjgD0g3OPFV2I/w640-h394/Screen+Shot+2021-04-19+at+6.41.49+AM.png" title="How to configuration MAMP PRO Nginx Magento 2" width="640" /></a></div><br /><br /><p></p><h4 style="text-align: left;">Make sure Magento 2 installed on your local workstation.<br />Follow me configuration MAMP for Magento 2.<br />Choose one domain you want to config Nginx.</h4><p>Step 1: Direct to Magento pub/ folder:</p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhS9R6XOlul4fOH-I-dCP46U6_MYcXyGqpT0aV-iKnFBHmLrv3k3km_r4fOPEr7LlvQZBz-8lSRiCSrmHKC2BhKfXl8hwmfezkTwFGMe-_Zrmq2NJZ2A37h-9zqs5hs9OHvwEDPQ7JwA7U/" style="margin-left: 1em; margin-right: 1em;"><img alt="How to configuration MAMP PRO Nginx Magento 2" data-original-height="79" data-original-width="514" height="98" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhS9R6XOlul4fOH-I-dCP46U6_MYcXyGqpT0aV-iKnFBHmLrv3k3km_r4fOPEr7LlvQZBz-8lSRiCSrmHKC2BhKfXl8hwmfezkTwFGMe-_Zrmq2NJZ2A37h-9zqs5hs9OHvwEDPQ7JwA7U/w640-h98/Screen+Shot+2021-04-19+at+6.44.00+AM.png" title="How to configuration MAMP PRO Nginx Magento 2" width="640" /></a></div><br /><br /><p></p><p>Step 2: Open nginx tab</p><p>- Directory index: index.php</p><p>- Try files: $uri $uri/ /index.php?$args</p><p>- Custom: Empty</p><p>- Additional parameters for the directive: </p><p>You must change the path in line 3:</p><p><br /></p><p><br /></p><p><script src="https://gist.github.com/dylanngo95/000357d86b59d6c5a7967bd8679847dd.js"></script><br /></p><p><br /></p><p><br /></p><p><br /></p><p><br /></p>Tinh Ngohttp://www.blogger.com/profile/04404524425512639918noreply@blogger.com0tag:blogger.com,1999:blog-3641638054547526059.post-44003881586159558752021-03-27T10:40:00.004+07:002021-03-27T10:40:43.377+07:00Hướng dẫn sử dụng iTaxViewer<p> Hướng cài đặt và sử dụng iTaxViewer đơn giản dễ hiểu</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiTrQCzmNZ4Vfc6E1E93FPKLlYOh-E18J-X8cSirAHavEMAFTsH0PRRzyXWFsUuuA4DrGx3LIonfIXVM8zz5mppEM4o-1PS8Bw1C4QGgC-03vnyMLX1NUDN2Cq3fEMtaJifF8tlGi1DGYM/s880/itaxviewer.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="Hướng dẫn sử dụng iTaxViewer" border="0" data-original-height="458" data-original-width="880" height="334" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiTrQCzmNZ4Vfc6E1E93FPKLlYOh-E18J-X8cSirAHavEMAFTsH0PRRzyXWFsUuuA4DrGx3LIonfIXVM8zz5mppEM4o-1PS8Bw1C4QGgC-03vnyMLX1NUDN2Cq3fEMtaJifF8tlGi1DGYM/w640-h334/itaxviewer.jpg" title="Hướng dẫn sử dụng iTaxViewer" width="640" /></a></div><br /><h3 style="text-align: left;">iTaxViewer là ứng dụng chuyên dùng để đọc tờ khai thuế định dạng XML của Tổng cục Thuế. Khi, người dùng thực hiện tải file báo cáo thuế về hoặc up lên trang nhận báo cáo online thì file sẽ được định dạng đuôi file XML.<br />Vì vậy mà máy tính của bạn bắt buộc phải cài phần mềm Itaxviewer để giúp bạn đọc được file đuôi XML hoặc chuyển xuất thành dạng file này để up lên trang thuế của Nhà nước.</h3><p><br /></p><p><b>Bấm vào đây để tải về <a href="https://drive.google.com/file/d/17YUkXdUVp_0PvDUvBGNj4TeQ32Q1NC4J/view?usp=sharing" target="_blank">ITaxViewer 1.7.2</a><br /></b></p><p>Tiếp theo cài đặt ITaxViewer trên hệ điều hành Window nhé:</p><p><br /></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjDfF3ybMzN3ajp-GWjGLdZT-1eGBfHh49dOdNzVTffdYxZbLFPVigDQM5JBg8SDZdaO04oFgbCzJ6ZTApzJAYa-uOC_g8PKtKYePhIaxqel-IOZSaQWniPhJo0VvuD1C5IonQWLEoj6OQ/s497/bannhannutnext.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="Hướng dẫn sử dụng iTaxViewer" border="0" data-original-height="385" data-original-width="497" height="496" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjDfF3ybMzN3ajp-GWjGLdZT-1eGBfHh49dOdNzVTffdYxZbLFPVigDQM5JBg8SDZdaO04oFgbCzJ6ZTApzJAYa-uOC_g8PKtKYePhIaxqel-IOZSaQWniPhJo0VvuD1C5IonQWLEoj6OQ/w640-h496/bannhannutnext.jpg" title="Hướng dẫn sử dụng iTaxViewer" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg0UGdcDSYx1nr0wQaBEPKYh_oRm9wJ959SwbwtfrENYo26lAyq02kxhS_kOfuK7jVyvQZjFLUEpiI0MNpWuqmNUmG0MXSBXd8alWkLzhQagpKsvFE9U9SwPGyIn-4mFBNPsJy8dJXYW8o/s499/doithoigianchoohammemtucaidat.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="Hướng dẫn sử dụng iTaxViewer" border="0" data-original-height="384" data-original-width="499" height="492" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg0UGdcDSYx1nr0wQaBEPKYh_oRm9wJ959SwbwtfrENYo26lAyq02kxhS_kOfuK7jVyvQZjFLUEpiI0MNpWuqmNUmG0MXSBXd8alWkLzhQagpKsvFE9U9SwPGyIn-4mFBNPsJy8dJXYW8o/w640-h492/doithoigianchoohammemtucaidat.jpg" title="Hướng dẫn sử dụng iTaxViewer" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEggMmF5R3sYLgQY90_h9comp9Cp5I8AF0cQ08v3ZinlfzuQC-7LNVlJMeolqvs78UxHqouCnRCejgowpgiQCbSZX1OeyWDz1KFu3RaFv-LHXAtB-UVETUXM65fcyO3lUQ1XQ8PTJ669UMo/s497/bannhan-finishdeketthucquatrinhcaidat.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="Hướng dẫn sử dụng iTaxViewer" border="0" data-original-height="383" data-original-width="497" height="494" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEggMmF5R3sYLgQY90_h9comp9Cp5I8AF0cQ08v3ZinlfzuQC-7LNVlJMeolqvs78UxHqouCnRCejgowpgiQCbSZX1OeyWDz1KFu3RaFv-LHXAtB-UVETUXM65fcyO3lUQ1XQ8PTJ669UMo/w640-h494/bannhan-finishdeketthucquatrinhcaidat.jpg" title="Hướng dẫn sử dụng iTaxViewer" width="640" /></a></div><br /><p>Mở phần mềm ITaxViewer lên:</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj6w_7DsAs9Vgcqaat6PjKUh9c8iu48Cdq7-NV5LV3Jhpf9B1udKCjL3vaIGg_g842uXMGywoMqNFf9YvrdMjvBSgbWyk1d9HG2sU3RvMiDcwf2fy0XsEsuVusTMatTiP6Lged7dGwlXdE/s700/tai-itaxviewer-min.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="Hướng dẫn sử dụng iTaxViewer" border="0" data-original-height="442" data-original-width="700" height="404" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj6w_7DsAs9Vgcqaat6PjKUh9c8iu48Cdq7-NV5LV3Jhpf9B1udKCjL3vaIGg_g842uXMGywoMqNFf9YvrdMjvBSgbWyk1d9HG2sU3RvMiDcwf2fy0XsEsuVusTMatTiP6Lged7dGwlXdE/w640-h404/tai-itaxviewer-min.jpg" title="Hướng dẫn sử dụng iTaxViewer" width="640" /></a></div><br /><p><br /></p><p>Mình bấm vào hình tệp hồ sơ để mở file thuế định dạng .xml, sau đó các bạn có thể chọn vào biểu tượng in, rất đơn giản đọc file .xml phải không.<br />Nếu bạn muốn lấy file .pdf thì bạn xem thư mục lưu file PDF đó ở đâu vào đó copy ra thôi :D</p><p><br /></p><p><br /></p><p><br /></p><p><br /></p>Tinh Ngohttp://www.blogger.com/profile/04404524425512639918noreply@blogger.com0tag:blogger.com,1999:blog-3641638054547526059.post-25112842448268268772021-03-25T17:28:00.009+07:002022-04-28T16:28:18.419+07:00Hướng dẫn quyết toán thuế thu nhập cá nhân online đơn giản<h3 style="text-align: left;">Theo Điều 44 Luật Quản lý thuế 2019 thì hạn chót nộp hồ sơ khai thuế TNCN cụ thể như sau:<br />Thời hạn nộp hồ sơ quyết toán thuế TNCN chậm nhất là ngày cuối cùng của tháng 4/2021 đối với cá nhân khai quyết toán thuế trực tiếp với cơ quan thuế.</h3><p><b>Việc đầu tiên bạn cần phải liên hệ công ty cũ và công ty mới bạn đang làm việc cung cấp cho bạn:<br />Chứng Từ Khấu Trừ Thuế Thu Nhập Cá Nhân.</b></p><p>Sau đó mới tiếp tục thực hiện các bước sau đây được.</p><p>B1: Bạn phải biết mã số thuế, ngày cấp, nơi cấp.<br /><br />Nếu không nhớ mã số thuế bạn có thể sử dụng số CMT để lấy thông tin mã số thuế của bạn.<br /><br />Truy cập vào website của Tổng cục Thuế: <a href="https://canhan.gdt.gov.vn/ICanhan/Request">https://canhan.gdt.gov.vn/ICanhan/Request</a> </p><p>Sau đó nhấn vào menu: <b>Tra cứu thông tin NNT</b></p><p>Nhập <b>số CMT</b> và <b>Mã kiểm tra</b> Sau đó bấm <b>Tra cứu.</b><br /><br /></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjVh_RPfJOM_ysT4IFw_GnqGRsz_sX-162eXOn6m8jbpMan2zR4tIzCROTm454T6aWe09zdyt_srZCUgWkFzVz0JT_1fzp39vS3bfhsmmSxqT1PYCELnBL8ipRFj5GSu6GFPa-hTi3vgVo/s1920/1.png" style="margin-left: 1em; margin-right: 1em;"><img alt="Hướng dẫn quết toán thuế thu nhập cá nhân online đơn giản" border="0" data-original-height="1076" data-original-width="1920" height="358" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjVh_RPfJOM_ysT4IFw_GnqGRsz_sX-162eXOn6m8jbpMan2zR4tIzCROTm454T6aWe09zdyt_srZCUgWkFzVz0JT_1fzp39vS3bfhsmmSxqT1PYCELnBL8ipRFj5GSu6GFPa-hTi3vgVo/w640-h358/1.png" title="Hướng dẫn quết toán thuế thu nhập cá nhân online đơn giản" width="640" /></a></div><br /><p>Bạn lưu lại hai thông tin <b>Mã số thuế, Ngày cấp, Cơ quan thuế </b>để sử dụng cho các bước sau.</p><p><br /></p><p>B2: Đăng nhập vào website với Mã số thuế</p><p>Click vào nút <b>Đăng nhập</b> trên cùng bên góc màn hình bên phải. Sau đó nhập<b> Mã số thuế</b> và <b>Mã kiểm tra</b> và bấm vào <b>Tiếp tục.</b></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgyNJQtVwOsi3sOXM4-YfvSqVZejEA6XA1fIY-7yDyAHzdCsJLNO2-raEmZmlWqyIkXd5GqNkPTGoj2YLgjdwWc6Cy7NTcXAGzpdVMBPh5OYJHjMJUo9DRPh_QjfzQTEA4iWwQzaWTdrmg/s1910/2.png" style="margin-left: 1em; margin-right: 1em;"><img alt="Hướng dẫn quết toán thuế thu nhập cá nhân online đơn giản" border="0" data-original-height="1077" data-original-width="1910" height="360" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgyNJQtVwOsi3sOXM4-YfvSqVZejEA6XA1fIY-7yDyAHzdCsJLNO2-raEmZmlWqyIkXd5GqNkPTGoj2YLgjdwWc6Cy7NTcXAGzpdVMBPh5OYJHjMJUo9DRPh_QjfzQTEA4iWwQzaWTdrmg/w640-h360/2.png" title="Hướng dẫn quết toán thuế thu nhập cá nhân online đơn giản" width="640" /></a></div><br /><p><br /></p><p><br /></p><p><br /></p><p>B3: Tiếp tục đăng nhập</p><p>Tiếp tục nhập <b>Ngày cấp mã số thuế</b>, <b>Cơ quan thuế</b> như ở bước 1 đã lưu lại.</p><p>Cuối cùng bấm vào nút <b>Đăng nhập</b>.</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgw27fSLj2yqoZap-rSbeQKa0yDSy4FCUeyzfjsgQNnLtrB9XUv6wH97QFZhhgtiDFBEYaaQ8cztyp0_Dhyphenhyphen1JL1DE3clWeyJNP5SJCxHoBxEfrZM0xKTEbl6jyEYo1mawaWB6UQ-CwJ4WI/s1913/3.png" style="margin-left: 1em; margin-right: 1em;"><img alt="Hướng dẫn quết toán thuế thu nhập cá nhân online đơn giản" border="0" data-original-height="1077" data-original-width="1913" height="360" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgw27fSLj2yqoZap-rSbeQKa0yDSy4FCUeyzfjsgQNnLtrB9XUv6wH97QFZhhgtiDFBEYaaQ8cztyp0_Dhyphenhyphen1JL1DE3clWeyJNP5SJCxHoBxEfrZM0xKTEbl6jyEYo1mawaWB6UQ-CwJ4WI/w640-h360/3.png" title="Hướng dẫn quết toán thuế thu nhập cá nhân online đơn giản" width="640" /></a></div><br /><p><br /></p><p>B4: </p><p>Vào menu <b>Quyết toán thuế</b> -> Chọn <b>Kê khai trực tuyến</b> </p><p>Sau đó nhập các thông tin của bạn vào nhé.</p><p>Trong phần chọn tờ khai: chọn phần<br /><br /><b>02/QTT-TNCN - Tờ khai quyết toán thuế thu nhập cá nhân (TT92/2015)</b></p><p>Nếu bạn là nhân viên công ty cũ và công ty mới bạn đang làm đã đóng thuế thu nhập cá nhâ cho bạn thì bạn chọn như hình ảnh bên dưới.<br /></p><p>Loại tờ khai: Tờ khai chính thức</p><p>Năm quyết toán: 2020</p><p>Đọc kỹ các chọn lựa.</p><p>Khi chọn vào:</p><p><b>3. Tại thời điểm quyết toán vẫn còn làm việc tại tổ chức chi trả. Nếu tích vào ô này người nộp thuế tiếp tục nhập thông tin mã số thuế của tổ chức chi trả để hệ thống hỗ trợ tự động xác định cơ quan thuế quyết toán </b></p><p>Thì bạn cần nhập mã số thuế của công ty bạn đang làm việc vào, thường thí nó nằm trong: <b>Chứng từ khấu trừ thuế</b> mà công ty cấp cho bạn, nếu không có bạn phải đi hỏi công ty bạn đang làm việc.</p><p>Sau đó bấm <b>Tiếp tục.</b></p><p><br /></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjexBz8ABIb2OmkfX6CL9pnezdHS2zwV-cN80yDmFalEa9njJIpFjLw6S9OzsKTFX6vIrZr6R0UbYXqWZEGi4FLrOYcs6JBlY7ngq0pyChgJOrBH7YSUe2HbcpxJZOtzM6Hph-SA5Djil4/s1896/4.png" style="margin-left: 1em; margin-right: 1em;"><img alt="Hướng dẫn quết toán thuế thu nhập cá nhân online đơn giản" border="0" data-original-height="1070" data-original-width="1896" height="362" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjexBz8ABIb2OmkfX6CL9pnezdHS2zwV-cN80yDmFalEa9njJIpFjLw6S9OzsKTFX6vIrZr6R0UbYXqWZEGi4FLrOYcs6JBlY7ngq0pyChgJOrBH7YSUe2HbcpxJZOtzM6Hph-SA5Djil4/w640-h362/4.png" title="Hướng dẫn quết toán thuế thu nhập cá nhân online đơn giản" width="640" /></a></div><br /><p><br /></p><p>B5: Khai tờ quyết toán thuế </p><p>[01] đến [06]: Hệ thống tự động nhập</p><p>[07] đến [08]: Chọn tỉnh, thành phố ở mục 08 trước, sau đó chọn quận huyện ở mục 07 (Địa chỉ thường trú)</p><p>[09]: Điền số điện thoại của NNT: (Bắt buộc điền)</p><p>[10]: Fax: Không bắt buộc</p><p>[11]: Điền địa chỉ email của NNT vào. (Bắt buộc điền)</p><p>[12]: Số tài khoản ngân hàng (nếu có). Không bắt buộc</p><p>[12a]: Mở tại: Ngân hàng mở tại đâu thì đánh vào đó.</p><p>[13] đến [21]: Thông tin đại lý thuế nếu không có thì bỏ qua.</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgKHHIJ4ulJeZluXLCqHhl2zeSj9806VhNFr3kFDU-yuo-SirJX_VRZHIGXCEBUUrvWSUkB5WxWekPEHodxvfxwY0cBu8m90UcJQ5jK41mXb1J8r0fz-XB19PvmzcSC_id8lWB72WAMYkw/s1894/13.png" style="margin-left: 1em; margin-right: 1em;"><img alt="Hướng dẫn quết toán thuế thu nhập cá nhân online đơn giản" border="0" data-original-height="667" data-original-width="1894" height="226" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgKHHIJ4ulJeZluXLCqHhl2zeSj9806VhNFr3kFDU-yuo-SirJX_VRZHIGXCEBUUrvWSUkB5WxWekPEHodxvfxwY0cBu8m90UcJQ5jK41mXb1J8r0fz-XB19PvmzcSC_id8lWB72WAMYkw/w640-h226/13.png" title="Hướng dẫn quết toán thuế thu nhập cá nhân online đơn giản" width="640" /></a></div><br /><p><br /></p><p>Tiếp tục đến công đoạn khó nhất tính tiền.<br /><br /></p><p>Những ô bạn cần phải nhập:</p><p>1, Tổng TNCT phát sinh tại Việt Nam: </p><p>= <b>Tổng thu nhập chịu thuế đã phải trả </b>(Công ty cũ + Công ty mới) Nó nằm trong <b>Chứng Từ Khấu Trừ Thuế Thu Nhập Cá Nhân.</b></p><p>2, Các khoản đóng bảo hiểm được trừ:</p><p>= <b>Tổng bảo hiểm xã hội các loại bảo hiểm tuơng tự cộng lại</b> (Công ty cũ + Công ty mới) Nó nằm trong tờ <b>Thư Xác nhận thu nhập</b> photo kẹp cùng <b>Chứng Từ Khấu Trừ Thuế Thu Nhập Cá Nhân</b>.</p><p>3, Đã khấu trừ</p><p>= Tổng <b>Số thuế thu nhập cá nhân đã khấu trừ </b>(Công ty cũ + Công ty mới) Nó nằm trong <b>Chứng Từ Khấu Trừ Thuế Thu Nhập Cá Nhân</b>.</p><p>4. Sau khi website tự tính ra số thuế thừa bạn nhận được, hay số thuế bạn cần phải nộp thêm trong kỳ.<br />Bạn sẽ nhập số tiền đó tương ứng vào hai ô sau đây.</p><p><b>Số thuế hoàn trả vào tài khoản người nộp thuế.</b></p><p>Đã xong bạn bấm vào Hoàn thành kê khai.</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjmzmEdF744fzhuvkrDQs6W9UtEgZEBGAMx3JwVNnrkwDirMDp5yPcE_V2Awa-fqvwd7zkj9jrGr8n_fF_owXCTFOaffB4XJUwBQiu0SUkzURbMJ7Dgp8Eljw5Y_H0fKnpOJox-YEJPYwk/s1904/7.png" style="margin-left: 1em; margin-right: 1em;"><img alt="Hướng dẫn quết toán thuế thu nhập cá nhân online đơn giản" border="0" data-original-height="1039" data-original-width="1904" height="350" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjmzmEdF744fzhuvkrDQs6W9UtEgZEBGAMx3JwVNnrkwDirMDp5yPcE_V2Awa-fqvwd7zkj9jrGr8n_fF_owXCTFOaffB4XJUwBQiu0SUkzURbMJ7Dgp8Eljw5Y_H0fKnpOJox-YEJPYwk/w640-h350/7.png" title="Hướng dẫn quết toán thuế thu nhập cá nhân online đơn giản" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjs62vGXw1dgKTRi79MmA7QGnKzMrm-01koRHWaFOk1FM4HoWvvfuPx30x2TMl4x3qMzFZ0o6nEguQmQRG6mi85Z-kZOyhk1qDyHyfV0ZLf5F6-_4zepNBIqiAeNYhJsZ3b7tjZ03Domzo/s1893/5.png" style="margin-left: 1em; margin-right: 1em;"><img alt="Hướng dẫn quết toán thuế thu nhập cá nhân online đơn giản" border="0" data-original-height="262" data-original-width="1893" height="88" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjs62vGXw1dgKTRi79MmA7QGnKzMrm-01koRHWaFOk1FM4HoWvvfuPx30x2TMl4x3qMzFZ0o6nEguQmQRG6mi85Z-kZOyhk1qDyHyfV0ZLf5F6-_4zepNBIqiAeNYhJsZ3b7tjZ03Domzo/w640-h88/5.png" title="Hướng dẫn quết toán thuế thu nhập cá nhân online đơn giản" width="640" /></a></div><br /><p>B5: </p><p>Bạn nhớ chọn vào<b> Kết xuất XML nhé.</b></p><p>Tiếp theo bấm vào<b> Nộp tờ khai.</b></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhH2ZPgGmYzX6d_F4omgQ4GNIsScBS-rDYmwEnwImk8iZVBpfuLja999_BiJpDmb3VtCe6qXo4JxCuWopSOPvDe2BZ0WzZK0TnHQXQ5SSIv6rghGCD1Z4cUeCfm_5LHFtTV3PvX3kvyN-M/s1650/8.png" style="margin-left: 1em; margin-right: 1em;"><img alt="Hướng dẫn quết toán thuế thu nhập cá nhân online đơn giản" border="0" data-original-height="513" data-original-width="1650" height="198" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhH2ZPgGmYzX6d_F4omgQ4GNIsScBS-rDYmwEnwImk8iZVBpfuLja999_BiJpDmb3VtCe6qXo4JxCuWopSOPvDe2BZ0WzZK0TnHQXQ5SSIv6rghGCD1Z4cUeCfm_5LHFtTV3PvX3kvyN-M/w640-h198/8.png" title="Hướng dẫn quết toán thuế thu nhập cá nhân online đơn giản" width="640" /></a></div><br /><p><br /></p><p>B6: Giao diện kê khai online thành công.<br /><br /><br /></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEheGYrgyl5fmR2YKj9SWZX64ItCBvJEQn13lDSsdy3cTo2KIK_8eEBRJMxM4q2mkEdBVfL0cqxgRiAMo7ZnuVUE6EM6ICOFB6tTQDd-hMIPJ3lr9R0w861ztUez1S6h24c_PiItpD3zJlA/s1913/14.png" style="margin-left: 1em; margin-right: 1em;"><img alt="Hướng dẫn quết toán thuế thu nhập cá nhân online đơn giản" border="0" data-original-height="1022" data-original-width="1913" height="342" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEheGYrgyl5fmR2YKj9SWZX64ItCBvJEQn13lDSsdy3cTo2KIK_8eEBRJMxM4q2mkEdBVfL0cqxgRiAMo7ZnuVUE6EM6ICOFB6tTQDd-hMIPJ3lr9R0w861ztUez1S6h24c_PiItpD3zJlA/w640-h342/14.png" title="Hướng dẫn quết toán thuế thu nhập cá nhân online đơn giản" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><br /></div><br /><p><br /></p><p><br /></p><p>B7: Sau khi đã tải file .xml về máy tính cá nhân của bạn, để chuyển file đó sang định dạng PDF thì chúng ta cần phải có phần mềm Itaxviewer do Tổng cục thuế cung cấp nhé.<br /><br /></p><p>Bạn vào đây để xem hướng dẫn cài đặt vào sử dụng phần mềm ITaxViewer nhé:</p><p><br /><a href="https://www.jundat95.com/2021/03/huong-dan-su-dung-itaxviewer.html" target="_blank">https://www.jundat95.com/2021/03/huong-dan-su-dung-itaxviewer.html</a><br /></p><p>Sau khi đã sử dụng phần mềm ITaxViewer để đọc file .xml và in thành công rồi.<br /><br />B8: Bây giờ bạn photo tất cả các loại giấy tờ bạn có, và mang nó tới cục thuế để quyết toán nhé.(Bây giờ không cần tới cục thuế nữa mà gửi giấy tờ online)<br /><br />B9: Các bạn cũng có thể nộp các giấy tờ chứng từ online khi đăng nhập vào mã số thuế của mình bằng mật khẩu cấp từ ứng dụng eTax Mobile.</p><p>Tải Etax Mobile:</p><p>Android: <a href="https://play.google.com/store/apps/details?id=com.etax.icanhan&hl=en&gl=US">https://play.google.com/store/apps/details?id=com.etax.icanhan&hl=en&gl=US</a></p><p>IOS: <a href="https://apps.apple.com/vn/app/etax-mobile/id1589750682?l=vi">https://apps.apple.com/vn/app/etax-mobile/id1589750682?l=vi</a><br /><br />B10: Sau khi kê khai xong bạn bấm vào nút tải lên tệp đính kèm</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh8B81RnPakbnjUNx6taFEbqinhTPwskq8965XlE5vhRq9hXzDh5kPj1ciO57PS-eXuM7WHLeo-zk2gdNlHIkTW2VuMkAfI23yRjZK8A7LuYpuTC-_992i3a73FWYNTEpQGfrIsbWRPXpTZ1LSFtXz80LK3AOSl_beoj7YBnptrTDrRlGSPEeWng91W/s1276/2022-04-28_15-31.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="nop thue" border="0" data-original-height="808" data-original-width="1276" height="406" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh8B81RnPakbnjUNx6taFEbqinhTPwskq8965XlE5vhRq9hXzDh5kPj1ciO57PS-eXuM7WHLeo-zk2gdNlHIkTW2VuMkAfI23yRjZK8A7LuYpuTC-_992i3a73FWYNTEpQGfrIsbWRPXpTZ1LSFtXz80LK3AOSl_beoj7YBnptrTDrRlGSPEeWng91W/w640-h406/2022-04-28_15-31.png" title="nop thue" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><br /></div><br /><p>B11: Bấm tiếp tục và nhập mã xác nhận</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgV__uABXw2GTbcE_Yg9kKd9_9g1Jaj4tDDbVtSQxAVawUzQYfqR7M0vDRQvYlOyGdByyAdZa3_9WLiPOH1FtpwaL-6zQcV-IbU8BQUKyJ2kFw1GauMx242uoRZeposGYC8Iu_f99ZMl93e4zDaIx0TqmM2VfZwA5O-TmMJ6gRI-wiCxU9anwHpvJpj/s1274/2022-04-28_15-29.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="nop thue" border="0" data-original-height="805" data-original-width="1274" height="404" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgV__uABXw2GTbcE_Yg9kKd9_9g1Jaj4tDDbVtSQxAVawUzQYfqR7M0vDRQvYlOyGdByyAdZa3_9WLiPOH1FtpwaL-6zQcV-IbU8BQUKyJ2kFw1GauMx242uoRZeposGYC8Iu_f99ZMl93e4zDaIx0TqmM2VfZwA5O-TmMJ6gRI-wiCxU9anwHpvJpj/w640-h404/2022-04-28_15-29.png" title="nop thue" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><br /></div><br /><p>B12: Nhập mã OTP gửi về số điện thoại mà bạn đã đăng ký</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEirGiz_Nq-2PJ-vyIt05NnO3daB5dHtEM65uCC6NHltcPDsFWoM0wNT3xvnvomsoJJeAwCSDV_KvRd_SIaF7xIV-K0V-GoniLZr9489Chnogc8NiDZ9Y8p3w5vNKlZiegzRKVftboYdl_VkFLX_RWUKh21DvTLbWW5WSixJJm0viSsz8iQjBptvXBrx/s1274/2022-04-28_15-28.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="nop thue" border="0" data-original-height="810" data-original-width="1274" height="406" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEirGiz_Nq-2PJ-vyIt05NnO3daB5dHtEM65uCC6NHltcPDsFWoM0wNT3xvnvomsoJJeAwCSDV_KvRd_SIaF7xIV-K0V-GoniLZr9489Chnogc8NiDZ9Y8p3w5vNKlZiegzRKVftboYdl_VkFLX_RWUKh21DvTLbWW5WSixJJm0viSsz8iQjBptvXBrx/w640-h406/2022-04-28_15-28.png" title="nop thue" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><br /></div><br /><p>B13: Hoàn thành nộp các giấy tờ liên quan online vậy là bạn không cần tới cơ quan thuế để nộp giấy tờ nữa rồi</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh82H4cu5XPScHo5COfNc0QRfa6f1ZGPZifciUYK9uCPj2GfsTjrMhUyp3fN-jmdZjZYQm_aCPrJ9wkgj5OQGVj1A3nQHfPusbogDpKwelUfnPVcGQwxr5-K_EzBTtwErdy1v7qlMjYGU6dAcc_Giz0WerK4143KI4E3pO3_C7qlCEoxXa7B_UevEEG/s1275/2022-04-28_15-17.png" style="margin-left: 1em; margin-right: 1em;"><img alt="nop thue" border="0" data-original-height="808" data-original-width="1275" height="406" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh82H4cu5XPScHo5COfNc0QRfa6f1ZGPZifciUYK9uCPj2GfsTjrMhUyp3fN-jmdZjZYQm_aCPrJ9wkgj5OQGVj1A3nQHfPusbogDpKwelUfnPVcGQwxr5-K_EzBTtwErdy1v7qlMjYGU6dAcc_Giz0WerK4143KI4E3pO3_C7qlCEoxXa7B_UevEEG/w640-h406/2022-04-28_15-17.png" title="nop thue" width="640" /></a></div><br /><p><br /><br />Cảm ơn bạn đã theo dõi bài viết của mình.</p><p><br /></p>Tinh Ngohttp://www.blogger.com/profile/04404524425512639918noreply@blogger.com0tag:blogger.com,1999:blog-3641638054547526059.post-261764767661666782021-03-08T17:21:00.010+07:002021-03-08T18:09:30.721+07:00Linux bash exit code list<h1 style="text-align: left;"> Linux bash exit code list</h1><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi2pS_BzsVJZiFMk2J8R3_U59VFTn3SJ1JGREaLdn1ReSFBc8Liyrn-BJ98kuSsRKct5jRLuyMp6vU4C4d828zSlSjMD0kp_qRZjF5gPRJbxJnZxeCaVqx8K76tQmfSankkKaa0S4KhBWE/s1200/run-process-in-background-linux-terminal.png" style="margin-left: 1em; margin-right: 1em;"><img alt="Linux bash exit list" border="0" data-original-height="900" data-original-width="1200" height="480" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi2pS_BzsVJZiFMk2J8R3_U59VFTn3SJ1JGREaLdn1ReSFBc8Liyrn-BJ98kuSsRKct5jRLuyMp6vU4C4d828zSlSjMD0kp_qRZjF5gPRJbxJnZxeCaVqx8K76tQmfSankkKaa0S4KhBWE/w640-h480/run-process-in-background-linux-terminal.png" title="Linux bash exit list" width="640" /></a></div><br /><p><br /></p><p><br /></p><p><br /></p><p>The exit codes are necessary for pipeline command.<br /><br /><br /></p><p><br /><script src="https://gist.github.com/dylanngo95/c2a9b5015b08ff3ac33f61013513b5fb.js"></script></p><h2 style="color: #111111; font-family: system-ui, BlinkMacSystemFont, Roboto, "Segoe UI", Segoe, "Helvetica Neue", Tahoma, sans-serif; font-size: 29px; font-weight: normal; line-height: 46px; margin: 49px 0px 19px; overflow-wrap: break-word; padding: 0px; text-align: left;">List of common exit codes for GNU/Linux</h2><table style="border-color: rgb(209, 209, 209); border-image: initial; border-spacing: 0px; border-style: solid; border-width: 1px 0px 0px 1px; color: #111111; font-family: system-ui, BlinkMacSystemFont, Roboto, "Segoe UI", Segoe, "Helvetica Neue", Tahoma, sans-serif; font-size: 18px; margin: 0px 0px 1.75em; overflow-wrap: break-word; padding: 0px; table-layout: auto; width: 644px;"><tbody style="margin: 0px; overflow-wrap: break-word; padding: 0px;"><tr style="margin: 0px; overflow-wrap: break-word; padding: 0px;"><th style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">Exit Code</th><th style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">Description</th></tr><tr style="margin: 0px; overflow-wrap: break-word; padding: 0px;"><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">0</td><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">Success</td></tr><tr style="margin: 0px; overflow-wrap: break-word; padding: 0px;"><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">1</td><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">Operation not permitted</td></tr><tr style="margin: 0px; overflow-wrap: break-word; padding: 0px;"><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">2</td><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">No such file or directory</td></tr><tr style="margin: 0px; overflow-wrap: break-word; padding: 0px;"><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">3</td><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">No such process</td></tr><tr style="margin: 0px; overflow-wrap: break-word; padding: 0px;"><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">4</td><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">Interrupted system call</td></tr><tr style="margin: 0px; overflow-wrap: break-word; padding: 0px;"><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">5</td><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">Input/output error</td></tr><tr style="margin: 0px; overflow-wrap: break-word; padding: 0px;"><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">6</td><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">No such device or address</td></tr><tr style="margin: 0px; overflow-wrap: break-word; padding: 0px;"><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">7</td><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">Argument list too long</td></tr><tr style="margin: 0px; overflow-wrap: break-word; padding: 0px;"><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">8</td><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">Exec format error</td></tr><tr style="margin: 0px; overflow-wrap: break-word; padding: 0px;"><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">9</td><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">Bad file descriptor</td></tr><tr style="margin: 0px; overflow-wrap: break-word; padding: 0px;"><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">10</td><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">No child processes</td></tr><tr style="margin: 0px; overflow-wrap: break-word; padding: 0px;"><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">11</td><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">Resource temporarily unavailable</td></tr><tr style="margin: 0px; overflow-wrap: break-word; padding: 0px;"><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">12</td><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">Cannot allocate memory</td></tr><tr style="margin: 0px; overflow-wrap: break-word; padding: 0px;"><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">13</td><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">Permission denied</td></tr><tr style="margin: 0px; overflow-wrap: break-word; padding: 0px;"><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">14</td><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">Bad address</td></tr><tr style="margin: 0px; overflow-wrap: break-word; padding: 0px;"><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">15</td><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">Block device required</td></tr><tr style="margin: 0px; overflow-wrap: break-word; padding: 0px;"><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">16</td><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">Device or resource busy</td></tr><tr style="margin: 0px; overflow-wrap: break-word; padding: 0px;"><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">17</td><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">File exists</td></tr><tr style="margin: 0px; overflow-wrap: break-word; padding: 0px;"><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">18</td><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">Invalid cross-device link</td></tr><tr style="margin: 0px; overflow-wrap: break-word; padding: 0px;"><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">19</td><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">No such device</td></tr><tr style="margin: 0px; overflow-wrap: break-word; padding: 0px;"><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">20</td><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">Not a directory</td></tr><tr style="margin: 0px; overflow-wrap: break-word; padding: 0px;"><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">21</td><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">Is a directory</td></tr><tr style="margin: 0px; overflow-wrap: break-word; padding: 0px;"><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">22</td><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">Invalid argument</td></tr><tr style="margin: 0px; overflow-wrap: break-word; padding: 0px;"><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">23</td><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">Too many open files in system</td></tr><tr style="margin: 0px; overflow-wrap: break-word; padding: 0px;"><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">24</td><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">Too many open files</td></tr><tr style="margin: 0px; overflow-wrap: break-word; padding: 0px;"><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">25</td><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">Inappropriate ioctl for device</td></tr><tr style="margin: 0px; overflow-wrap: break-word; padding: 0px;"><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">26</td><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">Text file busy</td></tr><tr style="margin: 0px; overflow-wrap: break-word; padding: 0px;"><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">27</td><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">File too large</td></tr><tr style="margin: 0px; overflow-wrap: break-word; padding: 0px;"><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">28</td><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">No space left on device</td></tr><tr style="margin: 0px; overflow-wrap: break-word; padding: 0px;"><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">29</td><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">Illegal seek</td></tr><tr style="margin: 0px; overflow-wrap: break-word; padding: 0px;"><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">30</td><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">Read-only file system</td></tr><tr style="margin: 0px; overflow-wrap: break-word; padding: 0px;"><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">31</td><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">Too many links</td></tr><tr style="margin: 0px; overflow-wrap: break-word; padding: 0px;"><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">32</td><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">Broken pipe</td></tr><tr style="margin: 0px; overflow-wrap: break-word; padding: 0px;"><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">33</td><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">Numerical argument out of domain</td></tr><tr style="margin: 0px; overflow-wrap: break-word; padding: 0px;"><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">34</td><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">Numerical result out of range</td></tr><tr style="margin: 0px; overflow-wrap: break-word; padding: 0px;"><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">35</td><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">Resource deadlock avoided</td></tr><tr style="margin: 0px; overflow-wrap: break-word; padding: 0px;"><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">36</td><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">File name too long</td></tr><tr style="margin: 0px; overflow-wrap: break-word; padding: 0px;"><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">37</td><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">No locks available</td></tr><tr style="margin: 0px; overflow-wrap: break-word; padding: 0px;"><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">38</td><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">Function not implemented</td></tr><tr style="margin: 0px; overflow-wrap: break-word; padding: 0px;"><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">39</td><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">Directory not empty</td></tr><tr style="margin: 0px; overflow-wrap: break-word; padding: 0px;"><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">40</td><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">Too many levels of symbolic links</td></tr><tr style="margin: 0px; overflow-wrap: break-word; padding: 0px;"><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">42</td><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">No message of desired type</td></tr><tr style="margin: 0px; overflow-wrap: break-word; padding: 0px;"><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">43</td><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">Identifier removed</td></tr><tr style="margin: 0px; overflow-wrap: break-word; padding: 0px;"><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">44</td><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">Channel number out of range</td></tr><tr style="margin: 0px; overflow-wrap: break-word; padding: 0px;"><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">45</td><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">Level 2 not synchronized</td></tr><tr style="margin: 0px; overflow-wrap: break-word; padding: 0px;"><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">46</td><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">Level 3 halted</td></tr><tr style="margin: 0px; overflow-wrap: break-word; padding: 0px;"><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">47</td><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">Level 3 reset</td></tr><tr style="margin: 0px; overflow-wrap: break-word; padding: 0px;"><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">48</td><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">Link number out of range</td></tr><tr style="margin: 0px; overflow-wrap: break-word; padding: 0px;"><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">49</td><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">Protocol driver not attached</td></tr><tr style="margin: 0px; overflow-wrap: break-word; padding: 0px;"><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">50</td><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">No CSI structure available</td></tr><tr style="margin: 0px; overflow-wrap: break-word; padding: 0px;"><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">51</td><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">Level 2 halted</td></tr><tr style="margin: 0px; overflow-wrap: break-word; padding: 0px;"><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">52</td><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">Invalid exchange</td></tr><tr style="margin: 0px; overflow-wrap: break-word; padding: 0px;"><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">53</td><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">Invalid request descriptor</td></tr><tr style="margin: 0px; overflow-wrap: break-word; padding: 0px;"><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">54</td><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">Exchange full</td></tr><tr style="margin: 0px; overflow-wrap: break-word; padding: 0px;"><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">55</td><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">No anode</td></tr><tr style="margin: 0px; overflow-wrap: break-word; padding: 0px;"><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">56</td><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">Invalid request code</td></tr><tr style="margin: 0px; overflow-wrap: break-word; padding: 0px;"><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">57</td><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">Invalid slot</td></tr><tr style="margin: 0px; overflow-wrap: break-word; padding: 0px;"><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">59</td><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">Bad font file format</td></tr><tr style="margin: 0px; overflow-wrap: break-word; padding: 0px;"><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">60</td><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">Device not a stream</td></tr><tr style="margin: 0px; overflow-wrap: break-word; padding: 0px;"><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">61</td><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">No data available</td></tr><tr style="margin: 0px; overflow-wrap: break-word; padding: 0px;"><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">62</td><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">Timer expired</td></tr><tr style="margin: 0px; overflow-wrap: break-word; padding: 0px;"><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">63</td><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">Out of streams resources</td></tr><tr style="margin: 0px; overflow-wrap: break-word; padding: 0px;"><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">64</td><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">Machine is not on the network</td></tr><tr style="margin: 0px; overflow-wrap: break-word; padding: 0px;"><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">65</td><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">Package not installed</td></tr><tr style="margin: 0px; overflow-wrap: break-word; padding: 0px;"><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">66</td><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">Object is remote</td></tr><tr style="margin: 0px; overflow-wrap: break-word; padding: 0px;"><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">67</td><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">Link has been severed</td></tr><tr style="margin: 0px; overflow-wrap: break-word; padding: 0px;"><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">68</td><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">Advertise error</td></tr><tr style="margin: 0px; overflow-wrap: break-word; padding: 0px;"><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">69</td><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">Srmount error</td></tr><tr style="margin: 0px; overflow-wrap: break-word; padding: 0px;"><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">70</td><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">Communication error on send</td></tr><tr style="margin: 0px; overflow-wrap: break-word; padding: 0px;"><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">71</td><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">Protocol error</td></tr><tr style="margin: 0px; overflow-wrap: break-word; padding: 0px;"><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">72</td><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">Multihop attempted</td></tr><tr style="margin: 0px; overflow-wrap: break-word; padding: 0px;"><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">73</td><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">RFS specific error</td></tr><tr style="margin: 0px; overflow-wrap: break-word; padding: 0px;"><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">74</td><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">Bad message</td></tr><tr style="margin: 0px; overflow-wrap: break-word; padding: 0px;"><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">75</td><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">Value too large for defined data type</td></tr><tr style="margin: 0px; overflow-wrap: break-word; padding: 0px;"><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">76</td><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">Name not unique on network</td></tr><tr style="margin: 0px; overflow-wrap: break-word; padding: 0px;"><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">77</td><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">File descriptor in bad state</td></tr><tr style="margin: 0px; overflow-wrap: break-word; padding: 0px;"><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">78</td><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">Remote address changed</td></tr><tr style="margin: 0px; overflow-wrap: break-word; padding: 0px;"><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">79</td><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">Can not access a needed shared library</td></tr><tr style="margin: 0px; overflow-wrap: break-word; padding: 0px;"><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">80</td><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">Accessing a corrupted shared library</td></tr><tr style="margin: 0px; overflow-wrap: break-word; padding: 0px;"><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">81</td><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">.lib section in a.out corrupted</td></tr><tr style="margin: 0px; overflow-wrap: break-word; padding: 0px;"><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">82</td><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">Attempting to link in too many shared libraries</td></tr><tr style="margin: 0px; overflow-wrap: break-word; padding: 0px;"><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">83</td><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">Cannot exec a shared library directly</td></tr><tr style="margin: 0px; overflow-wrap: break-word; padding: 0px;"><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">84</td><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">Invalid or incomplete multibyte or wide character</td></tr><tr style="margin: 0px; overflow-wrap: break-word; padding: 0px;"><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">85</td><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">Interrupted system call should be restarted</td></tr><tr style="margin: 0px; overflow-wrap: break-word; padding: 0px;"><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">86</td><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">Streams pipe error</td></tr><tr style="margin: 0px; overflow-wrap: break-word; padding: 0px;"><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">87</td><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">Too many users</td></tr><tr style="margin: 0px; overflow-wrap: break-word; padding: 0px;"><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">88</td><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">Socket operation on non-socket</td></tr><tr style="margin: 0px; overflow-wrap: break-word; padding: 0px;"><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">89</td><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">Destination address required</td></tr><tr style="margin: 0px; overflow-wrap: break-word; padding: 0px;"><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">90</td><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">Message too long</td></tr><tr style="margin: 0px; overflow-wrap: break-word; padding: 0px;"><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">91</td><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">Protocol wrong type for socket</td></tr><tr style="margin: 0px; overflow-wrap: break-word; padding: 0px;"><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">92</td><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">Protocol not available</td></tr><tr style="margin: 0px; overflow-wrap: break-word; padding: 0px;"><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">93</td><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">Protocol not supported</td></tr><tr style="margin: 0px; overflow-wrap: break-word; padding: 0px;"><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">94</td><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">Socket type not supported</td></tr><tr style="margin: 0px; overflow-wrap: break-word; padding: 0px;"><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">95</td><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">Operation not supported</td></tr><tr style="margin: 0px; overflow-wrap: break-word; padding: 0px;"><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">96</td><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">Protocol family not supported</td></tr><tr style="margin: 0px; overflow-wrap: break-word; padding: 0px;"><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">97</td><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">Address family not supported by protocol</td></tr><tr style="margin: 0px; overflow-wrap: break-word; padding: 0px;"><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">98</td><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">Address already in use</td></tr><tr style="margin: 0px; overflow-wrap: break-word; padding: 0px;"><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">99</td><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">Cannot assign requested address</td></tr><tr style="margin: 0px; overflow-wrap: break-word; padding: 0px;"><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">100</td><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">Network is down</td></tr><tr style="margin: 0px; overflow-wrap: break-word; padding: 0px;"><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">101</td><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">Network is unreachable</td></tr><tr style="margin: 0px; overflow-wrap: break-word; padding: 0px;"><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">102</td><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">Network dropped connection on reset</td></tr><tr style="margin: 0px; overflow-wrap: break-word; padding: 0px;"><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">103</td><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">Software caused connection abort</td></tr><tr style="margin: 0px; overflow-wrap: break-word; padding: 0px;"><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">104</td><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">Connection reset by peer</td></tr><tr style="margin: 0px; overflow-wrap: break-word; padding: 0px;"><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">105</td><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">No buffer space available</td></tr><tr style="margin: 0px; overflow-wrap: break-word; padding: 0px;"><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">106</td><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">Transport endpoint is already connected</td></tr><tr style="margin: 0px; overflow-wrap: break-word; padding: 0px;"><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">107</td><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">Transport endpoint is not connected</td></tr><tr style="margin: 0px; overflow-wrap: break-word; padding: 0px;"><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">108</td><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">Cannot send after transport endpoint shutdown</td></tr><tr style="margin: 0px; overflow-wrap: break-word; padding: 0px;"><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">109</td><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">Too many references</td></tr><tr style="margin: 0px; overflow-wrap: break-word; padding: 0px;"><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">110</td><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">Connection timed out</td></tr><tr style="margin: 0px; overflow-wrap: break-word; padding: 0px;"><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">111</td><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">Connection refused</td></tr><tr style="margin: 0px; overflow-wrap: break-word; padding: 0px;"><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">112</td><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">Host is down</td></tr><tr style="margin: 0px; overflow-wrap: break-word; padding: 0px;"><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">113</td><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">No route to host</td></tr><tr style="margin: 0px; overflow-wrap: break-word; padding: 0px;"><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">114</td><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">Operation already in progress</td></tr><tr style="margin: 0px; overflow-wrap: break-word; padding: 0px;"><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">115</td><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">Operation now in progress</td></tr><tr style="margin: 0px; overflow-wrap: break-word; padding: 0px;"><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">116</td><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">Stale file handle</td></tr><tr style="margin: 0px; overflow-wrap: break-word; padding: 0px;"><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">117</td><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">Structure needs cleaning</td></tr><tr style="margin: 0px; overflow-wrap: break-word; padding: 0px;"><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">118</td><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">Not a XENIX named type file</td></tr><tr style="margin: 0px; overflow-wrap: break-word; padding: 0px;"><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">119</td><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">No XENIX semaphores available</td></tr><tr style="margin: 0px; overflow-wrap: break-word; padding: 0px;"><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">120</td><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">Is a named type file</td></tr><tr style="margin: 0px; overflow-wrap: break-word; padding: 0px;"><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">121</td><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">Remote I/O error</td></tr><tr style="margin: 0px; overflow-wrap: break-word; padding: 0px;"><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">122</td><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">Disk quota exceeded</td></tr><tr style="margin: 0px; overflow-wrap: break-word; padding: 0px;"><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">123</td><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">No medium found</td></tr><tr style="margin: 0px; overflow-wrap: break-word; padding: 0px;"><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">125</td><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">Operation canceled</td></tr><tr style="margin: 0px; overflow-wrap: break-word; padding: 0px;"><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">126</td><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">Required key not available</td></tr><tr style="margin: 0px; overflow-wrap: break-word; padding: 0px;"><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">127</td><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">Key has expired</td></tr><tr style="margin: 0px; overflow-wrap: break-word; padding: 0px;"><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">128</td><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">Key has been revoked</td></tr><tr style="margin: 0px; overflow-wrap: break-word; padding: 0px;"><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">129</td><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">Key was rejected by service</td></tr><tr style="margin: 0px; overflow-wrap: break-word; padding: 0px;"><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">130</td><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">Owner died</td></tr><tr style="margin: 0px; overflow-wrap: break-word; padding: 0px;"><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">131</td><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">State not recoverable</td></tr><tr style="margin: 0px; overflow-wrap: break-word; padding: 0px;"><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">132</td><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">Operation not possible due to RF-kill</td></tr><tr style="margin: 0px; overflow-wrap: break-word; padding: 0px;"><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">133</td><td style="border: 1px solid rgb(209, 209, 209); margin: 0px; overflow-wrap: break-word; padding: 0px;">Memory page has hardware error</td></tr></tbody></table><p>References:</p><p><a href="https://bash.cyberciti.biz/guide/Exit_command">https://bash.cyberciti.biz/guide/Exit_command</a></p><p><a href="https://www.cyberciti.biz/faq/linux-bash-exit-status-set-exit-statusin-bash/">https://www.cyberciti.biz/faq/linux-bash-exit-status-set-exit-statusin-bash/</a></p><div id="gtx-trans" style="left: -14px; position: absolute; top: 690.438px;"><div class="gtx-trans-icon"></div></div>Tinh Ngohttp://www.blogger.com/profile/04404524425512639918noreply@blogger.com0