<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
xmlns:content="http://purl.org/rss/1.0/modules/content/"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
xmlns:atom="http://www.w3.org/2005/Atom"
xmlns:wfw="http://wellformedweb.org/CommentAPI/">
<channel>
<title>Thiết kế website chuyên nghiệp</title>
<link></link>
<atom:link href="" rel="self" type="application/rss+xml" />
<language>zh-CN</language>
<description></description>
<lastBuildDate>Sun, 24 Mar 2019 13:00:45 +0700</lastBuildDate>
<pubDate>Sun, 24 Mar 2019 13:00:45 +0700</pubDate>
<item>
<title>Giải pháp nhà thông minh giá rẻ dùng ESP8266 và firebase</title>
<link>https://huuthanhdtd.com/giai-phap-nha-thong-minh-gia-re-dung-esp8266-va-firebase.html</link>
<guid>https://huuthanhdtd.com/giai-phap-nha-thong-minh-gia-re-dung-esp8266-va-firebase.html</guid>
<pubDate>Sun, 24 Mar 2019 13:00:45 +0700</pubDate>
<dc:creator>HuuThanhDTD</dc:creator>
<description><![CDATA[Chuẩn bị phần cứngMạch ESP8266 để kết nối wifi, firebaseMạch rờ le để điều khiển thiết bị ngoại v...]]></description>
<content:encoded xml:lang="zh-CN"><![CDATA[
<h2>Chuẩn bị phần cứng</h2><ol><li>Mạch ESP8266 để kết nối wifi, firebase</li><li>Mạch rờ le để điều khiển thiết bị ngoại vi</li></ol><h2>Chuẩn bị phần mềm</h2><ol><li>Arduino IDE (download từ <a href="https://www.arduino.cc/en/Main/Software)">https://www.arduino.cc/en/Main/Software)</a></li><li>Thư viện firebase-arduino</li><li>Các ide edit web như là Sublime Text, VSCode</li></ol><h2>Demo video</h2><p><iframe width="560" height="315" src="https://www.youtube.com/embed/7jva4_c4InU" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe></p><h2>Tiến hành</h2><h3>1) Tạo tài khoản firebase nếu chưa có</h3><p>Cập nhật sau...<br>Tạo item: Relay_1 có giá trị: 0</p><h3>2) Code web để điều khiển</h3><pre><code class="language-html">Cập nhật sau...</code></pre><h3>3)  Code arduino</h3><pre><code class="language-c">Cập nhật sau...</code></pre><p>HuuThanhDTD 24-03-2019</p>
]]></content:encoded>
<slash:comments>0</slash:comments>
<comments>https://huuthanhdtd.com/giai-phap-nha-thong-minh-gia-re-dung-esp8266-va-firebase.html#comments</comments>
<wfw:commentRss>https://huuthanhdtd.com/feed/giai-phap-nha-thong-minh-gia-re-dung-esp8266-va-firebase.html</wfw:commentRss>
</item>
<item>
<title>Đọc lại bức thư của Ông thủ tướng Đài Loan ( Tôn Vận Tuyền) gửi con</title>
<link>https://huuthanhdtd.com/doc-lai-buc-thu-cua-ong-thu-tuong-dai-loan-ton-van-tuyen-gui-con.html</link>
<guid>https://huuthanhdtd.com/doc-lai-buc-thu-cua-ong-thu-tuong-dai-loan-ton-van-tuyen-gui-con.html</guid>
<pubDate>Tue, 22 Jan 2019 12:41:20 +0700</pubDate>
<dc:creator>HuuThanhDTD</dc:creator>
<description><![CDATA[Con trai yêu dấu!Đời người phúc họa vô thường! Không một ai biết trước mình sẽ sống được bao lâu....]]></description>
<content:encoded xml:lang="zh-CN"><![CDATA[
<p>Con trai yêu dấu!</p><p>Đời người phúc họa vô thường! Không một ai biết trước mình sẽ sống được bao lâu. Có một số việc tưởng nên sớm nói ra thì hay hơn.</p><p>Cha là cha của con, nếu cha không nói với con, có lẽ không ai nói rõ với con những điều này!</p><p>Những lời khuyên để con ghi nhớ này, là kết quả bao kinh nghiệm xương máu, thất bại đắng cay trong cuộc đời, mà bản thân cha đã trải nghiệm. Nó sẽ giúp con tiết kiệm nhiều những nhầm lẫn hoang phí trên bước đường trưởng thành của con sau này.</p><h3>Dưới đây là những điều con nên ghi nhớ trong cuộc đời:</h3><ul><li>Nếu có người đối xử không tốt với con, đừng bận tâm cho mất thời giờ. Trong cuộc đời này, không ai có nghĩa vụ phải đối xử tốt với con, ngoại trừ Cha và Mẹ của con. Nếu có người đối xử tốt với con, ngoài việc con phải biết ơn và trân quý, con cũng nên thận trọng suy xét, vì người đời làm việc gì thường có mục đích và nguyên nhân. Con chớ vội vàng xem đối phương là chân bằng hữu .</li><li>Con có thể yêu cầu mình phải giữ chữ TÍN, nhưng không thể bắt người khác phải giữ chữ TÍN với mình. Con có thể yêu cầu mình phải đối xử TỐT với người khác, nhưng không thể kỳ vọng người khác phải đối xử TỐT với con. Con đối xử người ta thế nào, không có nghĩa là nguời ta sẽ đối xử lại mình như thế ấy, nếu con không hiểu rõ được điểm này, sẽ tự chuốc lấy buồn phiền cho mình mai sau.</li><li>Trên đời không phải không có người nào mà không thể thay thế được, không có vật gì mà nhất định mình phải sở hữu được. Con nên hiểu rõ ở điểm này. Nếu mai sau rủi người bạn đời không còn muốn cùng con chung sống, hoặc giả con vừa mất đi những gì trân quý nhất trong đời, thì con nên hiểu rằng: Đây cũng không phải là chuyện lớn lao gì cho lắm!</li><li>Trên đời này chẳng hề có chuyện yêu thương bất diệt. Ái tình chỉ qua là một cảm xúc nhất thời. Cảm giác này tuyệt đối sẽ theo thời gian, hoàn cảnh mà thay đổi. Nếu người yêu rời xa con, hãy nhẫn nại chờ đợi , để thời gian từ từ gột rửa, để tâm tư mình dần dần lắng đọng thì nỗi đau thương cũng sẽ từ từ nhạt nhòa đi . Không nên cứ ôm ấp hoài niệm mãi cái ảo ảnh yêu thương, cũng không nên quá bi lụy vì tình.</li><li>Đời người ngắn ngủi, nếu hôm nay con đã lãng phí thời gian, mai đây hiểu được thì thấy rằng quãng đời đó đã vĩnh viễn mất rồi! Cho nên càng biết trân quý sinh mạng của mình càng sớm, thì con sẽ được tận hưởng cuộc đời mình càng nhiều hơn. Trông mong được sống trường thọ, chi bằng con cứ tận hưởng cuộc đời mình ngay từ bây giờ.</li><li>Cha không yêu cầu con phải phụng dưỡng cha trong nửa quãng đời còn lại. Ngược lại, Cha cũng không thể bảo bọc nửa quãng đời sau này của con, khi mà con đã trưởng thành và tự lập. Đây là lúc Cha đã làm tròn trách nhiệm của mình. Sau này con có đi xe buýt hay đi xe hơi riêng; ăn súp vi cá hay ăn mì gói, tự con lo liệu lấy.</li><li>Gia đình thân nhân chỉ là duyên phận một đời. Bất luận trong kiếp này chúng ta sống chung với nhau được bao lâu và như thế nào, nên trân quý khoảng thời gian sum họp, gia đình đoàn tụ. Kiếp sau, dù ta có thuơng hay không, cũng không chắc sẽ còn gặp lại nhau.</li><li>Tuy có nhiều người thành công trên đường đời mà học hành chẳng đến đâu. Nhưng điều đó cũng không có nghĩa là không cần học hành mà vẫn thành công. Kiến thức đạt được do việc học hành, là vũ khí trong tay của mình. Ta có thể lập nên sự nghiệp từ hai bàn tay trắng, nhưng không thể thiếu sự hiểu biết. Nên nhớ kỹ điều này!</li><li>Hơn mười mấy, hai mươi mấy năm nay, Cha tuần nào cũng mua vé số, nhưng đến nay, ngay đến giải 3 vẫn chưa từng trúng. Điều này chứng tỏ rằng: Muốn phát đạt phải siêng năng làm ăn, nỗ lực phấn đấu chứ không phải chờ đợi điều may mắn đến với con. Trên thế gian này không có buổi ăn trưa nào miễn phí cả. Nếu may mắn có đến với con, đấy là điều tốt, còn nếu không thì cũng chẳng có vấn đề gì, bởi tất cả phải dựa vào chính bản thân con.</li><li>Con hãy BIẾT ƯỚC MƠ, nhưng để trở thành hiện thực thì ước mơ đừng xa rời thực tế, đừng hão huyền và ảo tưởng. Con phải LUÔN CÓ NIỀM TIN. Không chỉ là niềm tin vào chính bản thân mình mà con cũng cần có niềm tin vào mọi người, niềm tin vào cuộc sống. Nếu không có niềm tin, con sẽ chẳng thể làm được việc gì. Công việc, cuộc sống đôi lúc sẽ có những khó khăn, trở ngại đòi hỏi con phải LUÔN NỖ LỰC. Để có được những thành công thì không thể thiếu sự cố gắng và say mê, con ạ. Hãy nhớ rằng THÀNH CÔNG KHÔNG PHẢI LÀ MỘT ĐÍCH ĐẾN MÀ LÀ MỘT QUÁ TRÌNH. Vì thế, con hãy tiếp tục ước mơ, tiếp tục tin tưởng và không ngừng nỗ lực, con nhé.</li></ul><p><img src="http://nhabanvn.com/wp-content/uploads/2017/07/L%C3%A1-th%C6%B0-tr%E1%BB%A9-danh-c%E1%BB%A7a-th%E1%BB%A7-t%C6%B0%E1%BB%9Bng-%C4%90%C3%A0i-Loan.jpg" alt="Thủ tướng Đài Loan" title="Thủ tướng Đài Loan" class="lazy img-fluid mb-2"><br> (st) HuuThanhDTD 22-01-2019</p>
]]></content:encoded>
<slash:comments>0</slash:comments>
<comments>https://huuthanhdtd.com/doc-lai-buc-thu-cua-ong-thu-tuong-dai-loan-ton-van-tuyen-gui-con.html#comments</comments>
<wfw:commentRss>https://huuthanhdtd.com/feed/doc-lai-buc-thu-cua-ong-thu-tuong-dai-loan-ton-van-tuyen-gui-con.html</wfw:commentRss>
</item>
<item>
<title>🌻HẬU QUẢ KHÔN LƯỜNG KHI BỐ MẸ ĐÁNH TRẺ🌻</title>
<link>https://huuthanhdtd.com/hau-qua-khon-luong-khi-bo-me-danh-tre.html</link>
<guid>https://huuthanhdtd.com/hau-qua-khon-luong-khi-bo-me-danh-tre.html</guid>
<pubDate>Tue, 13 Nov 2018 07:56:55 +0700</pubDate>
<dc:creator>HuuThanhDTD</dc:creator>
<description><![CDATA[Đánh đòn con như một cách kỷ luật khá phổ biến trong các nền văn hóa châu Á. Thậm chí, còn có một...]]></description>
<content:encoded xml:lang="zh-CN"><![CDATA[
<p>Đánh đòn con như một cách kỷ luật khá phổ biến trong các nền văn hóa châu Á. Thậm chí, còn có một câu nói quen thuộc ai cũng từng nghe là "Thương cho roi cho vọt", cho rằng đây mới là cách thể hiện tình thương với con. Tuy nhiên, các chuyên gia về sự phát triển trẻ em và tâm lý học đang ngày càng thúc giục cha mẹ không dùng đòn roi để kỷ luật trẻ. Họ nhấn mạnh, đòn roi có thể dẫn tới rất nhiều hệ lụy.</p><p><img src="http://nhatkycuame.net/media/uploaded/1/2016/05/01/danh-vao-mong-lam-giam-tri-thong-minh-cua-tre-2-tieudungplus.jpg" alt="Những hậu quả khôn lường khi bố mẹ đánh trẻ" title="Những hậu quả khôn lường khi bố mẹ đánh trẻ" class="lazy img-fluid mb-2"></p><h2>Sau đây là một số tác động tiêu cực khi đánh trẻ:</h2><p>🌻Trừng phạt thân thể có thể làm nảy sinh sự khinh miệt.<br>🌻Đánh trẻ khiến chúng không biết cách chuyển hướng những nguồn năng lượng tiêu cực, từ đó có thể khiến trẻ rơi vào trạng thái chống đối xã hội.<br>🌻Nó khiến trẻ suy giảm thái độ tự tin vào giá trị bản thân (Trẻ học cách e sợ trừng phạt hơn là cố gắng để hiểu tại sao mình cần phải tuân thủ quy định).<br>🌻Nó để lại những dấu vết tâm lý, dẫn tới các bệnh tâm thần như trầm cảm, rối loạn ăn uống, rối loạn nhân cách và mất khả năng trí tuệ.<br>🌻Trừng phạt thân thể có thể gây ra hội chứng lo âu ở tuổi thơ (có thể mở rộng tới giai đoạn trưởng thành).<br>🌻Nó gửi đi thông điệp: đánh người khác không sao cả. Trẻ có xu hướng bắt chước hành động của bạn. Và khi thông điệp xấu được trẻ đón nhận, trẻ có thể diễn giải bằng hành vi tương tự ở bất cứ nơi nào khác, ví dụ, với bạn bè của trẻ chẳng hạn.<br>🌻Khiến trẻ hiếu chiến và bạo lực với người khác.<br>🌻Khiến trẻ khó khăn trong việc học tự kiểm soát bản thân hoặc hành vi phù hợp (khi trẻ tự nhận thức rằng, không có quy định nào hết và mọi chuyện có thể được dàn xếp với cách thức trừng phạt thân thể).<br>Nếu cha mẹ nghĩ rằng trao cho con bằng rất nhiều yêu thương, vỗ về sau khi đánh con có thể bù đắp đau đớn đòn roi, có thể các bạn đã lầm. Theo các chuyên gia, sự ấm áp của cha mẹ dành cho trẻ sau khi áp dụng đòn roi không làm xoa dịu tình hình, thậm chí, nó còn làm "mọi việc tệ hơn". Trên thực tế, nó mô phỏng 1 trong những dấu hiệu cơ bản của mối quan hệ lạm dụng ở người trưởng thành theo chu trình bạo lực – tha thứ và cứ như vậy.điểm rằng đánh đòn con là không cần thiết và rất đáng lo ngại.<br>(Sưu tầm)</p><p>HuuThanhDTD 13-11-2018</p>
]]></content:encoded>
<slash:comments>0</slash:comments>
<comments>https://huuthanhdtd.com/hau-qua-khon-luong-khi-bo-me-danh-tre.html#comments</comments>
<wfw:commentRss>https://huuthanhdtd.com/feed/hau-qua-khon-luong-khi-bo-me-danh-tre.html</wfw:commentRss>
</item>
<item>
<title>Bảng chữ cái hiragana</title>
<link>https://huuthanhdtd.com/bang-chu-cai-hiragana.html</link>
<guid>https://huuthanhdtd.com/bang-chu-cai-hiragana.html</guid>
<pubDate>Tue, 21 Aug 2018 20:29:00 +0700</pubDate>
<dc:creator>HuuThanhDTD</dc:creator>
<description><![CDATA[ひらがな 50音表清音 (Basic characters)&nbsp;あ aい iう uえ eお o&nbsp;か kaき kiく kuけ keこ ko&nbsp;さ saし shiす suせ...]]></description>
<content:encoded xml:lang="zh-CN"><![CDATA[
<h2>ひらがな 50音表</h2><h3>清音 (Basic characters)</h3><table><tbody><tr><td><i data-src="hiragana-katakana/au50on/kana50onset_a.mp3" alt="a " class="teal link volume up icon fa fa-volume-up"></i>&nbsp;</td><td>あ a</td><td>い i</td><td>う u</td><td>え e</td><td>お o</td></tr><tr><td><i data-src="hiragana-katakana/au50on/kana50onset_ka.mp3" alt="ka" class="teal link volume up icon fa fa-volume-up"></i>&nbsp;</td><td>か ka</td><td>き ki</td><td>く ku</td><td>け ke</td><td>こ ko</td></tr><tr><td><i data-src="hiragana-katakana/au50on/kana50onset_sa.mp3" alt="sa" class="teal link volume up icon fa fa-volume-up"></i>&nbsp;</td><td>さ sa</td><td>し shi</td><td>す su</td><td>せ se</td><td>そ so</td></tr><tr><td><i data-src="hiragana-katakana/au50on/kana50onset_ta.mp3" alt="ta" class="teal link volume up icon fa fa-volume-up"></i>&nbsp;</td><td>た ta</td><td>ち chi</td><td>つ  tsu</td><td>て te</td><td>と to</td></tr><tr><td><i data-src="hiragana-katakana/au50on/kana50onset_na.mp3" alt="na" class="teal link volume up icon fa fa-volume-up"></i>&nbsp;</td><td>な na</td><td>に ni</td><td>ぬ nu</td><td>ね ne</td><td>の no</td></tr><tr><td><i data-src="hiragana-katakana/au50on/kana50onset_ha.mp3" alt="ha" class="teal link volume up icon fa fa-volume-up"></i>&nbsp;</td><td>は ha</td><td>ひ hi</td><td>ふ fu</td><td>へ he</td><td>ほ ho</td></tr><tr><td><i data-src="hiragana-katakana/au50on/kana50onset_ma.mp3" alt="ma" class="teal link volume up icon fa fa-volume-up"></i>&nbsp;</td><td>ま ma</td><td>み mi</td><td>む mu</td><td>め me</td><td>も mo</td></tr><tr><td><i data-src="hiragana-katakana/au50on/kana50onset_ya.mp3" alt="ya" class="teal link volume up icon fa fa-volume-up"></i>&nbsp;</td><td>や ya</td><td>－</td><td>ゆ yu</td><td>－</td><td>よ yo</td></tr><tr><td><i data-src="hiragana-katakana/au50on/kana50onset_ra.mp3" alt="ra" class="teal link volume up icon fa fa-volume-up"></i>&nbsp;</td><td>ら ra</td><td>り ri</td><td>る ru</td><td>れ re</td><td>ろ ro</td></tr><tr><td><i data-src="hiragana-katakana/au50on/kana50onset_wa.mp3" alt="wa" class="teal link volume up icon fa fa-volume-up"></i>&nbsp;</td><td>わ wa</td><td>－</td><td>－</td><td>－</td><td>を o(wo)</td></tr><tr><td><i data-src="hiragana-katakana/au50on/kana50onset_n.mp3" alt="n" class="teal link volume up icon fa fa-volume-up"></i>&nbsp;</td><td>ん n</td><td>－</td><td>－</td><td>－</td><td>－</td></tr></tbody></table><h3>濁音 (Combination 1 - voiced consonant)</h3><table><tbody><tr><td><i data-src="hiragana-katakana/au50on/kana50onset_ga.mp3" alt="ga" class="teal link volume up icon fa fa-volume-up"></i>&nbsp;</td><td>が ga</td><td>ぎ gi</td><td>ぐ gu</td><td>げ ge</td><td>ご go</td></tr><tr><td><i data-src="hiragana-katakana/au50on/kana50onset_za.mp3" alt="za" class="teal link volume up icon fa fa-volume-up"></i>&nbsp;</td><td>ざ za</td><td>じ ji</td><td>ず zu</td><td>ぜ ze</td><td>ぞ zo</td></tr><tr><td><i data-src="hiragana-katakana/au50on/kana50onset_da.mp3" alt="da" class="teal link volume up icon fa fa-volume-up"></i>&nbsp;</td><td>だ da</td><td>ぢ di</td><td>づ  du</td><td>で de</td><td>ど do</td></tr><tr><td><i data-src="hiragana-katakana/au50on/kana50onset_ba.mp3" alt="ba" class="teal link volume up icon fa fa-volume-up"></i>&nbsp;</td><td>ば ba</td><td>び bi</td><td>ぶ bu</td><td>べ be</td><td>ぼ bo</td></tr><tr><td><i data-src="hiragana-katakana/au50on/kana50onset_pa.mp3" alt="pa" class="teal link volume up icon fa fa-volume-up"></i>&nbsp;</td><td>ぱ pa</td><td>ぴ pi</td><td>ぷ pu</td><td>ぺ pe</td><td>ぽ po</td></tr></tbody></table><h3>拗音 (Combination 2 - contracted sound)</h3><table><tbody><tr><td><i data-src="hiragana-katakana/au50on/kana50onset_kya.mp3" alt="kya" class="teal link volume up icon fa fa-volume-up"></i>&nbsp;</td><td>きゃ kya</td><td>-</td><td>きゅ kyu</td><td>-</td><td>きょ kyo</td></tr><tr><td><i data-src="hiragana-katakana/au50on/kana50onset_sha.mp3" alt="sha" class="teal link volume up icon fa fa-volume-up"></i>&nbsp;</td><td>しゃ sya</td><td>-</td><td>しゅ syu</td><td>-</td><td>しょ syo</td></tr><tr><td><i data-src="hiragana-katakana/au50on/kana50onset_cha.mp3" alt="cha" class="teal link volume up icon fa fa-volume-up"></i>&nbsp;</td><td>ちゃ tya</td><td>-</td><td>ちゅ  tyu</td><td>-</td><td>ちょ tyo</td></tr><tr><td><i data-src="hiragana-katakana/au50on/kana50onset_nya.mp3" alt="nya" class="teal link volume up icon fa fa-volume-up"></i>&nbsp;</td><td>にゃ nya</td><td>-</td><td>にゅ nyu</td><td>-</td><td>にょ nyo</td></tr><tr><td><i data-src="hiragana-katakana/au50on/kana50onset_hya.mp3" alt="hya" class="teal link volume up icon fa fa-volume-up"></i>&nbsp;</td><td>ひゃ hya</td><td>-</td><td>ふゅ fyu</td><td>-</td><td>ふょ hyo</td></tr><tr><td><i data-src="hiragana-katakana/au50on/kana50onset_mya.mp3" alt="mya" class="teal link volume up icon fa fa-volume-up"></i>&nbsp;</td><td>みゃ mya</td><td>-</td><td>みゅ myu</td><td>-</td><td>みょ myo</td></tr><tr><td><i data-src="hiragana-katakana/au50on/kana50onset_rya.mp3" alt="rya" class="teal link volume up icon fa fa-volume-up"></i>&nbsp;</td><td>りゃ rya</td><td>-</td><td>りゅ ryu</td><td>-</td><td>りょ ryo</td></tr><tr><td><i data-src="hiragana-katakana/au50on/kana50onset_gya.mp3" alt="ga" class="teal link volume up icon fa fa-volume-up"></i>&nbsp;</td><td>ぎゃ gya</td><td>-</td><td>ぎゅ gyu</td><td>-</td><td>ぎょ gyo</td></tr><tr><td><i data-src="hiragana-katakana/au50on/kana50onset_ja.mp3" alt="ja" class="teal link volume up icon fa fa-volume-up"></i>&nbsp;</td><td>じゃ ja</td><td>-</td><td>じゅ ju</td><td>-</td><td>じょ jo</td></tr><tr><td><i data-src="hiragana-katakana/au50on/kana50onset_bya.mp3" alt="ba" class="teal link volume up icon fa fa-volume-up"></i>&nbsp;</td><td>びゃ bya</td><td>-</td><td>びゅ byu</td><td>-</td><td>びょ byo</td></tr><tr><td><i data-src="hiragana-katakana/au50on/kana50onset_pya.mp3" alt="pa" class="teal link volume up icon fa fa-volume-up"></i>&nbsp;</td><td>ぴゃ pya</td><td>-</td><td>ぴゅ pyu</td><td>-</td><td>ぴょ pyo</td></tr></tbody></table><p><img src="http://i.imgur.com/rFEs2jM.png" alt="hiragana" title="hiragana" class="lazy img-fluid mb-2"></p>
]]></content:encoded>
<slash:comments>0</slash:comments>
<comments>https://huuthanhdtd.com/bang-chu-cai-hiragana.html#comments</comments>
<wfw:commentRss>https://huuthanhdtd.com/feed/bang-chu-cai-hiragana.html</wfw:commentRss>
</item>
<item>
<title>Ngôn ngữ nói trong tiếng Nhật</title>
<link>https://huuthanhdtd.com/ngon-ngu-noi-trong-tieng-nhat.html</link>
<guid>https://huuthanhdtd.com/ngon-ngu-noi-trong-tieng-nhat.html</guid>
<pubDate>Sat, 18 Aug 2018 20:30:56 +0700</pubDate>
<dc:creator>HuuThanhDTD</dc:creator>
<description><![CDATA[Ngôn ngữ nói là cách diễn đạt tự nhiên, biểu đạt được thái độ, tâm trạng người nói hay mối quan h...]]></description>
<content:encoded xml:lang="zh-CN"><![CDATA[
<p>Ngôn ngữ nói là cách diễn đạt tự nhiên, biểu đạt được thái độ, tâm trạng người nói hay mối quan hệ giữa người nói và người nghe.</p><p>Ví dụ: Hai câu sau diễn đạt cùng một ý nghĩa:</p><p>(1) 私はもう<ruby><rb>我慢</rb><rp>(</rp><rt>がまん</rt><rp>)</rp></ruby>できません。<br>Tôi không thể nào chịu đựng được.</p><p>(2) もう<ruby><rb>我慢</rb><rp>(</rp><rt>がまん</rt><rp>)</rp></ruby>できないわ。<br>Chả chịu nổi nữa.</p><p>Nhưng các bạn có thể thấy là cách nói (1) là cách nói “cứng”, hầu như chỉ dùng trong văn bản tường trình, v.v… còn cách (2) là cách nói suồng sã, thân mật giữa hai người bạn.</p><p>Do đó, nếu bạn hiểu các từ ngữ dùng trong ngôn ngữ nói của tiếng Nhật thì bạn có thể áp dụng để nói một cách văn chương hơn, hay đơn giản là sử dụng được các cách nói phù hợp trong các tình huống cụ thể.</p><p><img src="https://akira.edu.vn/wp-content/uploads/2017/09/ngon-ngu-noi-tieng-nhat.png" alt="hội thoại tiếng nhật" title="hội thoại tiếng nhật" class="lazy img-fluid mb-2"></p><p>Bài này nhằm giúp các bạn hiểu và sử dụng được cách nói chuyện tự nhiên trong tiếng Nhật. Dưới đây là danh sách các từ trong ngôn ngữ nói chuyện tiếng Nhật và giải nghĩa cũng như cách sử dụng của chúng.</p><h3>NE: nhỉ, nhé</h3><p>素敵ですね。<br>Tuyệt vời nhỉ.</p><p>さようなら！元気でね！<br>Tạm biệt! Mạnh khỏe nhé!</p><p>Vậy khi nào thì là “nhỉ”, khi nào thì là “nhé”? Bạn có phân biệt được “nhỉ” và “nhé” trong tiếng Việt không?<br>Thực ra khá đơn giản: “nhỉ” dùng để tìm sự đồng tình của người nghe với một tính chất nào đó (Ví dụ “Phim hay nhỉ”), còn “nhé” dùng để tìm một hành động nào đó từ người nghe trong tương lai (Ví dụ “Cố gắng lên nhé” = Hãy cố gắng lên; hay “Khỏe mạnh nhé” = Hãy khỏe mạnh.)</p><h3>YO: đây, đâu, đấy</h3><p>行きますよ。<br>Tôi đi đây.</p><p>それはだめだよ。<br>Việc đó không được đâu.</p><p>彼は作家ですよ。<br>Anh ấy là nhà văn đấy.</p><p>YO dùng để thông báo cho người nghe một sự việc gì đó (cái mà bạn biết và bạn nghĩ là người nghe không biết.) Từ tương đương trong tiếng Việt là “đây” (hành động bạn sắp làm), “đâu” (dùng với phủ định), “đấy” (thông báo sự việc).</p><h3>WA: Dùng ở cuối câu, diễn tả sự suồng sã, thân mật</h3><p>だめだったわ。<br>Không được thiệt.</p><p>暑かったわ。<br>Nóng thiệt.</p><p>WA dùng trong mối quan hệ hết sức suồng sã, thân mật. Bạn nên tránh dùng với người mới quen hoặc người lớn tuổi.</p><h3>SA: Dùng nối các vế câu khi người nói chưa nghĩ ra được cái phải nói tiếp, là “ý mà”, “ý hả” trong tiếng Việt</h3><p>俺はさ、その子が好きじゃないよ。<br>Tôi ý mà, có thích con bé đó đâu.</p><p>あいつはさあ、何をやってもだめなんだよ。<br>Thằng đó ý hả, làm cái gì cũng hỏng.</p><h3>ZO: Dùng thông báo giống “yo” nhưng chỉ trong hoàn cảnh suồng sã</h3><p>警察だ！やばいぞ！<br>Cảnh sát tới! Nguy rồi!</p><p>ZO chỉ dùng khi nói với người dưới hoặc bạn bè ngang hàng.</p><h3>ZE: Dùng trong mối quan hệ suồng sã, thường để rủ rê</h3><p>ゲームをやろうぜ。<br>Chơi điện tử đi!</p><h3>I: “hả”, dùng người trên nói với người dưới để nhấn mạnh câu hỏi</h3><p>なんだい？<br>Cái gì hả?<br>（＝なんだ？）</p><p>ご飯を炊いたかい？<br>Đã nấu cơm chưa hả?<br>（＝ご飯を炊いたか？）</p><p>Cách nói này cũng hay dùng khi cảnh sát thẩm vấn phạm nhân, là một cách hỏi mà gây áp lực. Hoặc là dùng hỏi kiểu thân ái trong gia đình.</p><h3>KASHIRA: Thắc mắc sự việc có như vậy không nhỉ (tự hỏi bản thân), “có … không nhỉ?”</h3><p>彼はもう来ないかしら。<br>Anh ấy không tới nữa đâu nhỉ?</p><p>彼は私が好きかしら？<br>Anh ấy có thích mình không nhỉ?</p><p>Chú ý: Chỉ nữ mới dùng “kashira”, còn nam (và cả nữ) sẽ dùng “kanaa”.</p><h3>KANAA: “có … không nhỉ?”,</h3><p>cCách nói chung cho hai phái, tự hỏi bản thân xem sự việc gì đó có xảy ra không nhỉ</p><p>雨が降るかなあ？<br>Trời có mưa không nhỉ?</p><p>Chú ý là “kanaa” dùng cho cả nam và nữ, còn “kashira” thường nữ dùng.</p><h3>NO: Để cuối câu để nhấn mạnh</h3><p>どうしたの<br>Sao vậy?<br>私は悪かったの。<br>Là tôi không tốt.</p><h3>YO dùng sau danh từ để diễn tả “hỡi”, “này”</h3><p>世間一美人よ、どうして悲しげに？</p><p>Hỡi con người đẹp nhất thế gian, có chuyện gì mà nàng u sầu?</p><p>君よ、君の人生は君が決めるんだ。<br>Này bạn, cuộc sống của bạn là do bạn quyết định.</p><p>Đây là cách nói văn chương.</p><h3>TTE là dạng tắt của “tte itta”, “tte iu” (“đã nói là …. mà”)</h3><p>行けないって！<br>Đã bảo là mình không đi được mà!<br>(＝行けないって言ったよ＝行けないと言ったよ）</p><p>Trên đây là những câu nói tiếng Nhật hay được người bản xứ sử dụng. Hãy học và nhớ ít nhất 80% nhé!</p><p>Nguồn: Sưu tầm</p>
]]></content:encoded>
<slash:comments>0</slash:comments>
<comments>https://huuthanhdtd.com/ngon-ngu-noi-trong-tieng-nhat.html#comments</comments>
<wfw:commentRss>https://huuthanhdtd.com/feed/ngon-ngu-noi-trong-tieng-nhat.html</wfw:commentRss>
</item>
<item>
<title>「たら」「れば」「なら」の使い方</title>
<link>https://huuthanhdtd.com/tararebanara-no-tsukaikata.html</link>
<guid>https://huuthanhdtd.com/tararebanara-no-tsukaikata.html</guid>
<pubDate>Fri, 17 Aug 2018 23:26:00 +0700</pubDate>
<dc:creator>HuuThanhDTD</dc:creator>
<description><![CDATA[問題〔例〕・雨が降れば、洗濯物が干せません。・雨が降ったら、洗濯物が干せません。・雨が降るなら、洗濯物が干せません。このようにニュアンスが多少違う程度で、どれも同じような内容になると思います。外...]]></description>
<content:encoded xml:lang="zh-CN"><![CDATA[
<h2>問題</h2><p>〔例〕<br>・雨が降れば、洗濯物が干せません。<br>・雨が降ったら、洗濯物が干せません。<br>・雨が降るなら、洗濯物が干せません。<br>このようにニュアンスが多少違う程度で、どれも同じような内容になると思います。<br>外国人に対してこのような場合の「たら」「れば」「なら」の使い方を説明すればよろしいでしょうか？</p><p><img src="http://ns106.com/wp-content/uploads/2016/10/n.jpg" alt="日本語" title="日本語" class="lazy img-fluid mb-2"></p><h2>回答</h2><p>「たら」「れば」「なら」には、本来的には以下の(1)、(2)、(3)のような違いがあると思います。<br>ただ、慣用的には、その違いが不明瞭になり、同じような意味で使われてしまっているというのが現状だと思います。ですから、例に挙げられたものについては、慣用的視点での意味の違いはあまりないでしょう。</p><h3>(1)「れば」は、</h3><p>現在形の仮定です。この仮定は、普通の仮定です。<br>（例）気温が下がれば、寒くなる。</p><h3>(2)「たら」は、</h3><p>過去形の仮定です。２つの用法があります。一つ目は、過去に起こったことに対する仮定です。すなわち、現実には起こらなかったことに対する仮定です。<br>（例）もし、彼が事故に合わなかったら...（実際には事故に合った）</p><p>もう一つの用法は、現在、または、未来に対する仮定です。この仮定は本来は、実際には起こる可能性が非常に低いこと（あるいは、感情として絶対起こって欲しくないこと）を仮定する場合に用います。<br>（例）もし、彼が死んだら、生きていけない。<br>（例）もし、空を飛べたらどんなに楽しいだろう。</p><h3>(3)「なら」は、</h3><p>「動詞等終止形＋（の）＋なら」あるいは「名詞or名詞句」＋「なら」として使います。意味的には、仮定というより、「～～の場合は」的な意味になります。<br>（例）赤なら止まれ、青なら渡れ。<br>（例）飲むなら乗るな、乗るなら飲むな。<br>（例）歩くなら良いが、走るならごめんだ。</p><p>以上の３つの違いをベトナムの方に説明する場合は、以下のような関係になると思います。</p><p>(1)「れば」＝Nhân quả, nếu...thì<br>(2)「たら」＝Vạn nhất, lỡ như...thì<br>(3)「なら」＝Trường hợp...thì</p><p>以上です。</p><p>huuthanhdtd 17-08-2018</p>
]]></content:encoded>
<slash:comments>0</slash:comments>
<comments>https://huuthanhdtd.com/tararebanara-no-tsukaikata.html#comments</comments>
<wfw:commentRss>https://huuthanhdtd.com/feed/tararebanara-no-tsukaikata.html</wfw:commentRss>
</item>
<item>
<title>Một số ứng dụng của phép toán trên bit</title>
<link>https://huuthanhdtd.com/mot-so-ung-dung-cua-phep-toan-tren-bit.html</link>
<guid>https://huuthanhdtd.com/mot-so-ung-dung-cua-phep-toan-tren-bit.html</guid>
<pubDate>Tue, 14 Aug 2018 23:15:50 +0700</pubDate>
<dc:creator>HuuThanhDTD</dc:creator>
<description><![CDATA[Các phép toán trên bit luôn give best performance và tối giản hóa bộ nhớ. Hôm nay mình viết bài n...]]></description>
<content:encoded xml:lang="zh-CN"><![CDATA[
<p>Các phép toán trên bit luôn give best performance và tối giản hóa bộ nhớ. Hôm nay mình viết bài này note lại cho mọi người xài chơi, có đủ cấp độ.</p><p><img src="https://he-s3.s3.amazonaws.com/media/uploads/cb985c2.png" alt="bit" title="bit" class="lazy img-fluid mb-2"></p><h3>Zero Space Swap</h3><pre><code class="language-c">x ^= y;
y ^= x;
x ^= y;</code></pre><h3>Xóa đi bit 1 cuối cùng hoặc kiểm tra một số N có phải là power of 2</h3><pre><code class="language-c">N = N &amp; (N-1); // Xóa đi bit 1 cuối cùng
0 == N &amp; (N-1); // Kiểm tra power of 2
// Thử nghĩ về việc kiểm tra power of 4 xem :)</code></pre><h3>Kiểm tra chẵn lẻ</h3><pre><code class="language-c">N &amp; 1 == 0 // chẵn
N &amp; 1 == 1 // lẻ</code></pre><h3>Phép toán</h3><h4>Nhân 2^K</h4><pre><code class="language-c">N &lt;&lt;= K</code></pre><h4>Chia cho 2^K</h4><pre><code class="language-c">N &gt;&gt;= K</code></pre><h4>Chia 4 dư mấy</h4><pre><code class="language-c">N &amp; 3</code></pre><h4>Chia 8 dư mấy</h4><pre><code class="language-c">N &amp; 7</code></pre><h4>Chia 2^K dư mấy</h4><pre><code class="language-c">N &amp; ((1 &lt;&lt; K) - 1)</code></pre><h4>Bật bit thứ K của số N</h4><pre><code class="language-c">N = N | (1 &lt;&lt; K)</code></pre><h4>Tắt bit thứ K của số N</h4><pre><code class="language-go">Golang: N &amp;= ^(1 &lt;&lt; K)
C/Java: N &amp;= ~(1 &lt;&lt; K)</code></pre><h4>Max và min</h4><pre><code class="language-c">min(x,y) = y ^ ((x ^ y) &amp; -(x &lt; y))
max(x,y) = y ^ ((x ^ y) &amp; -(x &gt; y))</code></pre><h3>Kiểu dữ liệu string</h3><pre><code class="language-c">//Chuyển ký tự thành ký tự thường:
//Dùng phép OR với khoảng trống =&gt; (x | '  ')
('a' | '  ') =&gt; 'a' ; ('A' | '  ') =&gt; 'a'

//Chuyển ký tự thành chữ in hoa:
//Dùng phép AND với ký tự gạch dưới =&gt; (x &amp; '_')
('a' &amp; '_') =&gt; 'A' ; ('A' &amp; '_') =&gt; 'A'

//Đổi ngược kiểu ký tự (hoa thành thường và ngược lại):
//Dùng phép XOR với khoảng cách =&gt; (x ^ ' ')
('a' ^ ' ') =&gt; 'A' ; ('A' ^ ' ') =&gt; 'a'

//Tìm vị trí của ký tự trong bảng chữ cái(vd: A là 1, Z là 26):
//Kết quả trong khoảng từ 1 tới 26, không phân biệt hoa thường
//AND với ký tự '?' =&gt; (x &amp; '?') hoặc XOR với ký tự '@' =&gt; (x ^ '@')
('C' &amp; '?') =&gt; 3 ; ('Z' ^ '@') =&gt; 26
//Chuyển ký tự thành ký tự thường:
//Dùng phép OR với khoảng trống =&gt; (x | '  ')
('a' | '  ') =&gt; 'a' ; ('A' | '  ') =&gt; 'a'
 
//Chuyển ký tự thành chữ in hoa:
//Dùng phép AND với ký tự gạch dưới =&gt; (x &amp; '_')
('a' &amp; '_') =&gt; 'A' ; ('A' &amp; '_') =&gt; 'A'
 
//Đổi ngược kiểu ký tự (hoa thành thường và ngược lại):
//Dùng phép XOR với khoảng cách =&gt; (x ^ ' ')
('a' ^ ' ') =&gt; 'A' ; ('A' ^ ' ') =&gt; 'a'
 
//Tìm vị trí của ký tự trong bảng chữ cái(vd: A là 1, Z là 26):
//Kết quả trong khoảng từ 1 tới 26, không phân biệt hoa thường
//AND với ký tự '?' =&gt; (x &amp; '?') hoặc XOR với ký tự '@' =&gt; (x ^ '@')
('C' &amp; '?') =&gt; 3 ; ('Z' ^ '@') =&gt; 26</code></pre><p>Trên đây là mấy trò tiêu biểu hay xài. Còn nhiều trò nữa ở link này: <a href="https://graphics.stanford.edu/~seander/bithacks.html">BitHacks</a></p>
]]></content:encoded>
<slash:comments>0</slash:comments>
<comments>https://huuthanhdtd.com/mot-so-ung-dung-cua-phep-toan-tren-bit.html#comments</comments>
<wfw:commentRss>https://huuthanhdtd.com/feed/mot-so-ung-dung-cua-phep-toan-tren-bit.html</wfw:commentRss>
</item>
<item>
<title>[Javascript] Promise - Lời hứa ngọt ngào</title>
<link>https://huuthanhdtd.com/javascript-promise-loi-hua-ngot-ngao.html</link>
<guid>https://huuthanhdtd.com/javascript-promise-loi-hua-ngot-ngao.html</guid>
<pubDate>Fri, 10 Aug 2018 23:05:21 +0700</pubDate>
<dc:creator>HuuThanhDTD</dc:creator>
<description><![CDATA[Javascript là một ngôn ngữ rất hữu dụng nhưng lại hết sức kì quặc. Khi bạn làm việc với Javascrip...]]></description>
<content:encoded xml:lang="zh-CN"><![CDATA[
<p>Javascript là một ngôn ngữ rất hữu dụng nhưng lại hết sức kì quặc. Khi bạn làm việc với Javascript, một trong những điều khó khăn nhất mà bạn sẽ phải đối mặt đó là xử lí các lệnh bất đồng bộ (Asynchronous processing). Tính chất này của Javascript phát sinh bởi vì hầu hết mã JS được xử lí ở phía client – tách biệt với server – do đó không phải bất cứ xử lí dữ liệu nào cũng được đồng bộ ngay xuống CSDL của ứng dụng.</p><p><img src="https://techtalk.vn/wp-content/uploads/2018/11/javascript.png" alt="javascript" title="javascript" class="lazy img-fluid mb-2"></p><h3>Xử lí bất đồng bộ là gì?</h3><p>Không giống như các ngôn ngữ phía server – nơi dữ liệu luôn được lấy và xử lí một cách nhanh chóng – Javascript là ngôn ngữ được xử lí hầu hết ở phía client. Điều đó có nghĩa là: mỗi lần bạn muốn lấy một dữ liệu nào đó bạn phải gửi yêu cầu (request) về phía server và phải đợi server phản hồi.</p><p>Trong quá trình đợi server trả về dữ liệu, có những xử lí cần phải được tiếp tục chạy, một số xử lí khác thì cần phải đợi cho tới khi dữ liệu được phản hồi về client mới có thể kích hoạt, do ta không biết được chính xác khi nào thì dữ liệu đã được xử lí ở client sẽ đồng bộ với phía server, vì vậy ta gọi các xử lí có tính chất này là: xử lí bất đồng bộ (giữa client và server).</p><h3>Vậy thì Promise là gì?</h3><p>Để xử lí các lệnh bất đồng bộ, ta có thể dùng cơ chế gọi hàm callback, tuy nhiên không phải lúc nào ta cũng có thể áp dụng được kĩ thuật này, và không phải lúc nào kĩ thuật này cũng tốt. Một trong những kĩ thuật khác mà Javascript hỗ trợ đó là sử dụng Promise.</p><p>Ta hãy xem xét 1 ví dụ minh hoạ trong thực tế để dễ mường tượng nhé. Hình dung một cách ngắn gọn như sau:</p><p>Bạn tỏ tình với một cô gái, và cô ấy hứa (promise) là sẽ trả lời bạn trong một ngày nào đó vào tuần sau.</p><p>Đây là một promise điển hình, một promise sẽ có 3 trạng thái (state) như sau:</p><p>Promise đang pending: bạn sẽ không biết được kết quả cho tới khi cô ấy trả lời vào tuần sau.<br>Promise được trả lời và chấp nhận – trạng thái resolved: cô ấy cũng yêu bạn, cô ấy trả lời bạn rằng cô ấy cũng yêu bạn và đồng ý làm người yêu của bạn. (quá tuyệt vời)<br>Promise được trả lời và từ chối – trạng thái rejected: cô ấy trả lời bạn và nói rằng cho ấy chỉ xem bạn như một người anh trai tốt.<br>Chúng ta cùng xem việc tạo và sử dụng một promise trong Javascript thì như thế nào nhé.</p><h3>Khởi tạo 1 promise</h3><p>Chuyển thể từ ngôn ngữ nói sang Javascript, giả sử tâm trạng của cô ấy sẽ quyết định tới câu trả lời:</p><pre><code class="language-javascript">var isSheHappy = false;

// Promise
var willBeCouple = new Promise(
   function (resolve, reject) {
      if (isSheHappy) {
         var answer = {feedback: &quot;I accept to be your girlfriend&quot;};
         resolve(answer); // fulfilled
      } 
     else {
        var reason = new Error('I do not love you');
        reject(reason); // reject
     }
   }
);</code></pre><p>Đoạn code trên đã khá rõ ràng:</p><p>Biến boolean isSheHappy để xác định cô ấy có vui khi bạn tỏ tình hay không.<br>Bạn có một promise là willBeCouple, biến này có thể có trạng thái là resolved (nếu cô ấy đồng ý lời tỏ tình) hoặc rejected (nếu cô ấy từ chối bạn).<br>Nói tóm lại, việc khai báo sử dụng một promise sẽ có cấu trúc như sau:</p><pre><code class="language-javascript">new Promise(function (resolve, reject) {
   //solve or reject here
});</code></pre><p>Tham số resolve và reject là 2 hàm callback được định nghĩa sẵn trong promise.</p><p>Trong trường hợp xử lí kết quả là thành công, bạn gọi resolve() với ý nghĩa là promise được xử lí thành công. Ngược lại, nếu kiểm tra và kết quả là fail, bạn có thể gọi reject() để báo hiệu xử lí bên trong promise bị lỗi.</p><h3>Xử lí một promise – Chạy tiếp giả định vừa đặt ra</h3><p>Ở phía trên, bạn đã hình dung được một promise nó là như thế nào, bây giờ chạy thử xem sao nhé:</p><pre><code class="language-javascript">// call our promise
var askYourGirlFriend = function () {
   willBeCouple
     .then(function (fulfilled) {
         // yeah, she accepted your proposal
         console.log(fulfilled); // output: {feedback: 'I accept to be your girlfriend'}
      })
      .catch(function (error) {
         // oops, she refused it
         console.log(error.message); // output: 'I do not love you'
      });
};

askYourGirlFriend();</code></pre><p>Đoạn code trên có gì nào?</p><p>Bạn khai báo một hàm là askYourGirlFriend(), trong hàm này cũng ta sẽ xử lí lệnh willBeCouple.<br>Để xử lí kết quả promise, chúng ta dùng then() và catch() trong hai trường hợp thành công và thất bại tương ứng.<br>Tham số fullfilled khi xử lí ởthen() chính là kết quả trả về khi promise được resolved, trong trường hợp này đó chính là biến answer. Tương tự, tham số error trong xử lí catch() chính là kế quả trả về khi promise bị rejected, trong trường hợp này là biến reason.<br>Tính chất hữu ích của Promise - Tính chainable<br>Một tính chất cũng khá hữu dụng của promise là nó có thể chainable, tức là có thể xử lí nhiều promise nối tiếp nhau. (xin lỗi mình không biết dịch ra tiếng việt thế nào, thôi thì để tiếng anh cho dễ hiểu). Hình dung như sau:</p><p>Bạn bè của bạn muốn biết bạn tỏ tình thành công hay không? Khi đó, bạn hứa sẽ thông báo với bạn bè về kết quả lần tỏ tình của mình sau khi nhận được câu trả lời từ bạn gái.</p><p>Việc này được triển khai như sau, chúng ta sẽ tạo thêm một promise nữa:</p><pre><code class="language-javascript">// 2nd promise
var showOff = function (answer) {
   return new Promise(
      function (resolve, reject) {
         var message = 'Hey friend, she accepted. This is the result: ' + answer.feedback;
         resolve(message);
      }
   );
};</code></pre><p>Chú ý: ta không nhất thiết phải xử lí hết cả 2 trường hợp resolve hoặc reject.</p><p>Bây giờ chúng ta sẽ nối promise, chúng ta sửa lại hàm askYourGirlFriend() một chút, ý định của chúng ta bây giờ là khi cô ấy trả lời là mình sẽ báo kết quả luôn cho bạn bè biết, việc đó được triển khai như sau:</p><pre><code class="language-javascript">// call our promise
var askYourGirlFriend = function () {
    willBeCouple
        .then(showOff) // chain it here
        .then(function (fulfilled) {
           console.log(fulfilled);
           // output: 'Hey friend, she accepted. This is the result: I accept to be your girlfriend.'
        })
        .catch(function (error) {
           // oops, she refused it
           console.log(error.message);
           // output: 'I do not love you'
        });
};</code></pre><p>Đơn giản phải không nào! :smile:</p><p>Vậy thì promise có tính asynchronous ở chỗ nào?<br>Promise có tính asynchronous, để chứng minh điều đó, chúng ta thử nghiệm như sau:</p><pre><code class="language-javascript">// call our promise
var askYourGirlFriend = function () {
    console.log(&quot;before promise!&quot;);

    willBeCouple
       .then(showOff) // chain it here
       .then(function (fulfilled) {
          console.log(fulfilled);
          // output: 'Hey friend, she accepted. This is the result: I accept to be your girlfriend.'
       })
       .catch(function (error) {
           // oops, she refused it
           console.log(error.message);
           // output: 'I do not love you'
       });

    console.log(&quot;after promise!&quot;);
};

askYourGirlFriend();</code></pre><p>Thử đoán xem kết quả là gì nào? Nhiều người sẽ nghĩ là kết quả sẽ thế này:</p><pre><code class="language-javascript">before promise!
Hey friend, she accepted. This is the result: I accept to be your girlfriend.'
after promise!</code></pre><p>Nhưng … kết quả ở trên là SAI nhé, kết quả đúng phải là:</p><pre><code class="language-javascript">before promise!
after promise!
Hey friend, she accepted. This is the result: I accept to be your girlfriend.'</code></pre><p>Để lí giải cho điều này, bạn hãy hình dung: Bạn đâu có “bất động” trong lúc bạn đang chờ câu trả lời của cô người yêu phải không nào? Code cũng thế, các xử lí sẽ tiếp tục được chạy mà không phải chờ kết quả (đời vẫn trôi đi khi bạn đợi câu trả lời). Bất cứ xử lí nào bạn muốn làm sau khi có kết quả của promise thì bạn đặt nó vào trong khối lệnh then(). Đây là một kiểu xử lí mà chúng ta gọi là “bất đồng bộ” (asynchronous).</p>
]]></content:encoded>
<slash:comments>0</slash:comments>
<comments>https://huuthanhdtd.com/javascript-promise-loi-hua-ngot-ngao.html#comments</comments>
<wfw:commentRss>https://huuthanhdtd.com/feed/javascript-promise-loi-hua-ngot-ngao.html</wfw:commentRss>
</item>
<item>
<title>Lập trình viên 10 tiếng</title>
<link>https://huuthanhdtd.com/lap-trinh-vien-10-tieng.html</link>
<guid>https://huuthanhdtd.com/lap-trinh-vien-10-tieng.html</guid>
<pubDate>Fri, 10 Aug 2018 12:00:12 +0700</pubDate>
<dc:creator>HuuThanhDTD</dc:creator>
<description><![CDATA[Là một lập trình viên, chắc hẳn bạn cũng có những ý tưởng phần mềm hay, hữu ích muốn làm. Bạn hăm...]]></description>
<content:encoded xml:lang="zh-CN"><![CDATA[
<p>Là một lập trình viên, chắc hẳn bạn cũng có những ý tưởng phần mềm hay, hữu ích muốn làm. Bạn hăm hở háo hức làm một cách say mê, mong muốn ý tưởng nhanh chóng trở thành hiện thực. Thế rồi bạn không đủ thời gian, được dăm bữa nửa tháng, chán rồi vứt xó.</p><p>Có bao giờ bạn lục lại đống code cũ, bạn nhận ra mình đã nghĩ được những ý tưởng đột phá ngang tầm vũ trụ, nhưng cuối cùng nhìn lại, rốt cuộc bạn tốn bao nhiêu công sức, code hoài code mãi vẫn chỉ là những dòng code dở dang, chẳng cái nào hoàn thiện.</p><p>Hãy thử <strong>"Quy tắc làm phần mềm trong 10 tiếng"</strong> của mình. Đây là cách mà mình bắt đầu ra được những sản phẩm nho nhỏ, tuyệt nhiên không còn dở dang project nào nữa.</p><h3>Làm phần mềm theo phong cách "tàu nhanh", bí kíp đã thất truyền của chị em Trần Duy Hưng.</h3><p>Với quy tắc này, tất cả những gì bạn cần làm là ngồi xuống và hiện thực hóa ý tưởng trong vòng 10 tiếng. Việc này giống như tự tổ chức một cuộc thi Hackathon cho chính mình vậy.</p><p><strong>Những quy tắc quan trọng:</strong></p><ul><li>Tắt hết facebook, điện thoại hay bất kỳ cái gì làm ảnh hưởng đến sự tập trung, chỉ có bạn và code.</li><li>Không quan trọng bạn làm như thế nào, dùng công nghệ gì, chỉ cần ra sản phẩm là được.</li><li>Bạn phải chắc chắn hoàn thành nó trong 10 tiếng.</li><li>Nếu không đủ thời gian: không được để điều này sảy ra, bạn đã cam kết thì phải làm đúng hạn.</li><li>Bạn chỉ có 10 tiếng để biến ý tưởng của mình thành sự thật, nếu không, bạn sẽ phải vứt bỏ nó đi và KHÔNG bao giờ được tiếp tục làm nữa.</li></ul><p><img src="https://quickbooksupports.co/wp-content/uploads/2018/03/computer-malware-57190ad65f9b58857df74dd2-1170x780-1024x683.png" alt="" title="" class="lazy img-fluid mb-2"></p><h3>Tại sao phương pháp này hiệu quả:</h3><p><strong>Về mặt cảm xúc:</strong></p><p>Cảm hứng ý tưởng nó mất dần đi theo thời gian, nhanh thích thì nhanh chán, 10 tiếng là đủ ngắn để bạn không bị tụt cảm xúc. Một dự án cá nhân kéo dài với một list công việc cần phải làm chỉ cho bạn cảm giác nhanh chán nản mà bỏ dở mà thôi.</p><p><strong>Có được sản phẩm:</strong></p><p>Sau 10 tiếng nhanh gọn bạn đã có một sản phẩm với tính năng đủ dùng để đem đi khoe hàng. Ý tưởng chỉ đáng giá một xu, sản phẩm mới là quan trọng. Code của bạn đã trở thành sản phẩm thật, có ích, chứ không chỉ là những đoạn mã vô nghĩa.</p><p><strong>Tập trung vào tính năng chính:</strong></p><p>Khi đưa ra ý tưởng, chúng ta có xu hướng thêm thắt nhiều tính năng râu ria mà không thật sự cần thiết. Dưới áp lực của deadline, bạn phải mạnh dạn bỏ đi các tính năng không cần thiết để tập trung vào tính năng chính.</p><p><strong>Học được nhiều thứ:</strong></p><p>Không tốn quá nhiều thời gian nhưng bạn học được kỹ năng dứt điểm dự án, quản lý cân đong thời gian, không bỏ dở, rèn luyện phong cách làm việc kỷ luật, ra ngôn ra khoai...</p><h3>Cái con số 10 tiếng nghe có vẻ ngớ ngẩn</h3><p>Tại sao mình lại tin vào con số 10 tiếng thần thánh này? Bởi vì nó phù hợp với các dự án cá nhân và thời gian rảnh của mình, bạn hoàn toàn có thể tăng hay giảm để phù hợp với bạn. Miễn là sau khoảng thời gian đó, bạn có được sản phẩm hoàn thiện và không bị mất cảm hứng.</p><p>Hãy khởi đầu những cái nhỏ nhỏ, thằng Mark viết ra facebook chắc cũng trong khoảng 10 tiếng thôi, có phải ngay từ đầu đã thiết kế cho hàng tỉ người dùng ngay được đâu.</p><p>Nếu bạn thuộc kiểu người có rất nhiều ý tưởng nhưng lại cũng nhanh tụt cảm hứng, thì phương pháp này sẽ rất hữu ích cho bạn. Chúc các bạn thành công.</p><p>Nguồn: blog <a href="http://laptrinhcuocsong.com">http://laptrinhcuocsong.com</a></p>
]]></content:encoded>
<slash:comments>6</slash:comments>
<comments>https://huuthanhdtd.com/lap-trinh-vien-10-tieng.html#comments</comments>
<wfw:commentRss>https://huuthanhdtd.com/feed/lap-trinh-vien-10-tieng.html</wfw:commentRss>
</item>
<item>
<title>Giải trí với thuật toán sắp xếp chuỗi bằng vb.net</title>
<link>https://huuthanhdtd.com/giai-tri-voi-thuat-toan-sap-xep-chuoi-bang-vbnet.html</link>
<guid>https://huuthanhdtd.com/giai-tri-voi-thuat-toan-sap-xep-chuoi-bang-vbnet.html</guid>
<pubDate>Fri, 10 Aug 2018 09:58:43 +0700</pubDate>
<dc:creator>HuuThanhDTD</dc:creator>
<description><![CDATA[[Giải trí] Viết hàm vb để sắp xếp các chữ cái trong câu sau theo thứ tự alphabet và loại bỏ các c...]]></description>
<content:encoded xml:lang="zh-CN"><![CDATA[
<p>[Giải trí] Viết hàm vb để sắp xếp các chữ cái trong câu sau theo thứ tự alphabet và loại bỏ các chữ cái trùng nhau: <code>&quot;the quick brown fox jumps over the lazy dog&quot;</code>.</p><p><img src="https://www.oditeksolutions.com/wp-content/uploads/2017/01/VB.Net-img-500x314.png" alt="vb.net" title="vb.net" class="lazy img-fluid mb-2"></p><h3>Thành 4</h3><pre><code class="language-vbnet">Private Function SortA(ByRef srcText As String) As String
        Dim resultString As String = Nothing
        Dim tlowChar As Char

        For i = 0 To 25
            tlowChar = Chr(97 + i)

            If srcText.IndexOf(tlowChar) &lt;&gt; -1 Then
                resultString = resultString &amp; tlowChar
            End If
        Next
        Return resultString
    End Function</code></pre><h3>Nghĩa</h3><pre><code class="language-vbnet">Private Function SortA(ByVal srcText As String) As String
        SortA = Nothing
        For i = 0 To 25
            If srcText.IndexOf(Chr(97 + i)) + 1 Then
                SortA = SortA + Chr(97 + i)
            End If
        Next
        Return SortA
    End Function</code></pre><h3>Thức</h3><pre><code class="language-vbnet">Private Function SortA(ByRef Thuc As String) As String
        Dim resultString As String = &quot;&quot;
        Dim Stringkk As String = Replace(Thuc, &quot; &quot;, &quot;&quot;)
        Dim lenght As Integer = Stringkk.Length
        Dim a(lenght) As String
        For i As Integer = 0 To lenght - 1 Step 1
            a(i) = Stringkk.Substring(i, 1)
        Next
        Array.Sort(a)
        For i As Integer = 1 To lenght - 1 Step 1
            If a(i) &lt;&gt; a(i - 1) Then
                resultString = resultString &amp; a(i)
            End If
        Next
        Return resultString
    End Function</code></pre><h3>Thành 3</h3><pre><code class="language-vbnet">Private Function AlphabetSort(ByVal str As String) As String
        Dim m As New Stopwatch
        m.Start()
        Dim ret As String = String.Empty
        str = str.Replace(&quot; &quot;, &quot;&quot;)
        Dim ar_strs As Char() = str.ToCharArray
        Dim ar_ret(25) As Char
        For Each _char As Char In ar_strs
            ar_ret(Asc(_char) - Asc(&quot;a&quot;)) = _char
        Next
        ret = New String(ar_ret)
        m.Stop()
        Console.WriteLine(&quot;Huu Thanh: &quot; &amp; ret &amp; &quot; : &quot; &amp; m.Elapsed.ToString &amp; &quot;---&quot; &amp; m.ElapsedTicks)
        Return ret
    End Function</code></pre>
]]></content:encoded>
<slash:comments>0</slash:comments>
<comments>https://huuthanhdtd.com/giai-tri-voi-thuat-toan-sap-xep-chuoi-bang-vbnet.html#comments</comments>
<wfw:commentRss>https://huuthanhdtd.com/feed/giai-tri-voi-thuat-toan-sap-xep-chuoi-bang-vbnet.html</wfw:commentRss>
</item>
</channel>
</rss>