[{"content":"遊戲介紹 準備中\n如何使用 登入遊戲 右上角【功能表】 點擊【\u0026hellip;】按鈕 選擇【兌換碼】 輸入兌換碼 如果你發現序號已過期，歡迎透過 DC 或 YT 留言區回報。 我是台港澳服玩家，但一樣會整理國際服序號，一併放在這邊，但我就不確定內容物了\n","permalink":"https://www.arlenfuture.com/games/neverness-to-everness-codes/","summary":"\u003ch2 id=\"遊戲介紹\"\u003e遊戲介紹\u003c/h2\u003e\n\u003cblockquote\u003e\n\u003cp\u003e準備中\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2 id=\"如何使用\"\u003e如何使用\u003c/h2\u003e\n\u003col\u003e\n\u003cli\u003e登入遊戲\u003c/li\u003e\n\u003cli\u003e右上角【功能表】\u003c/li\u003e\n\u003cli\u003e點擊【\u0026hellip;】按鈕\u003c/li\u003e\n\u003cli\u003e選擇【兌換碼】\u003c/li\u003e\n\u003cli\u003e輸入兌換碼\u003c/li\u003e\n\u003cli\u003e如果你發現序號已過期，歡迎透過 DC 或 YT 留言區回報。\u003c/li\u003e\n\u003c/ol\u003e\n\u003cblockquote\u003e\n\u003cp\u003e我是台港澳服玩家，但一樣會整理國際服序號，一併放在這邊，但我就不確定內容物了\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c!-- 這裡會放 code block --\u003e\n\u003cdiv id=\"code-container\"\u003e\u003c/div\u003e\n\u003cscript\u003e\nconst now = new Date();\nconst codes = [\n//   { code: \"SAMPLE\", expiry: \"2026-03-31\", reward: \"範例\" },\n  { code: \"LACRIMOSA0603\", expiry: \"2026-06-24\", reward: \"※此序號僅提供國際服玩家使用，大小寫有區分，環石x30 + 番茄羅勒通心粉x1 + 方斯x20000\" },\n  { code: \"Lacrimosa0603\", expiry: \"2026-06-24\", reward: \"※此序號僅提供台港澳服玩家使用，大小寫有區分，環石x30 + 番茄羅勒通心粉x1 + 方斯x20000\" },\n  { code: \"RACENOLIMIT\", expiry: \"2026-05-26\", reward: \"環石x100 + 特級獵人攻略x5 + 渾沌染劑x5 + 甲硬幣x12000\" },\n  { code: \"TOMATO100\", expiry: \"2026-05-26\", reward: \"環石x100 + 資深獵人攻略x5 + 無彩染劑x5 + 甲硬幣x6000\" },\n  { code: \"DREAMWALK0603\", expiry: \"2026-05-26\", reward: \"環石x100 + 新銳獵人攻略x5 + 淡色染劑x5 + 甲硬幣x4000\" },\n  { code: \"351051468NZYORRI\", reward: \"※此序號僅提供台港澳服玩家使用，方斯x50000 + 甲硬幣x50000\" },\n  { code: \"917009174FUDSSIS\", reward: \"※此序號僅提供國際服玩家使用，內容物待補充\" },\n  { code: \"504980102FKGOVNS\", expiry: \"2026-05-14\", reward: \"※此序號僅提供國際服玩家使用，內容物待補充\" },\n  { code: \"NTEvtuber200\", expiry: \"2026-07-01\", reward: \"方斯x10000 + 甲硬幣x10000\" },\n  { code: \"NTEFREE\", expiry: \"2026-07-01\", reward: \"方斯x30000\" },\n  { code: \"NTEFUNGAME\", reward: \"方斯x10000\" },\n  { code: \"NTEWINFONS\", expiry: \"2026-07-01\", reward: \"方斯x20000\" },\n  { code: \"NTE429vtuber\", expiry: \"2026-06-01\", reward: \"方斯x30000 + 甲硬幣x30000\" },\n  { code: \"NTENENE\", expiry: \"2026-08-01\", reward: \"方斯x10000 + 炫動x10 + 咔嘰瑪薯霸x10\" },\n  { code: \"678573035NXLFMWE\", expiry: \"2026-05-14\", reward: \"※此序號僅提供台港澳服玩家使用，環石x30 + 咕比奇原味洋芋片x1 + 甲硬幣x20000\" },\n  { code: \"NTEGIFT\", expiry: \"2026-07-01\", reward: \"4/29 下午 5 點實測台服也可以領了！環石x50 + 新銳獵人攻略x5 + 淡色染劑x5\" },\n  { code: \"NTEHAVEFUN\", expiry: \"2026-05-07\", reward: \"新銳獵人攻略x3 + 淡色染劑x3 + 井小屑x3\" },\n  { code: \"NTENOWTOENJOY\", expiry: \"2026-05-14\", reward: \"環石x100 + 新銳獵人攻略x5 + 淡色染劑x5 + 甲硬幣x4000\" },\n  { code: \"NTENANALLYGO\", expiry: \"2026-05-14\", reward: \"環石x100 + 資深獵人攻略x5 + 無彩染劑x5 + 甲硬幣x6000\" },\n  { code: \"NTE0429\", expiry: \"2026-05-14\", reward: \"環石x100 + 特級獵人攻略x2 + 混沌染劑x2 + 甲硬幣x12000\" },\n];\n\nconst container = document.getElementById(\"code-container\");\n\nfunction createBlock(item) {\n  const wrapper = document.createElement(\"div\");\n\n  const title = document.createElement(\"h3\");\n  title.textContent = `獎勵：${item.reward || \"待補充\"}`;\n\n  const pre = document.createElement(\"pre\");\n  const code = document.createElement(\"code\");\n  code.textContent = item.code;\n\n  const btn = document.createElement(\"button\");\n  btn.className = \"copy-code\";\n  btn.textContent = \"複製\";\n\n  btn.addEventListener(\"click\", async () =\u003e {\n    try {\n      await navigator.clipboard.writeText(item.code);\n      btn.textContent = \"已複製 ✔\";\n      setTimeout(() =\u003e btn.textContent = \"複製\", 1200);\n    } catch (e) {\n      btn.textContent = \"失敗\";\n      setTimeout(() =\u003e btn.textContent = \"複製\", 1200);\n    }\n  });\n\n  pre.appendChild(code);\n  pre.appendChild(btn);\n\n  wrapper.appendChild(title);\n  wrapper.appendChild(pre);\n\n  return wrapper;\n}\n\nconst validTitle = document.createElement(\"h2\");\nvalidTitle.textContent = \"✅ 有效兌換碼，失效的話歡迎回報\";\n\nconst expiredTitle = document.createElement(\"h2\");\nexpiredTitle.textContent = \"❌ 失效兌換碼\";\n\nconst validSection = document.createElement(\"div\");\nconst expiredSection = document.createElement(\"div\");\n\ncontainer.appendChild(validTitle);\ncontainer.appendChild(validSection);\ncontainer.appendChild(expiredTitle);\ncontainer.appendChild(expiredSection);\n\ncodes.forEach(item =\u003e {\n  let isExpired = false;\n\n  if (item.expiry) {\n    const expiryDate = new Date(item.expiry);\n    expiryDate.setHours(23, 59, 59, 999);\n    if (expiryDate \u003c now) isExpired = true;\n  }\n\n  const block = createBlock(item);\n\n  if (isExpired) {\n    expiredSection.appendChild(block);\n  } else {\n    validSection.appendChild(block);\n  }\n});\n\u003c/script\u003e","title":"《異環》台港澳 國際服 免費序號兌換碼"},{"content":"遊戲介紹 如何使用 找到你想用的序號。 點擊序號框右上即可複製。\n打開遊戲設定內的其他欄序號兌換貼上完成使用。 如果你發現序號已過期，歡迎透過 DC 或 其他社群回報。 ","permalink":"https://www.arlenfuture.com/games/where-winds-meet-codes/","summary":"\u003ch2 id=\"遊戲介紹\"\u003e遊戲介紹\u003c/h2\u003e\n\u003cdiv style=\"position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;\"\u003e\n      \u003ciframe allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen\" loading=\"eager\" referrerpolicy=\"strict-origin-when-cross-origin\" src=\"https://www.youtube.com/embed/r6CLGRBDp9k?autoplay=0\u0026amp;controls=1\u0026amp;end=0\u0026amp;loop=0\u0026amp;mute=0\u0026amp;start=0\" style=\"position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;\" title=\"YouTube video\"\u003e\u003c/iframe\u003e\n    \u003c/div\u003e\n\n\u003ch2 id=\"如何使用\"\u003e如何使用\u003c/h2\u003e\n\u003col\u003e\n\u003cli\u003e找到你想用的序號。\u003c/li\u003e\n\u003cli\u003e點擊序號框右上即可複製。\u003cbr\u003e\n\u003cimg alt=\"兌換方式\" loading=\"lazy\" src=\"https://images.arlenfuture.com/2026/04/where-winds-meet-codes/how-to-redeem.webp\" title=\"兌換方式\"\u003e\u003c/li\u003e\n\u003cli\u003e打開遊戲設定內的其他欄序號兌換貼上完成使用。\u003c/li\u003e\n\u003cli\u003e如果你發現序號已過期，歡迎透過 DC 或 其他社群回報。\u003c/li\u003e\n\u003c/ol\u003e\n\u003c!-- 這裡會放 code block --\u003e\n\u003cdiv id=\"code-container\"\u003e\u003c/div\u003e\n\u003cscript\u003e\nconst now = new Date();\nconst codes = [\n//   { code: \"SAMPLE\", expiry: \"2026-03-31\", reward: \"範例\" },\n  { code: \"WWMREDDIT\", reward: \"長鳴玉x50 + 通寶x2000 + 心法心得·散本x1 + 振玉x2\" },\n  { code: \"MCPT3JF473\", reward: \"長鳴玉x3 + 通寶x5000 + 心法心得·散本x1\" },\n  { code: \"PALACEGO\", reward: \"長鳴玉x50 + 通寶x20000 + 心法心得·散本x2 + 振玉x2\" },\n  { code: \"PALACE0528\", reward: \"長鳴玉x100 + 繞梁之音x1 + 通寶x20000\" },\n  { code: \"HAPPY515\", reward: \"長鳴玉x50 + 通寶x20000 + 心法心得·散本x2\" },\n  { code: \"WWMQC1\", expiry: \"2026-06-01\", reward: \"長鳴玉x10 + 通寶x20000 + 心法心得·散本x2 + 振玉x2\" },\n  { code: \"WWMQC2\", expiry: \"2026-06-01\", reward: \"長鳴玉x10 + 通寶x20000 + 心法心得·散本x2 + 振玉x2\" },\n  { code: \"WWMQC3\", expiry: \"2026-06-01\", reward: \"長鳴玉x10 + 通寶x20000 + 心法心得·散本x2 + 振玉x2\" },\n  { code: \"WWMQC4\", expiry: \"2026-06-01\", reward: \"長鳴玉x10 + 通寶x20000 + 心法心得·散本x2 + 振玉x2\" },\n  { code: \"WWMQC5\", expiry: \"2026-06-01\", reward: \"長鳴玉x10 + 通寶x20000 + 心法心得·散本x2 + 振玉x2\" },\n  { code: \"WWMQC6\", expiry: \"2026-06-01\", reward: \"長鳴玉x10 + 通寶x20000 + 心法心得·散本x2 + 振玉x2\" },\n  { code: \"WWMQC7\", expiry: \"2026-06-01\", reward: \"長鳴玉x10 + 通寶x20000 + 心法心得·散本x2 + 振玉x2\" },\n  { code: \"WWMQC8\", expiry: \"2026-06-01\", reward: \"長鳴玉x10 + 通寶x20000 + 心法心得·散本x2 + 振玉x2\" },\n  { code: \"WWMQC9\", expiry: \"2026-06-01\", reward: \"長鳴玉x10 + 通寶x20000 + 心法心得·散本x2 + 振玉x2\" },\n  { code: \"WWMQC10\", expiry: \"2026-06-01\", reward: \"長鳴玉x10 + 通寶x20000 + 心法心得·散本x2 + 振玉x2\" },\n  { code: \"WWMQC11\", expiry: \"2026-06-01\", reward: \"長鳴玉x10 + 通寶x20000 + 心法心得·散本x2 + 振玉x2\" },\n  { code: \"WWMQC12\", expiry: \"2026-06-01\", reward: \"長鳴玉x10 + 通寶x20000 + 心法心得·散本x2 + 振玉x2\" },\n  { code: \"WWMQC13\", expiry: \"2026-06-01\", reward: \"長鳴玉x10 + 通寶x20000 + 心法心得·散本x2 + 振玉x2\" },\n  { code: \"WWMQC14\", expiry: \"2026-06-01\", reward: \"長鳴玉x10 + 通寶x20000 + 心法心得·散本x2 + 振玉x2\" },\n  { code: \"WWMQC15\", expiry: \"2026-06-01\", reward: \"長鳴玉x10 + 通寶x20000 + 心法心得·散本x2 + 振玉x2\" },\n  { code: \"WWMQC16\", expiry: \"2026-06-01\", reward: \"長鳴玉x10 + 通寶x20000 + 心法心得·散本x2 + 振玉x2\" },\n  { code: \"WWMQC17\", expiry: \"2026-06-01\", reward: \"長鳴玉x10 + 通寶x20000 + 心法心得·散本x2 + 振玉x2\" },\n  { code: \"WWMQC18\", expiry: \"2026-06-01\", reward: \"長鳴玉x10 + 通寶x20000 + 心法心得·散本x2 + 振玉x2\" },\n  { code: \"WWMQC19\", expiry: \"2026-06-01\", reward: \"長鳴玉x10 + 通寶x20000 + 心法心得·散本x2 + 振玉x2\" },\n  { code: \"WWMQC20\", expiry: \"2026-06-01\", reward: \"長鳴玉x10 + 通寶x20000 + 心法心得·散本x2 + 振玉x2\" },\n  { code: \"WWMQC21\", expiry: \"2026-06-01\", reward: \"長鳴玉x10 + 通寶x20000 + 心法心得·散本x2 + 振玉x2\" },\n  { code: \"WWMQC22\", expiry: \"2026-06-01\", reward: \"長鳴玉x10 + 通寶x20000 + 心法心得·散本x2 + 振玉x2\" },\n  { code: \"WWMQC23\", expiry: \"2026-06-01\", reward: \"長鳴玉x10 + 通寶x20000 + 心法心得·散本x2 + 振玉x2\" },\n  { code: \"WWMQC24\", expiry: \"2026-06-01\", reward: \"長鳴玉x10 + 通寶x20000 + 心法心得·散本x2 + 振玉x2\" },\n  { code: \"WWMQC25\", expiry: \"2026-06-01\", reward: \"長鳴玉x10 + 通寶x20000 + 心法心得·散本x2 + 振玉x2\" },\n  { code: \"WWMQC26\", expiry: \"2026-06-01\", reward: \"長鳴玉x10 + 通寶x20000 + 心法心得·散本x2 + 振玉x2\" },\n  { code: \"WWMQC27\", expiry: \"2026-06-01\", reward: \"長鳴玉x10 + 通寶x20000 + 心法心得·散本x2 + 振玉x2\" },\n  { code: \"WWMQC28\", expiry: \"2026-06-01\", reward: \"長鳴玉x10 + 通寶x20000 + 心法心得·散本x2 + 振玉x2\" },\n  { code: \"WWMQC29\", expiry: \"2026-06-01\", reward: \"長鳴玉x10 + 通寶x20000 + 心法心得·散本x2 + 振玉x2\" },\n  { code: \"WWMQC30\", expiry: \"2026-06-01\", reward: \"長鳴玉x10 + 通寶x20000 + 心法心得·散本x2 + 振玉x2\" },\n  { code: \"WWMXATM0501\", expiry: \"2026-07-01\", reward: \"長鳴玉x10 + 通寶x1000\" },\n  { code: \"QINCHUANGOGO\", reward: \"長鳴玉x50 + 通寶x20000 + 心法心得·散本x2 + 振玉x2\" },\n  { code: \"QINCHUAN0430\", reward: \"長鳴玉x100 + 繞梁之音x1 + 通寶x20000\" },\n  { code: \"LIANGZHOUGO\", reward: \"長鳴玉x30 + 通寶x3000 + 心法心得·散本x1\" },\n  { code: \"LIANGZHOU0402\", reward: \"長鳴玉x50\" },\n  { code: \"MEETINHEXI\"},\n  { code: \"HEXI0306\" },\n  { code: \"TF37WR876K\" },\n  { code: \"WWMDEVTALK\"}\n];\n\nconst container = document.getElementById(\"code-container\");\n\nfunction createBlock(item) {\n  const wrapper = document.createElement(\"div\");\n\n  const title = document.createElement(\"h3\");\n  title.textContent = `獎勵：${item.reward || \"待補充\"}`;\n\n  const pre = document.createElement(\"pre\");\n  const code = document.createElement(\"code\");\n  code.textContent = item.code;\n\n  const btn = document.createElement(\"button\");\n  btn.className = \"copy-code\";\n  btn.textContent = \"複製\";\n\n  btn.addEventListener(\"click\", async () =\u003e {\n    try {\n      await navigator.clipboard.writeText(item.code);\n      btn.textContent = \"已複製 ✔\";\n      setTimeout(() =\u003e btn.textContent = \"複製\", 1200);\n    } catch (e) {\n      btn.textContent = \"失敗\";\n      setTimeout(() =\u003e btn.textContent = \"複製\", 1200);\n    }\n  });\n\n  pre.appendChild(code);\n  pre.appendChild(btn);\n\n  wrapper.appendChild(title);\n  wrapper.appendChild(pre);\n\n  return wrapper;\n}\n\nconst validTitle = document.createElement(\"h2\");\nvalidTitle.textContent = \"✅ 有效兌換碼，失效的話歡迎回報\";\n\nconst expiredTitle = document.createElement(\"h2\");\nexpiredTitle.textContent = \"❌ 失效兌換碼\";\n\nconst validSection = document.createElement(\"div\");\nconst expiredSection = document.createElement(\"div\");\n\ncontainer.appendChild(validTitle);\ncontainer.appendChild(validSection);\ncontainer.appendChild(expiredTitle);\ncontainer.appendChild(expiredSection);\n\ncodes.forEach(item =\u003e {\n  let isExpired = false;\n\n  if (item.expiry) {\n    const expiryDate = new Date(item.expiry);\n    expiryDate.setHours(23, 59, 59, 999);\n    if (expiryDate \u003c now) isExpired = true;\n  }\n\n  const block = createBlock(item);\n\n  if (isExpired) {\n    expiredSection.appendChild(block);\n  } else {\n    validSection.appendChild(block);\n  }\n});\n\u003c/script\u003e","title":"《燕雲十六聲》國際服 免費序號兌換碼"},{"content":"影片教學 輸入消費金額與各項回饋條件，自動計算哪種儲值方式最划算。\n本計算機結果僅供參考，實際優惠以各平台公告為準。\nmomo 購物網晚上 8～12 點不定時會有夜貓優惠，95 折以下那種。\nMyCard 會員扣點 燕雲十六聲 儲值回饋 （以上純屬個人整理與經驗分享，優惠內容請依官方公告為準）\n沒有活動時，單買長鳴珠時，黃色區塊的面額 CP 值最高，可以考慮首儲獎勵拿完後，優先考慮。 基本 消費金額 MyCard MyCard 折數 MyCard 信用卡回饋 (%) Google Play Play 等級 銅 (1) 銀 (1.25) 黃金 (1.5) 白金 (1.75) 鑽石 (2) 每 $30 獲得點數 活動倍率 點數兌換 Google Play 抵用金 (0.3) Google Play 信用卡回饋 (%) 1.5% 外國交易手續費 計算 ","permalink":"https://www.arlenfuture.com/tools/wwm-recharge-comparator/","summary":"\u003ch1 id=\"影片教學\"\u003e影片教學\u003c/h1\u003e\n\u003cdiv style=\"position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;\"\u003e\n      \u003ciframe allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen\" loading=\"eager\" referrerpolicy=\"strict-origin-when-cross-origin\" src=\"https://www.youtube.com/embed/qtjM3ph6bl0?autoplay=0\u0026amp;controls=1\u0026amp;end=0\u0026amp;loop=0\u0026amp;mute=0\u0026amp;start=0\" style=\"position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;\" title=\"YouTube video\"\u003e\u003c/iframe\u003e\n    \u003c/div\u003e\n\n\u003cblockquote\u003e\n\u003cp\u003e輸入消費金額與各項回饋條件，自動計算哪種儲值方式最划算。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cblockquote\u003e\n\u003cp\u003e本計算機結果僅供參考，實際優惠以各平台公告為準。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cblockquote\u003e\n\u003cp\u003emomo 購物網晚上 8～12 點不定時會有夜貓優惠，95 折以下那種。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://app.mycard520.com.tw/wherewindsmeet/\"\u003eMyCard 會員扣點 燕雲十六聲 儲值回饋\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e（以上純屬個人整理與經驗分享，優惠內容請依官方公告為準）\u003c/p\u003e\n\n\u003cstyle\u003e\n.wwm-calc {\n    max-width: 720px;\n    margin: auto;\n    padding: 25px 0;\n}\n\n.wwm-calc input[type=\"checkbox\"] {\n    width: auto;\n    padding: 0;\n    margin-top: 0;\n    vertical-align: middle;\n}\n\n.wwm-calc .wwm-check-label {\n    display: flex;\n    align-items: center;\n    gap: 8px;\n    cursor: pointer;\n}\n\n.wwm-section {\n    margin-top: 25px;\n}\n\n.wwm-calc label {\n    display: block;\n    margin-top: 10px;\n}\n\n.wwm-calc input[type=\"number\"],\n.wwm-calc select {\n    width: 100%;\n    padding: 8px;\n    margin-top: 5px;\n    box-sizing: border-box;\n    border: 1px solid #aaa;\n    border-radius: 4px;\n    background: #fff;\n    color: #222;\n    font-size: 15px;\n    appearance: auto;\n    -webkit-appearance: auto;\n}\n\n.wwm-calc button {\n    margin-top: 20px;\n    width: 100%;\n    padding: 12px;\n    font-size: 16px;\n    background: #4CAF50;\n    color: white;\n    border: none;\n    border-radius: 5px;\n    cursor: pointer;\n}\n\n.wwm-calc button:hover {\n    background: #45a049;\n}\n\n.wwm-result {\n    margin-top: 20px;\n    padding: 15px;\n    background: #eef7ff;\n    border-radius: 6px;\n    line-height: 1.8;\n    display: none;\n}\n\u003c/style\u003e\n\n\u003cdiv class=\"wwm-calc\"\u003e\n\n\u003c!-- 儲值建議圖 --\u003e\n\u003cdiv style=\"text-align: center; margin-bottom: 20px;\"\u003e\n    \u003cimg src=\"https://images.arlenfuture.com/tools/wwm-recharge-comparator/menu.webp\"\n         alt=\"燕雲十六聲儲值面額建議\"\n         style=\"max-width: 100%; border-radius: 8px;\"\u003e\n    \u003cp style=\"margin-top: 10px; font-size: 0.95rem; color: #555;\"\u003e\n        沒有活動時，單買長鳴珠時，黃色區塊的面額 CP 值最高，可以考慮首儲獎勵拿完後，優先考慮。\n    \u003c/p\u003e","title":"燕雲十六聲｜儲值計算機"},{"content":"影片連結 圖文教學 前置條件 請先在 Steam 設定好啟動選項：\n收藏庫 →《燕雲十六聲》右鍵 → 內容 → 已選的啟動選項 → 選擇「燕雲十六聲(DirectX12)」\n捷徑設定說明 接著修改桌面捷徑：\n桌面捷徑 → 右鍵 → 內容 → 網頁文件 → URL\nsteam://launch/3564740/dialog 補充說明 這個指令的作用是讓你在啟動時透過「已選的啟動選項」進入遊戲。\ndialog參數必須保留 若未加上dialog，遊戲會直接以預設模式啟動 ","permalink":"https://www.arlenfuture.com/games/where-winds-meet-steam-dx12-shortcut/","summary":"\u003ch2 id=\"影片連結\"\u003e影片連結\u003c/h2\u003e\n\u003cdiv style=\"position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;\"\u003e\n      \u003ciframe allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen\" loading=\"eager\" referrerpolicy=\"strict-origin-when-cross-origin\" src=\"https://www.youtube.com/embed/vFjK3kAZYRc?autoplay=0\u0026amp;controls=1\u0026amp;end=0\u0026amp;loop=0\u0026amp;mute=0\u0026amp;start=0\" style=\"position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;\" title=\"YouTube video\"\u003e\u003c/iframe\u003e\n    \u003c/div\u003e\n\n\u003ch2 id=\"圖文教學\"\u003e圖文教學\u003c/h2\u003e\n\u003ch3 id=\"前置條件\"\u003e前置條件\u003c/h3\u003e\n\u003cp\u003e請先在 Steam 設定好啟動選項：\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e收藏庫 →《燕雲十六聲》右鍵 → 內容 → 已選的啟動選項 → 選擇「燕雲十六聲(DirectX12)」\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch3 id=\"捷徑設定說明\"\u003e捷徑設定說明\u003c/h3\u003e\n\u003cp\u003e接著修改桌面捷徑：\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e桌面捷徑 → 右鍵 → 內容 → 網頁文件 → URL\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003esteam://launch/3564740/dialog\n\u003c/code\u003e\u003c/pre\u003e\u003ch3 id=\"補充說明\"\u003e補充說明\u003c/h3\u003e\n\u003cp\u003e這個指令的作用是讓你在啟動時透過「已選的啟動選項」進入遊戲。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003edialog\u003c/code\u003e參數必須保留\u003c/li\u003e\n\u003cli\u003e若未加上\u003ccode\u003edialog\u003c/code\u003e，遊戲會直接以預設模式啟動\u003c/li\u003e\n\u003c/ul\u003e","title":"《燕雲十六聲》 Steam 一鍵 DX12 啟動（捷徑設定）"},{"content":"在開發或測試 Steam 成就時，常常會用到 Console 指令與測試用遊戲，這邊整理一份簡單備忘。\n開啟 Steam Console Mac OS 在瀏覽器輸入：\nsteam://nav/console Windows 在瀏覽器或「執行」輸入：\nsteam://open/console 常用測試指令 重置所有成就與統計資料：\nreset_all_stats \u0026lt;steam_app_id\u0026gt; 測試用遊戲（官方範例） Steam 提供一款測試用遊戲：\nSpacewar App ID：480 可以用來測試成就系統是否正常運作。\n成就文件 官方文件連結：\nhttps://partner.steamgames.com/doc/features/achievements\n如果你正在開發 Steam 遊戲或測試成就，這些工具基本上會很常用，建議先記下來可以省下不少時間。\n","permalink":"https://www.arlenfuture.com/tech/steam-console-achievement-testing/","summary":"\u003cp\u003e在開發或測試 Steam 成就時，常常會用到 Console 指令與測試用遊戲，這邊整理一份簡單備忘。\u003c/p\u003e\n\u003ch2 id=\"開啟-steam-console\"\u003e開啟 Steam Console\u003c/h2\u003e\n\u003ch3 id=\"mac-os\"\u003eMac OS\u003c/h3\u003e\n\u003cp\u003e在瀏覽器輸入：\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003esteam://nav/console\n\u003c/code\u003e\u003c/pre\u003e\u003ch3 id=\"windows\"\u003eWindows\u003c/h3\u003e\n\u003cp\u003e在瀏覽器或「執行」輸入：\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003esteam://open/console\n\u003c/code\u003e\u003c/pre\u003e\u003chr\u003e\n\u003ch2 id=\"常用測試指令\"\u003e常用測試指令\u003c/h2\u003e\n\u003cp\u003e重置所有成就與統計資料：\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003ereset_all_stats \u0026lt;steam_app_id\u0026gt;\n\u003c/code\u003e\u003c/pre\u003e\u003chr\u003e\n\u003ch2 id=\"測試用遊戲官方範例\"\u003e測試用遊戲（官方範例）\u003c/h2\u003e\n\u003cp\u003eSteam 提供一款測試用遊戲：\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eSpacewar\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003eApp ID：\u003ccode\u003e480\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e可以用來測試成就系統是否正常運作。\u003c/p\u003e\n\u003chr\u003e\n\u003ch2 id=\"成就文件\"\u003e成就文件\u003c/h2\u003e\n\u003cp\u003e官方文件連結：\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://partner.steamgames.com/doc/features/achievements\"\u003ehttps://partner.steamgames.com/doc/features/achievements\u003c/a\u003e\u003c/p\u003e\n\u003chr\u003e\n\u003cp\u003e如果你正在開發 Steam 遊戲或測試成就，這些工具基本上會很常用，建議先記下來可以省下不少時間。\u003c/p\u003e","title":"Steam Console 開啟與成就測試指令整理（Spacewar 範例）"},{"content":" 將 SRT 字幕中的 \u0026lt;b\u0026gt; 或 HTML 標籤移除，避免上傳 YouTube 時格式錯誤。\n🛠 SRT 清理工具 🧪 範例 🧹 清除 📋 複製結果 移除所有 HTML 標籤（建議） ","permalink":"https://www.arlenfuture.com/tools/srt-clean/","summary":"\u003cblockquote\u003e\n\u003cp\u003e將 SRT 字幕中的 \u003ccode\u003e\u0026lt;b\u0026gt;\u003c/code\u003e 或 HTML 標籤移除，避免上傳 YouTube 時格式錯誤。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2 id=\"-srt-清理工具\"\u003e🛠 SRT 清理工具\u003c/h2\u003e\n\u003cstyle\u003e\n.srt-container {\n  display: flex;\n  gap: 1rem;\n  flex-wrap: wrap;\n}\n.srt-container textarea {\n  flex: 1;\n  min-height: 300px;\n  padding: 1rem;\n  font-family: monospace;\n  border: 1px solid #ccc;\n  border-radius: 6px;\n}\n@media (max-width: 768px) {\n  .srt-container {\n    flex-direction: column;\n  }\n}\n.copy-button {\n  margin-top: 0.5rem;\n  padding: 0.4rem 1rem;\n  background: #0066cc;\n  color: white;\n  border: none;\n  border-radius: 6px;\n  cursor: pointer;\n}\n.copy-button:hover {\n  background: #004999;\n}\n\u003c/style\u003e\n\u003cdiv class=\"srt-container\"\u003e\n  \u003cdiv\u003e\n    \u003ctextarea id=\"input\" placeholder=\"貼上 SRT 字幕...\"\u003e\u003c/textarea\u003e\n    \u003cdiv style=\"margin-top: 0.5rem;\"\u003e\n      \u003cbutton class=\"copy-button\" style=\"background:#888;\" onclick=\"loadExample()\"\u003e🧪 範例\u003c/button\u003e\n      \u003cbutton class=\"copy-button\" style=\"background:#cc4444;\" onclick=\"clearInput()\"\u003e🧹 清除\u003c/button\u003e\n    \u003c/div\u003e\n  \u003c/div\u003e\n  \u003cdiv\u003e\n    \u003ctextarea id=\"output\" readonly placeholder=\"清理後的字幕...\"\u003e\u003c/textarea\u003e\n    \u003cbutton class=\"copy-button\" onclick=\"copyOutput()\"\u003e📋 複製結果\u003c/button\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003clabel style=\"display:block; margin-top:10px;\"\u003e\n  \u003cinput type=\"checkbox\" id=\"removeAll\" checked\u003e\n  移除所有 HTML 標籤（建議）\n\u003c/label\u003e\n\u003cscript\u003e\nconst input = document.getElementById(\"input\");\nconst output = document.getElementById(\"output\");\nconst removeAll = document.getElementById(\"removeAll\");\n\ninput.addEventListener(\"input\", update);\nremoveAll.addEventListener(\"change\", update);\n\nfunction update() {\n  let text = input.value;\n\n  if (removeAll.checked) {\n    text = text.replace(/\u003c[^\u003e]+\u003e/g, '');\n  } else {\n    text = text.replace(/\u003c\\/?b\u003e/g, '');\n  }\n\n  output.value = text;\n}\n\nfunction copyOutput() {\n  output.select();\n  document.execCommand(\"copy\");\n  alert(\"已複製！\");\n}\n\nfunction clearInput() {\n  input.value = '';\n  output.value = '';\n}\n\nfunction loadExample() {\n  const example = `1\n00:00:01,000 --\u003e 00:00:03,000\n\u003cb\u003eHello world\u003c/b\u003e\n\n2\n00:00:04,000 --\u003e 00:00:06,000\nThis is \u003cb\u003eDaVinci\u003c/b\u003e subtitle`;\n\n  input.value = example;\n  update();\n}\n\u003c/script\u003e","title":"SRT 字幕清理工具｜移除 \u003cb\u003e 標籤"},{"content":"最近在用 Threads 電腦版時，一直卡在首頁轉圈圈，畫面完全載不出來。\n即使清除了瀏覽器快取，問題還是沒有改善，讓人有點崩潰。\n後來我改成直接用\nhttps://www.threads.net 開啟，結果居然可以正常進入頁面，一切都順暢了，之後 .com 都正常用。\n如果你也遇到一樣的情況，可以試試看這個方法，也許能幫你快速解決問題。\n","permalink":"https://www.arlenfuture.com/tech/threads-desktop-stuck-loading-solution/","summary":"\u003cp\u003e最近在用 Threads 電腦版時，一直卡在首頁轉圈圈，畫面完全載不出來。\u003c/p\u003e\n\u003cp\u003e即使清除了瀏覽器快取，問題還是沒有改善，讓人有點崩潰。\u003c/p\u003e\n\u003cp\u003e後來我改成直接用\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003ehttps://www.threads.net\n\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e開啟，結果居然可以正常進入頁面，一切都順暢了，之後 .com 都正常用。\u003c/p\u003e\n\u003cp\u003e如果你也遇到一樣的情況，可以試試看這個方法，也許能幫你快速解決問題。\u003c/p\u003e","title":"Threads 電腦版一直卡住？改用 threads.net 秒解"},{"content":" 可建立多角色存檔，自動保存進度，支援匯入/匯出備份。\n請優先查看公車司機、虎令、監獄及人人任務的提示，這幾個任務有BUG、限制等級或戰力條件。\n參考資料 巴哈姆特 不要有名字(gc10726) 攻略文章及 PDF 角色： 建立角色 刪除角色 匯出進度 (下載JSON) 各校本館或學院 點此展開 / 收摺 【劇情】新進學生介紹 【劇情】學院生註冊 【劇情】學生主任的測驗（技能點數+2） 【劇情】結界認證（技能點數+2） 【劇情】準備通過正門 【劇情】突如其來的研究論文（190等） 【劇情】異象調查(150等) 【劇情】定期測驗（聖門本館主任、165等、能力點數+2） 以下三校任務名稱不同 【劇情】戰爭的召喚(聖門)|【劇情】自我防衛(鳳凰)|【劇情】守護學院(玄嚴)（175等、各校本館主任、能力點數+2） 聖門/玄嚴/鳳凰洞 點此展開 / 收摺 NPC: 公車司機 非常重要！一出校門請從公車司機一路解上去，千萬不要途中去跟物理老師對話！否則會無法接取物理老師的呼叫任務！\n【劇情】公車司機的請求(1)(26等) 【劇情】公車司機的請求(2)(33等) 【劇情】作業班長的請求(33等) 【劇情】物理老師的呼叫(39等)（技能點數+1） NPC: 技術老師 【劇情】技術老師的測驗（46等、技能點數+1） NPC: 物理老師 掃除炸彈、淨化公園 固定在聖門洞物理老師，其於任務在各學院洞對應的物理老師接取。\n以下三校任務能解的不同，透過轉學卡可以全解 【劇情】打倒冰凍可魯(聖門)|【劇情】淨化廢車場(鳳凰)|【劇情】掃除剪刀手(玄嚴)（52等、技能點數+1） 【劇情】掃除炸彈（62等、技能點數+1） 【劇情】淨化公園（66等、技能點數+1） 【劇情】物理老師的考試（39等） 【劇情】紙幣認證（39等、技能點數+1） 【劇情】發布命令書（39等、技能點數+1） 【劇情】回收地圖（39等、技能點數+1） NPC: 特遣人員 有綁技能點的任務，幾乎在外面就可以解，但如果想把全部任務解掉，120等以前進去是相對舒服的。\n【劇情】獲得特殊ID卡（技能點數+1） 【劇情】前往虎令學院地下2樓 (可不接) 【劇情】特遣人員的測驗(63等) 【劇情】特遣人員的請求(64等)（技能點數+1） 商洞 點此展開 / 收摺 NPC: 警察 【劇情】警察的委託（78等、技能點數+1） 【劇情】調查實驗體（78等、能力點數+1） NPC: 清潔工人 【劇情】鮮紅色的影子（194等、技能點數+3，前置:深牢之怨） 【劇情】請求支援（技能點數+5，前置:鮮紅色的影子的信件觸發） 【劇情】伏擊（184等、技能點數+3，中洞 NPC: 典獄官、前置:請求支援） NPC: 學院聯合戰隊隊長－亞恩 【劇情】深入死牢（180等、能力點數+1，前置：斯利普議會長－議會的委託） 【劇情】實力的證明（火炎地獄鑰匙） 【劇情】更難突破的要塞 (180等、火炎副本每日任務的前置) NPC: 藍洛 【劇情】墮星之光（187等、技能點數+10、能力點數+20） 【劇情】深淵的序曲（165等、20 萬亂幣接取，前置：本洞 - 警察-謎樣的探險家） 【劇情】激戰前的測試（167等、技能點數+7、前置：綜合修練院-NPC:斯利普議會長 - 深淵的序曲） NPC: 學院聯合戰隊隊員－凱特 【劇情】火焰的印記（能力點數+1） 【劇情】寒冰霸主的密令（能力點數+2） 【劇情】機械交響曲（能力點數+3） 【劇情】愛情解毒劑（能力點數+3） 【劇情】破壞之力（187等、技能點數+8） 【劇情】預言家（172等、技能點數+1，前置：激戰前的測試） 【劇情】古老的詛咒（技能點數+2，前置：預言家） NPC: 紫宮遠 【劇情】聖財團機工館的治安問題(一)（技能點數+3、需轉奧義等級達到210等） 【劇情】聖財團機工館的治安問題(二)（技能點數+4、需轉奧義等級達到210等） 綜合碼頭 點此展開 / 收摺 NPC: 卡車司機 【劇情】回收卡車鑰匙(112等) 【劇情】汽油回收(前置：回收卡車鑰匙) 【劇情】修理卡車(前置：汽油回收) 【劇情】去見老人（前置：修理卡車、技能點數+3） NPC: 可疑的老人 【劇情】老頭的禮物(155等) 【劇情】尋找文書 【劇情】確認淨水場水質(前置：去見老人) 【劇情】修理發電機(前置：確認淨水場水質) 【劇情】拿到青之秘密據點的帶子(前置：修理發電機) 【劇情】青之秘密據點帶子修復（前置：拿到青之秘密據點的帶子、技能點數+3） NPC: 碼頭警察Ａ 【劇情】確認走私品(117等) 【劇情】逮捕走私犯(前置：確認走私品) 【劇情】調查建築物(前置：逮捕走私犯) 【劇情】侵入「青」的秘密據點(前置：調查建築物) 【劇情】搜索「青」的秘密據點(120等、前置：侵入「青」的秘密據點) 【劇情】搜索「青」的秘密據點2樓(125等、前置：搜索「青」的秘密據點) 【劇情】搜索「青」的秘密據點3樓(132等、前置：搜索「青」的秘密據點2樓) 【劇情】交回證據(前置：搜索「青」的秘密據點3樓) 【劇情】第一次考試（前置：交回證據、技能點數+2、能力點數+1、NPC：商洞－洪美蘭） 【劇情】第二次考試（前置：第一次考試、技能點數+2、打冰凍小丑） 【劇情】第三次考試（前置：第二次考試、獎勵:空間念珠[+7]、新手神裝別賣） 中洞 點此展開 / 收摺 NPC: 護士 【劇情】找尋遺物（152等、技能點數+2） 【劇情】死亡領域（153等、技能點數+4） 【劇情】尋找背包鑰匙（145等、獎勵:時空斑指[+6]、新手神裝別賣） 聖財團私立監獄 點此展開 / 收摺 有戰力限制問題，越早解越好，200初不洗點的情況幾乎要脫掉全部裝備才能解。\nNPC: 監獄警察 【劇情】確認信紙（148等、技能點數+2） 【劇情】搜集珠子（144等、技能點數+5） 【劇情】找尋嫌犯（145等、能力點數+1，容易漏掉，監獄警察A 座標:51/105） 本洞 點此展開 / 收摺 NPC: 警察 【劇情】謎樣的探險家(165等) 【劇情】未知的動亂(165等) NPC: 老頭 製作特殊戒指的獎勵，別丟商店，撐力量終身裝，賣了無法補救。\n【劇情】拾回舊書（162等、技能點數+3） 【劇情】測試執行能力（191等、能力點數+6） 【劇情】測試執行能力(2)（195等、能力點數+9） 【劇情】測試執行能力(3)（199等、能力點數+12） 【劇情】製作特殊戒指(193等) NPC: 陽台 【劇情】鐵絲網上的小花（192等、技能點數+4） NPC: 神秘女子 【劇情】各學院地下圖書館調查（技能點數+2，需轉奧義等級260） 【劇情】集中營狀況調查（技能點數+5，需轉奧義等級260） 異界虎令本館 B3 點此展開 / 收摺 NPC: 虎令氣功部學生 【劇情】蒐集認證書材料（前置：異象調查、技能點數+2） 【劇情】我們的約定（前置：蒐集認證書材料、技能點數+1、NPC：B1－虎令劍道部學生） 【劇情】血荒（前置：蒐集認證書材料、技能點數+2、NPC：本館－崔基範） 【劇情】封印結界（前置：蒐集認證書材料、技能點數+3、NPC：操場－江希珍） 異界虎令本館 B2 點此展開 / 收摺 NPC: 技術老師[虎令] 【重複】蟲之血（165等） 【劇情】亡羊補牢（前置:蟲之血(解完就要接，不然會無法接)、技能點數+2、NPC：B2－研究生） 【劇情】暴動的學生（前置：異象調查、NPC：本館－老師） 【劇情】暴動的真相（前置：暴動的學生、NPC：本館－老師） 【劇情】瘋狂的開端（前置：暴動的真相、技能點數+3、NPC：本館－老師） 異界虎令本館 點此展開 / 收摺 NPC: 轉學生 【劇情】成績單（技能點數+2，前置：異象調查） 綜合修練院 點此展開 / 收摺 NPC: 斯利普議會長 【劇情】議會的委託（180等） 【劇情】深牢之怨（194等、技能點數+5，能力點數+1） NPC: Dr.J 【劇情】失落的一段情（162等） 【劇情】秘密生化實驗（135等、技能點數+3） 學院廣場 點此展開 / 收摺 NPC: 星辰守護者 【劇情】原罪之書的關聯（前置：突如其來的研究論文、能力點數+3） 聖財團會議室 點此展開 / 收摺 NPC: 風紀官－彭文太 【劇情】發現青基地（185等） 【劇情】青基地的主事者（前置：發現青基地、NPC：青基地A區3F－青基地角頭） 【劇情】來自青基地的援助（前置：青基地的主事者、技能點數+1、NPC：陽光男孩） 赤鳳任務總整理 點此展開 / 收摺 NPC 位置 赤鳳城 (37/16)－小龍女 赤鳳城 (30/30)－九方黎生 赤鳳城 (34/1)－紅查斌 赤鳳宮 (28/10)－殷平風 赤鳳宮內殿 (40/6)－驚慌失措的小兵 中藥任務 掉落怪物 透骨樑: 二刀 二劍 二弓 仙鶴根: 二槍 二槌 二方 一刀 紫花曼陀羅: 一刀 一劍 一弓 松篸: 一弓 一鎚 一槍 一方 碎米麩: 下級刺客 任務小訣竅 赤鳳地圖內掉落的命運箱子必定是 恐龍 及 將軍系列怪 可以利用這個機制，先把將軍打出來，但不要打掉，後續任務需要時再打掉，節省時間。 小龍女的消失 及 龍女憐香的煩惱 這兩個系列任務是有重疊的，遇到打怪可先解另一條，就不用打兩次。 注意事項 赤鳳宮內殿，命中率要求稍高，可使用魂武 或者 命中裝備打過去，精神系可無視這條。\n學院廣場 點此展開 / 收摺 NPC: 申元貞 【劇情】小龍女的消失（211等，能力點數+1） 【劇情】追姬（前置：小龍女的消失、能力點數+1） 【劇情】龍女憐香（前置：追姬、能力點數+6） 【劇情】不遠的將來（前置：龍女憐香、能力點數+10） 赤鳳城 點此展開 / 收摺 NPC: 小龍女 【劇情】龍女憐香的煩惱（技能點數+2） 【劇情】九方黎生的請求(1)（技能點數+5） 【劇情】蒼龍的未來（技能點數+8） NPC: 九方黎生 等級達到270，且完成上述任務\n【劇情】九方黎生的請求(2)（技能點數+6） 【劇情】最後的機會（技能點數+9、NPC：赤鳳宮 (28/10)－殷平風） 【劇情】混亂的始源（NPC：赤鳳宮 (28/10)－殷平風） 摸魂 點此展開 / 收摺 撿完丟出來，不影響任務回報。\n【劇情】邪惡之源-善妒之女：提斯迪蒙娜之魂（技能點數+1） 【劇情】邪惡之源-猜忌之子：奧賽羅之魂（技能點數+1） 【劇情】學生會長的下落：虎令學生會長之魂（技能點數+1，高經驗重複任務前置） 【劇情】七原罪-妒忌之源：伊維厄斯之魂（技能點數+2） 【劇情】火焰領主之魂 【劇情】寒霜領主之魂 【劇情】瘟疫領主之魂 【劇情】雷殛領主之魂 【劇情】元素吞噬者之魂 各學院門口及學院廣場 點此展開 / 收摺 NPC: 人人有功練 以下人人有功練任務必須要在限定等級內完成，否則任務自動消失。\n【劇情】惹事生非的街道 (100-120等) 【劇情】變態三男的逆襲 (110-130等)（技能點數+1 能力點數+1） 【劇情】賊頭殺殺殺 (120-140等)（技能點數+1 能力點數+1） 【劇情】怒殺野鴛鴦 (130-150等)（技能點數+1 能力點數+1） 【劇情】隱隱騷動之聲 (140-160等)（技能點數+1 能力點數+1） 【劇情】抑制噪音 (150-170等)（能力點數+4） 【劇情】探查異變 (160-180等)（技能點數+2 能力點數+3） 【劇情】詭異的異變人種 (170-190等)（技能點數+2 能力點數+3） 【劇情】阻止異變加劇 (180-200等)（技能點數+2 能力點數+3） 【劇情】異界虎令的毒惡深淵 (190-210等)（技能點數+2 能力點數+3） 【劇情】例行性訓練(1) (200-220等)（能力點數+3） 【劇情】例行性訓練(2) (210-230等)（技能點數+2） 【劇情】例行性訓練(3) (220-240等)（技能點數+2） 【劇情】例行性訓練(4) (230-250等)（技能點數+2） 【劇情】例行性訓練(5) (240-260等)（技能點數+2） 【劇情】歲月的痕跡 (250-270等)（技能點數+2） 轉職奧義流程 點此展開 / 收摺 【劇情】莫名的指責（NPC：商洞－紫宮遠） 【劇情】另一個自己（NPC：商洞－紫宮遠） 【劇情】災難的開始（NPC：本洞－神秘女子） ","permalink":"https://www.arlenfuture.com/tools/ran2-quests-tracker/","summary":"\u003cblockquote\u003e\n\u003cp\u003e可建立多角色存檔，自動保存進度，支援匯入/匯出備份。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cblockquote\u003e\n\u003cp\u003e請優先查看公車司機、虎令、監獄及人人任務的提示，這幾個任務有BUG、限制等級或戰力條件。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2 id=\"參考資料\"\u003e參考資料\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://forum.gamer.com.tw/C.php?bsn=5270\u0026amp;snA=85329\"\u003e巴哈姆特 不要有名字(gc10726) 攻略文章及 PDF\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv id=\"controls\"\u003e\n  \u003clabel\u003e角色：\n    \u003cselect class=\"button\" id=\"profileSelect\"\u003e\u003c/select\u003e\n  \u003c/label\u003e\n  \u003cbutton class=\"button\" id=\"newProfileBtn\"\u003e建立角色\u003c/button\u003e\n  \u003cbutton class=\"button\" id=\"deleteProfileBtn\"\u003e刪除角色\u003c/button\u003e\n  \u003cbr\u003e\n  \u003cbutton class=\"button\" id=\"exportBtn\"\u003e匯出進度 (下載JSON)\u003c/button\u003e\n  \u003cinput type=\"file\" id=\"importFile\" accept=\".json\"\u003e\n\u003c/div\u003e\n\u003ch2 id=\"各校本館或學院\"\u003e各校本館或學院\u003c/h2\u003e\n\u003cdetails\u003e\n\u003csummary style=\"cursor:pointer;\"\u003e點此展開 / 收摺\u003c/summary\u003e\n\u003cdiv class=\"quest-container\"\u003e\n\u003cul class=\"quest-list\"\u003e\n  \u003cli\u003e\u003cinput type=\"checkbox\" data-id=\"q1\"\u003e【劇情】新進學生介紹\u003c/li\u003e\n  \u003cli\u003e\u003cinput type=\"checkbox\" data-id=\"q2\"\u003e【劇情】學院生註冊\u003c/li\u003e\n  \u003cli\u003e\u003cinput type=\"checkbox\" data-id=\"q3\"\u003e【劇情】學生主任的測驗（技能點數+2）\u003c/li\u003e\n  \u003cli\u003e\u003cinput type=\"checkbox\" data-id=\"q4\"\u003e【劇情】結界認證（技能點數+2）\u003c/li\u003e\n  \u003cli\u003e\u003cinput type=\"checkbox\" data-id=\"q5\"\u003e【劇情】準備通過正門\u003c/li\u003e\n  \u003cli\u003e\u003cinput type=\"checkbox\" data-id=\"q6\"\u003e【劇情】突如其來的研究論文（190等）\u003c/li\u003e\n  \u003cli\u003e\u003cinput type=\"checkbox\" data-id=\"q7\"\u003e【劇情】異象調查(150等)\u003c/li\u003e\n  \u003cli\u003e\u003cinput type=\"checkbox\" data-id=\"q8\"\u003e【劇情】定期測驗（聖門本館主任、165等、能力點數+2）\u003c/li\u003e\n  \u003cli\u003e\u003clabel\u003e以下三校任務名稱不同\u003c/label\u003e\u003c/li\u003e\n  \u003cli\u003e\u003cinput type=\"checkbox\" data-id=\"q9\"\u003e【劇情】戰爭的召喚(聖門)|【劇情】自我防衛(鳳凰)|【劇情】守護學院(玄嚴)（175等、各校本館主任、能力點數+2）\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/div\u003e\n\u003c/details\u003e\n\u003ch2 id=\"聖門玄嚴鳳凰洞\"\u003e聖門/玄嚴/鳳凰洞\u003c/h2\u003e\n\u003cdetails\u003e\n\u003csummary style=\"cursor:pointer;\"\u003e點此展開 / 收摺\u003c/summary\u003e\n\u003ch3 id=\"npc-公車司機\"\u003eNPC: 公車司機\u003c/h3\u003e\n\u003cblockquote\u003e\n\u003cp\u003e非常重要！一出校門請從公車司機一路解上去，千萬不要途中去跟物理老師對話！否則會無法接取物理老師的呼叫任務！\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cdiv class=\"quest-container\"\u003e\n\u003cul class=\"quest-list\"\u003e\n  \u003cli\u003e\u003cinput type=\"checkbox\" data-id=\"q12\"\u003e【劇情】公車司機的請求(1)(26等)\u003c/li\u003e\n  \u003cli\u003e\u003cinput type=\"checkbox\" data-id=\"q13\"\u003e【劇情】公車司機的請求(2)(33等)\u003c/li\u003e\n  \u003cli\u003e\u003cinput type=\"checkbox\" data-id=\"q14\"\u003e【劇情】作業班長的請求(33等)\u003c/li\u003e\n  \u003cli\u003e\u003cinput type=\"checkbox\" data-id=\"q15\"\u003e【劇情】物理老師的呼叫(39等)（技能點數+1）\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/div\u003e\n\u003ch3 id=\"npc-技術老師\"\u003eNPC: 技術老師\u003c/h3\u003e\n\u003cdiv class=\"quest-container\"\u003e\n\u003cul class=\"quest-list\"\u003e\n  \u003cli\u003e\u003cinput type=\"checkbox\" data-id=\"q16\"\u003e【劇情】技術老師的測驗（46等、技能點數+1）\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/div\u003e\n\u003ch3 id=\"npc-物理老師\"\u003eNPC: 物理老師\u003c/h3\u003e\n\u003cblockquote\u003e\n\u003cp\u003e掃除炸彈、淨化公園 固定在聖門洞物理老師，其於任務在各學院洞對應的物理老師接取。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cdiv class=\"quest-container\"\u003e\n\u003cul class=\"quest-list\"\u003e\n  \u003cli\u003e\u003clabel\u003e以下三校任務能解的不同，透過轉學卡可以全解\u003c/label\u003e\u003c/li\u003e\n  \u003cli\u003e\u003cinput type=\"checkbox\" data-id=\"q17\"\u003e【劇情】打倒冰凍可魯(聖門)|【劇情】淨化廢車場(鳳凰)|【劇情】掃除剪刀手(玄嚴)（52等、技能點數+1）\u003c/li\u003e\n  \u003cli\u003e\u003cinput type=\"checkbox\" data-id=\"q18\"\u003e【劇情】掃除炸彈（62等、技能點數+1）\u003c/li\u003e\n  \u003cli\u003e\u003cinput type=\"checkbox\" data-id=\"q19\"\u003e【劇情】淨化公園（66等、技能點數+1）\u003c/li\u003e\n  \u003cli\u003e\u003cinput type=\"checkbox\" data-id=\"q20\"\u003e【劇情】物理老師的考試（39等）\u003c/li\u003e\n  \u003cli\u003e\u003cinput type=\"checkbox\" data-id=\"q21\"\u003e【劇情】紙幣認證（39等、技能點數+1）\u003c/li\u003e\n  \u003cli\u003e\u003cinput type=\"checkbox\" data-id=\"q22\"\u003e【劇情】發布命令書（39等、技能點數+1）\u003c/li\u003e\n  \u003cli\u003e\u003cinput type=\"checkbox\" data-id=\"q23\"\u003e【劇情】回收地圖（39等、技能點數+1）\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/div\u003e\n\u003ch3 id=\"npc-特遣人員\"\u003eNPC: 特遣人員\u003c/h3\u003e\n\u003cblockquote\u003e\n\u003cp\u003e有綁技能點的任務，幾乎在外面就可以解，但如果想把全部任務解掉，120等以前進去是相對舒服的。\u003c/p\u003e","title":"亂2 Online 任務進度表"},{"content":" 將 PNG / JPG / JPEG 轉換為 WebP，單張直接下載，多張打包 ZIP。支援檔案過濾提示與品質調整。\nWebP 品質： 0.8\n縮放比例： 100%\n轉換並下載\n0% ","permalink":"https://www.arlenfuture.com/tools/img-to-webp/","summary":"\u003cblockquote\u003e\n\u003cp\u003e將 PNG / JPG / JPEG 轉換為 WebP，單張直接下載，多張打包 ZIP。支援檔案過濾提示與品質調整。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cstyle\u003e\n#progressContainer { width:100%; background-color:#e0e0e0; border-radius:5px; margin-top:20px; height:20px; }\n#progressBar { width:0%; height:100%; background-color:#76c7c0; border-radius:5px; text-align:center; color:white; line-height:20px; }\n.warning-msg { color:#ff6b6b; margin-top:10px; font-size:0.9em; }\nlabel { margin-right:10px; }\n\u003c/style\u003e\n\u003cinput type=\"file\" id=\"fileInput\" accept=\"image/png, image/jpeg\" multiple\u003e\n\u003cp\u003e\u003clabel for=\"qualityRange\"\u003eWebP 品質：\u003c/label\u003e\n\u003cinput type=\"range\" id=\"qualityRange\" min=\"0.1\" max=\"1.0\" step=\"0.05\" value=\"0.8\"\u003e\n\u003cspan id=\"qualityValue\"\u003e0.8\u003c/span\u003e\u003c/p\u003e\n\u003cp\u003e\u003clabel for=\"scaleRange\"\u003e縮放比例：\u003c/label\u003e\n\u003cinput type=\"range\" id=\"scaleRange\" min=\"10\" max=\"100\" step=\"5\" value=\"100\"\u003e\n\u003cspan id=\"scaleValue\"\u003e100%\u003c/span\u003e\u003c/p\u003e\n\u003cp\u003e\u003cbutton class=\"button\" id=\"convertBtn\"\u003e轉換並下載\u003c/button\u003e\u003c/p\u003e\n\u003cdiv id=\"progressContainer\"\u003e\n    \u003cdiv id=\"progressBar\"\u003e0%\u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv id=\"output\"\u003e\u003c/div\u003e\n\u003cdiv id=\"warnings\"\u003e\u003c/div\u003e\n\u003cscript src=\"https://cdn.jsdelivr.net/npm/jszip@3.10.1/dist/jszip.min.js\" \n        integrity=\"sha256-rMfkFFWoB2W1/Zx+4bgHim0WC7vKRVrq6FTeZclH1Z4=\" \n        crossorigin=\"anonymous\"\u003e\u003c/script\u003e\n\u003cscript\u003e\n// 更新品質顯示\nconst qualityRange = document.getElementById('qualityRange');\nconst qualityValue = document.getElementById('qualityValue');\nqualityRange.addEventListener('input', () =\u003e qualityValue.textContent = qualityRange.value);\n\n// 更新縮放比例顯示\nconst scaleRange = document.getElementById('scaleRange');\nconst scaleValue = document.getElementById('scaleValue');\nscaleRange.addEventListener('input', () =\u003e scaleValue.textContent = scaleRange.value + '%');\n\n// 支援檔案過濾\nconst SUPPORTED_TYPES = ['image/png', 'image/jpeg', 'image/jpg'];\n\ndocument.getElementById('fileInput').addEventListener('change', () =\u003e {\n    document.getElementById('output').innerHTML = '';\n    document.getElementById('progressBar').style.width = '0%';\n    document.getElementById('progressBar').textContent = '0%';\n    document.getElementById('progressBar').style.backgroundColor = '#76c7c0';\n    document.getElementById('warnings').innerHTML = '';\n});\n\ndocument.getElementById('convertBtn').addEventListener('click', async () =\u003e {\n    const files = Array.from(document.getElementById('fileInput').files);\n    const output = document.getElementById('output');\n    const progressBar = document.getElementById('progressBar');\n    const convertBtn = document.getElementById('convertBtn');\n    const warnings = document.getElementById('warnings');\n\n    if (files.length === 0) {\n        alert('請選擇至少一個圖片檔案 (PNG 或 JPG)');\n        return;\n    }\n\n    // 過濾不支援檔案\n    const validFiles = [];\n    const invalidFiles = [];\n    files.forEach(f =\u003e {\n        if (SUPPORTED_TYPES.includes(f.type.toLowerCase())) validFiles.push(f);\n        else invalidFiles.push(f.name);\n    });\n\n    if (invalidFiles.length \u003e 0) {\n        warnings.innerHTML = `\u003cdiv class=\"warning-msg\"\u003e以下檔案不支援，已忽略：\u003cbr\u003e${invalidFiles.join(', ')}\u003c/div\u003e`;\n    }\n\n    if (validFiles.length === 0) {\n        alert('沒有有效圖片檔案可轉換');\n        return;\n    }\n\n    output.innerHTML = '';\n    progressBar.style.width = '0%';\n    progressBar.textContent = '0%';\n    convertBtn.disabled = true;\n    convertBtn.textContent = '轉換中...';\n\n    const quality = parseFloat(qualityRange.value);\n    const scale = parseInt(scaleRange.value) / 100;  // 轉為 0~1 的比例\n\n    try {\n        if (validFiles.length === 1) {\n            const file = validFiles[0];\n            const img = new Image();\n            const url = URL.createObjectURL(file);\n            img.src = url;\n            await img.decode();\n\n            const canvas = document.createElement('canvas');\n            canvas.width = Math.round(img.width * scale);   // 套用縮放\n            canvas.height = Math.round(img.height * scale);\n            const ctx = canvas.getContext('2d');\n            ctx.drawImage(img, 0, 0, canvas.width, canvas.height);\n\n            const blob = await new Promise(resolve =\u003e canvas.toBlob(resolve, 'image/webp', quality));\n            URL.revokeObjectURL(url);\n\n            const downloadBtn = document.createElement('button');\n            downloadBtn.className = 'button';\n            downloadBtn.textContent = '下載 WebP';\n            output.appendChild(downloadBtn);\n\n            downloadBtn.addEventListener('click', () =\u003e {\n                const link = document.createElement('a');\n                link.href = URL.createObjectURL(blob);\n                link.download = file.name.replace(/\\.(png|jpe?g)$/i, '.webp');\n                link.click();\n            });\n\n            progressBar.style.width = '100%';\n            progressBar.textContent = '完成！';\n\n        } else {\n            const zip = new JSZip();\n            for (let i = 0; i \u003c validFiles.length; i++) {\n                const file = validFiles[i];\n                const img = new Image();\n                const url = URL.createObjectURL(file);\n                img.src = url;\n                await img.decode();\n\n                const canvas = document.createElement('canvas');\n                canvas.width = Math.round(img.width * scale);   // 套用縮放\n                canvas.height = Math.round(img.height * scale);\n                const ctx = canvas.getContext('2d');\n                ctx.drawImage(img, 0, 0, canvas.width, canvas.height);\n\n                const blob = await new Promise(resolve =\u003e canvas.toBlob(resolve, 'image/webp', quality));\n                const arrayBuffer = await blob.arrayBuffer();\n                const webpName = file.name.replace(/\\.(png|jpe?g)$/i, '.webp');\n                zip.file(webpName, arrayBuffer);\n                URL.revokeObjectURL(url);\n\n                const progress = Math.round(((i + 1) / validFiles.length) * 100);\n                progressBar.style.width = `${progress}%`;\n                progressBar.textContent = `${progress}%`;\n            }\n\n            const zipBlob = await zip.generateAsync({ type: 'blob' });\n            const now = new Date();\n            const taiwanTime = new Date(now.getTime() + 8 * 60 * 60 * 1000);\n            const timestamp = taiwanTime.toISOString().slice(0,19).replace(/:/g,'-');\n\n            const downloadBtn = document.createElement('button');\n            downloadBtn.className = 'button';\n            downloadBtn.textContent = '下載 ZIP';\n            output.appendChild(downloadBtn);\n\n            downloadBtn.addEventListener('click', () =\u003e {\n                const link = document.createElement('a');\n                link.href = URL.createObjectURL(zipBlob);\n                link.download = `webp_files_${timestamp}.zip`;\n                link.click();\n            });\n\n            progressBar.style.width = '100%';\n            progressBar.textContent = '完成！';\n        }\n\n    } catch (error) {\n        console.error(error);\n        alert(`轉換失敗: ${error.message}`);\n        progressBar.style.width = '0%';\n        progressBar.textContent = '錯誤';\n        progressBar.style.backgroundColor = '#ff6b6b';\n    } finally {\n        convertBtn.disabled = false;\n        convertBtn.textContent = '轉換並下載';\n    }\n});\n\u003c/script\u003e","title":"圖片轉 WebP｜網頁優化神器"},{"content":" 📁 步驟 1: 上傳圖片（可選） 拖曳圖片到此處，或點擊下方按鈕選擇檔案\n不上傳圖片將使用空白畫布\n縮放演算法： 最近鄰 (Nearest) 雙線性 (Bilinear) 模擬雙三次 (Bicubic) 預覽：\n🎨 開始編輯 🎨 步驟 2: 編輯模式 筆刷顏色： 筆刷大小： 1 🎨 取色器 🧹 清除畫布 🔄 重置 說明：直接在畫布上點擊或拖曳來繪圖。畫布尺寸為 16x11 像素。\n📥 步驟 3: 下載檔案 點擊下方按鈕下載您的 16x11 BMP 盟徽檔案：\n將輸出的 BMP 檔案儲存到以下位置： C:\\Users\\使用者名稱\\Documents 或者直接在 Windows 11 中點擊「文件」資料夾 📥 下載 BMP 檔案 ","permalink":"https://www.arlenfuture.com/tools/ran2-badge-maker/","summary":"\u003cstyle\u003e\nbody {\n    font-family: Arial, sans-serif;\n}\n\n.step-container {\n    margin: 20px 0;\n    padding: 20px;\n    border: 2px solid #e0e0e0;\n    border-radius: 8px;\n    background-color: #f9f9f9;\n}\n\n.step-title {\n    font-size: 18px;\n    font-weight: bold;\n    color: #333;\n    margin-bottom: 15px;\n}\n\n.upload-area {\n    border: 2px dashed #ccc;\n    border-radius: 8px;\n    padding: 30px;\n    text-align: center;\n    margin: 15px 0;\n    transition: border-color 0.3s;\n}\n\n.upload-area:hover {\n    border-color: #007bff;\n}\n\n.upload-area.dragover {\n    border-color: #007bff;\n    background-color: #f0f8ff;\n}\n\n.canvas-container {\n    text-align: center;\n    margin: 20px 0;\n}\n\n#editCanvas {\n    border: 2px solid #333;\n    cursor: crosshair;\n    image-rendering: pixelated;\n    background-color: white;\n}\n\n.tools {\n    display: flex;\n    align-items: center;\n    gap: 15px;\n    margin: 15px 0;\n    flex-wrap: wrap;\n}\n\n.tool-group {\n    display: flex;\n    align-items: center;\n    gap: 8px;\n}\n\nbutton {\n    padding: 8px 16px;\n    border: none;\n    border-radius: 4px;\n    cursor: pointer;\n    font-size: 14px;\n    margin-right: 8px;\n}\n\n.btn-primary {\n    background-color: #007bff;\n    color: white;\n}\n\n.btn-primary:hover {\n    background-color: #0056b3;\n}\n\n.btn-secondary {\n    background-color: #6c757d;\n    color: white;\n}\n\n.btn-secondary:hover {\n    background-color: #545b62;\n}\n\n.btn-success {\n    background-color: #28a745;\n    color: white;\n    font-weight: bold;\n}\n\n.btn-success:hover {\n    background-color: #1e7e34;\n}\n\n.eyedropper-active {\n    background-color: #ffc107 !important;\n    color: #000 !important;\n}\n\n#editCanvas.eyedropper-mode {\n    cursor: crosshair;\n}\n\ninput[type=\"file\"] {\n    margin: 10px 0;\n}\n\n#crop-area {\n    position: absolute;\n    border: 2px dashed #f00;\n    resize: both;\n    overflow: hidden;\n    cursor: move;\n}\n\n#sourceCanvas {\n    max-width: 100%;\n    border: 1px solid #ccc;\n}\n\n.current-step {\n    border-color: #007bff;\n    background-color: #f0f8ff;\n}\n\u003c/style\u003e\n\u003c!-- 步驟 1: 上傳圖片 --\u003e\n\u003cdiv class=\"step-container current-step\" id=\"step1\"\u003e\n    \u003cdiv class=\"step-title\"\u003e📁 步驟 1: 上傳圖片（可選）\u003c/div\u003e\n    \u003cdiv class=\"upload-area\" id=\"uploadArea\"\u003e\n        \u003cp\u003e拖曳圖片到此處，或點擊下方按鈕選擇檔案\u003c/p\u003e","title":"亂2 Online 盟徽 製作工具｜16x11 編輯器"},{"content":"三星裝置畫面跑版？我是怎麼和官方開發團隊解決的 我參與的一款獨立遊戲，在某些三星手機上出現了顯示跑版問題。這篇文章將記錄我們如何一步步定位問題、與三星開發團隊協作，最終獲得解決的完整過程。\n🧩 背景與個人心得 首先《愛情終點》是使用一套名為 OpenWebGal 的開源引擎所開發，它是基於 Electron 技術所打造的互動式小說／視覺遊戲框架。\n當時我們觀察到 Android 裝置中的三星使用者占比最高，這讓我有些憂心。畢竟一旦出現問題，就會影響到一大群潛在玩家的體驗與評價。\n🎯 問題定位：只有三星裝置會跑版 起初我們接到玩家回報，指出遊戲在三星手機上 UI 顯示異常。經過測試與比對，我們確認：\n問題僅出現在三星裝置 其他品牌手機與模擬器皆未重現類似情形 以下是問題畫面示意圖： (正確) (錯誤) 📨 尋求三星官方開發支援 確認問題裝置後，我們主動聯繫 Samsung Developer，提供了完整資訊，包括：\nApp 名稱 Package Name Google Play 商店連結 測試設備 但由於地區限制，三星客服無法從 Google Play 商店安裝應用程式。於是我們改為提供了 .apk 安裝檔供測試。\n註：由於 Google 現在預設使用 .aab 格式發佈 App，所以需要另外提供一份 .apk 。\n🔍 提供錄影與錯誤日誌 三星客服在初步測試時無法重現問題，因此請求我們提供以下資訊：\n完整的螢幕錄影 裝置產生的 dumpstate 日誌檔案 我們整理後交付給三星，當天他們就成功重現問題，並回報了詳細分析。\n🧠 問題根因與分析 三星開發團隊指出：\n問題來自「Game Booster +」會自動降低遊戲解析度，以減少 GPU 負載並提升效能。而我們採用的遊戲引擎似乎無法正確處理這種非原生解析度，導致 UI 顯示錯位。\n✅ 解決方案與後續修正 三星最終回覆：\n這個修復將從 One UI 7 / Android 15 穩定版本起正式套用。未來該情況將不再發生。\n而對於當前受影響的用戶，三星也建議我們提供以下指引：\n在「高品質模式」中執行遊戲 或在「自訂模式」下手動設定解析度比例為 100% 🤝 感謝 Samsung Developer 的積極協助 這次經驗讓我非常感謝三星的技術支援團隊。在現在 AI 客服盛行、很多問題常常「被機器打發掉」的時代，他們卻展現了非常有效的溝通。有好幾次，他們幾分鐘內就回覆我的訊息，並且願意幫忙做完整的問題重現與分析，最後給我們一個具體而未來導向的解法。\n對我們這種小型開發團隊來說，這樣的支援非常珍貴。對於也在做 Android 遊戲的開發者，我會推薦使用原廠提供的開發者支援管道，很多相容性或裝置相關的疑難雜症，其實真的有機會解決！\n🎮 關於《愛情終點》 如果你對《愛情終點》感興趣，也歡迎親自體驗看看！\n👉 在 Steam 上遊玩 👉 在 Google Play 上下載 再次感謝閱讀這次的經驗分享，希望這篇文章對你有幫助！\n","permalink":"https://www.arlenfuture.com/tech/fixing-layout-issues-on-samsung/","summary":"\u003ch1 id=\"三星裝置畫面跑版我是怎麼和官方開發團隊解決的\"\u003e三星裝置畫面跑版？我是怎麼和官方開發團隊解決的\u003c/h1\u003e\n\u003cp\u003e我參與的一款獨立遊戲，在某些三星手機上出現了顯示跑版問題。這篇文章將記錄我們如何一步步定位問題、與三星開發團隊協作，最終獲得解決的完整過程。\u003c/p\u003e\n\u003chr\u003e\n\u003ch2 id=\"-背景與個人心得\"\u003e🧩 背景與個人心得\u003c/h2\u003e\n\u003cp\u003e首先《愛情終點》是使用一套名為 \u003cstrong\u003eOpenWebGal\u003c/strong\u003e 的開源引擎所開發，它是基於 \u003cstrong\u003eElectron\u003c/strong\u003e 技術所打造的互動式小說／視覺遊戲框架。\u003c/p\u003e\n\u003cp\u003e當時我們觀察到 Android 裝置中的\u003cstrong\u003e三星使用者占比最高\u003c/strong\u003e，這讓我有些憂心。畢竟一旦出現問題，就會影響到一大群潛在玩家的體驗與評價。\u003c/p\u003e\n\u003chr\u003e\n\u003ch2 id=\"-問題定位只有三星裝置會跑版\"\u003e🎯 問題定位：只有三星裝置會跑版\u003c/h2\u003e\n\u003cp\u003e起初我們接到玩家回報，指出遊戲在三星手機上 UI 顯示異常。經過測試與比對，我們確認：\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e問題\u003cstrong\u003e僅出現在三星裝置\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003e其他品牌手機與模擬器皆未重現類似情形\u003c/li\u003e\n\u003c/ul\u003e\n\u003cblockquote\u003e\n\u003cp\u003e以下是問題畫面示意圖：\n(正確)\n\u003cimg alt=\"正確\" loading=\"lazy\" src=\"https://images.arlenfuture.com/2025/05/Fixing-layout-issues-on-Samsung/Correct.webp\" title=\"正確\"\u003e\n(錯誤)\n\u003cimg alt=\"錯誤\" loading=\"lazy\" src=\"https://images.arlenfuture.com/2025/05/Fixing-layout-issues-on-Samsung/Error.webp\" title=\"錯誤\"\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003chr\u003e\n\u003ch2 id=\"-尋求三星官方開發支援\"\u003e📨 尋求三星官方開發支援\u003c/h2\u003e\n\u003cp\u003e確認問題裝置後，我們主動聯繫 \u003ca href=\"https://developer.samsung.com/\"\u003eSamsung Developer\u003c/a\u003e，提供了完整資訊，包括：\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eApp 名稱\u003c/li\u003e\n\u003cli\u003ePackage Name\u003c/li\u003e\n\u003cli\u003eGoogle Play 商店連結\u003c/li\u003e\n\u003cli\u003e測試設備\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e但由於地區限制，三星客服無法從 Google Play 商店安裝應用程式。於是我們改為提供了 \u003ccode\u003e.apk\u003c/code\u003e 安裝檔供測試。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e註：由於 Google 現在預設使用 \u003ccode\u003e.aab\u003c/code\u003e 格式發佈 App，所以需要另外提供一份 \u003ccode\u003e.apk\u003c/code\u003e 。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003chr\u003e\n\u003ch2 id=\"-提供錄影與錯誤日誌\"\u003e🔍 提供錄影與錯誤日誌\u003c/h2\u003e\n\u003cp\u003e三星客服在初步測試時\u003cstrong\u003e無法重現問題\u003c/strong\u003e，因此請求我們提供以下資訊：\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e完整的螢幕錄影\u003c/li\u003e\n\u003cli\u003e裝置產生的 \u003ccode\u003edumpstate\u003c/code\u003e 日誌檔案\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e我們整理後交付給三星，當天他們就成功重現問題，並回報了詳細分析。\u003c/p\u003e\n\u003chr\u003e\n\u003ch2 id=\"-問題根因與分析\"\u003e🧠 問題根因與分析\u003c/h2\u003e\n\u003cp\u003e三星開發團隊指出：\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e問題來自「Game Booster +」會自動降低遊戲解析度，以減少 GPU 負載並提升效能。而我們採用的遊戲引擎似乎無法正確處理這種非原生解析度，導致 UI 顯示錯位。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003chr\u003e\n\u003ch2 id=\"-解決方案與後續修正\"\u003e✅ 解決方案與後續修正\u003c/h2\u003e\n\u003cp\u003e三星最終回覆：\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e這個修復將從 \u003cstrong\u003eOne UI 7 / Android 15 穩定版本\u003c/strong\u003e起正式套用。未來該情況將不再發生。\u003c/p\u003e","title":"三星裝置畫面跑版？我是怎麼和官方開發團隊解決的【開發經驗】"},{"content":"最近因為習慣用 Discord 寫文章、筆記，但常常寫完還要手動改成巴哈姆特支援的 BBCode，覺得很麻煩，所以自己做了一個簡單的線上轉換工具。\n工具網址（放在我部落格工具頁）： 🔗Markdown 轉 BBCode 工具｜支援巴哈姆特發文格式\n功能很簡單，但夠用： 貼上 Markdown，一鍵轉成 BBCode 支援常見格式：粗體、斜體、連結、圖片、程式碼區塊\u0026hellip; 不用安裝，手機也能用！ 🧰 如果你也有用其他 Markdown 格式的資料，然後想貼到巴哈或者其他支援 BBCode 的網站，可以把這個工具當作中間橋樑用～\n希望對大家有幫助！\n","permalink":"https://www.arlenfuture.com/tech/markdown-to-bbcode-tool-for-bahamut/","summary":"\u003cp\u003e最近因為習慣用 Discord 寫文章、筆記，但常常寫完還要手動改成巴哈姆特支援的 BBCode，覺得很麻煩，所以自己做了一個簡單的線上轉換工具。\u003c/p\u003e\n\u003ch2 id=\"工具網址放在我部落格工具頁\"\u003e工具網址（放在我部落格工具頁）：\u003c/h2\u003e\n\u003cp\u003e🔗\u003ca href=\"https://arlenfuture.github.io/tools/markdown-to-bbcode/\"\u003eMarkdown 轉 BBCode 工具｜支援巴哈姆特發文格式\u003c/a\u003e\u003c/p\u003e\n\u003ch2 id=\"功能很簡單但夠用\"\u003e功能很簡單，但夠用：\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e貼上 Markdown，一鍵轉成 BBCode\u003c/li\u003e\n\u003cli\u003e支援常見格式：粗體、斜體、連結、圖片、程式碼區塊\u0026hellip;\u003c/li\u003e\n\u003cli\u003e不用安裝，手機也能用！\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e🧰 如果你也有用其他 Markdown 格式的資料，然後想貼到巴哈或者其他支援 BBCode 的網站，可以把這個工具當作中間橋樑用～\u003c/p\u003e\n\u003cp\u003e希望對大家有幫助！\u003c/p\u003e","title":"Markdown to BBCode 線上轉換器，發文不用再手動改格式了【小工具】"},{"content":" 將常見的 Markdown 語法轉換為巴哈姆特支援的 BBCode 格式。支援標題、粗體、斜體、連結、圖片等基本語法，適合創作分享使用。\n🛠 Markdown → BBCode 工具 🧪 載入範例 🧹 清除內容 📋 複製 BBCode ✅ 支援語法對照表（適用巴哈姆特） Markdown BBCode（轉換結果） 備註 # 標題 [size=5][b]標題[/b][/size] 用來模擬大標題 **粗體** [b]粗體[/b] *斜體* [i]斜體[/i] ~~刪除線~~ [s]刪除線[/s] `程式碼` [quote]程式碼[/quote] 為避免 [code] 造成顯示問題 ```多行程式碼``` [quote]多行程式碼[/quote] 可跨行，貼文不易亂格式 [名稱](網址) [url=網址]名稱[/url] ![替代文字](圖片網址) [img=圖片網址] 巴哈格式 - 項目 [ul][li]項目[/li][/ul] 無序清單，建議包含在 [ul] 中 1. 項目 [ol][li]項目[/li][/ol] 有序清單，建議包含在 [ol] 中 ⚠️ 注意事項 為避免貼文出現 [code] 等 HTML 編碼問題，本工具將原本的 [code] 語法改為使用 [quote] 顯示程式碼。如果你熟悉巴哈排版格式，也可自行將 [quote] 改回 [code] 使用。\n目前使用巢狀清單或縮排格式時，可能會產生多餘的空格或空行，建議貼上巴哈前手動檢查並刪除不必要的空格，以避免版面混亂。\n","permalink":"https://www.arlenfuture.com/tools/markdown-to-bbcode/","summary":"\u003cblockquote\u003e\n\u003cp\u003e將常見的 Markdown 語法轉換為巴哈姆特支援的 BBCode 格式。支援標題、粗體、斜體、連結、圖片等基本語法，適合創作分享使用。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2 id=\"-markdown--bbcode-工具\"\u003e🛠 Markdown → BBCode 工具\u003c/h2\u003e\n\u003cstyle\u003e\n.markdown-bbcode-container {\n  display: flex;\n  flex-direction: row;\n  gap: 1rem;\n  margin-top: 1rem;\n  flex-wrap: wrap;\n}\n.markdown-bbcode-container textarea {\n  flex: 1;\n  min-height: 300px;\n  padding: 1rem;\n  font-family: monospace;\n  border: 1px solid #ccc;\n  border-radius: 6px;\n  resize: vertical;\n  width: 100%;\n  box-sizing: border-box;\n}\n@media screen and (max-width: 768px) {\n  .markdown-bbcode-container {\n    flex-direction: column;\n  }\n}\n.copy-button {\n  margin-top: 0.5rem;\n  padding: 0.4rem 1rem;\n  background: #0066cc;\n  color: white;\n  border: none;\n  border-radius: 6px;\n  cursor: pointer;\n}\n.copy-button:hover {\n  background: #004999;\n}\n\u003c/style\u003e\n\u003cdiv class=\"markdown-bbcode-container\"\u003e\n  \u003cdiv style=\"flex: 1;\"\u003e\n    \u003ctextarea id=\"markdown\" placeholder=\"請輸入 Markdown 內容...\"\u003e\u003c/textarea\u003e\n    \u003cdiv style=\"margin-top: 0.5rem; display: flex; gap: 0.5rem;\"\u003e\n      \u003cbutton class=\"copy-button\" style=\"background: #888;\" onclick=\"loadExample()\"\u003e🧪 載入範例\u003c/button\u003e\n      \u003cbutton class=\"copy-button\" style=\"background: #cc4444;\" onclick=\"clearInput()\"\u003e🧹 清除內容\u003c/button\u003e\n    \u003c/div\u003e\n  \u003c/div\u003e\n  \u003cdiv class=\"output\" style=\"flex: 1;\"\u003e\n    \u003ctextarea id=\"bbcode\" readonly placeholder=\"這裡會顯示 BBCode 結果...\"\u003e\u003c/textarea\u003e\n    \u003cbutton class=\"copy-button\" onclick=\"copyBBCode()\"\u003e📋 複製 BBCode\u003c/button\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cscript\u003e\nconst mdInput = document.getElementById(\"markdown\");\nconst bbOutput = document.getElementById(\"bbcode\");\n\nmdInput.addEventListener(\"input\", () =\u003e {\n  bbOutput.value = convertMarkdownToBBCode(mdInput.value);\n});\n\nfunction convertMarkdownToBBCode(md) {\n  let bb = md;\n  bb = bb.replace(/^### (.*$)/gim, '[size=3][b]$1[/b][/size]');\n  bb = bb.replace(/^## (.*$)/gim, '[size=4][b]$1[/b][/size]');\n  bb = bb.replace(/^# (.*$)/gim, '[size=5][b]$1[/b][/size]');\n  bb = bb.replace(/\\*\\*(.*?)\\*\\*/gim, '[b]$1[/b]');\n  bb = bb.replace(/\\*(.*?)\\*/gim, '[i]$1[/i]');\n  bb = bb.replace(/~~(.*?)~~/gim, '[s]$1[/s]');\n  bb = bb.replace(/```([\\s\\S]*?)```/g, '[quote]$1[/quote]');\n  bb = bb.replace(/`(.*?)`/g, '[quote]$1[/quote]');\n  bb = bb.replace(/!\\[(.*?)\\]\\((.*?)\\)/gim, '[img=$2]');\n  bb = bb.replace(/\\[(.*?)\\]\\((.*?)\\)/gim, '[url=$2]$1[/url]');\n  bb = convertNestedLists(bb);\n  bb = bb.replace(/\\[\\/ul\\]\\s*\\[ul\\]/g, '');\n  bb = bb.replace(/\\[\\/ol\\]\\s*\\[ol\\]/g, '');\n  bb = bb.replace(/\\n{3,}/g, '\\n\\n');\n  return bb.trim();\n}\n\nfunction convertNestedLists(md) {\n  const lines = md.split('\\n');\n  let bbcode = '';\n  const stack = [];\n  const getIndentLevel = (line) =\u003e line.match(/^(\\s*)/)[1].length;\n\n  lines.forEach((line) =\u003e {\n    const trimmed = line.trim();\n    const indent = getIndentLevel(line);\n    const unorderedMatch = trimmed.match(/^[-*+] (.+)/);\n    const orderedMatch = trimmed.match(/^\\d+\\. (.+)/);\n    let type = null;\n    let content = '';\n    if (unorderedMatch) {\n      type = 'ul';\n      content = unorderedMatch[1];\n    } else if (orderedMatch) {\n      type = 'ol';\n      content = orderedMatch[1];\n    } else {\n      while (stack.length \u003e 0) {\n        const tag = stack.pop();\n        bbcode += `[/${tag.type}]\\n`;\n      }\n      bbcode += line + '\\n';\n      return;\n    }\n    while (stack.length \u003e 0 \u0026\u0026 indent \u003c stack[stack.length - 1].indent) {\n      const tag = stack.pop();\n      bbcode += `[/${tag.type}]\\n`;\n    }\n    if (stack.length === 0 || indent \u003e stack[stack.length - 1].indent || stack[stack.length - 1].type !== type) {\n      bbcode += `[${type}]\\n`;\n      stack.push({ type, indent });\n    }\n    bbcode += `[li]${content}[/li]\\n`;\n  });\n\n  while (stack.length \u003e 0) {\n    const tag = stack.pop();\n    bbcode += `[/${tag.type}]\\n`;\n  }\n  return bbcode;\n}\n\nfunction copyBBCode() {\n  bbOutput.select();\n  document.execCommand(\"copy\");\n  alert(\"已複製 BBCode！\");\n}\n\nfunction loadExample() {\n  const exampleMarkdown = `\n# 標題1\n## 標題2\n### 標題3\n\n**粗體文字**\n*斜體文字*\n~~刪除線~~\n\n\\`單行程式碼\\`\n\\`\\`\\`\n多行程式碼\n多行程式碼\n\\`\\`\\`\n\n[Google](https://www.google.com)\n\n![圖片](https://example.com/image.jpg)\n\n- 無序清單項目 1\n- 無序清單項目 2\n\n- 巢狀清單項目\n  - 更深層的清單項目\n  \n1. 有序清單項目 1\n2. 有序清單項目 2\n3. 巢狀有序清單項目\n  1. 更深層的有序清單項目\n  `;\n  mdInput.value = exampleMarkdown;\n  bbOutput.value = convertMarkdownToBBCode(exampleMarkdown);\n}\n\nfunction clearInput() {\n  mdInput.value = '';\n  bbOutput.value = '';\n}\n\u003c/script\u003e\n\u003ch2 id=\"-支援語法對照表適用巴哈姆特\"\u003e✅ 支援語法對照表（適用巴哈姆特）\u003c/h2\u003e\n\u003ctable\u003e\n  \u003cthead\u003e\n      \u003ctr\u003e\n          \u003cth\u003eMarkdown\u003c/th\u003e\n          \u003cth\u003eBBCode（轉換結果）\u003c/th\u003e\n          \u003cth\u003e備註\u003c/th\u003e\n      \u003c/tr\u003e\n  \u003c/thead\u003e\n  \u003ctbody\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e\u003ccode\u003e# 標題\u003c/code\u003e\u003c/td\u003e\n          \u003ctd\u003e\u003ccode\u003e[size=5][b]標題[/b][/size]\u003c/code\u003e\u003c/td\u003e\n          \u003ctd\u003e用來模擬大標題\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e\u003ccode\u003e**粗體**\u003c/code\u003e\u003c/td\u003e\n          \u003ctd\u003e\u003ccode\u003e[b]粗體[/b]\u003c/code\u003e\u003c/td\u003e\n          \u003ctd\u003e\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e\u003ccode\u003e*斜體*\u003c/code\u003e\u003c/td\u003e\n          \u003ctd\u003e\u003ccode\u003e[i]斜體[/i]\u003c/code\u003e\u003c/td\u003e\n          \u003ctd\u003e\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e\u003ccode\u003e~~刪除線~~\u003c/code\u003e\u003c/td\u003e\n          \u003ctd\u003e\u003ccode\u003e[s]刪除線[/s]\u003c/code\u003e\u003c/td\u003e\n          \u003ctd\u003e\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e\u003ccode\u003e`程式碼`\u003c/code\u003e\u003c/td\u003e\n          \u003ctd\u003e\u003ccode\u003e[quote]程式碼[/quote]\u003c/code\u003e\u003c/td\u003e\n          \u003ctd\u003e為避免 \u003ccode\u003e[code]\u003c/code\u003e 造成顯示問題\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e\u003ccode\u003e```多行程式碼```\u003c/code\u003e\u003c/td\u003e\n          \u003ctd\u003e\u003ccode\u003e[quote]多行程式碼[/quote]\u003c/code\u003e\u003c/td\u003e\n          \u003ctd\u003e可跨行，貼文不易亂格式\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e\u003ccode\u003e[名稱](網址)\u003c/code\u003e\u003c/td\u003e\n          \u003ctd\u003e\u003ccode\u003e[url=網址]名稱[/url]\u003c/code\u003e\u003c/td\u003e\n          \u003ctd\u003e\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e\u003ccode\u003e![替代文字](圖片網址)\u003c/code\u003e\u003c/td\u003e\n          \u003ctd\u003e\u003ccode\u003e[img=圖片網址]\u003c/code\u003e\u003c/td\u003e\n          \u003ctd\u003e巴哈格式\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e\u003ccode\u003e- 項目\u003c/code\u003e\u003c/td\u003e\n          \u003ctd\u003e\u003ccode\u003e[ul][li]項目[/li][/ul]\u003c/code\u003e\u003c/td\u003e\n          \u003ctd\u003e無序清單，建議包含在 \u003ccode\u003e[ul]\u003c/code\u003e 中\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e\u003ccode\u003e1. 項目\u003c/code\u003e\u003c/td\u003e\n          \u003ctd\u003e\u003ccode\u003e[ol][li]項目[/li][/ol]\u003c/code\u003e\u003c/td\u003e\n          \u003ctd\u003e有序清單，建議包含在 \u003ccode\u003e[ol]\u003c/code\u003e 中\u003c/td\u003e\n      \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3 id=\"-注意事項\"\u003e⚠️ 注意事項\u003c/h3\u003e\n\u003cblockquote\u003e\n\u003cp\u003e為避免貼文出現 [code] 等 HTML 編碼問題，本工具將原本的 [code] 語法改為使用 [quote] 顯示程式碼。如果你熟悉巴哈排版格式，也可自行將 [quote] 改回 [code] 使用。\u003c/p\u003e","title":"Markdown 轉 BBCode 工具｜支援巴哈姆特發文格式"},{"content":"前言 最近去超商列印資料，發現一個有趣的情況，自己的隨身碟在自己電腦讀得到，但拿去超商卻讀不掉，嘗試格式化或者變換格式，卻沒有效果。\n警告 以下操作會導致你的資料消失，請記得備份。\n實際操作 以下是透過Windows去處理這個問題\n開啟命令提示字元 Windows 標誌鍵 + R 或者直接搜尋命令提示字元或cmd皆可\n開啟diskpart diskpart 直接輸入以上指令\n找到你要重新分割的裝置 list disk 直接輸入以上指令，並找到你的對應裝置記下編號。\n指定你要重設的裝置 select disk {your_device_number} 輸入以上指令，並把{your_device_number}整段替換成你要重設的裝置編號。\n範例\nselect disk 5 刪除所有分割區並重置硬碟 clean 這樣就大功告成啦! 剩下就走一般的格式化流程即可。\n心得 雖然現在很多超商都有雲端資料上傳列印，但有些夾帶個資的資料，心裡還是毛毛的，所以有時候會想要透過實體USB去超商列印，這篇文章就給有遇到類似問題的人參考啦。\n參考文章 使用Windows DiskPart重置SSD ","permalink":"https://www.arlenfuture.com/tech/how-to-fix-usb-flash-drive-not-found-with-convenience-store-printer/","summary":"\u003ch2 id=\"前言\"\u003e前言\u003c/h2\u003e\n\u003cp\u003e最近去超商列印資料，發現一個有趣的情況，自己的隨身碟在自己電腦讀得到，但拿去超商卻讀不掉，嘗試格式化或者變換格式，卻沒有效果。\u003c/p\u003e\n\u003ch2 id=\"警告\"\u003e警告\u003c/h2\u003e\n\u003cp\u003e以下操作會導致你的資料消失，請記得備份。\u003c/p\u003e\n\u003ch2 id=\"實際操作\"\u003e實際操作\u003c/h2\u003e\n\u003cp\u003e以下是透過Windows去處理這個問題\u003c/p\u003e\n\u003ch3 id=\"開啟命令提示字元\"\u003e開啟命令提示字元\u003c/h3\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003eWindows 標誌鍵 + R\n\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e或者直接搜尋命令提示字元或cmd皆可\u003c/p\u003e\n\u003ch3 id=\"開啟diskpart\"\u003e開啟diskpart\u003c/h3\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" class=\"chroma\"\u003e\u003ccode class=\"language-shell\" data-lang=\"shell\"\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ediskpart\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003e直接輸入以上指令\u003c/p\u003e\n\u003ch3 id=\"找到你要重新分割的裝置\"\u003e找到你要重新分割的裝置\u003c/h3\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" class=\"chroma\"\u003e\u003ccode class=\"language-shell\" data-lang=\"shell\"\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003elist disk\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003e直接輸入以上指令，並找到你的對應裝置記下編號。\u003c/p\u003e\n\u003ch3 id=\"指定你要重設的裝置\"\u003e指定你要重設的裝置\u003c/h3\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" class=\"chroma\"\u003e\u003ccode class=\"language-shell\" data-lang=\"shell\"\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003eselect\u003c/span\u003e disk \u003cspan class=\"o\"\u003e{\u003c/span\u003eyour_device_number\u003cspan class=\"o\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003e輸入以上指令，並把\u003ccode\u003e{your_device_number}\u003c/code\u003e整段替換成你要重設的裝置編號。\u003c/p\u003e\n\u003cp\u003e範例\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" class=\"chroma\"\u003e\u003ccode class=\"language-shell\" data-lang=\"shell\"\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003eselect\u003c/span\u003e disk \u003cspan class=\"m\"\u003e5\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch3 id=\"刪除所有分割區並重置硬碟\"\u003e刪除所有分割區並重置硬碟\u003c/h3\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" class=\"chroma\"\u003e\u003ccode class=\"language-shell\" data-lang=\"shell\"\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eclean\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003e這樣就大功告成啦! 剩下就走一般的格式化流程即可。\u003c/p\u003e\n\u003ch2 id=\"心得\"\u003e心得\u003c/h2\u003e\n\u003cp\u003e雖然現在很多超商都有雲端資料上傳列印，但有些夾帶個資的資料，心裡還是毛毛的，所以有時候會想要透過實體USB去超商列印，這篇文章就給有遇到類似問題的人參考啦。\u003c/p\u003e\n\u003ch2 id=\"參考文章\"\u003e參考文章\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://www.crucial.tw/support/articles-faq-ssd/reset-ssd-with-windows-diskpart\"\u003e使用Windows DiskPart重置SSD\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e","title":"解決隨身碟在超商無法讀取到的問題【小知識】"},{"content":"前言 最近工作使用到MySQL，加上專案有使用到ORM相關工具，導致執行語法，不能很直觀的追蹤到，這邊會教你如何開啟MySQL的語法執行紀錄。\n設定 確認log的啟用狀態 show variables like \u0026#39;general%\u0026#39;; 如果general_log是ON，代表你已經開啟了，只要確認存到哪裡去即可。\n開啟general_log SET global log_output = \u0026#39;table\u0026#39;; -- 寫入至mysql.general_log，預設是寫入file內。 SET global general_log=1; -- 開啟general_log。 這邊的話，如果是自己測試用，我個人會把log寫入至Table，這樣在查詢時比較方便，但建議沒在使用的時候記得關閉，會佔用相當大的容量。\n查詢語法 SELECT * FROM mysql.general_log; CONVERT(sql_text USING utf8); -- blob型態的可以用這個語法轉換。 心得 在轉換各種環境時，常常需要Ready各式的測試方式，但其實大同小異，如果接下來有時間的話，我在整理slow_query在production環境上的設定，供大家參考。\n","permalink":"https://www.arlenfuture.com/tech/how-to-enable-query-log-in-mysql/","summary":"\u003ch2 id=\"前言\"\u003e前言\u003c/h2\u003e\n\u003cp\u003e最近工作使用到MySQL，加上專案有使用到ORM相關工具，導致執行語法，不能很直觀的追蹤到，這邊會教你如何開啟MySQL的語法執行紀錄。\u003c/p\u003e\n\u003ch2 id=\"設定\"\u003e設定\u003c/h2\u003e\n\u003ch3 id=\"確認log的啟用狀態\"\u003e確認log的啟用狀態\u003c/h3\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" class=\"chroma\"\u003e\u003ccode class=\"language-sql\" data-lang=\"sql\"\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003eshow\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"n\"\u003evariables\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"k\"\u003elike\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;general%\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e;\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003e如果\u003ccode\u003egeneral_log\u003c/code\u003e是\u003ccode\u003eON\u003c/code\u003e，代表你已經開啟了，只要確認存到哪裡去即可。\u003c/p\u003e\n\u003ch3 id=\"開啟general_log\"\u003e開啟general_log\u003c/h3\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" class=\"chroma\"\u003e\u003ccode class=\"language-sql\" data-lang=\"sql\"\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003eSET\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"k\"\u003eglobal\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"n\"\u003elog_output\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;table\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e;\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e-- 寫入至mysql.general_log，預設是寫入file內。\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003eSET\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"k\"\u003eglobal\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"n\"\u003egeneral_log\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"mi\"\u003e1\u003c/span\u003e\u003cspan class=\"p\"\u003e;\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e-- 開啟general_log。\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003e這邊的話，如果是自己測試用，我個人會把log寫入至Table，這樣在查詢時比較方便，但建議沒在使用的時候記得關閉，會佔用相當大的容量。\u003c/p\u003e\n\u003ch3 id=\"查詢語法\"\u003e查詢語法\u003c/h3\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" class=\"chroma\"\u003e\u003ccode class=\"language-sql\" data-lang=\"sql\"\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003eSELECT\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e\u003cspan class=\"o\"\u003e*\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003eFROM\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e\u003cspan class=\"n\"\u003emysql\u003c/span\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003egeneral_log\u003c/span\u003e\u003cspan class=\"p\"\u003e;\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" class=\"chroma\"\u003e\u003ccode class=\"language-sql\" data-lang=\"sql\"\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003eCONVERT\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003esql_text\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"k\"\u003eUSING\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"n\"\u003eutf8\u003c/span\u003e\u003cspan class=\"p\"\u003e);\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e-- blob型態的可以用這個語法轉換。\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch2 id=\"心得\"\u003e心得\u003c/h2\u003e\n\u003cp\u003e在轉換各種環境時，常常需要Ready各式的測試方式，但其實大同小異，如果接下來有時間的話，我在整理slow_query在production環境上的設定，供大家參考。\u003c/p\u003e","title":"在MySQL啟用語法執行紀錄【MySQL】"},{"content":"前言 最近在利用Meta Quest 2做為開發設備，關於開啟開發人員模式，Meta的文件沒有寫得很詳細，我這邊做進一步的補充。\n開啟步驟 Device Setup 前面註冊的部份，可以參考上面的官方文件到Verify Your Account，我這邊不多做敘述。 從手機APP去啟用開發人員模式。 Menu -\u0026gt; 裝置 -\u0026gt; 往下滑 -\u0026gt; 開發人員模式。 從Meta Quest2去啟用開發人員模式。 Done. 接著你就可以繼續相關的連線之類的(Ex:ADB等等。 參考 Get Started with Oculus in Unity ","permalink":"https://www.arlenfuture.com/tech/create-meta-developer-accounts-for-meta-quest-2/","summary":"\u003ch2 id=\"前言\"\u003e前言\u003c/h2\u003e\n\u003cp\u003e最近在利用Meta Quest 2做為開發設備，關於開啟開發人員模式，Meta的文件沒有寫得很詳細，我這邊做進一步的補充。\u003c/p\u003e\n\u003ch2 id=\"開啟步驟\"\u003e開啟步驟\u003c/h2\u003e\n\u003ch3 id=\"device-setup\"\u003e\u003ca href=\"https://developer.oculus.com/documentation/native/android/mobile-device-setup/\"\u003eDevice Setup\u003c/a\u003e\u003c/h3\u003e\n\u003col\u003e\n\u003cli\u003e前面註冊的部份，可以參考上面的官方文件到\u003ccode\u003eVerify Your Account\u003c/code\u003e，我這邊不多做敘述。\u003c/li\u003e\n\u003cli\u003e從手機APP去啟用開發人員模式。\u003c/li\u003e\n\u003c/ol\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003eMenu -\u0026gt; 裝置 -\u0026gt; 往下滑 -\u0026gt; 開發人員模式。\n\u003c/code\u003e\u003c/pre\u003e\u003col start=\"3\"\u003e\n\u003cli\u003e從Meta Quest2去啟用開發人員模式。\u003c/li\u003e\n\u003cli\u003eDone.\n接著你就可以繼續相關的連線之類的(Ex:ADB等等。\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch2 id=\"參考\"\u003e參考\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://developer.oculus.com/documentation/unity/unity-gs-overview/\"\u003eGet Started with Oculus in Unity\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e","title":"在Meta Quest 2上開啟開發人員帳號【Meta】"},{"content":"前言 前陣子工作上從.NET大桶餐的環境跳槽到MacOS為主的開發環境，第一個遇到的問題，就是版本控制，雖然自身也有使用MacOS相關產品，但因為通常是OpenSource的關係，可以使用GitKraken去無痛銜接，但在工作環境下，公司不一定備有習慣的版本控制工具的License，今天就是來分享允許在商業環境下使用的免費版控工具SourceTree遇到的問題。\n問題敘述 我在MacOS上使用SourceTree時，發現無法使用原本預設OAuth登入GitHub，當時對這個錯誤提示有錯誤的理解，我當時因為過去是使用Azure DevOps的平台，過去我是使用SSH解決問題，這個方法暫時可行，但會出現每次重開機SSH Key就會失效的問題，導致需要常常重設，後來專案比較有閒暇時間，重新回頭理解問題，發現是因為2FA設定導致，原本的方式無法登入。\n解決方法 相關設定可以參考底下官方文章。 2023年GitHub將全面啟用雙因素驗證。 這篇因為官方寫得很詳細，我就不另外做操作上的敘述，如果有操作上問題也歡迎在底下留言。 參考 Two-Factor Authentication (2FA) with GitHub in SourceTree GitHub將全面啟用雙因素驗證，所有提交程式碼的使用者須在2023年底前啟用2FA ","permalink":"https://www.arlenfuture.com/tech/login-2fa-github-accounts-with-sourcetree/","summary":"\u003ch2 id=\"前言\"\u003e前言\u003c/h2\u003e\n\u003cp\u003e前陣子工作上從.NET大桶餐的環境跳槽到MacOS為主的開發環境，第一個遇到的問題，就是版本控制，雖然自身也有使用MacOS相關產品，但因為通常是OpenSource的關係，可以使用GitKraken去無痛銜接，但在工作環境下，公司不一定備有習慣的版本控制工具的License，今天就是來分享允許在商業環境下使用的免費版控工具SourceTree遇到的問題。\u003c/p\u003e\n\u003ch2 id=\"問題敘述\"\u003e問題敘述\u003c/h2\u003e\n\u003cp\u003e我在MacOS上使用SourceTree時，發現無法使用原本預設OAuth登入GitHub，當時對這個錯誤提示有錯誤的理解，我當時因為過去是使用Azure DevOps的平台，過去我是使用SSH解決問題，這個方法暫時可行，但會出現每次重開機SSH Key就會失效的問題，導致需要常常重設，後來專案比較有閒暇時間，重新回頭理解問題，發現是因為2FA設定導致，原本的方式無法登入。\u003c/p\u003e\n\u003ch2 id=\"解決方法\"\u003e解決方法\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e相關設定可以參考底下官方文章。\u003c/li\u003e\n\u003cli\u003e2023年GitHub將全面啟用雙因素驗證。\n這篇因為官方寫得很詳細，我就不另外做操作上的敘述，如果有操作上問題也歡迎在底下留言。\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"參考\"\u003e參考\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://confluence.atlassian.com/sourcetreekb/two-factor-authentication-2fa-with-github-in-sourcetree-402033499.html\"\u003eTwo-Factor Authentication (2FA) with GitHub in SourceTree\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.ithome.com.tw/tech/150854\"\u003eGitHub將全面啟用雙因素驗證，所有提交程式碼的使用者須在2023年底前啟用2FA\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e","title":"解決SourceTree無法登入雙因素驗證(2FA)的Github帳號【SourceTree】"},{"content":"這篇文章會分享關於在樹梅派上建置Open Media Vault的流程。\n建置步驟 Step1. 把系統寫到記憶卡內 我這邊選擇使用官方的Raspberry Pi OS Lite(64-bit)，並使用Raspberry Pi Imager把系統寫到記憶卡內。\nP.S.因為發文時OpneMediaVault還沒有發布64位元樹梅派版本的映像檔，所以這邊選擇使用樹梅派官方的OS再另外安裝。\nStep2. 先對系統做完整更新 安裝更新\nsudo apt update -y \u0026amp;\u0026amp; sudo apt upgrade -y 清除安裝套件\nsudo apt clean Step3. 執行安裝指令 安裝後會把SSH等登入方式重置，安裝時間約耗時10分鐘，跑完會重開機。\nsudo wget -O - https://github.com/OpenMediaVault-Plugin-Developers/installScript/raw/master/install | sudo bash Step4. 取得裝置IP位置，建議使用有線網路。 等等要使用這組IP登入進OpenMediaVault的管理介面。\n我個人是使用以下兩種方式去查詢。\n直接接螢幕確認IP，使用指令查詢IP。 ifconfig 如果環境不允許接螢幕，可以從Router那邊去查詢，發送的IP。 Step5. 透過IP位址登入進OpenMediaVault的網頁管理介面 http://ipaddress 以下是預設用戶名稱跟密碼，記得透過介面更改預設密碼。\nUsername: admin Password: openmediavault Step6. 更改連線方式只能透過SSL/TLS方式連線 此步驟非必要，單純安全考量。\n系統 -\u0026gt; 憑證 -\u0026gt; SSL 建立自己的自簽憑證\n系統 -\u0026gt; 工作台 勾選以下選項，並選擇剛剛建立的憑證。\nSSL/TLS已啟用 強制SSL/TLS Step7. 透過SSL/TLS連上網頁管理介面 https://ipaddress Step8. 檢查OpenMediaVault是否有需要更新 系統 -\u0026gt; 更新管理 -\u0026gt; 更新\nStep9. 個人推薦插件 此步驟非必要，這是一個能在儀表板顯示CPU溫度的插件，個人認為對樹梅派是很重要的功能，尤其是無風扇或者裸版用戶。\n系統 -\u0026gt; 插件\nopenmediavault-cputemp 6.1.1 Step10. Done! 基本設定就到此為止了~\n參考 OpenMediaVault-Plugin-Developers/installScript ","permalink":"https://www.arlenfuture.com/tech/openmediavault-in-raspberry-pi-4b/","summary":"\u003cp\u003e這篇文章會分享關於在樹梅派上建置Open Media Vault的流程。\u003c/p\u003e\n\u003ch2 id=\"建置步驟\"\u003e建置步驟\u003c/h2\u003e\n\u003ch3 id=\"step1-把系統寫到記憶卡內\"\u003eStep1. 把系統寫到記憶卡內\u003c/h3\u003e\n\u003cp\u003e我這邊選擇使用官方的\u003cstrong\u003eRaspberry Pi OS Lite(64-bit)\u003c/strong\u003e，並使用\u003cstrong\u003eRaspberry Pi Imager\u003c/strong\u003e把系統寫到記憶卡內。\u003c/p\u003e\n\u003cp\u003eP.S.因為發文時OpneMediaVault還沒有發布64位元樹梅派版本的映像檔，所以這邊選擇使用樹梅派官方的OS再另外安裝。\u003c/p\u003e\n\u003ch3 id=\"step2-先對系統做完整更新\"\u003eStep2. 先對系統做完整更新\u003c/h3\u003e\n\u003cp\u003e安裝更新\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" class=\"chroma\"\u003e\u003ccode class=\"language-shell\" data-lang=\"shell\"\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003esudo apt update -y \u003cspan class=\"o\"\u003e\u0026amp;\u0026amp;\u003c/span\u003e sudo apt upgrade -y\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003e清除安裝套件\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" class=\"chroma\"\u003e\u003ccode class=\"language-shell\" data-lang=\"shell\"\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003esudo apt clean\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch3 id=\"step3-執行安裝指令\"\u003eStep3. 執行安裝指令\u003c/h3\u003e\n\u003cp\u003e安裝後會把SSH等登入方式重置，安裝時間約耗時10分鐘，跑完會重開機。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" class=\"chroma\"\u003e\u003ccode class=\"language-shell\" data-lang=\"shell\"\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003esudo wget -O - https://github.com/OpenMediaVault-Plugin-Developers/installScript/raw/master/install \u003cspan class=\"p\"\u003e|\u003c/span\u003e sudo bash\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch3 id=\"step4-取得裝置ip位置建議使用有線網路\"\u003eStep4. 取得裝置IP位置，建議使用有線網路。\u003c/h3\u003e\n\u003cp\u003e等等要使用這組IP登入進OpenMediaVault的管理介面。\u003c/p\u003e\n\u003cp\u003e我個人是使用以下兩種方式去查詢。\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003e直接接螢幕確認IP，使用指令查詢IP。\u003c/li\u003e\n\u003c/ol\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" class=\"chroma\"\u003e\u003ccode class=\"language-shell\" data-lang=\"shell\"\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eifconfig\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003col start=\"2\"\u003e\n\u003cli\u003e如果環境不允許接螢幕，可以從Router那邊去查詢，發送的IP。\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch3 id=\"step5-透過ip位址登入進openmediavault的網頁管理介面\"\u003eStep5. 透過IP位址登入進OpenMediaVault的網頁管理介面\u003c/h3\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003ehttp://ipaddress\n\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e以下是預設用戶名稱跟密碼，記得透過介面更改預設密碼。\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003eUsername: admin\nPassword: openmediavault\n\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e\u003cimg alt=\"更改預設密碼\" loading=\"lazy\" src=\"https://images.arlenfuture.com/2022/09/OpenMediaVault-in-Raspberry-Pi-4B/1.webp\" title=\"更改預設密碼\"\u003e\u003c/p\u003e\n\u003ch3 id=\"step6-更改連線方式只能透過ssltls方式連線\"\u003eStep6. 更改連線方式只能透過SSL/TLS方式連線\u003c/h3\u003e\n\u003cp\u003e此步驟非必要，單純安全考量。\u003c/p\u003e\n\u003ch4 id=\"系統---憑證---ssl\"\u003e系統 -\u0026gt; 憑證 -\u0026gt; SSL\u003c/h4\u003e\n\u003cp\u003e建立自己的自簽憑證\u003c/p\u003e\n\u003cp\u003e\u003cimg alt=\"建立自己的憑證\" loading=\"lazy\" src=\"https://images.arlenfuture.com/2022/09/OpenMediaVault-in-Raspberry-Pi-4B/2.webp\" title=\"建立自己的憑證\"\u003e\u003c/p\u003e\n\u003ch4 id=\"系統---工作台\"\u003e系統 -\u0026gt; 工作台\u003c/h4\u003e\n\u003cp\u003e勾選以下選項，並選擇剛剛建立的憑證。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSSL/TLS已啟用\u003c/li\u003e\n\u003cli\u003e強制SSL/TLS\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cimg alt=\"啟用SSL/TLS\" loading=\"lazy\" src=\"https://images.arlenfuture.com/2022/09/OpenMediaVault-in-Raspberry-Pi-4B/3.webp\" title=\"啟用SSL/TLS\"\u003e\u003c/p\u003e","title":"將你的樹梅派化身為個人NAS【樹梅派】"},{"content":"這篇文章會教你如何透過Google PageSpeed Insights去檢驗網站在Google SEO上的成效\n特色 操作簡單 含有改善建議 使用網站 Google PageSpeed Insights 使用流程 Step1. 貼上你的網站連結 然後點選分析如果第一次跑的話，這個步驟需要多花點時間。\nStep2. 分析結果 平台這邊分成兩種裝置去做測試行動裝置跟電腦，裡面都有各自瞭解實際使用者體驗及診斷效能問題。我這邊就簡單談一下效能問題，影響效能問題大概分為幾個面向。\n伺服器端問題（例：服務供應商不穩定或負載過重\u0026hellip;等) 程式碼問題（例：載入過多的無用程式碼或者反應過慢API\u0026hellip;等） 資源大小問題（例：使用過大的圖片\u0026hellip;等） 以這個部落格來說得到的成績如下\n行動裝置分析結果 電腦分析結果 以我的結果來說，行動裝置就蠻多地方可以優化的，優化順序應該是最佳化建議優先，其次是診斷，會對使用體驗有比較明顯的差異。底下也有已經通過稽核的項目可以參考，這邊算是我覺得這個分析蠻優秀的地方，基本上都直接點出問題點了，所以網站要優化就有具體明確的方向可以參考。\n分享的最後，SEO的相關規範也是會異動的，所以定時做SEO分析，才可以讓你持續保持SEO排名。\n","permalink":"https://www.arlenfuture.com/tech/check-seo-in-google-pagespeed-insights/","summary":"\u003cp\u003e這篇文章會教你如何透過\u003cstrong\u003eGoogle PageSpeed Insights\u003c/strong\u003e去檢驗網站在Google SEO上的成效\u003c/p\u003e\n\u003ch2 id=\"特色\"\u003e特色\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e操作簡單\u003c/li\u003e\n\u003cli\u003e含有改善建議\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"使用網站\"\u003e使用網站\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://developers.google.com/speed/pagespeed/insights/?hl=zh-tw\"\u003eGoogle PageSpeed Insights\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"使用流程\"\u003e使用流程\u003c/h2\u003e\n\u003ch3 id=\"step1-貼上你的網站連結\"\u003eStep1. 貼上你的網站連結\u003c/h3\u003e\n\u003cp\u003e然後點選\u003cstrong\u003e分析\u003c/strong\u003e如果第一次跑的話，這個步驟需要多花點時間。\u003c/p\u003e\n\u003cp\u003e\u003cimg alt=\"Paste your website url\" loading=\"lazy\" src=\"https://images.arlenfuture.com/2022/03/Check-SEO-in-Google-PageSpeed-Insights/1.webp\" title=\"Paste your website url\"\u003e\u003c/p\u003e\n\u003ch3 id=\"step2-分析結果\"\u003eStep2. 分析結果\u003c/h3\u003e\n\u003cp\u003e平台這邊分成兩種裝置去做測試\u003cstrong\u003e行動裝置\u003c/strong\u003e跟\u003cstrong\u003e電腦\u003c/strong\u003e，裡面都有各自\u003cstrong\u003e瞭解實際使用者體驗\u003c/strong\u003e及\u003cstrong\u003e診斷效能問題\u003c/strong\u003e。我這邊就簡單談一下效能問題，影響效能問題大概分為幾個面向。\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003e伺服器端問題（例：服務供應商不穩定或負載過重\u0026hellip;等)\u003c/li\u003e\n\u003cli\u003e程式碼問題（例：載入過多的無用程式碼或者反應過慢API\u0026hellip;等）\u003c/li\u003e\n\u003cli\u003e資源大小問題（例：使用過大的圖片\u0026hellip;等）\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003e以這個部落格來說得到的成績如下\u003c/p\u003e\n\u003ch4 id=\"行動裝置分析結果\"\u003e行動裝置分析結果\u003c/h4\u003e\n\u003cp\u003e\u003cimg alt=\"Mobile Device Score\" loading=\"lazy\" src=\"https://images.arlenfuture.com/2022/03/Check-SEO-in-Google-PageSpeed-Insights/2.webp\" title=\"Mobile Device Score\"\u003e\u003c/p\u003e\n\u003cp\u003e\u003cimg alt=\"Mobile Device Advice\" loading=\"lazy\" src=\"https://images.arlenfuture.com/2022/03/Check-SEO-in-Google-PageSpeed-Insights/3.webp\" title=\"Mobile Device Advice\"\u003e\u003c/p\u003e\n\u003ch4 id=\"電腦分析結果\"\u003e電腦分析結果\u003c/h4\u003e\n\u003cp\u003e\u003cimg alt=\"Desktop Device Score\" loading=\"lazy\" src=\"https://images.arlenfuture.com/2022/03/Check-SEO-in-Google-PageSpeed-Insights/4.webp\" title=\"Desktop Device Score\"\u003e\u003c/p\u003e\n\u003cp\u003e\u003cimg alt=\"Desktop Device Advice\" loading=\"lazy\" src=\"https://images.arlenfuture.com/2022/03/Check-SEO-in-Google-PageSpeed-Insights/5.webp\" title=\"Desktop Device Advice\"\u003e\u003c/p\u003e\n\u003cp\u003e以我的結果來說，行動裝置就蠻多地方可以優化的，優化順序應該是最佳化建議優先，其次是診斷，會對使用體驗有比較明顯的差異。底下也有已經通過稽核的項目可以參考，這邊算是我覺得這個分析蠻優秀的地方，基本上都直接點出問題點了，所以網站要優化就有具體明確的方向可以參考。\u003c/p\u003e\n\u003cp\u003e分享的最後，SEO的相關規範也是會異動的，所以定時做SEO分析，才可以讓你持續保持SEO排名。\u003c/p\u003e","title":"檢查網站在Google SEO上的成效【架設部落格#5】"},{"content":"這篇文章會教你如何在 Minimal Mistakes 主題下設定 Disqus 第三方留言工具\n特色 有免費方案 設定簡單 可多平台登入 預先準備 Disqus 帳號 建置流程 Step1. 先建立一個新的 Site 先在首頁點選GET STARTED\n選I want to install Disqus on my site\n設定Website Name這邊要注意紅圈處，之後會是你的 shortname，以後會拿這個加在_config.yml。\nCategory 部分就看自己網站什麼類型的。\nLanguage 的部分，這邊的 Chinese 是簡體中文，我個人不想繁簡混在一起，所以我選英文，你也可以透過其他方式把它繁體化。\nStep2. 額外設定 1. Select Plan. 這邊我是選擇 Basic 的比較沒有要用太進階的功能，也不希望有費用的產生。\n2. Select your platform. 這邊就果斷的選擇 Jekyll，因為本文使用的就是基於 Jekyll 的 Minimal Mistakes。\n3. Jekyll install instructions 之後他就會提供建議的安裝方式，但因為我們使用的是 Minimal Mistakes，安裝方式有些微不同，這邊就由我來提供。\n在你的**_config.yml**加入這幾行。\n# disqus comments comments: provider: \u0026#34;disqus\u0026#34; disqus: shortname: \u0026#34;your shortname\u0026#34; 還有在你的 defaults 的 posts 裡面加入\ncomments: true 像是這樣\ndefaults: - scope: path: \u0026#34;\u0026#34; type: posts values: comments: true 4. Configure Disqus 這邊就提供你一些設定，如果視覺想要固定也可以從底下調整，我是設定 Auto，畫面都挺正常的。\n5. Comment and Moderation Settings 這邊可以設定你對留言的嚴謹度，可以自己選擇，我是選擇Balanced，如果未來很多垃圾留言，才會調整成比較嚴謹。\n6. 大功告成 結果如下圖，我覺得學習這類事情蠻有趣的，多吸收橫向知識，以後在規劃服務的時候，就有更多 Idea 可以提供，也不用一直重複造輪子，對未來挺有幫助的。\n","permalink":"https://www.arlenfuture.com/tech/how-to-add-third-party-comment-disqus-to-website/","summary":"\u003cp\u003e這篇文章會教你如何在 Minimal Mistakes 主題下設定 Disqus 第三方留言工具\u003c/p\u003e\n\u003ch2 id=\"特色\"\u003e特色\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e有免費方案\u003c/li\u003e\n\u003cli\u003e設定簡單\u003c/li\u003e\n\u003cli\u003e可多平台登入\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"預先準備\"\u003e預先準備\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://disqus.com/\"\u003eDisqus 帳號\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"建置流程\"\u003e建置流程\u003c/h2\u003e\n\u003ch3 id=\"step1-先建立一個新的-site\"\u003eStep1. 先建立一個新的 Site\u003c/h3\u003e\n\u003cp\u003e先在首頁點選\u003cstrong\u003eGET STARTED\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cimg alt=\"Disqus Create a site 1\" loading=\"lazy\" src=\"https://images.arlenfuture.com/2021/05/How-to-Add-third-comment-disqus-to-blog/1.webp\" title=\"Disqus Create a site 1\"\u003e\u003c/p\u003e\n\u003cp\u003e選\u003cstrong\u003eI want to install Disqus on my site\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cimg alt=\"Disqus Create a site 2\" loading=\"lazy\" src=\"https://images.arlenfuture.com/2021/05/How-to-Add-third-comment-disqus-to-blog/2.webp\" title=\"Disqus Create a site 2\"\u003e\u003c/p\u003e\n\u003cp\u003e\u003cimg alt=\"Disqus Create a site 3\" loading=\"lazy\" src=\"https://images.arlenfuture.com/2021/05/How-to-Add-third-comment-disqus-to-blog/3.webp\" title=\"Disqus Create a site 3\"\u003e\u003c/p\u003e\n\u003cp\u003e設定\u003cstrong\u003eWebsite Name\u003c/strong\u003e這邊要注意紅圈處，之後會是你的 shortname，以後會拿這個加在_config.yml。\u003c/p\u003e\n\u003cp\u003eCategory 部分就看自己網站什麼類型的。\u003c/p\u003e\n\u003cp\u003eLanguage 的部分，這邊的 Chinese 是簡體中文，我個人不想繁簡混在一起，所以我選英文，你也可以透過其他方式把它繁體化。\u003c/p\u003e\n\u003ch3 id=\"step2-額外設定\"\u003eStep2. 額外設定\u003c/h3\u003e\n\u003ch4 id=\"1-select-plan\"\u003e1. Select Plan.\u003c/h4\u003e\n\u003cp\u003e這邊我是選擇 Basic 的比較沒有要用太進階的功能，也不希望有費用的產生。\u003c/p\u003e","title":"為自己的部落格加入第三方留言工具Disqus【架設部落格#4】"},{"content":"每次開發到 SMTP 相關應用，就會衍生一個問題，我要用什麼來測試，找人要 SMTP Server，人家可能不給你，用自己的 Gmail 去申請 SMTP Server 會把開發環境弄髒，自己透過 Windows 內建架設，版本可能不對，例如:家用版，而且還要事後跑設定刪除。那有沒有一個比較輕量的 SMTP Server 可以用，今天就是來推薦這個軟體，smtp4dev。\n特色 免費 不用設定 刪除容易 程式下載 rnwood/smtp4dev 範例程式 ArlenFuture/SmtpClient.Sample 文章環境 OS : Win 10 20H2 Home Edition IDE : Visual Studio 2019 建置流程 Step1. 建置測試用的 SmtpClient 程式 如果不想自己建置的話，可以直接透過上面的範例程式去做測試，但這邊還是會簡單提一下範例程式的架構跟邏輯。\n範例程式是用.NET 5建立的ASP.NET Core Web API\nSMTP Server Host 已經存在 appsetting.json 裡，有需要可以從這裡修改。\n開起來畫面會像是這樣\n點開後，可以從底下的 Request body 去傳入要發送的訊息。\n現在按下去，會失敗，因為你 SMTP Server 還沒開 xD。\nStep2. 建置測試用 SMTP Server 我個人是使用Rnwood.Smtp4dev-win-x64-3.1.3.2這個版本的，請開啟以下這個檔案\nRnwood.Smtp4dev.exe 開啟後，畫面如下圖\n紅圈是他前端視覺化的位置，如下圖\nStep3. 透過程式去發送 Message 給 SMTP Server 這邊就用範例程式去發送 Message\nStep4. 接收資料，大功告成! 回到Smtp4dev，就能看到剛剛的 Message 出現在這裡了!\n而且不用時，直接刪除就可以，也沒有特別設定開發環境，真的方便很多。\n參考 System.Net.Mail 命名空間 rnwood/smtp4dev ","permalink":"https://www.arlenfuture.com/tech/how-to-test-your-smtp-client-on-local-easily/","summary":"\u003cp\u003e每次開發到 SMTP 相關應用，就會衍生一個問題，我要用什麼來測試，找人要 SMTP Server，人家可能不給你，用自己的 Gmail 去申請 SMTP Server 會把開發環境弄髒，自己透過 Windows 內建架設，版本可能不對，例如:家用版，而且還要事後跑設定刪除。那有沒有一個比較輕量的 SMTP Server 可以用，今天就是來推薦這個軟體，\u003cstrong\u003esmtp4dev\u003c/strong\u003e。\u003c/p\u003e\n\u003ch2 id=\"特色\"\u003e特色\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e免費\u003c/li\u003e\n\u003cli\u003e不用設定\u003c/li\u003e\n\u003cli\u003e刪除容易\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"程式下載\"\u003e程式下載\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rnwood/smtp4dev\"\u003ernwood/smtp4dev\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"範例程式\"\u003e範例程式\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ArlenFuture/SmtpClient.Sample\"\u003eArlenFuture/SmtpClient.Sample\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"文章環境\"\u003e文章環境\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eOS : Win 10 20H2 Home Edition\u003c/li\u003e\n\u003cli\u003eIDE : Visual Studio 2019\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"建置流程\"\u003e建置流程\u003c/h2\u003e\n\u003ch3 id=\"step1-建置測試用的-smtpclient-程式\"\u003eStep1. 建置測試用的 SmtpClient 程式\u003c/h3\u003e\n\u003cp\u003e如果不想自己建置的話，可以直接透過上面的範例程式去做測試，但這邊還是會簡單提一下範例程式的架構跟邏輯。\u003c/p\u003e\n\u003cp\u003e範例程式是用\u003ccode\u003e.NET 5\u003c/code\u003e建立的\u003ccode\u003eASP.NET Core Web API\u003c/code\u003e\u003c/p\u003e\n\u003cp\u003eSMTP Server Host 已經存在 appsetting.json 裡，有需要可以從這裡修改。\u003c/p\u003e\n\u003cp\u003e開起來畫面會像是這樣\u003c/p\u003e\n\u003cp\u003e\u003cimg alt=\"SmtpClient.Sample\" loading=\"lazy\" src=\"https://images.arlenfuture.com/2021/05/How-to-easy-test-your-smtp-client-on-local/1.webp\" title=\"SmtpClient.Sample\"\u003e\u003c/p\u003e\n\u003cp\u003e點開後，可以從底下的 Request body 去傳入要發送的訊息。\u003c/p\u003e\n\u003cp\u003e\u003cimg alt=\"Request body\" loading=\"lazy\" src=\"https://images.arlenfuture.com/2021/05/How-to-easy-test-your-smtp-client-on-local/2.webp\" title=\"Request body\"\u003e\u003c/p\u003e\n\u003cp\u003e現在按下去，會失敗，因為你 SMTP Server 還沒開 xD。\u003c/p\u003e\n\u003ch3 id=\"step2-建置測試用-smtp-server\"\u003eStep2. 建置測試用 SMTP Server\u003c/h3\u003e\n\u003cp\u003e我個人是使用\u003cstrong\u003eRnwood.Smtp4dev-win-x64-3.1.3.2\u003c/strong\u003e這個版本的，請開啟以下這個檔案\u003c/p\u003e","title":"在開發環境下快速架設測試用SMTP伺服器【開發好好用】"},{"content":"先簡單跟各位聊聊 Fluid Motion，這個技術主要是把原生 24 幀或 30 幀的影片透過演算法的方式補幀到 60 幀，藉此來提升影片流暢度，這篇會教你如何在 A 卡上開啟 Fluid Motion，並套用在 Potplayer 上面。\n特色 免費 設定簡單 環境限制 AMD GCN1.0 以上的顯示卡 粗略估計(HD7750-\u0026gt;Radeon VII) 只要在這範圍內的顯示卡都有支援 筆電的話，APU 也有支援，例如:R3、R5、R7-2X00U、H-\u0026gt;R3、R5、R7-5X00U、H。\n預先安裝 AMD 顯示卡驅動 Bluesky Frame Rate Converter Potplayer 文章環境 建置流程 Step1. Bluesky Frame Rate Converter 開啟 Fluid Motion Enable AMD Fluid Motion Video這項目必開，其他的例如 AFM Mode 可以自己選擇，當 24-\u0026gt;60 時，Mode1 的話，會用兩張原始的幀加三張插值去補幀，Mode2 的話，會用一張原始的幀加四張插值去補幀，簡單來說，就是二去運算的地方比較多，可能會比較流暢，但也有比較多瑕疵的可能，所以可以實際上看影片在做選擇，我平常預設是調 2，調 Auto，感覺常常有放棄補幀的情況。\nStep2. AMD Driver 開啟 Fluid Motion 以這張卡或者筆電 APU 來說畫面上不會顯示 Fluid Motion，所以這邊不用調整，會顯示的卡，例如:RX4X0、RX5X0 等等，就要記得把選項勾起來。\nStep3. Potplay 加入 Bluesky 濾鏡支援 在 Potplay 畫面點 右鍵 -\u0026gt; 濾鏡 -\u0026gt; 濾鏡/解碼器管理\u0026hellip; -\u0026gt; 新增外部濾鏡 -\u0026gt; 路徑選擇 看你的播放器安裝的是什麼版本\n64 位元\nC:\\Program Files\\Bluesky Frame Rate Converter\\BlueskyFRC64.dll 32 位元\nC:\\Program Files\\Bluesky Frame Rate Converter\\BlueskyFRC32.dll -\u0026gt; 選 Bluesky Frame Rate Converter -\u0026gt; 優先順序改成強制使用\nStep4. 大功告成 輸出的 FPS 會在 60 附近浮動，剩下的就自己去感受吧。\n示範影片\n【日語】關於我轉生變成史萊姆這檔事 第 01 話【暴風龍維爾德拉】｜ Muse 木棉花 動畫 線上看 ","permalink":"https://www.arlenfuture.com/tech/enable-fluid-motion-with-your-amd-card/","summary":"\u003cp\u003e先簡單跟各位聊聊 Fluid Motion，這個技術主要是把原生 24 幀或 30 幀的影片透過演算法的方式補幀到 60 幀，藉此來提升影片流暢度，這篇會教你如何在 A 卡上開啟 Fluid Motion，並套用在 Potplayer 上面。\u003c/p\u003e\n\u003ch2 id=\"特色\"\u003e特色\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e免費\u003c/li\u003e\n\u003cli\u003e設定簡單\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"環境限制\"\u003e環境限制\u003c/h2\u003e\n\u003cp\u003eAMD GCN1.0 以上的顯示卡 粗略估計(HD7750-\u0026gt;Radeon VII)\n只要在這範圍內的顯示卡都有支援\n筆電的話，APU 也有支援，例如:R3、R5、R7-2X00U、H-\u0026gt;R3、R5、R7-5X00U、H。\u003c/p\u003e\n\u003ch2 id=\"預先安裝\"\u003e預先安裝\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://www.amd.com/zh-hant/support\"\u003eAMD 顯示卡驅動\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://bluesky-soft.com/en/BlueskyFRC.html\"\u003eBluesky Frame Rate Converter\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://potplayer.daum.net/\"\u003ePotplayer\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"文章環境\"\u003e文章環境\u003c/h2\u003e\n\u003cp\u003e\u003cimg alt=\"Hardware and AMD Driver version\" loading=\"lazy\" src=\"https://images.arlenfuture.com/2021/05/Enable-Fluid-motion-with-your-AMD-Card/1.webp\" title=\"Hardware and AMD Driver version\"\u003e\u003c/p\u003e\n\u003cp\u003e\u003cimg alt=\"Bluesky Frame Rate Converter\" loading=\"lazy\" src=\"https://images.arlenfuture.com/2021/05/Enable-Fluid-motion-with-your-AMD-Card/2.webp\" title=\"Bluesky Frame Rate Converter\"\u003e\u003c/p\u003e\n\u003ch2 id=\"建置流程\"\u003e建置流程\u003c/h2\u003e\n\u003ch3 id=\"step1-bluesky-frame-rate-converter-開啟-fluid-motion\"\u003eStep1. Bluesky Frame Rate Converter 開啟 Fluid Motion\u003c/h3\u003e\n\u003cp\u003e\u003cstrong\u003eEnable AMD Fluid Motion Video\u003c/strong\u003e這項目必開，其他的例如 AFM Mode 可以自己選擇，當 24-\u0026gt;60 時，Mode1 的話，會用兩張原始的幀加三張插值去補幀，Mode2 的話，會用一張原始的幀加四張插值去補幀，簡單來說，就是二去運算的地方比較多，可能會比較流暢，但也有比較多瑕疵的可能，所以可以實際上看影片在做選擇，我平常預設是調 2，調 Auto，感覺常常有放棄補幀的情況。\u003c/p\u003e","title":"提升影片流暢度，在A卡上開啟Fluid Motion【影片好好看】"},{"content":"這篇會教你如何在自己網站(Minimal Mistakes)上加入 Google 分析(Google Analytics)，對使用者操作流量得到更進一步的分析。\n特色 免費 設定簡單 建置流程 Google Analytics\nStep1. 帳戶設定 我這邊是填好帳戶名稱後，預設勾底下三個。\nStep2. 資源設定 資源設定這邊你可以自由設定，但有一些限制，例如:不能純中文等等，我是懶直接設定成網址。\nStep3. 提供商家相關資訊 這裡產業類別我是以部落格主軸去選，因為是個人部落格，所以商家規模選小，然後用途自己勾一勾。\nStep4. 網站串流 這裡要串流到你的網站，然後取得你的評估 ID。\nStep5. 將剛剛取得的評估 ID 加入自己_config.yml 將下面這段 Code 加入至_config.yml，tracking_id 記得替換成自己上面拿到的。\nanalytics: provider: \u0026#34;google-gtag\u0026#34; google: tracking_id: \u0026#34;評估ID\u0026#34; anonymize_ip: false # default 加入後會像這樣\nStep6. 完成 將這個的異動 Push 到 Github 後，記得進去網站內操作一下留下紀錄。就能直接在 Google 分析內看到結果囉。\n","permalink":"https://www.arlenfuture.com/tech/how-to-add-google-analytics-to-website/","summary":"\u003cp\u003e這篇會教你如何在自己網站(Minimal Mistakes)上加入 Google 分析(Google Analytics)，對使用者操作流量得到更進一步的分析。\u003c/p\u003e\n\u003ch2 id=\"特色\"\u003e特色\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e免費\u003c/li\u003e\n\u003cli\u003e設定簡單\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"建置流程\"\u003e建置流程\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"http://analytics.google.com/\"\u003eGoogle Analytics\u003c/a\u003e\u003c/p\u003e\n\u003ch3 id=\"step1-帳戶設定\"\u003eStep1. 帳戶設定\u003c/h3\u003e\n\u003cp\u003e我這邊是填好帳戶名稱後，預設勾底下三個。\u003c/p\u003e\n\u003cp\u003e\u003cimg alt=\"Google Analytics Account Setting\" loading=\"lazy\" src=\"https://images.arlenfuture.com/2021/05/How-to-Add-Google-Analytics-to-blog/1.webp\" title=\"Google Analytics Account Setting\"\u003e\u003c/p\u003e\n\u003ch3 id=\"step2-資源設定\"\u003eStep2. 資源設定\u003c/h3\u003e\n\u003cp\u003e資源設定這邊你可以自由設定，但有一些限制，例如:不能純中文等等，我是懶直接設定成網址。\u003c/p\u003e\n\u003cp\u003e\u003cimg alt=\"Google Analytics Resource Setting\" loading=\"lazy\" src=\"https://images.arlenfuture.com/2021/05/How-to-Add-Google-Analytics-to-blog/2.webp\" title=\"Google Analytics Resource Setting\"\u003e\u003c/p\u003e\n\u003ch3 id=\"step3-提供商家相關資訊\"\u003eStep3. 提供商家相關資訊\u003c/h3\u003e\n\u003cp\u003e這裡產業類別我是以部落格主軸去選，因為是個人部落格，所以商家規模選小，然後用途自己勾一勾。\u003c/p\u003e\n\u003cp\u003e\u003cimg alt=\"Google Analytics Resource Setting\" loading=\"lazy\" src=\"https://images.arlenfuture.com/2021/05/How-to-Add-Google-Analytics-to-blog/3.webp\" title=\"Google Analytics Resource Setting\"\u003e\u003c/p\u003e\n\u003ch3 id=\"step4-網站串流\"\u003eStep4. 網站串流\u003c/h3\u003e\n\u003cp\u003e這裡要串流到你的網站，然後取得你的評估 ID。\u003c/p\u003e\n\u003cp\u003e\u003cimg alt=\"串流設定1\" loading=\"lazy\" src=\"https://images.arlenfuture.com/2021/05/How-to-Add-Google-Analytics-to-blog/4.webp\" title=\"串流設定1\"\u003e\u003c/p\u003e\n\u003cp\u003e\u003cimg alt=\"串流設定2\" loading=\"lazy\" src=\"https://images.arlenfuture.com/2021/05/How-to-Add-Google-Analytics-to-blog/5.webp\" title=\"串流設定2\"\u003e\u003c/p\u003e\n\u003cp\u003e\u003cimg alt=\"串流設定3\" loading=\"lazy\" src=\"https://images.arlenfuture.com/2021/05/How-to-Add-Google-Analytics-to-blog/6.webp\" title=\"串流設定3\"\u003e\u003c/p\u003e\n\u003ch3 id=\"step5-將剛剛取得的評估-id-加入自己_configyml\"\u003eStep5. 將剛剛取得的評估 ID 加入自己_config.yml\u003c/h3\u003e\n\u003cp\u003e將下面這段 Code 加入至_config.yml，tracking_id 記得替換成自己上面拿到的。\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003eanalytics:\n  provider: \u0026#34;google-gtag\u0026#34;\n  google:\n    tracking_id: \u0026#34;評估ID\u0026#34;\n    anonymize_ip: false # default\n\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e加入後會像這樣\u003c/p\u003e\n\u003cp\u003e\u003cimg alt=\"程式設定\" loading=\"lazy\" src=\"https://images.arlenfuture.com/2021/05/How-to-Add-Google-Analytics-to-blog/7.webp\" title=\"程式設定\"\u003e\u003c/p\u003e\n\u003ch3 id=\"step6-完成\"\u003eStep6. 完成\u003c/h3\u003e\n\u003cp\u003e將這個的異動 Push 到 Github 後，記得進去網站內操作一下留下紀錄。就能直接在 Google 分析內看到結果囉。\u003c/p\u003e","title":"為自己的部落格加入Google分析【架設部落格#3】"},{"content":"網站架設後，希望自己的網站能在 Google 搜尋出現，所以使用了 Google Search Console，這篇會教你如何使用 Google Search Console 加入自己網站(Minimal Mistakes)，以提升 SEO。\n特色 免費 設定簡單 建置流程 Step1. 從 Google Search Console 加入自己的網站 首先從Google Search Console加入自己網站，以 Github Pages 來說，請選右邊這個，如下圖 Step2. 驗證網站持有人 他會給你一個 html 檔，請你放在自己的網站底下，放完後再去驗證即可。\nStep3. _config.yml 加入 Google Search Engine ID 驗證完後他會給一組 ID，將這個 ID 加入_config.yml，如下圖\ngoogle: search_engine_id: YourID Step4. 為自己的首頁建立索引 在網站審查這裡輸入自己想要加入索引的網址，記得點測試線上網址，如果都符合會加快處理效率。 Step5. 完成 如果是網站剛上線或內容不多，會比較晚才出現在網頁搜尋中，記得耐心等待喔。\n想要確定可以透過兩種方式\n透過 url 搜尋，但別把協定加進來\nsite:url 透過網站名稱搜尋\n網站名稱 兩種建議都測試過，因為有可能索引將網址加入，但搜尋名稱可能還未加入。\nTroubleShooting 目前網站 Sitemap 還未提供到 Google Search Console，因為 Googlebot 無法 Fetch 到，但 URL 測試工具都可以正常 Fetch 到，所以目前還在了解中，解決後，會再另外開一篇文章。\n後來隔一週 Sitemap.xml 就自動 Fetch 到了，也有可能是我向 Google 客服提問後，被他手動解決的，提供各位參考。\n","permalink":"https://www.arlenfuture.com/tech/how-to-submit-your-website-to-google-search-and-improve-seo/","summary":"\u003cp\u003e網站架設後，希望自己的網站能在 Google 搜尋出現，所以使用了 Google Search Console，這篇會教你如何使用 Google Search Console 加入自己網站(Minimal Mistakes)，以提升 SEO。\u003c/p\u003e\n\u003ch2 id=\"特色\"\u003e特色\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e免費\u003c/li\u003e\n\u003cli\u003e設定簡單\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"建置流程\"\u003e建置流程\u003c/h2\u003e\n\u003ch3 id=\"step1-從-google-search-console-加入自己的網站\"\u003eStep1. 從 Google Search Console 加入自己的網站\u003c/h3\u003e\n\u003cp\u003e首先從\u003ca href=\"https://search.google.com/search-console/about\"\u003eGoogle Search Console\u003c/a\u003e加入自己網站，以 Github Pages 來說，請選右邊這個，如下圖\n\u003cimg alt=\"Google Search Console\" loading=\"lazy\" src=\"https://images.arlenfuture.com/2021/05/How-to-Add-Google-Search-to-blog-and-improve-seo/1.webp\" title=\"Google Search Console\"\u003e\u003c/p\u003e\n\u003ch3 id=\"step2-驗證網站持有人\"\u003eStep2. 驗證網站持有人\u003c/h3\u003e\n\u003cp\u003e他會給你一個 html 檔，請你放在自己的網站底下，放完後再去驗證即可。\u003c/p\u003e\n\u003ch3 id=\"step3-_configyml-加入-google-search-engine-id\"\u003eStep3. _config.yml 加入 Google Search Engine ID\u003c/h3\u003e\n\u003cp\u003e驗證完後他會給一組 ID，將這個 ID 加入_config.yml，如下圖\u003c/p\u003e\n\u003cp\u003e\u003cimg alt=\"Config\" loading=\"lazy\" src=\"https://images.arlenfuture.com/2021/05/How-to-Add-Google-Search-to-blog-and-improve-seo/2.webp\" title=\"Config\"\u003e\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003egoogle:\n  search_engine_id: YourID\n\u003c/code\u003e\u003c/pre\u003e\u003ch3 id=\"step4-為自己的首頁建立索引\"\u003eStep4. 為自己的首頁建立索引\u003c/h3\u003e\n\u003cp\u003e在網站審查這裡輸入自己想要加入索引的網址，記得點測試線上網址，如果都符合會加快處理效率。\n\u003cimg alt=\"Website Create Index\" loading=\"lazy\" src=\"https://images.arlenfuture.com/2021/05/How-to-Add-Google-Search-to-blog-and-improve-seo/3.webp\" title=\"Website Create Index\"\u003e\u003c/p\u003e\n\u003ch3 id=\"step5-完成\"\u003eStep5. 完成\u003c/h3\u003e\n\u003cp\u003e如果是網站剛上線或內容不多，會比較晚才出現在網頁搜尋中，記得耐心等待喔。\u003c/p\u003e\n\u003cp\u003e想要確定可以透過兩種方式\u003c/p\u003e\n\u003cp\u003e透過 url 搜尋，但別把協定加進來\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003esite:url\n\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e\u003cimg alt=\"Search with site\" loading=\"lazy\" src=\"https://images.arlenfuture.com/2021/05/How-to-Add-Google-Search-to-blog-and-improve-seo/4.webp\" title=\"Search with site\"\u003e\u003c/p\u003e","title":"提交網站至Google搜尋及優化SEO【架設部落格#2】"},{"content":"前陣子一直想找個地方去整理自己的筆記，原本人選 Blogspot，但研究了一陣子發現不是很符合自己的需求，所以為自己整理出以下幾個重點，一定要符合，才會去選擇。\n免費 版本控制 文章好轉移 分類清楚 架設在 Github Pages 上，版本控制跟費用問題一次搞定，雖然免費，但有流量限制及靜態頁面的限制，預設的 Jekyll 有支援 Markdown 去撰寫所以文章轉移也解決了。分類的問題，我選擇了 Minimal Mistakes，預設就有標籤及分類的功能，版型也比 Github 預設的好看許多。\n環境安裝 我文章用的環境是 Windows 10 20H2，理論上 Mac、Linux 都可以做操作。\n預先安裝或申請 Github Account Jekyll Installation 文章內帶著你做 Minimal Mistakes Quick-Start Guide 建置流程 Step1. 從 Minimal Mistakes remote theme starter 複製一份到你的 Github repository Minimal Mistakes remote theme starter 記得Repository name要按照格式寫UserName.github.io，UserName記得替換成自己的，以我來說就是換成ArlenFuture全名是ArlenFuture.github.io。 不是商業版的都一律設定成Public外部才看的到 按下去過幾一段時間，就能在https://UserName.github.io/看到啦，一樣UserName替換成自己的。 Step2. 修改_config.yml 將內容修改成自己的 這時你會在你的 Github repository 看到你剛剛建立的專案，此時用版本控制把專案 Clone 下來，修改 _config.yml，把裡面的參數設定成自己的。\nStep3. 測試在本機預覽 Jekyll 專案 首先進入 CMD\njekyll -v 看一下版本資訊，基本上就確定它的安裝\n這時到你 Clone 專案的地方下這個指令安裝套件 bundle install 執行這段把專案跑起來 bundle exec jekyll serve 如果出現像是下面這樣的問題\n去_config.yml 加入這個參數一樣UserName替換成自己的。\nrepository: UserName/UserName.github.io 像是下圖\n接著就可以順利執行這個網站啦\nStep3. 刪掉原本_post 內的文件 Step4. 將專案透過版控 Push 到 Github 大功告成!!\n","permalink":"https://www.arlenfuture.com/tech/create-blog-with-jekyll-in-github-pages/","summary":"\u003cp\u003e前陣子一直想找個地方去整理自己的筆記，原本人選 Blogspot，但研究了一陣子發現不是很符合自己的需求，所以為自己整理出以下幾個重點，一定要符合，才會去選擇。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e免費\u003c/li\u003e\n\u003cli\u003e版本控制\u003c/li\u003e\n\u003cli\u003e文章好轉移\u003c/li\u003e\n\u003cli\u003e分類清楚\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e架設在 Github Pages 上，版本控制跟費用問題一次搞定，雖然免費，但有流量限制及靜態頁面的限制，預設的 Jekyll 有支援 Markdown 去撰寫所以文章轉移也解決了。分類的問題，我選擇了 Minimal Mistakes，預設就有標籤及分類的功能，版型也比 Github 預設的好看許多。\u003c/p\u003e\n\u003ch2 id=\"環境安裝\"\u003e環境安裝\u003c/h2\u003e\n\u003cp\u003e我文章用的環境是 Windows 10 20H2，理論上 Mac、Linux 都可以做操作。\u003c/p\u003e\n\u003ch3 id=\"預先安裝或申請\"\u003e預先安裝或申請\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/\"\u003eGithub Account\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://jekyllrb.com/docs/installation/\"\u003eJekyll Installation\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"文章內帶著你做\"\u003e文章內帶著你做\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://mmistakes.github.io/minimal-mistakes/docs/quick-start-guide/#gem-based-method\"\u003eMinimal Mistakes Quick-Start Guide\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"建置流程\"\u003e建置流程\u003c/h2\u003e\n\u003ch3 id=\"step1-從-minimal-mistakes-remote-theme-starter-複製一份到你的-github-repository\"\u003eStep1. 從 Minimal Mistakes remote theme starter 複製一份到你的 Github repository\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mmistakes/mm-github-pages-starter/generate\"\u003eMinimal Mistakes remote theme starter\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cimg alt=\"Fork repository\" loading=\"lazy\" src=\"https://images.arlenfuture.com/2021/05/create-blog-with-jekyll-in-github-pages/1.webp\" title=\"Fork repository\"\u003e\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003e記得\u003cstrong\u003eRepository name\u003c/strong\u003e要按照格式寫\u003ccode\u003eUserName.github.io\u003c/code\u003e，\u003ccode\u003eUserName\u003c/code\u003e記得替換成自己的，以我來說就是換成\u003ccode\u003eArlenFuture\u003c/code\u003e全名是\u003ccode\u003eArlenFuture.github.io\u003c/code\u003e。\u003c/li\u003e\n\u003cli\u003e不是商業版的都一律設定成\u003cstrong\u003ePublic\u003c/strong\u003e外部才看的到\u003c/li\u003e\n\u003cli\u003e按下去過幾一段時間，就能在\u003ccode\u003ehttps://UserName.github.io/\u003c/code\u003e看到啦，一樣\u003ccode\u003eUserName\u003c/code\u003e替換成自己的。\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch3 id=\"step2-修改_configyml-將內容修改成自己的\"\u003eStep2. 修改_config.yml 將內容修改成自己的\u003c/h3\u003e\n\u003cp\u003e這時你會在你的 Github repository 看到你剛剛建立的專案，此時用版本控制把專案 Clone 下來，修改\n\u003ccode\u003e_config.yml\u003c/code\u003e，把裡面的參數設定成自己的。\u003c/p\u003e\n\u003ch3 id=\"step3-測試在本機預覽-jekyll-專案\"\u003eStep3. 測試在本機預覽 Jekyll 專案\u003c/h3\u003e\n\u003cp\u003e首先進入 CMD\u003c/p\u003e","title":"利用Jekyll在Github Pages上免費架設個人部落格【架設部落格#1】"}]