<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <author>
    <name>Thắng Lê</name>
  </author>
  <generator uri="https://hexo.io/">Hexo</generator>
  <icon>https://ilog.thangle.dev/icon.png</icon>
  <id>https://ilog.thangle.dev/</id>
  <link href="https://ilog.thangle.dev/" rel="alternate"/>
  <link href="https://ilog.thangle.dev/atom.xml" rel="self"/>
  <rights>All rights reserved 2026, Thắng Lê</rights>
  <subtitle>Lập trình và cuộc sống</subtitle>
  <title>Thắng Lê</title>
  <updated>2026-10-10T07:57:45.000Z</updated>
  <entry>
    <author>
      <name>Thắng Lê</name>
    </author>
    <category term="lập trình" scheme="https://ilog.thangle.dev/categories/lap-trinh/"/>
    <category term="security" scheme="https://ilog.thangle.dev/tags/security/"/>
    <category term="freelancer" scheme="https://ilog.thangle.dev/tags/freelancer/"/>
    <category term="case-study" scheme="https://ilog.thangle.dev/tags/case-study/"/>
    <id>https://ilog.thangle.dev/en/lap-trinh/Case-study-chieu-thuc-scam-cai-malware-bang-svg-nham-vao-dev-freelancer/</id>
    <link href="https://ilog.thangle.dev/en/lap-trinh/Case-study-chieu-thuc-scam-cai-malware-bang-svg-nham-vao-dev-freelancer/"/>
    <published>2026-05-26T16:56:23.000Z</published>
    <summary>The full story of exposing a Next.js repo hiding malware inside an SVG file, from the job offer message on a freelancer platform to tracking down the eval call.</summary>
    <title>Case study: the SVG malware scam aimed at freelance devs</title>
    <updated>2026-10-10T07:57:45.000Z</updated>
  </entry>
  <entry>
    <author>
      <name>Thắng Lê</name>
    </author>
    <category term="linh tinh" scheme="https://ilog.thangle.dev/categories/linh-tinh/"/>
    <category term="tản văn" scheme="https://ilog.thangle.dev/tags/tan-van/"/>
    <category term="written-by-me" scheme="https://ilog.thangle.dev/tags/written-by-me/"/>
    <category term="truyen ngan" scheme="https://ilog.thangle.dev/tags/truyen-ngan/"/>
    <id>https://ilog.thangle.dev/en/linh-tinh/Do-it-first-before-buy/</id>
    <link href="https://ilog.thangle.dev/en/linh-tinh/Do-it-first-before-buy/"/>
    <published>2026-04-15T16:59:19.000Z</published>
    <summary>
      <![CDATA[<p>They reckon they’ve caught a very common spending disease: <strong>Buy-Before-You-Do syndrome</strong>.</p>
<p>Back when they first took]]>
    </summary>
    <title>Do it first before buy</title>
    <updated>2026-10-10T07:57:45.000Z</updated>
  </entry>
  <entry>
    <author>
      <name>Thắng Lê</name>
    </author>
    <category term="lập trình" scheme="https://ilog.thangle.dev/categories/lap-trinh/"/>
    <category term="til" scheme="https://ilog.thangle.dev/tags/til/"/>
    <category term="dev note" scheme="https://ilog.thangle.dev/tags/dev-note/"/>
    <id>https://ilog.thangle.dev/en/lap-trinh/Xoa-sach-toan-bo-thu-muc-node-modules-de-giai-phong-o-cung/</id>
    <link href="https://ilog.thangle.dev/en/lap-trinh/Xoa-sach-toan-bo-thu-muc-node-modules-de-giai-phong-o-cung/"/>
    <published>2026-02-02T10:06:38.000Z</published>
    <summary>A few dozen old projects means a few dozen GB of disk gone to node_modules. How to check the size first, then wipe every node_modules folder on macOS, Linux and Windows.</summary>
    <title>[Note] Wiping every node_modules folder to free up disk space</title>
    <updated>2026-09-21T02:53:36.000Z</updated>
  </entry>
  <entry>
    <author>
      <name>Thắng Lê</name>
    </author>
    <category term="lập trình" scheme="https://ilog.thangle.dev/categories/lap-trinh/"/>
    <category term="til" scheme="https://ilog.thangle.dev/tags/til/"/>
    <category term="dev note" scheme="https://ilog.thangle.dev/tags/dev-note/"/>
    <category term="git" scheme="https://ilog.thangle.dev/tags/git/"/>
    <id>https://ilog.thangle.dev/en/lap-trinh/Ignore-file-da-tracked-va-cac-tang-ignore-trong-Git/</id>
    <link href="https://ilog.thangle.dev/en/lap-trinh/Ignore-file-da-tracked-va-cac-tang-ignore-trong-Git/"/>
    <published>2026-01-31T12:44:38.000Z</published>
    <summary>A quick note on the syntax for ignoring already-tracked files in Git with skip-worktree, plus the three ignore layers: global, local repo, and the shared team gitignore.</summary>
    <title>[Note] Ignoring tracked files and the ignore layers in Git</title>
    <updated>2026-10-10T07:57:45.000Z</updated>
  </entry>
  <entry>
    <author>
      <name>Thắng Lê</name>
    </author>
    <category term="lập trình" scheme="https://ilog.thangle.dev/categories/lap-trinh/"/>
    <category term="c#" scheme="https://ilog.thangle.dev/tags/c/"/>
    <id>https://ilog.thangle.dev/en/lap-trinh/C-Ung-dung-toan-tu-explicit-implicit-vao-viec-gi-nhi/</id>
    <link href="https://ilog.thangle.dev/en/lap-trinh/C-Ung-dung-toan-tu-explicit-implicit-vao-viec-gi-nhi/"/>
    <published>2025-06-06T16:53:38.000Z</published>
    <summary>What are explicit and implicit casting in C# good for? Three practical examples: converting a model to a DTO, dropping the ToString override, and assigning values.</summary>
    <title>[C#] What is the explicit/implicit operator actually useful for?</title>
    <updated>2026-10-10T07:57:45.000Z</updated>
  </entry>
  <entry>
    <author>
      <name>Thắng Lê</name>
    </author>
    <category term="lập trình" scheme="https://ilog.thangle.dev/categories/lap-trinh/"/>
    <category term="c#" scheme="https://ilog.thangle.dev/tags/c/"/>
    <category term="shorttip" scheme="https://ilog.thangle.dev/tags/shorttip/"/>
    <id>https://ilog.thangle.dev/en/lap-trinh/Chuyen-model-ve-DTO-bang-operator-trong-C/</id>
    <link href="https://ilog.thangle.dev/en/lap-trinh/Chuyen-model-ve-DTO-bang-operator-trong-C/"/>
    <published>2025-06-01T04:53:16.000Z</published>
    <summary>Instead of writing a ToDto method or reaching for AutoMapper, this post uses the explicit operator in C# to convert a model class into a DTO class when responding to the client.</summary>
    <title>Converting a model to a DTO with an operator in C#</title>
    <updated>2026-09-21T02:53:36.000Z</updated>
  </entry>
  <entry>
    <author>
      <name>Thắng Lê</name>
    </author>
    <category term="lập trình" scheme="https://ilog.thangle.dev/categories/lap-trinh/"/>
    <category term="c#" scheme="https://ilog.thangle.dev/tags/c/"/>
    <category term="dotnet" scheme="https://ilog.thangle.dev/tags/dotnet/"/>
    <category term="linux service" scheme="https://ilog.thangle.dev/tags/linux-service/"/>
    <id>https://ilog.thangle.dev/en/lap-trinh/How-to-create-and-run-worker-service-C-in-Linux/</id>
    <link href="https://ilog.thangle.dev/en/lap-trinh/How-to-create-and-run-worker-service-C-in-Linux/"/>
    <published>2024-12-17T15:30:22.000Z</published>
    <summary>
      <![CDATA[<p>Running a background process on Linux is a common requirement for developers, especially when deploying worker services built with C#.]]>
    </summary>
    <title>How to create and run worker service C# in Linux?</title>
    <updated>2026-10-10T07:57:45.000Z</updated>
  </entry>
  <entry>
    <author>
      <name>Thắng Lê</name>
    </author>
    <category term="lập trình" scheme="https://ilog.thangle.dev/categories/lap-trinh/"/>
    <category term="os" scheme="https://ilog.thangle.dev/tags/os/"/>
    <id>https://ilog.thangle.dev/en/lap-trinh/Vai-note-ve-OS-Don-nhiem-vs-da-nhiem/</id>
    <link href="https://ilog.thangle.dev/en/lap-trinh/Vai-note-ve-OS-Don-nhiem-vs-da-nhiem/"/>
    <published>2024-10-05T16:25:25.000Z</published>
    <summary>A few notes on how the operating system handles programs: single-tasking and multitasking, uniprogramming and multiprogramming, time-sharing, hyper-threading, multi-core, and the kinds of multitasking.</summary>
    <title>A few notes on the OS - single-tasking vs multitasking</title>
    <updated>2026-09-21T02:53:36.000Z</updated>
  </entry>
  <entry>
    <author>
      <name>Thắng Lê</name>
    </author>
    <category term="lập trình" scheme="https://ilog.thangle.dev/categories/lap-trinh/"/>
    <category term="shorttip" scheme="https://ilog.thangle.dev/tags/shorttip/"/>
    <category term="git" scheme="https://ilog.thangle.dev/tags/git/"/>
    <id>https://ilog.thangle.dev/en/lap-trinh/Mot-so-git-workflow-co-ban-du-xai/</id>
    <link href="https://ilog.thangle.dev/en/lap-trinh/Mot-so-git-workflow-co-ban-du-xai/"/>
    <published>2024-07-10T18:36:51.000Z</published>
    <summary>
      <![CDATA[<p>Below is a round-up of the most basic commands, the ones anyone who has been at this a while has used already. As far as I can tell this]]>
    </summary>
    <title>A few basic git workflows, enough to get by</title>
    <updated>2026-09-21T02:53:36.000Z</updated>
  </entry>
  <entry>
    <author>
      <name>Thắng Lê</name>
    </author>
    <category term="lập trình" scheme="https://ilog.thangle.dev/categories/lap-trinh/"/>
    <category term="c#" scheme="https://ilog.thangle.dev/tags/c/"/>
    <id>https://ilog.thangle.dev/en/lap-trinh/Nen-su-dung-Any-Contains-hay-Exists-trong-C/</id>
    <link href="https://ilog.thangle.dev/en/lap-trinh/Nen-su-dung-Any-Contains-hay-Exists-trong-C/"/>
    <published>2024-06-03T18:24:32.000Z</published>
    <summary>Any, Contains or Exists in C#, which one should you use? A look at how each one works, how they differ, and a speed comparison to pick the right one.</summary>
    <title>Should you use Any, Contains or Exists in C#?</title>
    <updated>2026-10-10T07:57:45.000Z</updated>
  </entry>
  <entry>
    <author>
      <name>Thắng Lê</name>
    </author>
    <category term="lập trình" scheme="https://ilog.thangle.dev/categories/lap-trinh/"/>
    <category term="javascript" scheme="https://ilog.thangle.dev/tags/javascript/"/>
    <category term="c#" scheme="https://ilog.thangle.dev/tags/c/"/>
    <category term="os" scheme="https://ilog.thangle.dev/tags/os/"/>
    <id>https://ilog.thangle.dev/en/lap-trinh/Xu-ly-dong-thoi-va-song-song-trong-ngon-ngu-lap-trinh-khac-nhau-nhu-the-nao/</id>
    <link href="https://ilog.thangle.dev/en/lap-trinh/Xu-ly-dong-thoi-va-song-song-trong-ngon-ngu-lap-trinh-khac-nhau-nhu-the-nao/"/>
    <published>2021-02-21T14:59:49.000Z</published>
    <summary>Explaining how concurrent processing and parallel processing differ, from synchronous and asynchronous programming to how they actually run.</summary>
    <title>How do concurrent and parallel processing differ across programming languages?</title>
    <updated>2026-10-10T07:57:45.000Z</updated>
  </entry>
  <entry>
    <author>
      <name>Thắng Lê</name>
    </author>
    <category term="lập trình" scheme="https://ilog.thangle.dev/categories/lap-trinh/"/>
    <category term="til" scheme="https://ilog.thangle.dev/tags/til/"/>
    <category term="howto" scheme="https://ilog.thangle.dev/tags/howto/"/>
    <id>https://ilog.thangle.dev/en/lap-trinh/TIL-Dong-y-ket-ban-hang-loat-tren-LinkedIn/</id>
    <link href="https://ilog.thangle.dev/en/lap-trinh/TIL-Dong-y-ket-ban-hang-loat-tren-LinkedIn/"/>
    <published>2020-11-17T16:35:46.000Z</published>
    <summary>When LinkedIn connection invites pile up to the point where clicking Accept makes your hand sore, here is a console script to accept them all in bulk.</summary>
    <title>[TIL] Accepting LinkedIn connection requests in bulk</title>
    <updated>2026-09-21T02:53:36.000Z</updated>
  </entry>
  <entry>
    <author>
      <name>Thắng Lê</name>
    </author>
    <category term="lập trình" scheme="https://ilog.thangle.dev/categories/lap-trinh/"/>
    <category term="til" scheme="https://ilog.thangle.dev/tags/til/"/>
    <category term="javascript" scheme="https://ilog.thangle.dev/tags/javascript/"/>
    <category term="howto" scheme="https://ilog.thangle.dev/tags/howto/"/>
    <id>https://ilog.thangle.dev/en/lap-trinh/Lam-the-nao-trim-zero-so-0-o-truoc-mot-string-number-trong-JS/</id>
    <link href="https://ilog.thangle.dev/en/lap-trinh/Lam-the-nao-trim-zero-so-0-o-truoc-mot-string-number-trong-JS/"/>
    <published>2020-10-14T05:30:35.000Z</published>
    <summary>
      <![CDATA[<p>If you have a string number with leading zero. Example 001, 002, 01, …. How to remove it? In this simple post, I’ll show you how can we]]>
    </summary>
    <title>How to trim leading zeros from a string number in JS</title>
    <updated>2026-09-21T02:53:36.000Z</updated>
  </entry>
  <entry>
    <author>
      <name>Thắng Lê</name>
    </author>
    <category term="lập trình" scheme="https://ilog.thangle.dev/categories/lap-trinh/"/>
    <category term="javascript" scheme="https://ilog.thangle.dev/tags/javascript/"/>
    <category term="nodejs" scheme="https://ilog.thangle.dev/tags/nodejs/"/>
    <id>https://ilog.thangle.dev/en/lap-trinh/npm-va-npx-Su-khac-nhau-la-gi/</id>
    <link href="https://ilog.thangle.dev/en/lap-trinh/npm-va-npx-Su-khac-nhau-la-gi/"/>
    <published>2020-05-12T14:23:39.000Z</published>
    <summary>If you have ever wondered how npm and npx differ, or what they even are, this post is for you. Explaining npm, npx, and the difference between them.</summary>
    <title>npm and npx - What is the difference?</title>
    <updated>2026-09-21T02:53:36.000Z</updated>
  </entry>
</feed>
