<?xml version="1.0" encoding="utf-8"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"><channel><title>MagicLen</title><link>https://magiclen.org/category/software-design/feed</link><description>多元化原創文章，內容包羅萬象，有程式語言、網站應用、軟體介紹、硬體介紹、作業系統、旅行遊記、專題採訪、益智問題、文學創作，以及作者們的知識分享和作品分享。</description><language>zh-TW</language><lastBuildDate>Sat, 11 Apr 2026 10:06:12 +0000</lastBuildDate><sy:updatePeriod>hourly</sy:updatePeriod><sy:updateFrequency>8</sy:updateFrequency><sy:updateBase>1970-01-01T00:00+00:00</sy:updateBase><item><title>如何用JavaScript偵測網頁瀏覽器是否有擋廣告？</title><link>https://magiclen.org/adblock-checker</link><description><![CDATA[    <img src="https://magiclen.org/wp-content/uploads/2023/12/adb-220x162.png" srcset="https://magiclen.org/wp-content/uploads/2023/12/adb-220x162.png 1x, https://magiclen.org/wp-content/uploads/2023/12/adb-440x324.png 2x, https://magiclen.org/wp-content/uploads/2023/12/adb-660x486.png 3x" alt="">
反反廣告應該是大部份有在經營網站的人都想做的事情，筆者也不例外。以前用過一些偵測AdBlock等軟體的套件都因年久失修而失效，因此決定來自己做一個。「AdBlock Checker」是筆者開發的套件，可以偵測網頁瀏覽器是否有擋廣告。]]></description><category>JavaScript</category><category>JavaScript</category><category>TypeScript</category><category>adblock-checker</category><guid>https://magiclen.org/adblock-checker</guid><pubDate>Sat, 23 Dec 2023 19:00:00 +0800</pubDate><dc:creator>Magic Len</dc:creator></item><item><title>幫助存取HTML的時間日期元素值的函式庫</title><link>https://magiclen.org/input-time-helper</link><description><![CDATA[    <img src="https://magiclen.org/wp-content/uploads/2023/01/calendar-660670_1920-220x162.jpg" srcset="https://magiclen.org/wp-content/uploads/2023/01/calendar-660670_1920-220x162.jpg 1x, https://magiclen.org/wp-content/uploads/2023/01/calendar-660670_1920-440x324.jpg 2x, https://magiclen.org/wp-content/uploads/2023/01/calendar-660670_1920-660x486.jpg 3x" alt="">
在預設的情況下，基於日期和時間的HTML input元素值是以UTC時區為基準，這很容易造成混淆而誤用。]]></description><category>JavaScript</category><category>HTML</category><category>JavaScript</category><category>TypeScript</category><category>input-time-helper</category><guid>https://magiclen.org/input-time-helper</guid><pubDate>Sat, 23 Dec 2023 18:00:00 +0800</pubDate><dc:creator>Magic Len</dc:creator></item><item><title>如何根據容器大小自動調整HTML上的文字，使文字儘量不破壞排版</title><link>https://magiclen.org/fit-html-text</link><description><![CDATA[    <img src="https://magiclen.org/wp-content/uploads/2023/12/sutterlin-1362879_1280-220x162.jpg" srcset="https://magiclen.org/wp-content/uploads/2023/12/sutterlin-1362879_1280-220x162.jpg 1x, https://magiclen.org/wp-content/uploads/2023/12/sutterlin-1362879_1280-440x324.jpg 2x, https://magiclen.org/wp-content/uploads/2023/12/sutterlin-1362879_1280-660x486.jpg 3x" alt="">
早在2017年筆者在開發前端網頁的時候就遇到兩個問題：如果要做一個網頁，這網頁滿版顯示，在任意螢幕尺寸下都要長的差不多，文字的大小要怎麼處理呢？還有就是在文字高度僅允許一行文字的空間下，要怎麼保證使用者輸入的文字不會因為太多而使得顯示出來的時候換行，或是換太多行了，而導致畫面跑版？]]></description><category>JavaScript</category><category>HTML</category><category>JavaScript</category><category>TypeScript</category><category>fit-html-text</category><guid>https://magiclen.org/fit-html-text</guid><pubDate>Sat, 23 Dec 2023 17:00:00 +0800</pubDate><dc:creator>Magic Len</dc:creator></item><item><title>如何寫程式讀取中華民國健保卡內的資料？在網頁中也可以讀取嗎？</title><link>https://magiclen.org/tw-nhi-icc</link><description><![CDATA[    <img src="https://magiclen.org/wp-content/uploads/2023/12/%E5%81%A5%E4%BF%9D-220x162.png" srcset="https://magiclen.org/wp-content/uploads/2023/12/%E5%81%A5%E4%BF%9D-220x162.png 1x, https://magiclen.org/wp-content/uploads/2023/12/%E5%81%A5%E4%BF%9D-440x324.png 2x, https://magiclen.org/wp-content/uploads/2023/12/%E5%81%A5%E4%BF%9D-660x486.png 3x" alt="">
中華民國的健保IC卡必須使用相容於PC/SC介面的IC讀卡機來讀取。PC/SC的規範是由微軟與其它IC卡廠商共同訂定出來的，統一了IC卡的介面。因此如果要讀取IC卡，要在環境安裝好讀卡機的驅動程式，並且使用PC/SC的函式庫提供的功能來讀取。不過要使用PC/SC函式庫，並不是每個執行環境都能夠做到，像是網頁瀏覽器現階段應該還做不到，要等Web Smart Card API出來才行，但還是有其它方式...]]></description><category>作品分享</category><category>JavaScript</category><category>JavaScript</category><category>Linux</category><category>Windows</category><category>Rust</category><category>macOS</category><category>TypeScript</category><category>tw-nhi-icc</category><guid>https://magiclen.org/tw-nhi-icc</guid><pubDate>Sat, 23 Dec 2023 16:00:00 +0800</pubDate><dc:creator>Magic Len</dc:creator></item><item><title>如何寫程式計算時間和日期的差距？</title><link>https://magiclen.org/date-differencer</link><description><![CDATA[    <img src="https://magiclen.org/wp-content/uploads/2023/01/arrow-2085192_1920-220x162.jpg" srcset="https://magiclen.org/wp-content/uploads/2023/01/arrow-2085192_1920-220x162.jpg 1x, https://magiclen.org/wp-content/uploads/2023/01/arrow-2085192_1920-440x324.jpg 2x, https://magiclen.org/wp-content/uploads/2023/01/arrow-2085192_1920-660x486.jpg 3x" alt="">
有時候我們會需要寫程式去計算兩個時間點的差距，以求得年齡、經過了多少的時間，或是否還在某個期限之內等等的資訊。日(day)與時、分、秒的差距很好算，因為它們是固定的時間(不考慮閏秒)。但年、月就不一樣了，一個月可能有28至31天，一年可能有365或366天，我們無法直接將兩個時間點(的時間戳記)相減之後去除上一個固定的單位(例如拿相差的秒數去除以2592000秒)來算出隔了多少年、月，硬是要這麼算...]]></description><category>研究分享</category><category>Rust</category><category>演算法</category><category>JavaScript</category><category>JavaScript</category><category>Rust</category><category>TypeScript</category><category>爛Code</category><category>date-differencer</category><guid>https://magiclen.org/date-differencer</guid><pubDate>Tue, 24 Jan 2023 12:00:00 +0800</pubDate><dc:creator>Magic Len</dc:creator></item><item><title>如何寫程式判斷閏年並計算一個月有幾天？</title><link>https://magiclen.org/year-helper</link><description><![CDATA[    <img src="https://magiclen.org/wp-content/uploads/2023/01/calendar-660670_1920-220x162.jpg" srcset="https://magiclen.org/wp-content/uploads/2023/01/calendar-660670_1920-220x162.jpg 1x, https://magiclen.org/wp-content/uploads/2023/01/calendar-660670_1920-440x324.jpg 2x, https://magiclen.org/wp-content/uploads/2023/01/calendar-660670_1920-660x486.jpg 3x" alt="">
我們在小學階段都會學到平年(common year)和閏年(leap year)的判斷方式，以及這兩種年份是差在前者的二月有28天，後者則是有29天。所以平年整年一共有365天；閏年整年一共有366年。這是身為一個地球人的基本常識，但在小學的時候，老師可能只會告訴我們把西元年份的數字除以4，如果可以整除，那麼這年就是閏年，否則是平年。老師說的也不能說是錯的，只是不太完整，實際上，閏年的正確判斷方式...]]></description><category>Java</category><category>Rust</category><category>Go</category><category>JavaScript</category><category>JavaScript</category><category>Rust</category><category>TypeScript</category><category>year-helper</category><guid>https://magiclen.org/year-helper</guid><pubDate>Tue, 3 Jan 2023 12:00:00 +0800</pubDate><dc:creator>Magic Len</dc:creator></item><item><title>如何讓 JavaScript 程式等待(睡眠)一段時間？</title><link>https://magiclen.org/javascript-sleep</link><description><![CDATA[    <img src="https://magiclen.org/wp-content/uploads/2022/12/bird-7512017_1920-220x162.jpg" srcset="https://magiclen.org/wp-content/uploads/2022/12/bird-7512017_1920-220x162.jpg 1x, https://magiclen.org/wp-content/uploads/2022/12/bird-7512017_1920-440x324.jpg 2x, https://magiclen.org/wp-content/uploads/2022/12/bird-7512017_1920-660x486.jpg 3x" alt="">
雖然在撰寫程式的時候，在大部份的情況下我們都想要讓程式執行速度愈快愈好。但有時候在寫測試程式或是爬蟲時，我們會希望讓程式等待一段時間再繼續執行，以模擬I/O延遲或是真人操作延遲的效果。不過JavaScript並沒有直接提供讓執行緒睡眠(sleep)的功能，要怎麼模擬出sleep函數呢？]]></description><category>研究分享</category><category>JavaScript</category><category>JavaScript</category><category>node.js</category><category>TypeScript</category><category>爛Code</category><guid>https://magiclen.org/javascript-sleep</guid><pubDate>Tue, 27 Dec 2022 12:00:00 +0800</pubDate><dc:creator>Magic Len</dc:creator></item><item><title>JavaScript到底會把哪些字元當作是空白字元？</title><link>https://magiclen.org/javascript-white-space</link><description><![CDATA[    <img src="https://magiclen.org/wp-content/uploads/2022/12/space-3197611_1920-220x162.jpg" srcset="https://magiclen.org/wp-content/uploads/2022/12/space-3197611_1920-220x162.jpg 1x, https://magiclen.org/wp-content/uploads/2022/12/space-3197611_1920-440x324.jpg 2x, https://magiclen.org/wp-content/uploads/2022/12/space-3197611_1920-660x486.jpg 3x" alt="">
JavaScript可以使用正規表示式的「\s」來匹配空白字元，但究竟有哪些字元會被當作空白字元呢？在JavaScript中，全形空白「　」也算是空白字元嗎？這篇文章將會給各位解答。]]></description><category>研究分享</category><category>JavaScript</category><category>JavaScript</category><category>爛Code</category><guid>https://magiclen.org/javascript-white-space</guid><pubDate>Thu, 15 Dec 2022 12:00:00 +0800</pubDate><dc:creator>Magic Len</dc:creator></item><item><title>在Java和JavaScript中，字串的字數就等於字元數量嗎？錯！</title><link>https://magiclen.org/java-count-characters</link><description><![CDATA[    <img src="https://magiclen.org/wp-content/uploads/2022/12/font-4646566_1920-220x162.png" srcset="https://magiclen.org/wp-content/uploads/2022/12/font-4646566_1920-220x162.png 1x, https://magiclen.org/wp-content/uploads/2022/12/font-4646566_1920-440x324.png 2x, https://magiclen.org/wp-content/uploads/2022/12/font-4646566_1920-660x486.png 3x" alt="">
在Java和JavaScript中，我們經常會使用字串(String)提供的「length」成員(member)來抓取這個字串的字數。由於Java和JavaScript並不像Rust或是Golang程式語言這樣會直接抓到字串在經過編碼之後的位元組數量，而是會得到字元的數量，所以我們很直覺地就會在Java或JavaScript用這樣的方式來計算字串的字數。]]></description><category>研究分享</category><category>Java</category><category>JavaScript</category><category>Java</category><category>JavaScript</category><category>TypeScript</category><category>爛Code</category><guid>https://magiclen.org/java-count-characters</guid><pubDate>Tue, 13 Dec 2022 12:00:00 +0800</pubDate><dc:creator>Magic Len</dc:creator></item><item><title>如何快速統計程式碼的行數？</title><link>https://magiclen.org/tokei</link><description><![CDATA[    <img src="https://magiclen.org/wp-content/uploads/2022/11/shot-01-220x162.png" srcset="https://magiclen.org/wp-content/uploads/2022/11/shot-01-220x162.png 1x, https://magiclen.org/wp-content/uploads/2022/11/shot-01-440x324.png 2x, https://magiclen.org/wp-content/uploads/2022/11/shot-01-660x486.png 3x" alt="">
一個程式專案可能會由很多不同的程式語言、腳本語言、標記語言的原始碼組成。Tokei是一款免費、開源且跨平台的函式庫和指令工具，可以快速統計一個程式專案下共包含哪些程式碼以及程式碼的行數，支援上百種語言，且可以將統計結果以不同格式輸出。]]></description><category>程式設計</category><category>軟體介紹</category><category>Linux</category><category>Windows</category><category>Rust</category><category>macOS</category><category>Tokei</category><category>文書</category><guid>https://magiclen.org/tokei</guid><pubDate>Thu, 1 Dec 2022 12:00:00 +0800</pubDate><dc:creator>Magic Len</dc:creator></item></channel></rss>