tag:blogger.com,1999:blog-82502256684948834442024-03-16T10:48:57.629+08:00Kin的筆記本Kinhttp://www.blogger.com/profile/15617055415780930886noreply@blogger.comBlogger35125tag:blogger.com,1999:blog-8250225668494883444.post-11660781645862393232024-03-16T10:48:00.002+08:002024-03-16T10:48:17.460+08:00不用手動介入,在Linux下建立新User並設定密碼<p>export USERNAME="newuser"<br />export PASSWD="password"<br />useradd -m $USERNAME -s /bin/bash -g users<br />echo -e "$PASSWD\n$PASSWD" | passwd $USERNAME<br /><br /><br /></p>Kinhttp://www.blogger.com/profile/15617055415780930886noreply@blogger.com0tag:blogger.com,1999:blog-8250225668494883444.post-14882771357286950912024-03-09T10:55:00.002+08:002024-03-09T10:56:38.557+08:00最近在用的Archlinux桌面環境<p>留個套件名字<br />下次換新電腦還可以裝<br /><br />顯示管理 greetd + regreet<br />視窗管理 hyprland<br />啟動器 rofi<br />輸入法 fcitx5<br />終端機 qterminal + bash<br />檔案管理 dolphin</p>Kinhttp://www.blogger.com/profile/15617055415780930886noreply@blogger.com0tag:blogger.com,1999:blog-8250225668494883444.post-39983142208275085802023-03-18T14:34:00.002+08:002023-03-18T14:35:21.136+08:00Stable diffusion prompt收集<p> </p><p>最近Stable diffusion、AI繪圖很紅,所以我也稍微玩了一下 </p><p>以下收集了一些prompt詞,以後需要的時候回來查比較快 </p><p><br /></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEju-geIAwB0LSlpePKZ4VRG2jLNIkLKgybGNd8Q_mXrMg6kKskZl0_qkzeAVHq5oAVRyscFMlRgYq_3HvgKZgGl-RGaLyp1QAjOb3mdpUTteMk-Oovf-qikantSzg7ah3rfyzw_A1aWybB6B9zWETVwVYrKq1-3imNYXU0Wek5p3Svw0pyuOL4Dx7qEoA/s626/00018.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="626" data-original-width="626" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEju-geIAwB0LSlpePKZ4VRG2jLNIkLKgybGNd8Q_mXrMg6kKskZl0_qkzeAVHq5oAVRyscFMlRgYq_3HvgKZgGl-RGaLyp1QAjOb3mdpUTteMk-Oovf-qikantSzg7ah3rfyzw_A1aWybB6B9zWETVwVYrKq1-3imNYXU0Wek5p3Svw0pyuOL4Dx7qEoA/w400-h400/00018.png" width="400" /></a></div><br /><br /><p></p> <a name='more'></a><p></p><p>個人癖好<br />1girl, solo, <br />kid, child, loli, pure innocent, tenderness,<br />perfect face, (light silver blue hair:1.2), blue eyes,<br />lovely small breasts,<br />braided hair, <br /></p><p>畫質 (不知道有沒有效,反正加就對了)<br />(((masterpiece, best quality,official art,extremely detailed CG unity 8k wallpaper, perfect lighting, reality ray tracing))), illustration</p><p>髮型<br />braided hair 辮子<br />ponytail 馬尾<br />bangs 瀏海</p><p>頭飾<br />beret 貝蕾帽<br />maid_headdress 女僕頭飾<br />hair ornament 髮飾<br />hairpin 髮夾</p><p>配件<br />ribbon 緞帶<br />bow 蝴蝶結<br />window 窗戶<br />bed 床<br />pillow 枕頭<br />potted_plant 盆栽<br />hydrangea 繡球花<br />lace 蕾絲</p><p>衣服<br />Pajamas 睡衣<br />Hooded 連帽衣<br />Kigurumi 布偶裝<br />naked apron 裸體圍裙<br />Sweatshirt 帽T<br />sports vest 運動背心<br />jacket 外套<br />hoodie jacket 連帽外套<br />bra 內衣<br />camisole 細肩帶內衣</p><p>袖子<br />sleeveless 無袖<br />long_sleeves 長袖<br />juliet_sleeves 茱麗葉袖, 泡泡袖<br />detached_sleeves 分離式的袖子<br />off shoulder 露肩</p><p>褲子<br />panties 內褲<br />string panties 綁帶內褲<br />Thongs 丁字褲<br />print panties 印花內褲<br />pantyhose 褲襪</p><p>suspenders 吊帶褲<br />short pants 短褲<br />denim pants 牛仔褲</p><p>裙子<br />layered dress 多層的禮服<br />frilled dress 褶皺裙, 流蘇裙<br />lace-trimmed skirt 帶蕾絲邊的裙子</p><p>臉<br />Fangs 尖牙<br />pointy_ears 尖耳</p><p>身體部位<br />collarbone 鎖骨 (露肩膀)<br />Stomach 肚子 (露肚子)<br />navel 肚臍 (露肚子)<br />nipples 奶頭 (露胸部)<br />thighs 大腿<br />groin 腹股溝 (低腰)</p><p>眼神<br />looking at viewer 看鏡頭<br />looking back 轉身看鏡頭<br />looking up 往上看<br />looking to the side 看旁邊(可能是鏡頭的方向)<br />looking away 看旁邊<br />looking afar 看遠方<br />looking ahead 看前方<br />head_tilt 歪頭</p><p>鏡頭<br />from above 從上往下的鏡頭<br />from below 從下往上的鏡頭<br />from behind 從背後的鏡頭<br />from side 從側面的鏡頭<br />dutch angle 斜角鏡頭 (稍微旋轉)<br />profile 側拍 (角色不看鏡頭)<br />wide shot 遠景 (較易出現全身)<br />upper body 上半身</p><p>動作<br />hand in pocket 手插口袋<br />hand on hip 手插腰<br />skirt_lift 掀裙子<br />skirt_hold 抓裙子<br />curtsy 屈膝禮(抓裙子)<br />leaning forward 彎腰向前傾<br />paw pose 手做貓掌<br />claw pose 手做獅子</p><p>standing 站<br />sitting 坐<br />wariza 鴨子坐<br />yokozuwari 側坐<br />lying 躺或趴<br />sleepy, sleeping 睡(躺或趴或坐)<br />reclining 躺<br />all fours 誘惑式的跪地前傾姿勢<br />smile 笑<br />angry 生氣<br />open mouth 開嘴<br />close mouth 閉嘴<br />Yawning 呵欠<br />out half closed eyes 半閉眼</p><p>效果<br />see-through 透視(衣服半透明感)<br />wet 濕的(衣服半透明感)<br /></p><p></p><div class="simple-translate-system-theme" id="simple-translate"><div><div class="simple-translate-button isShow" style="background-image: url("moz-extension://706a372f-d62e-40b7-ae36-c0a9e44b189a/icons/512.png"); height: 22px; left: 13px; top: 618px; width: 22px;"></div><div class="simple-translate-panel " style="font-size: 13px; height: 200px; left: 0px; top: 0px; width: 300px;"><div class="simple-translate-result-wrapper" style="overflow: hidden;"><div class="simple-translate-move" draggable="true"></div><div class="simple-translate-result-contents"><p class="simple-translate-result" dir="auto"></p><p class="simple-translate-candidate" dir="auto"></p></div></div></div></div></div>Kinhttp://www.blogger.com/profile/15617055415780930886noreply@blogger.com0tag:blogger.com,1999:blog-8250225668494883444.post-84565674484141142612022-12-24T15:16:00.001+08:002022-12-24T15:16:26.814+08:00Firefox 108 滑鼠游標消失的問題<p>最近Firefox 升級到 108 之後發現</p><p>自訂的游標圖示會顯示錯誤,甚至有時後會直接消失</p><p>檢查Log發現是Firefox無法讀取到我的自訂游標</p><p>
<code>firefox-bin[2959]: Unable to load hand2 from the cursor theme
firefox-bin[2959]: Unable to load left_ptr from the cursor theme
firefox-bin[2959]: Unable to load xterm from the cursor theme</code></p><p>而且是放在~/.icons下的游標才會有這個問題</p><p>所以目前有一個Workaround方式就是將目前使用的游標放到</p>
<code>mv ~/.icons/* /usr/share/icons/</code><p>目前已經有人發了 Issue 給 Mozilla: <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1802877 " target="_blank">https://bugzilla.mozilla.org/show_bug.cgi?id=1802877</a></p>Kinhttp://www.blogger.com/profile/15617055415780930886noreply@blogger.com0tag:blogger.com,1999:blog-8250225668494883444.post-2453470090151783702022-12-24T11:42:00.000+08:002022-12-24T11:42:31.260+08:00su + systemctl = Failed to connect to bus: No medium found<p>
最近想用 su - user 對修改 user 的 systemd Unit 的時候發現
<code>systemctl --user</code>
的所有操作都會回報
<code>Failed to connect to bus: No medium found</code>
</p>
<p>
後來找到了<a
href="https://unix.stackexchange.com/questions/671814/run-systemctl-user-commands-as-root"
target="_blank"
>這篇文章</a
>
只要將 <code>su - user</code>改為使用<code>machinectl shell user@.host</code>就可以正常使用 systemctl --user 了
</p>
<p> </p>
Kinhttp://www.blogger.com/profile/15617055415780930886noreply@blogger.com0tag:blogger.com,1999:blog-8250225668494883444.post-84689626941419939132022-12-24T11:15:00.003+08:002022-12-24T11:51:51.108+08:00從 Caddy2 對 Syncthing 以子路徑進行反向代理<p>有些服務 的 web UI 需要執行在網頁的根路徑或特定路徑上</p>
<p>例如 transmission 就需要路徑 /transmission/web/ <br /></p>
<p>而 Syncthing 就必須是 / 才能正確打開Web UI</p>
<p>如果直接反向代理的話就會發現有許多圖片或restful api會找不到</p>
<p>我們需要在代理時將多餘的子路徑去除才會正確找到檔案</p>
<p>在Caddy2下可以這麼做 <br /></p>
<p></p>
<code>http://myhost.org {
handle_path /syncthing/* {
reverse_proxy http://localhost:8384 {
header_up Host {http.reverse_proxy.upstream.hostport}
}
}
}</code>
<p></p>
<p></p>
<p>
其中<a
href="https://caddyserver.com/docs/caddyfile/directives/handle_path"
target="_blank"
>handle_path</a
>就會在轉送要求時將 syncthing/ 這個前綴移除
</p>
<p>這樣有需要的話還可以在同一個host上代理多個syncthing</p>
<p>
例如<br />
<code>http://myhost.org {
handle_path /syncthing/* {
reverse_proxy http://localhost:8384 {
header_up Host {http.reverse_proxy.upstream.hostport}
}
}
handle_path /syncthing2/* {
reverse_proxy http://localhost:8385 {
header_up Host {http.reverse_proxy.upstream.hostport}
}
}
}</code><br /><br />
</p>
Kinhttp://www.blogger.com/profile/15617055415780930886noreply@blogger.com0tag:blogger.com,1999:blog-8250225668494883444.post-79150205340447407162016-03-05T13:22:00.000+08:002016-03-05T13:50:31.329+08:00Android WebView 的 JavaScript 與 Java 交互要讓 WebView 內可以執行JavaScript,要先開啟WebView的設定<br />
<pre class="codeblock prettyprint">webView.getSettings().setJavaScriptEnabled(true);</pre>
<br />
要讓其中可以存取 Java 中的功能,就要建立一個可以讓 JavaScript 存取的 Interface<br />
<pre class="codeblock prettyprint">class JsObject {
@JavascriptInterface
public void alert(String ss) {
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
builder.setTitle("TestAlert");
builder.setMessage(ss);
builder.show();
}
}</pre>
<br />
有 <span style="color: olive;">@JavascriptInterface <span style="color: black;">標記的 Method 才會在JavaScript中被允許使用</span></span><br />
<span style="color: olive;"><span style="color: black;">然後將這個 class 加入WebView,其中</span></span><span style="color: olive;"><span style="color: black;"><span style="color: green;"> "myjs" </span>可以自訂為任意文字</span></span><br />
<pre class="codeblock prettyprint">webView.addJavascriptInterface(new JsObject(), "myjs");</pre>
<br />
最後在網頁中這樣呼叫就可以了<br />
<pre class="codeblock prettyprint"><script>
window.myjs.alert("GG");
</script></pre>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjcmtp6jQF1VfYt4RULIrGU5bzDSkR_lVKH2QNtmSvCE0uO-EfjMa4HaTubyCNSnFpxhO0-fQIeBE4SNY6tZlZveun65v4QK2ZWwzsOKhGodwhh2BZH1v3AiDk63KB6LO2fF5jQL2FCKW8t/s1600/Screenshot_20160305-131834.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjcmtp6jQF1VfYt4RULIrGU5bzDSkR_lVKH2QNtmSvCE0uO-EfjMa4HaTubyCNSnFpxhO0-fQIeBE4SNY6tZlZveun65v4QK2ZWwzsOKhGodwhh2BZH1v3AiDk63KB6LO2fF5jQL2FCKW8t/s320/Screenshot_20160305-131834.png" /></a></div>
<div class="itanywhere-activator" style="display: block; left: 14px; top: 58px;" title="Google Translator Anywhere">
</div>
Kinhttp://www.blogger.com/profile/15617055415780930886noreply@blogger.com0tag:blogger.com,1999:blog-8250225668494883444.post-19496643048221715282015-01-20T18:05:00.000+08:002016-03-05T13:40:27.831+08:00用 openssl產生金鑰產生私鑰 長度2048 檔名ca.key<br />
<pre class="codeblock">openssl genrsa -out ca.key 2048</pre>
產生配對的公鑰 檔名 ca.crt
<pre class="codeblock">openssl req -new -x509 -days 3650 -key ca.key -out ca.crt</pre>
<pre class="codeblock">
Country Name (2 letter code) [AU]:TW //國碼臺灣是 TW
State or Province Name (full name) [Some-State]:Taiwan R.O.C //國名臺灣填 Taiwan
Locality Name (eg, city) []:Taipei //地名
Organization Name (eg, company) [Internet Widgits Pty Ltd]:FreeBSD Personal Reserach //組織單位名稱
Organizational Unit Name (eg, section) []:FreeBSD Personal Reserach //部門名稱
Common Name (eg, YOUR name) []:www.weithenn.org //憑證的名稱 (通常為伺服器 FQDN)
Email Address []:weithenn@weithenn.org //申請單位的聯絡信箱
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []: 按 Enter 直接跳過 //申請書的密碼
An optional company name []: 按 Enter 直接跳過 //憑證代辦公司的名稱 </pre><br />
<br />Kinhttp://www.blogger.com/profile/15617055415780930886noreply@blogger.com0tag:blogger.com,1999:blog-8250225668494883444.post-86165179155320433822014-05-03T11:25:00.001+08:002016-03-05T13:41:13.481+08:00PHP 在 Ubuntu 的過量 fuser 造成 cannot fork: Cannot allocate memory最近使用 Ubuntu 11.10的時候常常在 bash 出現<br />
<pre class="codeblock">cannot fork: Cannot allocate memory</pre><br />
看ps又發現兩萬多個 fuser 佔領了主機<br />
查了一下發現有許多人有相同的問題,而且似乎只會在這個Ubuntu版本才會發生<br />
<br />
這個問題的原因是php清理無用session的時候發生了些什麼,結果fuser就停在那邊佔著解法是將清理的指令改掉<br />
<br />
將<span style="color: blue;">/etc/cron.d/php5</span>改成<br />
<pre class="codeblock">09,39 * * * * root [ -x /usr/lib/php5/maxlifetime ] && [ -d /var/lib/php5 ] && find /var/lib/php5/ -depth -mindepth 1 -maxdepth 1 -type f -cmin +$(/usr/lib/php5/maxlifetime) -delete</pre><br />
很棒的,最近都沒再出現 cannot fork 了
Kinhttp://www.blogger.com/profile/15617055415780930886noreply@blogger.com0tag:blogger.com,1999:blog-8250225668494883444.post-86960844013206191882014-02-11T10:15:00.002+08:002014-02-11T10:15:50.660+08:00arg, arg min, arg max剛開始讀Paper 看到式子中出現了這幾個關鍵字<br />
查了一下怕忘記紀錄一下<br />
<br />
<ul>
<li><span class="Apple-style-span" style="font-weight: bold;"><span class="Apple-style-span" style="color: #000099;">y = f(t) 是一般常見的函式,代表給定一個t值,丟到f函式中會回傳一個值給y。</span></span></li>
</ul>
<ul>
<li><span class="Apple-style-span" style="font-weight: bold;"><span class="Apple-style-span" style="color: #000099;">y = max f(t) 代表:y 是f(t)函式所有的值中最大的output。</span></span></li>
</ul>
<ul>
<li><span class="Apple-style-span" style="font-weight: bold;"><span class="Apple-style-span" style="color: #000099;">y = arg max f(t) 代表:y 是f(t)函式中,會產生最大output的那個參數t</span></span></li>
</ul>
<br />
<span class="Apple-style-span" style="font-weight: bold;"><span class="Apple-style-span" style="color: #000099;"><span style="color: black;">原文:<a href="http://kevingo75.blogspot.tw/2009/04/arg-arg-max.html">http://kevingo75.blogspot.tw/2009/04/arg-arg-max.html</a></span></span></span>Kinhttp://www.blogger.com/profile/15617055415780930886noreply@blogger.com0tag:blogger.com,1999:blog-8250225668494883444.post-16252627112047300962014-01-15T16:29:00.000+08:002014-05-22T02:46:18.191+08:00大天狗 降臨!紀錄一下過關,免得以後想打忘記,<br />
難度<span style="color: blue;">超級</span><br />
隊長:<br />
<div class="separator" style="clear: both; text-align: left;">
<a href="http://zh.pad.wikia.com/wiki/%E3%83%95%E3%83%AC%E3%82%A4%E3%83%A0%E3%83%81%E3%82%A7%E3%82%A4%E3%82%B5%E3%83%BC">火焰追擊者</a></div>
<div class="separator" style="clear: both; text-align: left;">
隊員:</div>
<div class="separator" style="clear: both; text-align: left;">
<a href="http://zh.pad.wikia.com/wiki/%E8%B6%85%E3%83%BB%E4%B8%8B%E4%BB%81%E7%94%B0%E3%83%8D%E3%82%AE">超・下仁田葱</a>、<a href="http://zh.pad.wikia.com/wiki/%E8%B6%85%E3%83%BB%E4%B8%8B%E4%BB%81%E7%94%B0%E3%83%8D%E3%82%AE">超・下仁田葱</a>、<a href="http://zh.pad.wikia.com/wiki/%E7%82%8E%E3%81%AE%E3%82%A2%E3%82%A4%E3%82%B9%E3%82%AA%E3%83%BC%E3%82%AC">炎之冰食人魔</a>、<a href="http://zh.pad.wikia.com/wiki/%E6%B0%B7%E3%81%AE%E3%82%B5%E3%83%A0%E3%83%A9%E3%82%A4%E3%82%AA%E3%83%BC%E3%82%AC">冰之武士食人魔</a></div>
<div class="separator" style="clear: both; text-align: left;">
隊友:</div>
<div style="text-align: left;">
</div>
<div class="separator" style="clear: both; text-align: left;">
<a href="http://zh.pad.wikia.com/wiki/%E3%83%95%E3%83%AC%E3%82%A4%E3%83%A0%E3%83%81%E3%82%A7%E3%82%A4%E3%82%B5%E3%83%BC">火焰追擊者</a><a href="http://4.bp.blogspot.com/-sSU061PemJ0/UtZC7C0SPfI/AAAAAAAAGjo/L2As3ppwFv4/s1600/Screenshot_2014-01-15-16-02-22.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"> </a></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
第一關先殺<a href="http://zh.pad.wikia.com/wiki/%E8%8D%92%E6%AD%A6%E8%80%85%E3%83%BB%E3%83%AC%E3%83%83%E3%83%89%E3%82%B4%E3%83%96%E3%83%AA%E3%83%B3" title="荒武者・レッドゴブリン">荒武者・紅色哥布林</a>和<a href="http://zh.pad.wikia.com/wiki/%E6%9C%A8%E3%81%AE%E4%B8%AD%E5%BF%8D" title="木の中忍">木之中忍</a>,留著<a href="http://zh.pad.wikia.com/wiki/%E6%A8%B9%E3%81%AE%E3%82%B5%E3%83%A0%E3%83%A9%E3%82%A4%E3%82%AA%E3%83%BC%E3%82%AC" title="樹のサムライオーガ">树之武士食人魔</a>儲技,務必讓<a href="http://zh.pad.wikia.com/wiki/%E3%83%95%E3%83%AC%E3%82%A4%E3%83%A0%E3%83%81%E3%82%A7%E3%82%A4%E3%82%B5%E3%83%BC">火焰追擊者</a>有技可用。</div>
<div class="separator" style="clear: both; text-align: left;">
第二關必先殺<a href="http://zh.pad.wikia.com/wiki/%E3%81%AD%E3%81%AD%E3%81%93" title="ねねこ">河童彌彌子</a>,沒把握的話就開<a href="http://zh.pad.wikia.com/wiki/%E3%83%95%E3%83%AC%E3%82%A4%E3%83%A0%E3%83%81%E3%82%A7%E3%82%A4%E3%82%B5%E3%83%BC">火焰追擊者</a></div>
<div class="separator" style="clear: both; text-align: left;">
第三關用全體攻擊〈五顆〉,沒五顆的話就開<a href="http://zh.pad.wikia.com/wiki/%E3%83%95%E3%83%AC%E3%82%A4%E3%83%A0%E3%83%81%E3%82%A7%E3%82%A4%E3%82%B5%E3%83%BC">火焰追擊者</a></div>
<div class="separator" style="clear: both; text-align: left;">
第四關開<a href="http://zh.pad.wikia.com/wiki/%E6%B0%B7%E3%81%AE%E3%82%B5%E3%83%A0%E3%83%A9%E3%82%A4%E3%82%AA%E3%83%BC%E3%82%AC">冰之武士食人魔</a></div>
<div class="separator" style="clear: both; text-align: left;">
第五關在打到剩39%之前要儲好<a href="http://zh.pad.wikia.com/wiki/%E3%83%95%E3%83%AC%E3%82%A4%E3%83%A0%E3%83%81%E3%82%A7%E3%82%A4%E3%82%B5%E3%83%BC">火焰追擊者</a>的技,當<a href="http://zh.pad.wikia.com/wiki/%E9%9C%8A%E5%B3%B0%E3%81%AE%E7%A0%B4%E6%88%92%E7%A5%9E%E3%83%BB%E5%A4%A7%E5%A4%A9%E7%8B%97" title="霊峰の破戒神・大天狗">靈峰的破戒神・大天狗</a>開<a href="http://zh.pad.wikia.com/wiki/%E7%B2%BE%E7%A5%9E%E3%82%92%E7%A0%94%E3%81%8E%E6%BE%84%E3%81%BE%E3%81%97%E3%81%A6%E3%81%84%E3%82%8B%EF%BC%88%E6%95%B5%EF%BC%89" title="精神を研ぎ澄ましている(敵)">提高精神感官</a> 後開<a href="http://zh.pad.wikia.com/wiki/%E3%83%95%E3%83%AC%E3%82%A4%E3%83%A0%E3%83%81%E3%82%A7%E3%82%A4%E3%82%B5%E3%83%BC">火焰追擊者</a>技、<a href="http://zh.pad.wikia.com/wiki/%E7%82%8E%E3%81%AE%E3%82%A2%E3%82%A4%E3%82%B9%E3%82%AA%E3%83%BC%E3%82%AC">炎之冰食人魔</a>技和<a href="http://zh.pad.wikia.com/wiki/%E8%B6%85%E3%83%BB%E4%B8%8B%E4%BB%81%E7%94%B0%E3%83%8D%E3%82%AE">超・下仁田葱</a>技〈防沒殺成功的情況〉</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Done! </div>
<br />Kinhttp://www.blogger.com/profile/15617055415780930886noreply@blogger.com0tag:blogger.com,1999:blog-8250225668494883444.post-17485345996701841672014-01-11T14:08:00.001+08:002014-01-11T14:19:49.369+08:00BitVisitor Tool最近 BitCoin 正夯,1 BTC 竟能換 1000 USD<br />
真是不可思議!<br />
<br />
為此我趕緊去找了取得 Btc的方法,找到了 <a href="http://www.bitvisitor.com/?ref=1AvYqEKu5q6bLbtcyWRnbRX6iCphg9xRSe">BitVisitor</a>,這是目前評價不錯的免費比特幣網站<br />
<br />
可是身為一個弱小的 Programmer,覺得這站可以更好使用<br />
所以就刻了一個小工具,讓大家可以更簡單取得免費BitCoin <br />
<a href="http://userscripts.org/scripts/show/231799">BitVisitor Tool:http://userscripts.org/scripts/show/231799</a><br />
<br />
<a name='more'></a><br />
提供以下功能<br />
◎ 時間到時自動點擊next<br />
◎ 在標題顯示剩餘等待時間<br />
◎ 把輸入驗證碼的輸入區放到網頁最頂端<br />
<br />
這是 Scriptish 和 Greasemonkey 的腳本,如果沒有這兩個之一要先安裝唷<br />
<a href="https://draft.blogger.com/Scriptish%EF%BC%9Ahttps://addons.mozilla.org/zh-tw/firefox/addon/scriptish/">Scriptish:https://addons.mozilla.org/zh-tw/firefox/addon/scriptish/</a><br />
<a href="https://addons.mozilla.org/zh-tw/firefox/addon/greasemonkey/">Greasemonkey:https://addons.mozilla.org/zh-tw/firefox/addon/greasemonkey/</a><br />
<br />
<span style="color: red;">注意:目前已經有不肖使用者偽造此工具,下載時請注意一下網址是否正確</span><br />
<code>http://userscripts.org/scripts/show/231799</code>
<br />
<br />
<strike>如果喜歡這工具可以捐款給我~~</strike><br />
Bitcoin Donation Address: 1LkHCiPeXmZzjYTh6t5b4CK2beLq6YXyUwKinhttp://www.blogger.com/profile/15617055415780930886noreply@blogger.com0tag:blogger.com,1999:blog-8250225668494883444.post-88221570495374020902013-03-17T08:00:00.002+08:002013-10-07T00:19:48.005+08:00Upgrade HTC One SV 4.1.22013年3月14號HTC發佈了 One SV 的 4.1.2 + Sense 4+ 的更新<br />
<br />
已經Root過的要如何更新呢?<br />
<br />
<a name='more'></a>在收到軟體更新的通知後很高興的按下確定更新,自動啟動到recovery中卻只有一堆錯誤。<br />
<br />
因為HTC的無線更新有兩個條件:<br />
第一個是<span style="color: orange;">必須用原廠recovery</span>,而在<a href="http://kinabcd.blogspot.tw/2013/01/androidroot-htc-one-sv.html" target="_blank">前篇</a>中 為了取得修改System的權限,把原廠的recovery給換掉了,無法套用這個更新檔的。<br />
<br />
這時候只要找回以前的recovery再用<span style="color: red;">fastboot</span>來<span style="color: red;">flash</span>回去就可以了。<br />
<div style="-qt-block-indent: 0; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;">
那以前沒有備份過recovery的怎麼辦呢?更新檔內也包含一個原廠的recovery,在</div>
<div style="-qt-block-indent: 0; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;">
<span style="color: blue;">/sdcard/Download/OTA_K2_U_JB_45_S_hTC_Asia_TW_2.14.709.103-1.16.709.4_release.zip</span> 中可以找到<span style="color: blue;">firmware.zip</span>,裡頭就有recovery可以使用。<br />
<br />
另一個條件是<span style="color: orange;">/system/不能短少或修改檔案</span>(但增加檔案不影響),處理方法就是把缺的或有改的檔案放回原處,在修改之前就有備份的話很好,若無,請找也使用相同手機的朋友Copy檔案出來吧!<br />
<br />
更新完之後 root 檔案(<span style="color: blue;">/system/bin/su</span>、<span style="color: blue;">/system/app/supersu.apk</span>)並不會消失,但卻無法取得 root 權限,因為在更新時<span style="color: blue;"> su </span>的檔案權限被修改了。<br />
再換掉recovery重新修改su執行權限 (adb# <span style="color: orange;">chmod 4755 /system/bin/su</span>)即可。</div>
Kinhttp://www.blogger.com/profile/15617055415780930886noreply@blogger.com7tag:blogger.com,1999:blog-8250225668494883444.post-59877593161637991982013-01-27T18:13:00.001+08:002013-10-07T00:11:43.097+08:00讓Windows使用UTC時間一般Windows預設紀錄在硬體的時間都是用當地時間來紀錄<br />
但其他有許多系統如Linux紀錄時間時是使用UTC,世界統一時間<br />
<br />
<a name='more'></a><br />
如果要常常在同台電腦上切換這兩樣系統的話<br />
要讓系統使用相同的時間系統會比較方便<br />
可以把Linux改成使用當地時間,或讓Windows使用UTC<br />
<br />
而我的主要使用系統是Linux,當然修改要找Windows下手囉!<br />
<br />
執行<span style="color: red;">Regedit</span>找到下列路徑<br />
[<span style="color: blue;">HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation</span>]<br />
<br />
再在右邊找到<span style="color: blue;">RealTimeIsUniversal</span>(找不到的話右鍵新增一個),將其修改為<span style="color: blue;">1</span><br />
再重開機即可Kinhttp://www.blogger.com/profile/15617055415780930886noreply@blogger.com0tag:blogger.com,1999:blog-8250225668494883444.post-48368309199061445352013-01-17T08:05:00.000+08:002013-10-07T00:19:34.702+08:00Root HTC One SV關於Root是什麼意思就不解釋了<br />
總之終於在今天把他給弄成<br />
<span style="color: red;">注意:刷機一定有風險,使用前請詳閱公開說明書</span><br />
<span style="color: red;">注意:刷機將造成保固失效,發生問題一概不負責</span><br />
<a name='more'></a><br />
簡單來說HTC機的Root就兩個步驟:<br />
1. 去 <a href="http://www.htcdev.com/" target="_blank">http://www.htcdev.com/</a> 進行 Unlock Bootloader ,這個隨便搜尋一下就有所以也不解釋。<br />
2.放一些檔案到系統分區,在此我使用的是 <a href="http://androidsu.com/" target="_blank">http://androidsu.com/</a><br />
將su放到/system/bin並將權限設為4755,將superuser.apk放到/system/app <br />
<br />
到第2步有問題了,必須先有root權限才能修改系統分區,也必須修改系統分區才能得到權限。<br />
因此必須借助其他系統的功能fastboot和recovery<br />
<br />
recovery是一種微型的系統,而HTC內建的recovery在一般使用者來說是沒有功能的,我們可以用fastboot將recovery換掉成現在最流行的Clockworkmod或TWRP,就可以在recovery下獲得修改系統分區的權力。<br />
<br />
而又有另一個問題了,因為HTC One SV的時間還不夠久(在xda上連討論區都還沒有),Clockworkmod和TWRP皆無提供為其編譯的版本,必須自行編譯,而我選用了Clockworkmod來做。<br />
<br />
製作方法:<br />
1. 從 <a href="http://androidfiles.org/ruu/" target="_blank">http://androidfiles.org/ruu/</a> 下載 HTC One SV的Ruu<br />
(台哥大賣的代號k2_u,香港版的代號k2_ul,此代號可以從bootloader上獲得)<br />
2. <a href="http://htc.tgbus.com/desireVshuaji/426419.shtml" target="_blank">解開Ruu取出rom.zip</a><br />
3. 解開rom.zip取出recovery_signed.img(pc$<span style="color: red;"> unzip rom.zip</span>)<br />
4. 到<a href="http://builder.clockworkmod.com/" target="_blank">http://builder.clockworkmod.com</a>提交recovery_signed.img或是在Previous Builds中察看是否已有相同的編譯<br />
<br />
到此就可找到recovery.img,但此img用fastboot刷上後無法啟動,只會在紅字後自動重啟。<br />
解決這問題的方法很奇妙,將原本recovery_signed.img中的前2KB覆蓋掉新編出來的recovery.img的前2KB即可。(這裡我使用Madedit)<br />
<span style="color: magenta;">Update:另外若</span><span id="bc_0_1b+seedIHnDD" kind="d"><span style="color: magenta;">00 00 A0 E1的開始位置在0800 則補 00 直到他位置到0900 (使格式與原本的img相同)</span></span><br />
<br />
重新開機到fastboot(pc$ <span style="color: red;">adb reboot bootloader</span>)刷上(pc$ <span style="color: red;">fastboot flash recovery recovery.img</span>)後,在bootloader中選擇recovery應該就可以進入到clockworkmod中了,但用手機上按鍵操作的各種功能都無法使用。<br />
<br />
可以用usb連接到有root權限的adb,用其將<a href="http://androidsu.com/" target="_blank">androidsu</a>放好就行了。<br />
1. 連接上adb (pc$ <span style="color: red;">adb shell</span> )<br />
<span style="color: magenta;">Update:若無法連線,請換台電腦嘗試,感謝網友「匿名」的測試</span><br />
2. 掛載system分區(adb# <span style="color: orange;">mount /dev/block/mmcblk0p33 /system</span>)<br />
3. 退出adb (adb# <span style="color: orange;">exit</span>)<br />
4. 放上su (pc$ <span style="color: red;">adb push su /system/bin</span> )<br />
5. 放上SuperUser.apk (pc$ <span style="color: red;">adb push </span><span style="color: red;">SuperUser.apk /system/app</span> )<br />
6.連接上adb (pc$ <span style="color: red;">adb shell</span> )<br />
7. 修改su所有者 (adb# <span style="color: orange;">chown root /system/bin/su</span>)<br />
8. 修改su執行權限 (adb# <span style="color: orange;">chmod 4755 /system/bin/su</span>)<br />
9. 重新開機 (adb# <span style="color: orange;">reboot</span>)<br />
到此root就完成了!<br />
<br />Kinhttp://www.blogger.com/profile/15617055415780930886noreply@blogger.com54tag:blogger.com,1999:blog-8250225668494883444.post-80384599795477609192012-10-31T16:42:00.002+08:002013-12-11T12:18:00.960+08:00JSTL錯誤<br />
在部屬JSP網頁執行時產生錯誤訊息
<code>
org.apache.jasper.JasperException:絕對URI:http://java.sun.com/jsp/jstl/core不能在web.xml或使用該應用程序的jar文件部署解決
org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:56)
org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:410)
org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:117)
</code><br />
<br />
<a name='more'></a>JSTL在Tomcat預設的安裝中是沒有的,要另外下載實作的jar<br />
<br />
<a href="http://www.oracle.com/technetwork/java/index-jsp-135995.html">http://download.java.net/maven/1/jstl/jars/</a><br />
<br />
或<br />
<br />
<a href="http://jstl.java.net/download.html">http://jstl.java.net/download.html</a> (JSTL API和JSTL Implementation皆要)<br />
<br />
載好的jar放進Tomcat的lib或專案裡的WEB-INT/lib再重開Tomcat即可<br />
<br />
<br />
<br />
<div style="margin-left: 40px;">
</div>
Kinhttp://www.blogger.com/profile/15617055415780930886noreply@blogger.com0tag:blogger.com,1999:blog-8250225668494883444.post-81482096238111086502012-08-16T17:56:00.001+08:002013-12-11T12:16:59.569+08:00用USB Flash碟上的iso開機<br />
把iso燒成光碟,每次有新版時又要重新燒錄一次,很浪費光碟片,而且現在電腦很多都已經沒有光碟機了,用USB Flash碟可以省掉這些麻煩。<br />
<br />
完成一次之後,以後只要更換ISO就可以使用最新的系統。<br />
<br />
本文需要一個已經可用的Archlinux系統<br />
本文需要已經裝好的Grub2<br />
<br />
<br />
<a name='more'></a><br />
<br />
<ol>
<li>先將Flash碟分割好〈用GParted或fdisk等〉,要放置iso的分區建議至少有1G空間</li>
<li>將此分區格式化為Fat32<br />
<span style="color: blue;">~# mkfs.vfat -F 32 -n USBBOOT /dev/sdb1</span></li>
<li><div>
掛載分區<br />
<div style="color: blue;">
~# mount /dev/sdb1 /mnt </div>
</div>
</li>
<li>把iso放進分區中<br />
這裡使用的是archlinux-2012.08.04-dual.iso<br />
<span style="color: blue;">~# cp archlinux-2012.08.04-dual.iso /mnt/ </span></li>
<li><div>
安裝Grub2 <br />
<span style="color: blue;">~# grub-install --force --no-floppy --root-directory=/mnt /dev/sdb</span></div>
</li>
<li><div>
修改Grub2設定檔 <span style="color: red;">/mnt/boot/grub/grub.cfg</span><br />
加上<br />
<code>menuentry "Archlinux ISO" {
set isofile="archlinux-2012.08.04-dual.iso"
set isolabel="ARCH_201208"
set disklabel="USBBOOT"
loopback loop $isofile
linux (loop)/arch/boot/x86_64/vmlinuz archisolabel=$isolabel img_dev=/dev/disk/by-label/$disklabel img_loop=$isofile
initrd (loop)/arch/boot/x86_64/archiso.img
}</code>
其中disklabel要與格式化時的-n USBBOOT 相同<br />
isofile後要填上ISO的檔名<br />
isolabel後要填上ISO檔案的LABEL (可在掛載ISO後從 /dev/disk/by-label/ 中找到) </div>
</li>
</ol>
參考資料:<br />
<a href="http://www.pendrivelinux.com/boot-multiple-iso-from-usb-via-grub2-using-linux/">Boot Multiple ISO from USB via Grub2 using Linux</a><br />
<br />
<br />
<br />Kinhttp://www.blogger.com/profile/15617055415780930886noreply@blogger.com0tag:blogger.com,1999:blog-8250225668494883444.post-59198199510779229032012-06-29T13:36:00.000+08:002013-10-07T00:11:52.577+08:00符號連結從Vista開始Windows提供了一種符號連結,可以真正用不同的路徑存取同一份目錄或檔案<br />
<br />
<a name='more'></a><br />
Windows內原本就已經有一種捷徑(右鍵、建立捷徑),但是這種捷徑只是一種特別的檔案(.lnk),只能讓Explorer開啟捷徑所指的地方,但其他程式是無法直接使用這種捷徑的<br />
例如: <span style="color: blue;">c:\a.lnk\b.dat </span>這種寫法就不能使用 <br />
<br />
符號連結命令用法如下:<br />
<span style="color: red;">MKLINK [[/D] | [/H] | [/J]] Link Target</span><br />
<span style="color: blue;"> /D 建立目錄符號連結。預設是檔案符號連結。<br /> /H 建立永久連結而不是符號連結。<br /> /J 建立目錄連接。<br /> Link 指定新符號連結名稱。<br /> Target 指定新連結參照的路徑 (相對或絕對)。 </span><br />
<br />
這對Dropbox、Pidgin這種不能自由指定目錄位置的程式很有用,可以把實際檔案放在成是要求的目錄,再用符號連結到想要的位置Kinhttp://www.blogger.com/profile/15617055415780930886noreply@blogger.com0tag:blogger.com,1999:blog-8250225668494883444.post-128435360868168202011-10-25T09:12:00.000+08:002014-01-11T14:14:25.634+08:00[已過期][Restaurant City]收禮物輔助程式想必玩餐城的同胞們一定有一個經驗<br />
每天都要到各個朋友的塗鴉牆中去收禮物<br />
<a name='more'></a> 我覺得每天都這樣很麻煩<br />
<br />
因此寫了個小外掛<br />
<blockquote class="tr_bq">
KIN RC Info <br />
Facebook Apps:<a href="http://apps.facebook.com/kinrcinfo">http://apps.facebook.com/kinrcinfo</a><br />
原址:<a href="http://lo.homedns.org/KINRCInfo/%20">http://lo.homedns.org/KINRCInfo/</a></blockquote>
註:本頁的伺服器不支援https協議,若Apps址無法使用時,請嘗試用原址<br />
<br />
打開後按[禮物]會自動到各個朋友的塗鴉牆上去蒐集可以點的禮物<br />
集中在一個頁面上供點選,也可以按[全部收取]省去一個一個點的麻煩<br />
<br />
有什麼功能建議或是問題可在[留言]上發表唷!<br />
<br />Kinhttp://www.blogger.com/profile/15617055415780930886noreply@blogger.com0tag:blogger.com,1999:blog-8250225668494883444.post-27400937541042908482011-08-12T00:24:00.001+08:002013-10-07T00:16:18.012+08:00Radeon HDMI audio in Linux 3.0最近Archlinux 的core庫開始提供3.0的kernel<br />
我也就更新了,但發現再也無法經由我的Radeon HD發出聲音了<br />
<a name='more'></a>經過了一番折騰,找到了<a href="https://bbs.archlinux.org/viewtopic.php?id=124130">這篇文章</a><br />
是說 Linux 3.0 預設把 HDMI audio 停用了,只要將此功能重新打開即可<br />
<br />
<br />
作法如下:<br />
開啟你的boot menu:<br />
Grub在 <span style="color: blue;">/boot/grub/menu.lst</span><br />
Syslinux在<span style="color: blue;"> /boot/syslinux/syslinux.cfg</span><br />
<br />
修改kernel起動指令:<br />
找到 <span style="color: red;">kernel /boot/vmlinuz-linux (...略...) ro</span> 這行<br />
在後面加上 <span style="color: red;">radeon.audio=1</span><br />
<br />
重新開機後,聲音就回來了Kinhttp://www.blogger.com/profile/15617055415780930886noreply@blogger.com0tag:blogger.com,1999:blog-8250225668494883444.post-49670902051086425862011-07-15T19:47:00.002+08:002013-10-07T00:12:06.619+08:00工作列標籤「不要合併,隱藏標籤」最近有人把我噗浪裡的<a href="http://www.plurk.com/p/4qdb9r">舊噗</a>挖起來,問到這個問題。<br />
我很久沒用這個設定,也忘記怎麼做,還要去Google一下,<br />
記錄在這裡以便以後查詢<br />
<a name='more'></a>「不要合併,隱藏標籤」實際上是把標籤的長度減小,減到只剩下圖示,使他<b>看起來</b>有隱藏標籤的效果<br />
<b><span style="color: blue;">修改標籤長度的方法:</span></b><br />
1.先在工作列上右鍵→內容→工作列按鈕選「不要合併」<br />
2.開啟登錄檔編輯器 <span style="color: red;">regedit </span>〈在開始→搜尋程式與檔案中直接輸入regedit然後Enter〉<br />
3.在左邊找到<span style="color: red;">HKEY_CURRENT_USER\Control Panel\Desktop\WindowMetrics</span>,然後在右邊新增一個字串值,命名為<span style="color: red;">MinWidth</span><br />
4.修改MinWidth裡的值,越大長度越長,越小長度越小<br />
大圖示的值是<span id="intelliTxt" style="color: red;">54</span><br />
小圖示的值是<span id="intelliTxt" style="color: red;">40</span><br />
可以自己試試喜歡的值<br />
<span id="intelliTxt">重新登入就可以看到效果了 </span>Kinhttp://www.blogger.com/profile/15617055415780930886noreply@blogger.com0tag:blogger.com,1999:blog-8250225668494883444.post-27472611657422478642011-06-20T23:20:00.000+08:002013-10-07T00:16:27.970+08:00Cream DE最近看到一個新桌面環境Cream 好像很有趣<br />
<br />
<a name='more'></a>可以用HTML5和CSS3來寫Widget<br />
<br />
好奇之下就裝了<br />
以下是步驟<br />
/etc/pacman.conf 加入<br />
<blockquote>
<div style="color: blue;">
[cream]<br />
Server = http://repos.cream-project.org/arch/$arch</div>
</blockquote>
<br />
然後先裝前置套件<br />
<br />
<blockquote>
<div style="color: blue;">
yaourt -S python python-lxml pygobject pygtk python-cairo vte libev librsvg dbus-python python-elixir pywebkitgtk python-feedparser libxcb python-virtualenv bzr cython gstreamer0.10-python</div>
</blockquote>
<br />
然後裝Cream<br />
<blockquote>
<div style="color: blue;">
yaourt -S bjoern console cream-hotkey-manager cream-libs cream-pim gpyconf melange melange-widgets ooxcb pyjavascriptcore screenhunter xmlserialize</div>
</blockquote>
<br />
<a href="http://www.archlinux-tw.ddns.info/bbs/viewtopic.php?id=49">有篇文章</a> 說只要裝 melange 就可以,但是可能是依賴套件寫錯還是如何,執行時會發生錯誤<br />
<blockquote>
<span style="color: red;">/usr/lib/python2.7/site-packages/cream/features.py:99: UserWarning: Could not connect to the cream hotkey manager</span><br />
<span style="color: red;"> warnings.warn("Could not connect to the cream hotkey manager")</span><br />
<span style="color: red;">Traceback (most recent call last):</span><br />
<span style="color: red;"> File "/usr/bin/melange", line 487, in <module></module></span><br />
<span style="color: red;"> melange = Melange()</span><br />
<span style="color: red;"> File "/usr/bin/melange", line 323, in __init__</span><br />
<span style="color: red;"> self.load_widget(**widget)</span><br />
<span style="color: red;"> File "/usr/bin/melange", line 379, in load_widget</span><br />
<span style="color: red;"> widget = Widget(self.available_widgets.get_by_name(name)._path, backref=self)</span><br />
<span style="color: red;"> File "/usr/lib/python2.7/site-packages/cream/manifest.py", line 235, in get_by_name</span><br />
<span style="color: red;"> return self.by_name[name]</span><br />
<span style="color: red;">KeyError: u'Control Area'</span></blockquote>
全裝之後錯誤就沒有了<br />
<br />
裝完之後可以執行 melange 試試Kinhttp://www.blogger.com/profile/15617055415780930886noreply@blogger.com0tag:blogger.com,1999:blog-8250225668494883444.post-88233091598234275992011-05-15T11:32:00.000+08:002013-12-11T12:23:10.023+08:00印出UTF8字串<br />
<br />
Python3 在字串上預設的編碼是UTF8,但print卻不是<br />
預設做法是轉成sys.stdout.encoding所設定的編碼再印出<br />
當sys.stdout.encoding的編碼沒有你要印的字時,就會出現 <br />
<span style="color: red;"><code>'ascii' codec can't encode characters in position 0-2: ordinal not in range(128)</code></span><br />
的錯誤 <br />
<a name='more'></a><br />
<br />
這時候可以<br />
<span style="color: blue;"><code>import sy
import codecs
sys.stdout = codecs.getwriter('utf8')(sys.stdout.buffer)
</code></span><br />
來強迫使用UTF-8印出字串Kinhttp://www.blogger.com/profile/15617055415780930886noreply@blogger.com2tag:blogger.com,1999:blog-8250225668494883444.post-61016601705207414962011-04-21T12:37:00.002+08:002013-12-11T12:26:24.497+08:00讀取檔案的最後幾行<code>$n = 20 //要讀的行數
$fileName = "name"; //要讀的檔案
$fp = fopen( $fileName, 'r' ); // 開啟檔案
fseek($fp,0,SEEK_END);
$c = ftell($fp);
$countline = 0;
while ($c > 0 && $countline < $n ) { //從最後往前找第$n個\n
if ( fgetc( $fp ) == chr(10) ) $countline += 1;
$c -= 1;
fseek($fp,$c) ;
}
$data_array=explode(chr(10),fread($fp, filesize($fileName)));
fclose($fp);
</code>
$data_array 為讀取結果Kinhttp://www.blogger.com/profile/15617055415780930886noreply@blogger.com0tag:blogger.com,1999:blog-8250225668494883444.post-69213269637484105082010-10-22T14:53:00.001+08:002013-10-07T00:16:35.159+08:00rTorrent相關設定本文適用於Archlinux 2010.05<br />
本文適用於rtorrent 0.8.6<br />
<br />
<br />
<a name='more'></a>需先安裝rtorrent<br />
<span style="color: red;">pacman -S rtorrent</span><br />
<b><span style="color: black;">一般設定 </span></b><br />
~/.rtorrent.rc<span style="font-size: x-small;"></span><br />
<span style="font-size: x-small;"><span style="color: blue;"># 每個種子的最大與最小連接數</span><br style="color: blue;" /> <span style="color: blue;">#min_peers = 40</span><br style="color: blue;" /> <span style="color: blue;">#max_peers = 52</span><br style="color: blue;" /> <br style="color: blue;" /> <span style="color: blue;"># </span></span><span style="font-size: x-small;"><span style="color: blue;">已完成種子的最大與最小連接數,</span></span><span style="font-size: x-small;"><span style="color: blue;">"-1"為同上</span></span><span style="font-size: x-small;"><br style="color: blue;" /> <span style="color: blue;">#min_peers_seed = 10</span><br style="color: blue;" /> <span style="color: blue;">#max_peers_seed = 52</span><br style="color: blue;" /> <br style="color: blue;" /> <span style="color: blue;"></span></span><span style="font-size: x-small;"><span style="color: blue;"># 最大做種數</span></span><span style="font-size: x-small;"><br style="color: blue;" /> <span style="color: blue;">#max_uploads = 8</span><br style="color: blue;" /> <br style="color: blue;" /> <span style="color: blue;"># 總流量 (KiB),"0"為不限制 </span><br style="color: blue;" /> <span style="color: blue;">download_rate = 0</span><br style="color: blue;" /> <span style="color: blue;">upload_rate = 50</span><br style="color: blue;" /> <br style="color: blue;" /> <span style="color: blue;"># 預設儲存目錄</span><br style="color: blue;" /> <span style="color: blue;">directory = /media/Data/Downloads/Temp</span><br style="color: blue;" /> <span style="color: blue;"># 下載完成時移動檔案</span><br style="color: blue;" /> <span style="color: blue;">system.method.set_key = event.download.finished,move_complete,"execute=mv,-u,$d$</span><br style="color: blue;" /> <span style="color: blue;"># 讀取種子後移動種子到目錄</span><br style="color: blue;" /> <span style="color: blue;">system.method.set_key = event.download.inserted_new,remove_sourcetor,"execute=r$</span><br style="color: blue;" /> <br style="color: blue;" /> <span style="color: blue;">#下載歷史目錄(此目錄中包括下載進度信息和DHT節點緩存)</span><br style="color: blue;" /> <span style="color: blue;">session = ./.session/</span><br style="color: blue;" /> <span style="color: blue;"><br />
</span><span style="color: blue;"></span></span><br />
<span style="font-size: x-small;"><span style="color: blue;"># 自動讀取資料夾中的種子 </span><span style="color: blue;"></span><br style="color: blue;" /> <span style="color: blue;">schedule = watch_directory,5,5,load_start=/media/Data/*.torrent</span><br style="color: blue;" /> <span style="color: blue;">#schedule = untied_directory,5,5,stop_untied=</span><br style="color: blue;" /> <span style="color: blue;">#schedule = tied_directory,5,5,start_tied=</span><br style="color: blue;" /> <br style="color: blue;" /> <span style="color: blue;"># 硬碟空間不足時停止下載</span><br style="color: blue;" /> <span style="color: blue;">schedule = low_diskspace,5,60,close_low_diskspace=100M</span></span><br />
<span style="font-size: x-small;"><span style="color: blue;"> </span><span style="color: blue;"></span><br style="color: blue;" /> <span style="color: blue;"># 分享率達成時停止上傳</span><br style="color: blue;" /> <span style="color: blue;">ratio.enable=</span><br style="color: blue;" /> <span style="color: blue;"># 達成分享率</span><br style="color: blue;" /> <span style="color: blue;">ratio.min.set=100</span><br style="color: blue;" /> <span style="color: blue;">ratio.max.set=300</span><br style="color: blue;" /> <span style="color: blue;">ratio.upload.set=20M</span><br style="color: blue;" /> <span style="color: blue;"># Changing the command triggered when the ratio is reached.</span><br style="color: blue;" /> <span style="color: blue;">system.method.set = group.seeding.ratio.command, d.close=, d.erase=</span><br style="color: blue;" /> <br style="color: blue;" /> <span style="color: blue;">#支援UDP Trackers</span><br style="color: blue;" /> <span style="color: blue;">use_udp_trackers = yes</span><br style="color: blue;" /> <br style="color: blue;" /> <span style="color: blue;"># Port range to use for listening.</span><br style="color: blue;" /> <span style="color: blue;">port_range = 49164-49164</span><br style="color: blue;" /> <br style="color: blue;" /> <span style="color: blue;"># Check hash for finished torrents. Might be usefull until the bug is</span><br style="color: blue;" /> <span style="color: blue;"># fixed that causes lack of diskspace not to be properly reported.</span><br style="color: blue;" /> <span style="color: blue;">check_hash = yes</span><br style="color: blue;" /> <br style="color: blue;" /> <span style="color: blue;"># Encryption options, set to none (default) or any combination of the following:</span><br style="color: blue;" /> <span style="color: blue;"># allow_incoming, try_outgoing, require, require_RC4, enable_retry, prefer_plai$</span><br style="color: blue;" /> <span style="color: blue;">#</span><br style="color: blue;" /> <span style="color: blue;"># encryption = allow_incoming,enable_retry,prefer_plaintext</span><br style="color: blue;" /> <span style="color: blue;">encryption = allow_incoming,try_outgoing,enable_retry</span><br style="color: blue;" /> <br style="color: blue;" /> <span style="color: blue;"># The default is "off". For DHT to work, a session directory must be defined.</span><br style="color: blue;" /> <span style="color: blue;">dht = auto</span><br style="color: blue;" /> <br style="color: blue;" /> <span style="color: blue;"># UDP port to use for DHT.</span><br style="color: blue;" /> <span style="color: blue;">dht_port = 6881</span><br style="color: blue;" /> <br style="color: blue;" /> <span style="color: blue;"># Enable peer exchange (for torrents not marked private)</span><span style="color: blue;"></span><br style="color: blue;" /> <span style="color: blue;">peer_exchange = yes</span><br style="color: blue;" /> <br style="color: blue;" /> <span style="color: blue;"># 字元編碼</span><br style="color: blue;" /> <span style="color: blue;">encoding_list = UTF-8</span><br style="color: blue;" /> <span style="color: blue;">scgi_local = /tmp/rpc.socket</span><br style="color: blue;" /> <span style="color: blue;">schedule = chmod,0,0,"execute=chmod,777,/tmp/rpc.socket"</span></span><br />
<br />
<span style="font-size: x-small;"><span style="color: blue;"><b><span style="font-size: small;"><span style="color: black;">開機自動執行</span></span></b></span></span><br />
需先安裝screen<span style="font-size: x-small;"><span style="color: blue;"><b><span style="font-size: small;"><span style="color: black;"> </span></span></b></span></span><br />
<span style="font-size: x-small;"><span style="color: blue;"><b><span style="font-size: small;"><span style="color: black;"> </span></span></b></span></span><span style="color: red;">pacman -S screen</span><br />
/etc/rc.d/rtorrent:<br />
<br />
<div style="color: blue;">
<span style="font-size: x-small;">#!/bin/sh<br />
. /etc/rc.conf<br />
. /etc/rc.d/functions<br />
ppid=$(pidof rtorrent)<br />
case "$1" in<br />
start)<br />
stat_busy "Starting rtorrent"<br />
[ -z "$ppid" ]<br />
if [ $? -gt 0 ]; then<br />
stat_fail<br />
else<br />
rm /tmp/rpc.socket 2> /dev/null<br />
su - <span style="color: red;">USERNAME</span> -c "screen -A -m -d -S rtorrent /usr/bin/rtorrent" &<br />
add_daemon rtorrent<br />
stat_done<br />
fi<br />
;;<br />
stop)</span></div>
<span style="font-size: x-small;"><span style="color: blue;"> stat_busy "Stopping rtorrent"</span><br style="color: blue;" /><span style="color: blue;"> [ ! -z "$ppid" ] && kill -int ${ppid}</span><br style="color: blue;" /><span style="color: blue;"> if [ $? -gt 0 ]; then</span><br style="color: blue;" /><span style="color: blue;"> stat_fail</span><br style="color: blue;" /><span style="color: blue;"> else</span><br style="color: blue;" /><span style="color: blue;"> rm /tmp/rpc.socket</span><br style="color: blue;" /><span style="color: blue;"> rm_daemon rtorrent</span><br style="color: blue;" /><span style="color: blue;"> stat_done</span><br style="color: blue;" /><span style="color: blue;"> fi</span><br style="color: blue;" /><span style="color: blue;"> ;;</span><br style="color: blue;" /><span style="color: blue;"> restart)</span><br style="color: blue;" /><span style="color: blue;"> $0 stop</span><br style="color: blue;" /><span style="color: blue;"> sleep 1</span><br style="color: blue;" /><span style="color: blue;"> $0 start</span><br style="color: blue;" /><span style="color: blue;"> ;;</span><br style="color: blue;" /><span style="color: blue;"> *)</span><br style="color: blue;" /><span style="color: blue;"> echo "Usage: {start|stop|restart}" >&2</span><br style="color: blue;" /><span style="color: blue;"> exit 1</span><br style="color: blue;" /><span style="color: blue;"> ;;</span><br style="color: blue;" /><span style="color: blue;">esac</span><br style="color: blue;" /><span style="color: blue;">exit 0</span> </span><br />
<br />
中間的<span style="color: red;">USERNAME<span style="color: black;">要改成執行時要使用的身分</span></span><br />
<span style="color: red;"><span style="color: black;"> </span></span> <br />
/etc/rc.conf:<br />
在DAEMONS中加入 rtorrentKinhttp://www.blogger.com/profile/15617055415780930886noreply@blogger.com2