<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Văn Tuấn Lê</title>
    <description>The latest articles on DEV Community by Văn Tuấn Lê (@vn_tunl_09a36fcbda701).</description>
    <link>https://dev.to/vn_tunl_09a36fcbda701</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3994926%2F06d2f263-6088-4bd3-a1fe-9093341f13be.png</url>
      <title>DEV Community: Văn Tuấn Lê</title>
      <link>https://dev.to/vn_tunl_09a36fcbda701</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/vn_tunl_09a36fcbda701"/>
    <language>en</language>
    <item>
      <title>Chinese Gift Giving: The Complete Foreigner's Guide (What to Bring, What to Never Give)</title>
      <dc:creator>Văn Tuấn Lê</dc:creator>
      <pubDate>Sat, 05 Sep 2026 14:55:39 +0000</pubDate>
      <link>https://dev.to/vn_tunl_09a36fcbda701/chinese-gift-giving-the-complete-foreigners-guide-what-to-bring-what-to-never-give-39b7</link>
      <guid>https://dev.to/vn_tunl_09a36fcbda701/chinese-gift-giving-the-complete-foreigners-guide-what-to-bring-what-to-never-give-39b7</guid>
      <description>&lt;h1&gt;
  
  
  Chinese Gift Giving: The Complete Foreigner's Guide
&lt;/h1&gt;

&lt;blockquote&gt;
&lt;p&gt;From &lt;a href="https://chinarules101.com/gifts/chinese-safe-gift-ideas-foreigners/" rel="noopener noreferrer"&gt;ChinaRules101.com&lt;/a&gt; — free cultural guides for foreigners in China.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Gift-giving in China is a minefield. The rules are specific, the taboos are serious, and getting it wrong can damage a relationship you've spent months building. This is everything you need.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Golden Rule
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Never give a gift that symbolizes death, separation, or bad luck.&lt;/strong&gt; In Chinese culture, gifts carry symbolic meaning that overrides their monetary value. A ¥5,000 clock is a worse gift than a ¥200 box of tea.&lt;/p&gt;




&lt;h2&gt;
  
  
  What You Should Never Give
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Gift&lt;/th&gt;
&lt;th&gt;Why&lt;/th&gt;
&lt;th&gt;Chinese&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Clocks&lt;/td&gt;
&lt;td&gt;"Giving a clock" = attending someone's funeral&lt;/td&gt;
&lt;td&gt;送钟 (sòng zhōng) ≈ 送终&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Green hats&lt;/td&gt;
&lt;td&gt;Implies your partner is unfaithful&lt;/td&gt;
&lt;td&gt;戴绿帽子&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Pears&lt;/td&gt;
&lt;td&gt;Sounds like "parting/leaving"&lt;/td&gt;
&lt;td&gt;梨 (lí) ≈ 离&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Shoes&lt;/td&gt;
&lt;td&gt;Implies you want them to walk away from you&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Umbrella&lt;/td&gt;
&lt;td&gt;Sounds like "scatter/break up"&lt;/td&gt;
&lt;td&gt;伞 (sǎn) ≈ 散&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Sets of 4&lt;/td&gt;
&lt;td&gt;4 sounds like death&lt;/td&gt;
&lt;td&gt;四 (sì) ≈ 死&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Handkerchiefs&lt;/td&gt;
&lt;td&gt;Associated with funerals&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Mirrors&lt;/td&gt;
&lt;td&gt;Associated with ghosts and bad luck&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  Safe Gift Ideas That Actually Work
&lt;/h2&gt;

&lt;h3&gt;
  
  
  For a Chinese Home Visit
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Premium teas&lt;/strong&gt; — Tie Guan Yin, Longjing (Dragon Well), Pu-erh in nice packaging&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Quality fruit&lt;/strong&gt; — in a beautiful box (cherries, mangoes, premium apples)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Imported foods&lt;/strong&gt; — European chocolate, premium nuts, good olive oil&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fine alcohol&lt;/strong&gt; — quality whisky, imported wine (check if they drink first)&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  For a Business Meeting
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;High-quality pens&lt;/strong&gt; — Montblanc or similar signals class&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Your home country's specialty&lt;/strong&gt; — Scottish whisky, Swiss chocolate, etc.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Premium teas in gift sets&lt;/strong&gt; — always appropriate&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  For a Wedding
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Cash in a red envelope&lt;/strong&gt; — always appropriate, amounts should be in auspicious numbers (¥888, ¥1,688, ¥6,666)&lt;/li&gt;
&lt;li&gt;Never give odd amounts — even numbers are auspicious&lt;/li&gt;
&lt;li&gt;Check the "table cost" at the venue and give at least that much&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  How to Present a Gift
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Use both hands&lt;/strong&gt; when presenting — single hand is casual/disrespectful in formal settings&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Wrap it&lt;/strong&gt; — presentation matters as much as the gift itself&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Red, gold, or pink wrapping&lt;/strong&gt; — lucky colors&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Avoid white or black wrapping&lt;/strong&gt; — funeral colors&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The recipient may not open it immediately&lt;/strong&gt; — this is normal, not rejection&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  How to Receive a Gift
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Show reluctance first: "Oh, you shouldn't have" (even if you're delighted)&lt;/li&gt;
&lt;li&gt;Accept with both hands&lt;/li&gt;
&lt;li&gt;Don't rip it open immediately — set it aside politely&lt;/li&gt;
&lt;li&gt;Follow up with a thank-you WeChat message that same evening&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  Regional Differences
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Beijing:&lt;/strong&gt; More formal, status matters — gift quality signals respect&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Shanghai:&lt;/strong&gt; Sophisticated, international brands appreciated&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Guangdong:&lt;/strong&gt; Practical, health-conscious — good health products welcomed&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Northeast China:&lt;/strong&gt; Generous and direct — reciprocity expected quickly&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  The Budget Question
&lt;/h2&gt;

&lt;p&gt;Under-gifting is worse than over-gifting. General guidance:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Casual colleague: ¥100–300&lt;/li&gt;
&lt;li&gt;Business partner: ¥300–800
&lt;/li&gt;
&lt;li&gt;Senior business partner/host: ¥800–2000&lt;/li&gt;
&lt;li&gt;Wedding: ¥500–2000+ (based on relationship closeness)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Never give a cheap branded item — a small gift from a famous brand still looks cheap. Better to give premium generic.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Not sure if your gift is safe? Use the free &lt;a href="https://chinarules101.com/tools/gift-risk-scanner/" rel="noopener noreferrer"&gt;Gift Risk Scanner&lt;/a&gt; at ChinaRules101 — enter any gift idea and get an instant risk assessment.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;More gift guides: &lt;a href="https://chinarules101.com/gifts/" rel="noopener noreferrer"&gt;chinarules101.com/gifts/&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

</description>
      <category>china</category>
      <category>culture</category>
      <category>travel</category>
      <category>tips</category>
    </item>
    <item>
      <title>Chinese Business Etiquette: 12 Rules That Actually Matter (From Someone Who Got It Wrong)</title>
      <dc:creator>Văn Tuấn Lê</dc:creator>
      <pubDate>Sat, 05 Sep 2026 14:55:07 +0000</pubDate>
      <link>https://dev.to/vn_tunl_09a36fcbda701/chinese-business-etiquette-12-rules-that-actually-matter-from-someone-who-got-it-wrong-1b8o</link>
      <guid>https://dev.to/vn_tunl_09a36fcbda701/chinese-business-etiquette-12-rules-that-actually-matter-from-someone-who-got-it-wrong-1b8o</guid>
      <description>&lt;h1&gt;
  
  
  Chinese Business Etiquette: 12 Rules That Actually Matter
&lt;/h1&gt;

&lt;blockquote&gt;
&lt;p&gt;Source: &lt;a href="https://chinarules101.com/" rel="noopener noreferrer"&gt;ChinaRules101.com&lt;/a&gt; — a free guide for foreigners working with Chinese colleagues and partners.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Most articles about Chinese business etiquette cover the obvious stuff. This covers what actually trips people up.&lt;/p&gt;




&lt;h2&gt;
  
  
  1. Face (面子, miànzi) Is Not Just Pride
&lt;/h2&gt;

&lt;p&gt;Face is a social credit system. You can give face, lose face, or cause someone else to lose face. The critical mistake foreigners make: &lt;strong&gt;pointing out someone's error directly in front of others&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;If your Chinese counterpart gives wrong data in a meeting, don't correct them publicly. Wait for a break. Say it privately. This isn't dishonesty — it's how trust is built.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Seniority Determines Everything at the Table
&lt;/h2&gt;

&lt;p&gt;Who sits where, who speaks first, who toasts first — all determined by rank. &lt;strong&gt;The most senior person sits facing the door.&lt;/strong&gt; As a foreign guest, wait to be guided to your seat.&lt;/p&gt;

&lt;p&gt;If you sit in the wrong seat accidentally, your host will likely say nothing — but it registers.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Business Cards Are a Ceremony
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Present and receive with &lt;strong&gt;both hands&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Study the card for a moment — don't glance and pocket it&lt;/li&gt;
&lt;li&gt;Place it on the table in front of you (don't put it in your back pocket)&lt;/li&gt;
&lt;li&gt;Bring more than you think you'll need — running out signals disorganization&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  4. The Dinner IS the Meeting
&lt;/h2&gt;

&lt;p&gt;Chinese business culture separates relationship-building from negotiation. The dinner is for building trust. The contract discussion comes later — often much later than Western timelines expect.&lt;/p&gt;

&lt;p&gt;Don't try to close a deal over dinner. That signals impatience.&lt;/p&gt;

&lt;h2&gt;
  
  
  5. Silence Means They're Thinking, Not Agreeing
&lt;/h2&gt;

&lt;p&gt;Western discomfort with silence often leads to filling it with concessions. In Chinese negotiation, silence after a proposal is normal deliberation. &lt;strong&gt;Wait it out.&lt;/strong&gt; The first person to speak after silence is usually making a concession.&lt;/p&gt;

&lt;h2&gt;
  
  
  6. "Yes" Often Means "I Heard You"
&lt;/h2&gt;

&lt;p&gt;"是的" (shì de) acknowledges you spoke. It doesn't mean agreement. Watch for these real agreement signals instead:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;They suggest a follow-up meeting&lt;/li&gt;
&lt;li&gt;They introduce you to another decision-maker&lt;/li&gt;
&lt;li&gt;They ask for a contract draft&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  7. Gifts: What to Bring, What to Never Bring
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Safe gifts:&lt;/strong&gt; Quality teas, premium nuts/dried fruits, fine alcohol (especially moutai or quality whisky), high-end pens&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Never give:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Clocks (送钟 = attending a funeral)&lt;/li&gt;
&lt;li&gt;Green hats (implies infidelity)&lt;/li&gt;
&lt;li&gt;Pears (梨 = li = separation/leaving)&lt;/li&gt;
&lt;li&gt;Anything in sets of 4 (四 sounds like 死, death)&lt;/li&gt;
&lt;li&gt;Cheap items — it signals disrespect&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  8. Guanxi (关系) Is Not Corruption
&lt;/h2&gt;

&lt;p&gt;Guanxi means relationship network. Building it through meals, small favors, and genuine interest is expected and respected — it's not bribery. The difference: guanxi is about mutual trust over time; corruption is a transaction.&lt;/p&gt;

&lt;p&gt;Foreigners who skip guanxi-building and go straight to business often find doors mysteriously closed.&lt;/p&gt;

&lt;h2&gt;
  
  
  9. WeChat Is the Real Office
&lt;/h2&gt;

&lt;p&gt;Email is slow. WeChat is where business moves. If you're given a WeChat contact, use it. Response time expectations are different: WeChat messages get replied to within hours; emails might wait days.&lt;/p&gt;

&lt;h2&gt;
  
  
  10. The Two-Finger Tap
&lt;/h2&gt;

&lt;p&gt;When someone pours tea or baijiu for you, lightly tap &lt;strong&gt;two fingers&lt;/strong&gt; on the table. It's a silent "thank you" from the Qing dynasty. Most foreigners miss this entirely.&lt;/p&gt;

&lt;h2&gt;
  
  
  11. Never Refuse the First Toast
&lt;/h2&gt;

&lt;p&gt;At a business dinner, the host makes the first toast. Refusing it (even with tea) is a social rupture. If you don't drink alcohol, declare it before sitting: "I can't drink tonight for health reasons, but please count me in for everything else." Then raise your tea cup for every toast.&lt;/p&gt;

&lt;h2&gt;
  
  
  12. They're Evaluating Whether to Trust You
&lt;/h2&gt;

&lt;p&gt;The entire dinner, the gift exchange, the small talk — it's all due diligence. They're assessing: &lt;em&gt;Is this person reliable? Do they respect our culture? Can we work with them long-term?&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The foreigner who understands this doesn't need to be perfect. They just need to show they're trying.&lt;/p&gt;




&lt;h2&gt;
  
  
  Free Tools for Your China Visit
&lt;/h2&gt;

&lt;p&gt;Before your next China business trip, these free tools might save you:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://chinarules101.com/tools/gift-risk-scanner/" rel="noopener noreferrer"&gt;Gift Risk Scanner&lt;/a&gt; — enter any gift idea, get a risk assessment&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://chinarules101.com/tools/china-situation-advisor/" rel="noopener noreferrer"&gt;China Situation Advisor&lt;/a&gt; — describe your situation, get a complete action plan&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://chinarules101.com/business/giving-face-chinese-negotiations/" rel="noopener noreferrer"&gt;Banquet Seating Guide&lt;/a&gt; — who sits where and why&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;More guides at &lt;a href="https://chinarules101.com/" rel="noopener noreferrer"&gt;chinarules101.com&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

</description>
      <category>china</category>
      <category>business</category>
      <category>culture</category>
      <category>career</category>
    </item>
    <item>
      <title>Baijiu Guide for Foreigners: What It Is, How to Drink It, What to Expect</title>
      <dc:creator>Văn Tuấn Lê</dc:creator>
      <pubDate>Sat, 05 Sep 2026 14:54:30 +0000</pubDate>
      <link>https://dev.to/vn_tunl_09a36fcbda701/baijiu-guide-for-foreigners-what-it-is-how-to-drink-it-what-to-expect-34hl</link>
      <guid>https://dev.to/vn_tunl_09a36fcbda701/baijiu-guide-for-foreigners-what-it-is-how-to-drink-it-what-to-expect-34hl</guid>
      <description>&lt;h1&gt;
  
  
  Baijiu Guide for Foreigners: What It Is, How to Drink It, What to Expect
&lt;/h1&gt;

&lt;blockquote&gt;
&lt;p&gt;This guide is from &lt;a href="https://chinarules101.com/etiquette/baijiu-guide-for-foreigners/" rel="noopener noreferrer"&gt;ChinaRules101.com&lt;/a&gt; — a free reference for foreigners navigating Chinese culture.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Quick answer:&lt;/strong&gt; Baijiu (白酒, báijiǔ) is China's national spirit — clear, 50–60% alcohol, and intensely flavored. At a formal banquet, you will very likely encounter it. The key rules: drink small amounts, never pour your own, drink it straight, and if someone pours Moutai for you, at least take a genuine sip.&lt;/p&gt;




&lt;h2&gt;
  
  
  DO ✅
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Drink baijiu in &lt;strong&gt;small dedicated cups&lt;/strong&gt; (~25–30ml), not large glasses&lt;/li&gt;
&lt;li&gt;Drink it &lt;strong&gt;straight&lt;/strong&gt; — no ice, no mixers, no water chase&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Smell it first&lt;/strong&gt; — shows appreciation for the quality&lt;/li&gt;
&lt;li&gt;If it's Moutai (茅台), acknowledge it: "This is very fine baijiu, thank you"&lt;/li&gt;
&lt;li&gt;Eat food &lt;strong&gt;between every cup&lt;/strong&gt; — food slows absorption dramatically&lt;/li&gt;
&lt;li&gt;If you can't finish a ganbei, &lt;strong&gt;drink at least half&lt;/strong&gt; — a tiny sip is an insult&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Pace yourself&lt;/strong&gt; — baijiu sneaks up; you often don't feel it until it's too late&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  DON'T ❌
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Don't mix baijiu with anything — no Coke, no ice, no water&lt;/li&gt;
&lt;li&gt;Don't pour your own baijiu — it signals nobody is taking care of you&lt;/li&gt;
&lt;li&gt;Don't drink it like a Western shot — one smooth motion, not gulped&lt;/li&gt;
&lt;li&gt;Don't try to outdrink Chinese hosts — they've been doing this for decades&lt;/li&gt;
&lt;li&gt;Don't mix baijiu with other alcohol types in the same session&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Don't take antibiotics and drink baijiu&lt;/strong&gt; — serious reaction&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  What Baijiu Actually Is
&lt;/h2&gt;

&lt;p&gt;Baijiu is made from fermented grains (usually sorghum) using a unique dual fermentation process with a starter culture called &lt;strong&gt;qū (曲)&lt;/strong&gt;.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Alcohol:&lt;/strong&gt; 40–65% ABV (most banquet baijiu is 52–53%)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Color:&lt;/strong&gt; Clear, like water&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Taste:&lt;/strong&gt; Fiery, notes of fermented grain, dried fruit, earth — occasionally floral&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;First-time drinkers almost universally find it challenging. Don't pretend to like it — but showing genuine curiosity earns respect.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Main Types
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Flavor&lt;/th&gt;
&lt;th&gt;Famous Brands&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;酱香型 (Sauce)&lt;/td&gt;
&lt;td&gt;Complex, savory, long finish&lt;/td&gt;
&lt;td&gt;Moutai (茅台)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;浓香型 (Strong)&lt;/td&gt;
&lt;td&gt;Rich, sweet, fruity&lt;/td&gt;
&lt;td&gt;Wuliangye (五粮液)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;清香型 (Light)&lt;/td&gt;
&lt;td&gt;Clean, mild&lt;/td&gt;
&lt;td&gt;Fen jiu (汾酒)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;米香型 (Rice)&lt;/td&gt;
&lt;td&gt;Lighter, rice-based&lt;/td&gt;
&lt;td&gt;Guilin Sanhua&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Moutai (茅台)&lt;/strong&gt; is the crown jewel — served at state banquets, priced ¥1,500–¥3,000+. If your host pours Moutai, this occasion is genuinely important to them.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to Survive the Morning After
&lt;/h2&gt;

&lt;p&gt;Baijiu hangovers are severe. Prepare:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Eat heavily before and during — fatty foods absorb alcohol&lt;/li&gt;
&lt;li&gt;Drink water continuously (ask quietly for 白开水, plain hot water)&lt;/li&gt;
&lt;li&gt;Space your ganbeis — you control how quickly you drink between toasts&lt;/li&gt;
&lt;li&gt;Next morning: electrolytes, congee (rice porridge), and rest&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  The Two-Finger Tap
&lt;/h2&gt;

&lt;p&gt;When someone pours baijiu (or tea) for you, lightly tap &lt;strong&gt;two fingers&lt;/strong&gt; on the table near your cup. This is a silent "thank you" — derived from a Qing dynasty ritual. Many foreigners miss this and come across as ungrateful without realizing it.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Full guide with FAQ and regional differences: &lt;a href="https://chinarules101.com/etiquette/baijiu-guide-for-foreigners/" rel="noopener noreferrer"&gt;chinarules101.com/etiquette/baijiu-guide-for-foreigners/&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

</description>
      <category>china</category>
      <category>culture</category>
      <category>travel</category>
      <category>expat</category>
    </item>
    <item>
      <title>I Bought Another Domain. Then I Accidentally Started Building a Second Internet Business.</title>
      <dc:creator>Văn Tuấn Lê</dc:creator>
      <pubDate>Sun, 16 Aug 2026 11:34:59 +0000</pubDate>
      <link>https://dev.to/vn_tunl_09a36fcbda701/i-bought-another-domain-then-i-accidentally-started-building-a-second-internet-business-106n</link>
      <guid>https://dev.to/vn_tunl_09a36fcbda701/i-bought-another-domain-then-i-accidentally-started-building-a-second-internet-business-106n</guid>
      <description>&lt;p&gt;I wasn't planning to build another website.&lt;/p&gt;

&lt;p&gt;Honestly, I thought I had enough problems already.&lt;/p&gt;

&lt;p&gt;I was already spending most of my spare time building &lt;a href="https://ordinarymantrying.com" rel="noopener noreferrer"&gt;Ordinary Man Trying&lt;/a&gt;, writing about AI, building little tools, testing ideas, watching Google Search Console, wondering why Google wasn't indexing half my pages, and generally doing what a perfectly sensible person in his 40s probably shouldn't be doing after work.&lt;/p&gt;

&lt;p&gt;Then I bought another hosting plan.&lt;/p&gt;

&lt;p&gt;Not because I had a brilliant business idea.&lt;/p&gt;

&lt;p&gt;Because it was cheap.&lt;/p&gt;

&lt;p&gt;That may be the most honest way to explain how &lt;strong&gt;ChineseFortuneTools&lt;/strong&gt; started.&lt;/p&gt;




&lt;h2&gt;
  
  
  The original idea was almost embarrassingly simple
&lt;/h2&gt;

&lt;p&gt;I had been thinking about my hosting costs. I already had websites. The marginal cost of having another site was surprisingly small.&lt;/p&gt;

&lt;p&gt;So I started thinking:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;What if I just build another website?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Not a startup. Not something requiring investors. Not something that needs a team. Just a small internet experiment.&lt;/p&gt;

&lt;p&gt;Give it a domain. Give it some useful tools. Let AI help me build things. Put it on Google. Wait. See what happens.&lt;/p&gt;

&lt;p&gt;If it fails, I lose some domain and hosting money. If it works, I learn something. And if I keep doing this for years, maybe one of these strange little experiments eventually becomes something real.&lt;/p&gt;




&lt;h2&gt;
  
  
  So what is ChineseFortuneTools?
&lt;/h2&gt;

&lt;p&gt;The first version was fairly obvious.&lt;/p&gt;

&lt;p&gt;Chinese culture. Chinese Zodiac. BaZi. Feng Shui. The Chinese lunar calendar. Lucky dates. Chinese names. Traditional ideas about fortune and destiny.&lt;/p&gt;

&lt;p&gt;The website describes itself as:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Chinese Metaphysics · Explained for the West&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Not: &lt;em&gt;"Believe everything Chinese fortune telling says."&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Instead:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Here is a traditional Chinese system. Let me explain what it means.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The website itself says: &lt;em&gt;"You don't need to believe it. You just need to understand it."&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Because Chinese culture contains thousands of years of ideas that are interesting even when you don't believe the supernatural part.&lt;/p&gt;




&lt;h2&gt;
  
  
  Then I discovered something much more interesting
&lt;/h2&gt;

&lt;p&gt;While building the site, I started collecting something completely different.&lt;/p&gt;

&lt;p&gt;Chinese sayings. Old expressions. Folk wisdom.&lt;/p&gt;

&lt;p&gt;Things people say when someone is making a terrible decision. Things people say after a marriage argument. Things people say when someone is too impatient.&lt;/p&gt;

&lt;p&gt;And suddenly I realized:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;This isn't really fortune telling. It's accumulated human experience.&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  The strangest part: I want the wisdom to find the person
&lt;/h2&gt;

&lt;p&gt;Instead of: &lt;strong&gt;Chinese proverb → English translation&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I wanted: &lt;strong&gt;Real-life problem → Chinese wisdom → possible action&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;For example:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;You're fighting with your spouse&lt;/strong&gt;&lt;br&gt;
→ &lt;strong&gt;退一步海阔天空&lt;/strong&gt; &lt;em&gt;(Step back, and a wider world opens.)&lt;/em&gt;&lt;br&gt;
→ Maybe don't try to win this argument.&lt;br&gt;
→ Send it to them.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Your friend is rushing into everything&lt;/strong&gt;&lt;br&gt;
→ &lt;strong&gt;欲速则不达&lt;/strong&gt; &lt;em&gt;(Haste makes waste.)&lt;/em&gt;&lt;br&gt;
→ Slow down before the mistake becomes expensive.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;You just failed at something&lt;/strong&gt;&lt;br&gt;
→ &lt;strong&gt;塞翁失马，焉知非福&lt;/strong&gt; &lt;em&gt;(A setback today may become a blessing tomorrow.)&lt;/em&gt;&lt;br&gt;
→ Maybe this isn't the end of the story.&lt;/p&gt;

&lt;p&gt;That's much more interesting to me than a proverb database.&lt;/p&gt;




&lt;h2&gt;
  
  
  And then I made the obvious mistake
&lt;/h2&gt;

&lt;p&gt;I asked AI to help me build it. Of course I did.&lt;/p&gt;

&lt;p&gt;The first versions were technically fine. They worked. They had cards. They had translations. They looked reasonably nice.&lt;/p&gt;

&lt;p&gt;And they were completely wrong.&lt;/p&gt;

&lt;p&gt;They felt like a database. The AI had understood the words. It hadn't understood the &lt;strong&gt;experience&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;That's becoming a recurring theme in my experiments with AI. AI is extremely good at producing things that are technically correct. It is much harder to make it understand:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Why would a human actually want this?&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;So I kept pushing. Not: &lt;em&gt;"Make this prettier."&lt;/em&gt; But: &lt;em&gt;"Why would somebody send this to another person?"&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;That changed the design.&lt;/p&gt;




&lt;h2&gt;
  
  
  Now I'm trying to make every piece of wisdom visual
&lt;/h2&gt;

&lt;p&gt;Take: &lt;strong&gt;伸手不打笑脸人&lt;/strong&gt; &lt;em&gt;(Even an angry person is reluctant to hit someone who approaches with a smile.)&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;A generic emoji doesn't explain that.&lt;/p&gt;

&lt;p&gt;So I built tiny SVG visual stories — an angry figure, a calm figure approaching, the tension softening. The user should understand the situation &lt;strong&gt;before reading the explanation&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Instead of 1,000 images, I built 30 visual metaphors and reuse them intelligently. That's the sort of thing I like about building with AI: sometimes its most useful role is helping me discover a better way to build the product.&lt;/p&gt;




&lt;h2&gt;
  
  
  I have no idea if this will make money
&lt;/h2&gt;

&lt;p&gt;And I want to be honest about that.&lt;/p&gt;

&lt;p&gt;I'm investing: &lt;strong&gt;time + a cheap domain + hosting + AI + curiosity.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The downside is limited. The upside is unknown. That's a pretty good experiment.&lt;/p&gt;




&lt;h2&gt;
  
  
  But there is another reason I'm doing this
&lt;/h2&gt;

&lt;p&gt;My son is growing up in a world that looks very different from the one I grew up in.&lt;/p&gt;

&lt;p&gt;I don't want to simply tell him: &lt;em&gt;"Go get a good job."&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;I want him to see his father actually trying things. Buying a domain. Learning SEO. Using AI. Building products. Watching things fail. Trying again.&lt;/p&gt;

&lt;p&gt;Maybe one of these projects works. Maybe none of them do. But he'll have seen the process.&lt;/p&gt;




&lt;h2&gt;
  
  
  ChineseFortuneTools is now my second experiment
&lt;/h2&gt;

&lt;p&gt;Can ancient Chinese ideas become useful to someone who has never lived in China? Can a proverb become a tool rather than just a translation? Can one sentence actually help somebody handle a difficult day?&lt;/p&gt;

&lt;p&gt;I don't know. That's why I'm building it.&lt;/p&gt;




&lt;h2&gt;
  
  
  Let's see what happens
&lt;/h2&gt;

&lt;p&gt;I've learned that building websites is a little like planting trees. You don't get to know which one will grow before you plant it.&lt;/p&gt;

&lt;p&gt;So I'm planting another one. This one just happens to contain a few thousand years of Chinese wisdom.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;→ &lt;a href="https://chinesefortunetools.com/?utm_source=devto" rel="noopener noreferrer"&gt;ChineseFortuneTools&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;→ &lt;a href="https://chinesefortunetools.com/chinese-wisdom/?utm_source=devto" rel="noopener noreferrer"&gt;Chinese Wisdom — one thought at a time&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;




&lt;p&gt;&lt;em&gt;I write about AI, building in public, and honest experiments at &lt;a href="https://ordinarymantrying.com" rel="noopener noreferrer"&gt;Ordinary Man Trying&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>showdev</category>
      <category>webdev</category>
      <category>ai</category>
      <category>buildinpublic</category>
    </item>
    <item>
      <title>How to Give AI Better Evidence: Lessons From a Security Investigation That Almost Failed</title>
      <dc:creator>Văn Tuấn Lê</dc:creator>
      <pubDate>Fri, 14 Aug 2026 12:34:13 +0000</pubDate>
      <link>https://dev.to/vn_tunl_09a36fcbda701/how-to-give-ai-better-evidence-lessons-from-a-security-investigation-that-almost-failed-50ke</link>
      <guid>https://dev.to/vn_tunl_09a36fcbda701/how-to-give-ai-better-evidence-lessons-from-a-security-investigation-that-almost-failed-50ke</guid>
      <description>&lt;p&gt;Category: My AI Experiments&lt;/p&gt;

&lt;p&gt;There's a mental model most people use when working with AI: describe your problem, get a solution.&lt;/p&gt;

&lt;p&gt;It works well enough, until it doesn't. And when it fails, the failure is invisible — because AI doesn't say "I don't have enough to go on." It gives you a confident, well-reasoned, completely wrong answer.&lt;/p&gt;

&lt;p&gt;I learned this the hard way during a website security investigation. The AI and I ran a thorough analysis, reached a clear conclusion, and were wrong. Not because the AI was weak — because I gave it the wrong kind of input. When I changed the input, the same AI found the answer in seconds.&lt;/p&gt;

&lt;p&gt;That gap — between the input that produces a wrong answer and the input that produces a right one — is what I want to talk about.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Investigation That Almost Failed
&lt;/h2&gt;

&lt;p&gt;My website was secretly redirecting visitors to a virus site. The attack was sophisticated: it only targeted specific browsers, fired at most once per device per day using a cookie-based cooldown, and left no trace in any file.&lt;/p&gt;

&lt;p&gt;I asked AI to help investigate. I described the symptoms. We searched through files together — &lt;code&gt;.htaccess&lt;/code&gt;, theme functions, plugin code. Everything looked clean. The AI identified the most suspicious external element in scope: a Chinese analytics script called 51.la. I removed it. The redirect stopped.&lt;/p&gt;

&lt;p&gt;I called it solved.&lt;/p&gt;

&lt;p&gt;Three weeks later, the identical attack appeared on another site I manage. No 51.la anywhere.&lt;/p&gt;

&lt;p&gt;This time, instead of describing the symptoms, I gave the AI something different: the actual rendered HTML of an affected page, fetched using the exact browser User-Agent and IP type that triggered the attack.&lt;/p&gt;

&lt;p&gt;The AI found an 83KB malicious JavaScript payload injected into every page. Inside it: a WeChat browser detector, a link-click hijacker, a cookie-based daily cooldown. The payload was stored in the WordPress database — in plugin configuration data — where no file-level search could ever find it.&lt;/p&gt;

&lt;p&gt;Same AI. Same type of problem. Completely different outcome. The only variable was what I put in front of it.&lt;/p&gt;




&lt;h2&gt;
  
  
  Symptoms vs. Evidence: The Core Distinction
&lt;/h2&gt;

&lt;p&gt;When you describe a problem to AI, you're giving it a &lt;em&gt;symptom&lt;/em&gt;. When you give it raw data from the system that's failing, you're giving it &lt;em&gt;evidence&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;The difference matters because AI can only reason about what it can observe. Symptoms are your interpretation of what's happening — filtered, compressed, possibly wrong. Evidence is what's actually happening.&lt;/p&gt;

&lt;p&gt;In my investigation:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Symptom:&lt;/strong&gt; "My site is redirecting mobile visitors to a bad site, but only sometimes."&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Evidence:&lt;/strong&gt; The full HTML output of an affected page, captured from a device with the right browser, IP, and no prior visit cookie.&lt;/p&gt;

&lt;p&gt;The symptom told the AI: something external is probably causing this. The evidence told the AI: here is the exact code running on the page, and here is the line that's doing it.&lt;/p&gt;

&lt;p&gt;Symptoms invite guessing. Evidence enables diagnosis.&lt;/p&gt;




&lt;h2&gt;
  
  
  Three Reasons AI Defaults to Guessing
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;1. You constrain the search space without realizing it.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;When I said "check these files," I was implicitly telling the AI: the answer is in these files. It accepted that framing and worked within it. It never questioned whether the real answer might be somewhere else entirely.&lt;/p&gt;

&lt;p&gt;AI follows the scope you define. If your scope is wrong, the analysis is wrong — no matter how rigorous it is within that scope.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Confident output masks uncertain reasoning.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;AI doesn't say "I'm guessing here." It generates fluent, well-structured explanations regardless of how much signal it actually has. A diagnosis built on thin evidence sounds exactly like a diagnosis built on solid evidence. You have to build in your own uncertainty.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Symptoms often point at the wrong layer.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;In security problems — and many engineering problems — the place where failure &lt;em&gt;appears&lt;/em&gt; is rarely the place where failure &lt;em&gt;originates&lt;/em&gt;. My site redirected in the browser. The cause was in a database table. Describing what I saw in the browser pointed the AI at the browser layer. The actual problem was three layers deeper.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Framework I Now Use
&lt;/h2&gt;

&lt;p&gt;Before handing a problem to AI, I ask three questions:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What layer is this problem actually at?&lt;/strong&gt;&lt;br&gt;
Not where I'm observing it — where it originates. A redirect that appears in the browser might originate in JavaScript, in server config, in a database record, or in an external script. Identifying the right layer determines what evidence to collect.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Am I giving AI a symptom or evidence?&lt;/strong&gt;&lt;br&gt;
If I'm describing what I observed, that's a symptom. If I'm giving AI raw output from the system — logs, source code, rendered HTML, API responses — that's evidence. Default to evidence.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What would this look like from inside the system?&lt;/strong&gt;&lt;br&gt;
Before asking AI to diagnose, I try to observe the problem from the perspective of the thing that's failing. In the security case: what does the page HTML look like to an affected visitor? That question led me to the right evidence. "What do my files look like?" led me to the wrong one.&lt;/p&gt;




&lt;h2&gt;
  
  
  This Applies Far Beyond Security
&lt;/h2&gt;

&lt;p&gt;The same principle shows up everywhere AI-assisted work breaks down.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Debugging code:&lt;/strong&gt; Giving AI an error message is a symptom. Giving it the full stack trace, the relevant function, and the actual input that triggered the error is evidence.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Analyzing data:&lt;/strong&gt; Describing a trend you noticed is a symptom. Giving AI the raw dataset — or at minimum a representative sample — is evidence.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Getting writing feedback:&lt;/strong&gt; Saying "my intro feels weak" is a symptom. Pasting the actual intro and asking AI to identify specifically what's causing the weakness is evidence.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Medical analogies (for the metaphorically inclined):&lt;/strong&gt; Telling a doctor "I feel tired" is a symptom. Blood test results are evidence. The doctor can work with either, but only one leads to a diagnosis rather than a guess.&lt;/p&gt;

&lt;p&gt;In each case, the question is the same: are you describing what you observe, or are you showing AI what's actually there?&lt;/p&gt;




&lt;h2&gt;
  
  
  The Hidden Cost of Wrong Answers
&lt;/h2&gt;

&lt;p&gt;One more thing worth naming: confident wrong answers have a compounding cost.&lt;/p&gt;

&lt;p&gt;When I concluded the attack was caused by 51.la, I stopped looking. That conclusion felt solid — we'd done a thorough investigation, identified a suspicious element, removed it, and the problem appeared to stop. The investigation felt complete.&lt;/p&gt;

&lt;p&gt;The cost of that wrong answer wasn't just that I misidentified the cause. It was that I stopped before finding the real one. A confident wrong answer doesn't just fail to help — it actively closes off further investigation.&lt;/p&gt;

&lt;p&gt;This is why the quality of AI input matters even when the output seems correct. If you gave AI a symptom and it produced a plausible answer, you don't know whether that answer is based on real signal or a reasonable-sounding guess. The answer might be right. It might be confidently wrong. You can't tell from the output alone.&lt;/p&gt;

&lt;p&gt;The only way to trust the answer is to trust the input.&lt;/p&gt;




&lt;h2&gt;
  
  
  What I Changed
&lt;/h2&gt;

&lt;p&gt;I now treat AI-assisted investigation as a two-step process:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 1: Collect evidence first, before involving AI.&lt;/strong&gt;&lt;br&gt;
Fetch the actual output. Capture the real log. Get the raw data from the layer where the problem originates. Do this before describing anything to AI.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 2: Give AI the evidence, not the story.&lt;/strong&gt;&lt;br&gt;
Instead of "my site is redirecting," I paste the actual rendered HTML. Instead of "the function is slow," I paste the profiler output. Let AI read primary sources, not my summary of them.&lt;/p&gt;

&lt;p&gt;The AI's reasoning ability isn't the bottleneck. The evidence pipeline is.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Uncomfortable Implication
&lt;/h2&gt;

&lt;p&gt;Thinking about AI this way puts more responsibility on the person using it, not less.&lt;/p&gt;

&lt;p&gt;Collecting the right evidence requires understanding your system well enough to know where to look. Asking the right question requires knowing enough about the problem to frame it correctly. These are skills. AI doesn't replace them — it amplifies whatever you bring to the table.&lt;/p&gt;

&lt;p&gt;If you bring symptoms, AI amplifies your guesses.&lt;br&gt;
If you bring evidence, AI amplifies your diagnosis.&lt;/p&gt;

&lt;p&gt;The investigation that almost failed taught me this more clearly than any tutorial could. The AI was ready to find the answer from the beginning. I just wasn't giving it anything to find it with.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;This is part of an ongoing series on using AI as an ordinary person with no specialist background. Related:&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;em&gt;&lt;a href="https://ordinarymantrying.com/chinese-website-hidden-redirect-ai-investigation/" rel="noopener noreferrer"&gt;My Website Was Secretly Redirecting Chinese Visitors — I Used AI to Investigate&lt;/a&gt;&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;&lt;a href="https://ordinarymantrying.com/ai-wrong-wordpress-plugin-wechat-redirect-attack/" rel="noopener noreferrer"&gt;The AI Got It Wrong — Then Got It Right&lt;/a&gt;&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>ai</category>
      <category>security</category>
      <category>wordpress</category>
      <category>webdev</category>
    </item>
    <item>
      <title>5 Things That Broke When I Let AI Guide My WordPress Migration to Hostinger</title>
      <dc:creator>Văn Tuấn Lê</dc:creator>
      <pubDate>Fri, 14 Aug 2026 11:50:56 +0000</pubDate>
      <link>https://dev.to/vn_tunl_09a36fcbda701/5-things-that-broke-when-i-let-ai-guide-my-wordpress-migration-to-hostinger-364g</link>
      <guid>https://dev.to/vn_tunl_09a36fcbda701/5-things-that-broke-when-i-let-ai-guide-my-wordpress-migration-to-hostinger-364g</guid>
      <description>&lt;p&gt;I asked AI to guide me through migrating a WordPress site to Hostinger. Every step looked simple. Every step broke.&lt;/p&gt;

&lt;p&gt;Here's the short version of what actually happened:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Problem 1: Disk quota full, backup fails&lt;/strong&gt;&lt;br&gt;
The first 460MB export silently filled the server's disk quota. Every subsequent export failed with &lt;code&gt;errno=122&lt;/code&gt;. Nobody told me. I just kept retrying.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Problem 2: 148MB file, PHP won't accept it&lt;/strong&gt;&lt;br&gt;
WordPress's default &lt;code&gt;upload_max_filesize&lt;/code&gt; is 64MB. The backup was 148MB. The import page said "connection lost." Took me an hour to figure out I needed to edit PHP options in hPanel.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Problem 3: SSL only covered the bare domain&lt;/strong&gt;&lt;br&gt;
Installed SSL before DNS finished propagating. Certificate signed for &lt;code&gt;domain.com&lt;/code&gt; only, not &lt;code&gt;www&lt;/code&gt;. Visitors got a certificate mismatch warning.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Problem 4: WordPress escaped &lt;code&gt;&amp;amp;&lt;/code&gt; to &lt;code&gt;&amp;amp;#038;&lt;/code&gt; inside JavaScript&lt;/strong&gt;&lt;br&gt;
A QR code feature broke because WordPress's content filter mangled the &lt;code&gt;&amp;amp;&lt;/code&gt; in a URL string inside a &lt;code&gt;&amp;lt;script&amp;gt;&lt;/code&gt; tag. The fix: &lt;code&gt;String.fromCharCode(38)&lt;/code&gt; instead of a literal &lt;code&gt;&amp;amp;&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Problem 5: LiteSpeed Cache blocked dynamically-set image src&lt;/strong&gt;&lt;br&gt;
Lazy loading intercepted JS-assigned &lt;code&gt;img.src&lt;/code&gt; values. Images appeared blank. Fix: create a new &lt;code&gt;&amp;lt;img&amp;gt;&lt;/code&gt; element with &lt;code&gt;createElement&lt;/code&gt; instead of updating an existing one.&lt;/p&gt;

&lt;p&gt;None of these are exotic edge cases. All of them are waiting for you.&lt;/p&gt;




&lt;p&gt;AI guided me through diagnosing every single one of these — I couldn't have done it alone. But it didn't prevent them from happening. That's not a criticism of AI; it's just the nature of migration work. The problems only surface when you actually run it.&lt;/p&gt;

&lt;p&gt;Full write-up with exact commands and fixes:&lt;br&gt;
&lt;a href="https://ordinarymantrying.com/i-let-ai-guide-my-wordpress-migration-to-hostinger-and-hit-every-pitfall-imaginable-ai-generated/" rel="noopener noreferrer"&gt;I Let AI Migrate My WordPress Site to Hostinger. It Went Horribly Wrong.&lt;/a&gt;&lt;/p&gt;

</description>
      <category>wordpress</category>
      <category>webdev</category>
      <category>ai</category>
      <category>hosting</category>
    </item>
    <item>
      <title>The AI Got It Wrong — Then Got It Right (WordPress Redirect Attack)</title>
      <dc:creator>Văn Tuấn Lê</dc:creator>
      <pubDate>Fri, 14 Aug 2026 11:49:53 +0000</pubDate>
      <link>https://dev.to/vn_tunl_09a36fcbda701/the-ai-got-it-wrong-then-got-it-right-wordpress-redirect-attack-3gmd</link>
      <guid>https://dev.to/vn_tunl_09a36fcbda701/the-ai-got-it-wrong-then-got-it-right-wordpress-redirect-attack-3gmd</guid>
      <description>&lt;p&gt;My website was secretly redirecting Chinese visitors to a virus site. I ran an AI-assisted investigation, found a suspicious analytics script (51.la), removed it — and declared victory.&lt;/p&gt;

&lt;p&gt;We were wrong.&lt;/p&gt;

&lt;p&gt;The AI blamed 51.la because that's where the evidence pointed. But the real culprit was hiding somewhere file-level scans can never reach: &lt;strong&gt;the WordPress database&lt;/strong&gt;, configured through a compromised plugin called Ad Inserter.&lt;/p&gt;

&lt;h2&gt;
  
  
  What made this attack so hard to catch
&lt;/h2&gt;

&lt;p&gt;The attacker wasn't sloppy. This was carefully engineered to defeat investigators:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Only fires in WeChat's browser&lt;/strong&gt; — detects &lt;code&gt;MicroMessenger&lt;/code&gt; in the User-Agent&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Once per device per day&lt;/strong&gt; — cookie-based cooldown means repeat testing always looks clean&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Invisible on desktop&lt;/strong&gt; — no redirect, nothing to see&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;No trace in any file&lt;/strong&gt; — payload stored in &lt;code&gt;wp_options&lt;/code&gt; database table, not on disk&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Without AI, my only realistic option would have been a full WordPress reinstall. I would have fixed it without ever understanding what happened.&lt;/p&gt;

&lt;h2&gt;
  
  
  The real lesson
&lt;/h2&gt;

&lt;p&gt;It's not that AI is too weak for security work. The person who built this malware was genuinely smart — money is a powerful motivator for clever engineering. This attack was specifically designed to defeat investigators, and it almost worked.&lt;/p&gt;

&lt;p&gt;What failed wasn't AI capability. It was the search space I gave it: &lt;em&gt;check these files&lt;/em&gt;. The payload wasn't in any file.&lt;/p&gt;

&lt;p&gt;When I gave the AI the right input — rendered page HTML fetched with a WeChat User-Agent — it found the injected 83KB payload in seconds.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Three rules I changed:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Don't let AI define the search space too early&lt;/li&gt;
&lt;li&gt;Give AI raw evidence (rendered HTML), not symptoms&lt;/li&gt;
&lt;li&gt;Never call an incident solved after one successful test — &lt;em&gt;redirect stopped does not mean malware removed&lt;/em&gt;
&lt;/li&gt;
&lt;/ol&gt;




&lt;p&gt;Full investigation write-up, with screenshots of what victims actually saw:&lt;br&gt;
&lt;a href="https://ordinarymantrying.com/ai-wrong-wordpress-plugin-wechat-redirect-attack/" rel="noopener noreferrer"&gt;The AI Got It Wrong — Then Got It Right&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Part of an ongoing series on using AI for real IT problems as an ordinary person with no security background.&lt;/p&gt;

</description>
      <category>wordpress</category>
      <category>security</category>
      <category>ai</category>
      <category>webdev</category>
    </item>
    <item>
      <title>I Built a Free Toolkit With 500+ Copy-Paste Commands for Sysadmins and Website Owners</title>
      <dc:creator>Văn Tuấn Lê</dc:creator>
      <pubDate>Fri, 07 Aug 2026 13:50:21 +0000</pubDate>
      <link>https://dev.to/vn_tunl_09a36fcbda701/i-built-a-free-toolkit-with-500-copy-paste-commands-for-sysadmins-and-website-owners-1lnm</link>
      <guid>https://dev.to/vn_tunl_09a36fcbda701/i-built-a-free-toolkit-with-500-copy-paste-commands-for-sysadmins-and-website-owners-1lnm</guid>
      <description>&lt;p&gt;Last year, a friend called me in a panic. His company's 14 servers had been compromised. He's a business owner, not a sysadmin — he didn't know where to start.&lt;/p&gt;

&lt;p&gt;I spent the next 30 minutes walking him through commands over the phone. The same commands I'd looked up from 6 different tabs, re-Googling the syntax because I could never remember the exact flags.&lt;/p&gt;

&lt;p&gt;That's what built this toolkit.&lt;/p&gt;

&lt;p&gt;What it is&lt;/p&gt;

&lt;p&gt;A free, browser-based collection of 500+ copy-paste commands organized into 14 toolkits:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Linux Incident Response — post-breach forensics, log analysis, persistence hunting&lt;/li&gt;
&lt;li&gt;Windows Incident Response — event logs, autoruns, WMI backdoor detection&lt;/li&gt;
&lt;li&gt;Windows Malware Check — rootkits, scheduled tasks, injected services&lt;/li&gt;
&lt;li&gt;Webshell &amp;amp; Vulnerability Detection — file scanning, backdoor hunting&lt;/li&gt;
&lt;li&gt;Security Hardening — SSH, firewall, file permissions&lt;/li&gt;
&lt;li&gt;Docker &amp;amp; Containers — container forensics, Kubernetes&lt;/li&gt;
&lt;li&gt;Nginx Performance — cache, compression, rate limiting&lt;/li&gt;
&lt;li&gt;WordPress CLI — bulk operations, migrations&lt;/li&gt;
&lt;li&gt;Git Deployment — deploy workflows, rollbacks&lt;/li&gt;
&lt;li&gt;SEO Diagnostics — technical SEO commands&lt;/li&gt;
&lt;li&gt;Plus: Website Health Check, "I Think I Got Hacked" guide, New Website Launch Roadmap
The one thing that makes it different&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Most command cheatsheets are static text. You copy a command, then spend 2 minutes hunting for every  placeholder.&lt;/p&gt;

&lt;p&gt;This toolkit has editable placeholders. Click a domain name, IP address, or file path inside a command card — it updates everywhere in that card instantly.&lt;/p&gt;

&lt;p&gt;It sounds small. It saves real time when you're mid-incident.&lt;/p&gt;

&lt;p&gt;Each command has a strategy note&lt;/p&gt;

&lt;p&gt;Not just the command — but:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;When to use it&lt;/li&gt;
&lt;li&gt;What normal output looks like&lt;/li&gt;
&lt;li&gt;What suspicious output looks like&lt;/li&gt;
&lt;li&gt;What to do next&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Because find / -mtime -1 -type f returns results, but "recently modified files" doesn't tell you which ones are supposed to be there.&lt;/p&gt;

&lt;p&gt;Bilingual&lt;/p&gt;

&lt;p&gt;6 of the most common toolkits are available in both English and Chinese. Incident response doesn't care what language you think in.&lt;/p&gt;

&lt;p&gt;No install. No login. Works offline.&lt;/p&gt;

&lt;p&gt;Each toolkit is a single HTML file. Save it to your desktop. Use it on an air-gapped machine during a breach. No dependencies.&lt;/p&gt;




&lt;p&gt;Try it:  &lt;a href="//ordinarymantrying.com/tools/toolkit"&gt;(https://ordinarymantrying.com/tools/toolkit/)&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Source: &lt;a href="https://github.com/daligao/website-admin-security-toolkit" rel="noopener noreferrer"&gt;https://github.com/daligao/website-admin-security-toolkit&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The "I Think I Got Hacked" guide is probably the most useful starting point if you're new to incident response — it walks through the first 30 minutes of a breach investigation in plain English.&lt;a href="https://dev.tourl"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>security</category>
      <category>devops</category>
      <category>webdev</category>
      <category>linux</category>
    </item>
    <item>
      <title>I Built a Vocabulary Matching Game for My Son's English Exam — Then Flipped It for Mandarin Learners</title>
      <dc:creator>Văn Tuấn Lê</dc:creator>
      <pubDate>Sat, 01 Aug 2026 01:25:38 +0000</pubDate>
      <link>https://dev.to/vn_tunl_09a36fcbda701/i-built-a-vocabulary-matching-game-for-my-sons-english-exam-then-flipped-it-for-mandarin-learners-48of</link>
      <guid>https://dev.to/vn_tunl_09a36fcbda701/i-built-a-vocabulary-matching-game-for-my-sons-english-exam-then-flipped-it-for-mandarin-learners-48of</guid>
      <description>&lt;p&gt;My son had a big English exam coming up. He needed to memorize 1,743 vocabulary words.&lt;/p&gt;

&lt;p&gt;Flashcards weren't working. He'd stare at them passively, feel like he was studying, then blank on the actual test. Sound familiar?&lt;/p&gt;

&lt;p&gt;I remembered something from a psychology paper I once read: recognition is not the same as recall. Being able to see a word and nod at it is completely different from being able to produce it when the cue is on the other side. Tests measure the harder thing.&lt;/p&gt;

&lt;p&gt;So I built him a tile-matching game.&lt;/p&gt;

&lt;p&gt;How it works&lt;/p&gt;

&lt;p&gt;Eight word pairs appear on screen. Chinese on one side, English on the other. You tap to match them. Get them right: combo streak, points, satisfying animation. Get them wrong: the tiles shake and you try again.&lt;/p&gt;

&lt;p&gt;The trick is in the direction: you always see one language and have to recall the other. It's not passive. Your brain has to do work.&lt;/p&gt;

&lt;p&gt;1,743 words. 217 levels. 8 words per round.&lt;/p&gt;

&lt;p&gt;Level 1  → words 1–8&lt;br&gt;
Level 2  → words 9–16&lt;br&gt;
...&lt;br&gt;
Level 217 → words 1,737–1,743&lt;/p&gt;

&lt;p&gt;Progress saves in localStorage. No backend, no login, no account. Open the page, play, close it. Come back tomorrow and you're where you left off.&lt;/p&gt;

&lt;p&gt;The tech (it's boring, intentionally)&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Vanilla JS, single HTML file&lt;/li&gt;
&lt;li&gt;localStorage for progress + mastered words&lt;/li&gt;
&lt;li&gt;CSS animations for the match/shake feedback&lt;/li&gt;
&lt;li&gt;No build step, no framework, no dependencies&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I kept it simple because my son was going to use it on his phone during lunch break. No time for slow loads or broken installs.&lt;/p&gt;

&lt;p&gt;The accidental flip&lt;/p&gt;

&lt;p&gt;After he used it for a few months, I realized: the whole game works in reverse too.&lt;/p&gt;

&lt;p&gt;Chinese ↔ English is the same game whether you're a Chinese student learning English or an English speaker learning Mandarin.&lt;/p&gt;

&lt;p&gt;So I made a second version, same codebase, just flipped the default direction. HSK 1–4 vocabulary. 1,743 words. Same 217 levels.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fwpibnnkj044t647e1rlp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fwpibnnkj044t647e1rlp.png" alt=" " width="800" height="515"&gt;&lt;/a&gt;&lt;br&gt;
It's live here (free, no login):&lt;br&gt;
👉 &lt;a href="https://ordinarymantrying.com/tools/mandarin-match.html" rel="noopener noreferrer"&gt;https://ordinarymantrying.com/tools/mandarin-match.html&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fdfo0zz0upbxuyhrvq0hu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fdfo0zz0upbxuyhrvq0hu.png" alt=" " width="800" height="515"&gt;&lt;/a&gt;&lt;br&gt;
The gaokao (Chinese college entrance exam) English version is here:&lt;br&gt;
👉 &lt;a href="https://ordinarymantrying.com/tools/gaokao/vocab-match.html" rel="noopener noreferrer"&gt;https://ordinarymantrying.com/tools/gaokao/vocab-match.html&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;What I learned&lt;/p&gt;

&lt;p&gt;The "testing effect" is real and criminally underused in language learning apps. Most apps show you words and ask you to rate yourself ("Hard / Good / Easy"). That's still passive — you're judging your recognition, not exercising recall.&lt;/p&gt;

&lt;p&gt;The matching format forces recall. You can't fake it. Either you know which tile pairs with which, or you don't. That friction is the learning.&lt;/p&gt;




&lt;p&gt;If you've built learning tools, I'd love to know: what mechanic has actually moved the needle for your users?&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>webdev</category>
      <category>learning</category>
      <category>opensource</category>
    </item>
    <item>
      <title>I Gave 9 AI Models the Same Stock IPO Data. They All Got It Wrong</title>
      <dc:creator>Văn Tuấn Lê</dc:creator>
      <pubDate>Mon, 27 Jul 2026 11:39:20 +0000</pubDate>
      <link>https://dev.to/vn_tunl_09a36fcbda701/i-gave-9-ai-models-the-same-stock-ipo-data-they-all-got-it-wrong-11hh</link>
      <guid>https://dev.to/vn_tunl_09a36fcbda701/i-gave-9-ai-models-the-same-stock-ipo-data-they-all-got-it-wrong-11hh</guid>
      <description>&lt;p&gt;I'm an ordinary guy in China. I got lucky in an IPO lottery —&lt;br&gt;
1,000 shares of CXMT (688825), China's first domestically-produced&lt;br&gt;
DRAM memory chip maker. Cost: ¥8,660.&lt;/p&gt;

&lt;p&gt;Before listing day, I ran an experiment.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Setup
&lt;/h2&gt;

&lt;p&gt;I gave 9 different AI models — Claude, GPT-4o, Gemini, and others —&lt;br&gt;
the exact same data packet:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;CXMT's financials (still loss-making as of H1 2026)&lt;/li&gt;
&lt;li&gt;Sector comparisons (vs Samsung, Micron, YMTC)&lt;/li&gt;
&lt;li&gt;IPO mechanics (A-share STAR Market, no price limit first 5 days)&lt;/li&gt;
&lt;li&gt;Market sentiment indicators&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;One standardized prompt. Nine models. One question: &lt;strong&gt;what price&lt;br&gt;
range do you predict for the opening?&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What Actually Happened
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Metric&lt;/th&gt;
&lt;th&gt;Value&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;IPO Price&lt;/td&gt;
&lt;td&gt;¥8.66&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Opening Price&lt;/td&gt;
&lt;td&gt;¥49.50&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Intraday High&lt;/td&gt;
&lt;td&gt;¥55.03&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Close&lt;/td&gt;
&lt;td&gt;¥49.00&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Day 1 Gain&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;+465.82%&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Market Cap&lt;/td&gt;
&lt;td&gt;¥3.28 trillion (~$455B USD)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;For reference: Intel's current market cap is approximately $90B USD.&lt;/p&gt;

&lt;p&gt;A company that won't turn profitable until at least H2 2026&lt;br&gt;
just listed at a valuation larger than one of the founding&lt;br&gt;
fathers of the semiconductor industry.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;All 9 AIs underestimated this. Significantly.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Why the AIs Were Wrong
&lt;/h2&gt;

&lt;p&gt;This is the part I find genuinely interesting as someone who&lt;br&gt;
uses AI tools daily.&lt;/p&gt;

&lt;p&gt;The models reasoned &lt;em&gt;correctly&lt;/em&gt; about the fundamentals:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Loss-making company ✓&lt;/li&gt;
&lt;li&gt;High valuation vs peers ✓&lt;/li&gt;
&lt;li&gt;Uncertain demand cycle ✓&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;What they couldn't model:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. National narrative as a price driver&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;CXMT isn't just a stock. It's China's answer to the US chip&lt;br&gt;
embargo. Retail investors weren't buying earnings — they were&lt;br&gt;
buying a symbol. No training data fully captures that.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Zero-float dynamics&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;On STAR Market IPOs, the tradeable float on day one is tiny.&lt;br&gt;
When retail demand is enormous and supply is near-zero, price&lt;br&gt;
discovery goes vertical. The math is simple but the magnitude&lt;br&gt;
is hard to predict.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Crowd psychology at full velocity&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;AI models are trained on markets that behave rationally most&lt;br&gt;
of the time. They have no good model for the specific fever&lt;br&gt;
of a landmark national IPO.&lt;/p&gt;

&lt;p&gt;I sold my full allocation on listing day. The S markers on&lt;br&gt;
the chart are my actual exit points. I didn't hit ¥55 —&lt;br&gt;
nobody does. But I exited profitably.&lt;/p&gt;

&lt;p&gt;The money goes toward my son's school tuition. That was&lt;br&gt;
always the plan.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Actual Lesson
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;I trusted AI completely. What I underestimated was&lt;br&gt;
human frenzy.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;This isn't an argument against using AI for investment research.&lt;br&gt;
I use AI tools extensively for stock analysis — they're excellent&lt;br&gt;
at processing financials, comparing peers, identifying risks.&lt;/p&gt;

&lt;p&gt;But there's a category of market event where the key variable&lt;br&gt;
is &lt;em&gt;how many people believe something matters&lt;/em&gt; — and that's&lt;br&gt;
precisely what language models struggle with.&lt;/p&gt;

&lt;p&gt;Use AI as one input. Not as an oracle.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;I document my real-money AI experiments (including failures)&lt;br&gt;
at &lt;a href="https://ordinarymantrying.com" rel="noopener noreferrer"&gt;ordinarymantrying.com&lt;/a&gt;.&lt;br&gt;
Ordinary Chinese guy, real stakes, no filter.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>discuss</category>
      <category>machinelearning</category>
      <category>python</category>
    </item>
    <item>
      <title>I built a free AI investing toolkit after running 7 experiments with 8 AI models — here's what I learned</title>
      <dc:creator>Văn Tuấn Lê</dc:creator>
      <pubDate>Sat, 25 Jul 2026 12:56:58 +0000</pubDate>
      <link>https://dev.to/vn_tunl_09a36fcbda701/i-built-a-free-ai-investing-toolkit-after-running-7-experiments-with-8-ai-models-heres-what-i-3gol</link>
      <guid>https://dev.to/vn_tunl_09a36fcbda701/i-built-a-free-ai-investing-toolkit-after-running-7-experiments-with-8-ai-models-heres-what-i-3gol</guid>
      <description>&lt;p&gt;I've been running an experiment for months: asking 8 different AI models (GPT-4, Claude, Gemini, DeepSeek, Kimi, Grok, Mistral, Perplexity) the exact same investing questions.&lt;/p&gt;

&lt;p&gt;One pattern kept emerging: every model, regardless of architecture, fell into one of 4 investing philosophies:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Index school&lt;/strong&gt; — diversify, minimize fees, let the market work&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Value school&lt;/strong&gt; — find underpriced assets with a margin of safety&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Growth school&lt;/strong&gt; — bet on high-growth compounders&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Trend school&lt;/strong&gt; — follow price momentum and manage risk tightly&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This got me thinking: most people using AI for investing are prompting blindly — their prompts don't match their actual philosophy. So they get generic answers.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I built
&lt;/h2&gt;

&lt;p&gt;A free browser-based toolkit: &lt;strong&gt;&lt;a href="https://ordinarymantrying.com/tools/ai-invest-os.html" rel="noopener noreferrer"&gt;My AI Investment Operating System&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Main tool:&lt;/strong&gt; 5-question diagnostic that identifies your investing school and generates a personalized Prompt Library — prompts you can drop into Claude, GPT-4, or any AI today.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;6 companion tools:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;DCA Simulator&lt;/strong&gt; — model dollar-cost averaging scenarios with compound projections&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Recovery Navigator&lt;/strong&gt; — calculate breakeven points and map exit strategies for losing positions&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Dividend Engine&lt;/strong&gt; — screen dividend stocks through the lens of your investing school&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Kelly Master&lt;/strong&gt; — apply Kelly Criterion to size positions correctly&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Pyramid Builder&lt;/strong&gt; — plan staged entry positions at multiple price levels&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Portfolio Clarity&lt;/strong&gt; — audit your current holdings against your school's criteria&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Tech stack
&lt;/h2&gt;

&lt;p&gt;Pure HTML/CSS/JS, no framework, no backend. Everything runs client-side. Hosted as static files on a WordPress site's &lt;code&gt;/tools/&lt;/code&gt; directory.&lt;/p&gt;

&lt;p&gt;The AI committee logic uses a scoring matrix built from patterns across all 7 experiments — no live API calls, all logic is embedded.&lt;/p&gt;

&lt;h2&gt;
  
  
  Link
&lt;/h2&gt;

&lt;p&gt;All free, no login: &lt;a href="https://ordinarymantrying.com/tools/ai-invest-os.html" rel="noopener noreferrer"&gt;https://ordinarymantrying.com/tools/ai-invest-os.html&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Would love feedback from developers who also invest — especially on the UX of the diagnostic flow.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>webdev</category>
      <category>opensource</category>
      <category>javascript</category>
    </item>
    <item>
      <title>I built a free AI investing toolkit after running 7 experiments with 8 AI models — here's what I learned</title>
      <dc:creator>Văn Tuấn Lê</dc:creator>
      <pubDate>Sat, 25 Jul 2026 11:46:46 +0000</pubDate>
      <link>https://dev.to/vn_tunl_09a36fcbda701/i-built-a-free-ai-investing-toolkit-after-running-7-experiments-with-8-ai-models-heres-what-i-2gao</link>
      <guid>https://dev.to/vn_tunl_09a36fcbda701/i-built-a-free-ai-investing-toolkit-after-running-7-experiments-with-8-ai-models-heres-what-i-2gao</guid>
      <description>&lt;p&gt;I've been running an experiment for months: asking 8 different AI models (GPT-4, Claude, Gemini, DeepSeek, Kimi, Grok, Mistral, Perplexity) the exact same investing questions.&lt;/p&gt;

&lt;p&gt;One pattern kept emerging: every model, regardless of architecture, fell into one of 4 investing philosophies:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Index school&lt;/strong&gt; — diversify, minimize fees, let the market work&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Value school&lt;/strong&gt; — find underpriced assets with a margin of safety&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Growth school&lt;/strong&gt; — bet on high-growth compounders&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Trend school&lt;/strong&gt; — follow price momentum and manage risk tightly&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This got me thinking: most people using AI for investing are prompting blindly — their prompts don't match their actual philosophy. So they get generic answers.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I built
&lt;/h2&gt;

&lt;p&gt;A free browser-based toolkit: &lt;strong&gt;&lt;a href="https://ordinarymantrying.com/tools/ai-invest-os.html" rel="noopener noreferrer"&gt;My AI Investment Operating System&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Main tool:&lt;/strong&gt; 5-question diagnostic that identifies your investing school and generates a personalized Prompt Library — prompts you can drop into Claude, GPT-4, or any AI today.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;6 companion tools:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;DCA Simulator&lt;/strong&gt; — model dollar-cost averaging scenarios with compound projections&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Recovery Navigator&lt;/strong&gt; — calculate breakeven points and map exit strategies for losing positions&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Dividend Engine&lt;/strong&gt; — screen dividend stocks through the lens of your investing school&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Kelly Master&lt;/strong&gt; — apply Kelly Criterion to size positions correctly&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Pyramid Builder&lt;/strong&gt; — plan staged entry positions at multiple price levels&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Portfolio Clarity&lt;/strong&gt; — audit your current holdings against your school's criteria&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Tech stack
&lt;/h2&gt;

&lt;p&gt;Pure HTML/CSS/JS, no framework, no backend. Everything runs client-side. Hosted as static files on a WordPress site's &lt;code&gt;/tools/&lt;/code&gt; directory.&lt;/p&gt;

&lt;p&gt;The AI committee logic uses a scoring matrix built from patterns across all 7 experiments — no live API calls, all logic is embedded.&lt;/p&gt;

&lt;h2&gt;
  
  
  Link
&lt;/h2&gt;

&lt;p&gt;All free, no login: &lt;a href="https://ordinarymantrying.com/tools/ai-invest-os.html" rel="noopener noreferrer"&gt;https://ordinarymantrying.com/tools/ai-invest-os.html&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Would love feedback from developers who also invest — especially on the UX of the diagnostic flow.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>webdev</category>
      <category>javascript</category>
      <category>opensource</category>
    </item>
  </channel>
</rss>
