<?xml version='1.0' encoding='UTF-8'?><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/" xmlns:blogger="http://schemas.google.com/blogger/2008" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" version="2.0"><channel><atom:id>tag:blogger.com,1999:blog-10902736</atom:id><lastBuildDate>Fri, 28 Feb 2020 15:08:54 +0000</lastBuildDate><category>電腦技巧</category><category>Animation_Grade</category><category>life</category><category>Linux</category><category>Software</category><category>網絡技巧</category><category>IT_News</category><category>Animation_News</category><category>game</category><category>Animation_Review</category><category>Macau</category><category>經典時刻</category><category>私語</category><category>Animation_Data</category><category>English</category><category>攝影</category><category>blogger_hack</category><category>中國字</category><category>Music</category><category>日文學習</category><category>Gentoo</category><category>IPSC</category><category>Mac OS</category><title>ToKyo-JuPiTer</title><description>天意&lt;br&gt;－時間和空間絕對隔絕&lt;br&gt;－命運的主宰&lt;br&gt;</description><link>http://tokyo-jupiter.blogspot.com/</link><managingEditor>noreply@blogger.com (Anonymous)</managingEditor><generator>Blogger</generator><openSearch:totalResults>635</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><item><guid isPermaLink="false">tag:blogger.com,1999:blog-10902736.post-7288187024547021276</guid><pubDate>Fri, 16 Oct 2015 09:57:00 +0000</pubDate><atom:updated>2015-10-16T17:57:02.484+08:00</atom:updated><title>治愈的小盤栽</title><description>&lt;p class=&quot;mobile-photo&quot;&gt;&lt;a href=&quot;http://1.bp.blogspot.com/-wIWQbGm_1Wc/ViDJ774_LnI/AAAAAAAA2jc/tsvGZbR_9nQ/s1600/IMG_20151016_100215-722486.jpeg&quot;&gt;&lt;img src=&quot;http://1.bp.blogspot.com/-wIWQbGm_1Wc/ViDJ774_LnI/AAAAAAAA2jc/tsvGZbR_9nQ/s320/IMG_20151016_100215-722486.jpeg&quot;  border=&quot;0&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_6206182318042721906&quot; /&gt;&lt;/a&gt;&lt;/p&gt;  </description><link>http://tokyo-jupiter.blogspot.com/2015/10/blog-post.html</link><author>noreply@blogger.com (Anonymous)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/-wIWQbGm_1Wc/ViDJ774_LnI/AAAAAAAA2jc/tsvGZbR_9nQ/s72-c/IMG_20151016_100215-722486.jpeg" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-10902736.post-7410694720165334290</guid><pubDate>Thu, 17 Sep 2015 14:09:00 +0000</pubDate><atom:updated>2015-09-18T00:32:07.198+08:00</atom:updated><title>單個網頁文件 計時器</title><description>&lt;a href=&quot;http://1.bp.blogspot.com/-EEbW1zi8bik/VfrINrNzHhI/AAAAAAAA11Y/_PezCUxbWdg/s1600/sw.png&quot; imageanchor=&quot;1&quot; &gt;&lt;img border=&quot;0&quot; src=&quot;http://1.bp.blogspot.com/-EEbW1zi8bik/VfrINrNzHhI/AAAAAAAA11Y/_PezCUxbWdg/s1600/sw.png&quot; width=&quot;500px&quot; /&gt;&lt;/a&gt;&lt;br /&gt;最近因為某些原因需要用電腦計時，發現網上的計時器都不太好用。&lt;br /&gt;大部份都需要用滑鼠不能用鍵盤控制&lt;br /&gt;又不想因為一個很普通的計時器特別去安裝一個程式&lt;br /&gt;於是乎自己手動實驗了一個，都是網上找代碼東拼西湊做出來&lt;br /&gt;可以用鍵盤上的&amp;lt;1&amp;gt;和&amp;lt;3&amp;gt;來控制START/STOP和LAP&lt;br /&gt;而且會把時間記錄存儲在瀏覽器裏，重新載入可以看到上次的時間&lt;br /&gt;除非重置了時間，重新計時，停止後才會清掉以前的記錄&lt;br /&gt;&lt;br /&gt;但Firefox有是會一卡一卡，不知道是否真的準確地計時囧&lt;br /&gt;而且有一段日子沒有寫網頁程式，差不多忘記得一干二淨囧rz&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;PS 純實驗性質，不保證可用性。&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;https://drive.google.com/file/d/0B0-zOHaXq-Z2ODBQUndoZ0NuMmM/view?usp=sharing&quot;&gt;下載&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;SOE stopwatch javascript css html5 timer 計時器 網頁</description><link>http://tokyo-jupiter.blogspot.com/2015/09/blog-post.html</link><author>noreply@blogger.com (Anonymous)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/-EEbW1zi8bik/VfrINrNzHhI/AAAAAAAA11Y/_PezCUxbWdg/s72-c/sw.png" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-10902736.post-4190357559383829534</guid><pubDate>Sun, 09 Aug 2015 03:03:00 +0000</pubDate><atom:updated>2015-08-09T11:03:36.624+08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">電腦技巧</category><title>Firefox can not display icon font</title><description>最近逛論壇時發現，有一些用文字做的圖標會顯示錯誤。&lt;br /&gt;一開始時還以為是我的電腦沒有安裝該字體&lt;br /&gt;後來在&lt;a href=&quot;https://support.mozilla.org/en-US/questions/1016919#answer-620139&quot;&gt;Mozilla Support&lt;/a&gt;發現了真相，只要在Firefox裏打開優先使用網頁字型就可以&lt;br /&gt;解決！</description><link>http://tokyo-jupiter.blogspot.com/2015/08/firefox-can-not-display-icon-font.html</link><author>noreply@blogger.com (Anonymous)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-10902736.post-3712807393560524563</guid><pubDate>Fri, 07 Aug 2015 06:50:00 +0000</pubDate><atom:updated>2015-08-07T14:50:02.647+08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">電腦技巧</category><title>Android藍牙鍵盤用Caps Lock做Control鍵</title><description>很久沒有更新了。&lt;br /&gt;因為Google+貌似快要關門，還是回來寫博家最靠諎。&lt;br /&gt;回到正題。&lt;br /&gt;最近買了隻藍牙鍵盤&lt;br /&gt;第一時間當然是把Caps Lock鍵改成為Control鍵，這是我用慣的鍵位。&lt;br /&gt;做法可以參考&lt;a href=&quot;http://emacswiki.org/emacs/MovingTheCtrlKey#toc25&quot;&gt;EmacsWiki&lt;/a&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;pre&gt;$ su&lt;br /&gt;&lt;br /&gt;# mount -o rw,remount /system&lt;br /&gt;# nano /system/usr/keylayout/Generic.kl&lt;/pre&gt;&lt;/blockquote&gt;我的Nexus7似乎沒有/system分區，我是重覆執行remount /和/system。&lt;br /&gt;我這邊key 29是CTRL_LEFT，key 58是CAPS_LOCK&lt;br /&gt;把這兩個交換，重啟，完成。&lt;br /&gt;&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;另外關於Android的HOME鍵和返回鍵&lt;br /&gt;預設應該是&lt;br /&gt;ESC = go back&lt;br /&gt;ALT + ESC = home&lt;br /&gt;CTRL + ESC = menu&lt;br /&gt;ALT + TAB (ALT + SHIFT + TAB) = switch tasks&lt;br /&gt;不過我的好似不太有用？</description><link>http://tokyo-jupiter.blogspot.com/2015/08/androidcaps-lockcontrol.html</link><author>noreply@blogger.com (Anonymous)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-10902736.post-2819606680912815677</guid><pubDate>Sun, 18 May 2014 16:19:00 +0000</pubDate><atom:updated>2014-05-19T02:05:06.482+08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Gentoo</category><category domain="http://www.blogger.com/atom/ns#">Software</category><title>Gnome3試用後感</title><description>經歷&lt;a href=&quot;&quot;&gt;千辛萬苦&lt;/a&gt;，終於把電腦升級完成。&lt;br /&gt;兩年沒更新過，今天終於體會上Gnome3。&lt;br /&gt;一個字，難。很難用，很不習慣&lt;br /&gt;最不習慣的當然是切換視窗，平常習慣了開好多個視窗的我來到Gnome3。&lt;br /&gt;每次換視窗都要點兩下按鍵，真的不習慣。&lt;br /&gt;界面造得好多觸控元素，好像為平板電腦而設的一樣。&lt;br /&gt;例如開機要向上推，向下推顯視通知欄。&lt;br /&gt;好多綠人仔Android的元素。&lt;br /&gt;&lt;br /&gt;用慣Linux的我表示Windows實在落後太多啦！&lt;br /&gt;無奈很多地方不習慣，比如預設是顯示關機。&lt;br /&gt;要按Alt才會出現暫停，想安裝那個暫停的擴展又不支援。&lt;br /&gt;看來要慢慢花時間好好調教一下！</description><link>http://tokyo-jupiter.blogspot.com/2014/05/gnome3.html</link><author>noreply@blogger.com (Anonymous)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-10902736.post-8450202948695119221</guid><pubDate>Sun, 18 May 2014 04:25:00 +0000</pubDate><atom:updated>2014-05-18T12:25:43.293+08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Gentoo</category><title></title><description>兩年沒更新過電腦，一口氣升上Gneom3和Systemd。&lt;br /&gt;記錄一下遇到過的Bug/特別事情：&lt;br /&gt;&lt;br /&gt;首先遇到的應該比較少人知道，libgweather編譯失敗。&lt;br /&gt;上網查了一大輪都沒人提及過。但emerge時總是編譯失敗(emake failed)&lt;br /&gt;看一看log，有一句：&lt;i&gt;location-entry.h:39:5: error: unknown type name ‘GtkSearchEntry’&lt;/i&gt;&lt;br /&gt;進去看源碼location-entry.h裏面只見它include了gtk+ lib&lt;br /&gt;再查查gtk+ lib的文檔，原來GtkSearchEntry只從3.6版本開始提供。&lt;br /&gt;我正在用的是3.4.4，看來是依懶問題。&lt;br /&gt;&lt;i&gt;emerge -1av gtk+&lt;/i&gt;就可以了，有更新版本的3.10.8&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;再來是比較常見的，經常有套件在編譯前出現甚麼XML::Parser Error的&lt;br /&gt;有可能是perl升經完沒有跑一次&lt;i&gt;perl-cleaner&lt;/i&gt;&lt;br /&gt;另外ruby也有這個情況，升級完以後一直在用舊版。&lt;br /&gt;需要&lt;i&gt;eselect ruby&lt;/i&gt;選擇最新的ruby 20，不然某些套件比如：webkit-gtk會安裝失敗。&lt;br /&gt;會說：No such file or directory&lt;br /&gt;&lt;br /&gt;即使如此，webkit-gtk依然會在編譯時卡住。&lt;br /&gt;貌似nvidia的opengl implementation有bug，&lt;i&gt;eselect opengl&lt;/i&gt;選擇xorg-x11的就可以&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;也許我太長時間沒有做過更新，emerge有好多無法自動解決的blocking。&lt;br /&gt;起初我一個個&lt;i&gt;emerge -1av&lt;/i&gt;去裝，後來發現太多。&lt;br /&gt;試試用它提議的&lt;i&gt;--backtrack=30&lt;/i&gt;，果然emerge會自動解決blocking！&lt;br /&gt;&lt;br /&gt;最後一個問題是vmware，它的vmware-module還未支持我用的kernel-3.12.13&lt;br /&gt;只能把它干掉等更新了。</description><link>http://tokyo-jupiter.blogspot.com/2014/05/gneom3systemd-bug-libgweather.html</link><author>noreply@blogger.com (Anonymous)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-10902736.post-5574797341742356860</guid><pubDate>Fri, 16 May 2014 05:23:00 +0000</pubDate><atom:updated>2014-05-16T13:23:31.289+08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Gentoo</category><category domain="http://www.blogger.com/atom/ns#">Linux</category><title>Gentoo更新webapp</title><description>最近升級了owncloud，經常忘記跑webapp-config的命令。&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;pre&gt;$ sudo webapp-config -U -h &#39;tokyo-jupiter.sytes.net&#39; -d owncloud owncloud 6.0.3 -s lighttpd&lt;/pre&gt;&lt;/blockquote&gt;</description><link>http://tokyo-jupiter.blogspot.com/2014/05/gentoowebapp.html</link><author>noreply@blogger.com (Anonymous)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-10902736.post-5063251148623960473</guid><pubDate>Sat, 03 May 2014 03:37:00 +0000</pubDate><atom:updated>2014-05-03T11:38:41.949+08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Linux</category><category domain="http://www.blogger.com/atom/ns#">Mac OS</category><category domain="http://www.blogger.com/atom/ns#">電腦技巧</category><title>RIME定制指南（仮）</title><description>繼&lt;a href=&quot;http://tokyo-jupiter.blogspot.com/2013/10/rime.html&quot;&gt;上次&lt;/a&gt;介紹了RIME，發現了每次更新都會把預設的yaml設定檔覆蓋掉。&lt;br /&gt;&lt;a href=&quot;https://code.google.com/p/rimeime/wiki/CustomizationGuide&quot;&gt;官方定制指南&lt;/a&gt;說明了，原來要把自己的修改加入在custom.yaml檔案裏。&lt;br /&gt;每個要修改的yaml設定檔都要有對應的一個custom.yaml，重新部署時會把入面的內容加到.yaml裏面。&lt;br /&gt;&lt;br /&gt;比如，我想停用了&lt;i&gt;default.yaml&lt;/i&gt;的uppercase recognizer設定。&lt;br /&gt;首先建立一個&lt;i&gt;default.custom.yaml&lt;/i&gt;，把要定制的選項寫在裏面。第一行為&lt;i&gt;patch:&lt;/i&gt;，注意縮排。&lt;br /&gt;&lt;blockquote&gt;&lt;pre&gt;$ cat default.custom.yaml&lt;br /&gt;patch:&lt;br /&gt;    recognizer/patterns/uppercase: noop&lt;br /&gt;    ascii_composer/switch_key/Shift_L: noop&lt;br /&gt;    ascii_composer/switch_key/Shift_R: noop&lt;br /&gt;    ascii_composer/switch_key/Control_L: noop&lt;br /&gt;    ascii_composer/switch_key/Control_R: noop&lt;br /&gt;&lt;/pre&gt;&lt;/blockquote&gt;&lt;br /&gt;如果要定制標點符號的話，做法有點不同。直接改&lt;i&gt;default.yaml&lt;/i&gt;它會刪了掉預設的所有標點符號。&lt;br /&gt;在&lt;i&gt;cangjie5.schema.yaml&lt;/i&gt;裏有一行是&lt;i&gt;punctuator:&lt;/i&gt;，它會引入預設的標點符號。&lt;br /&gt;所以要修改&lt;i&gt;cangjie5.schema.yaml&lt;/i&gt;，建立一個&lt;i&gt;cangjie5.custom.yaml&lt;/i&gt;檔案。內容如下：&lt;br /&gt;&lt;blockquote&gt;&lt;pre&gt;$ cat cangjie5.custom.yaml&lt;br /&gt;patch:&lt;br /&gt;    punctuator/full_shape:&lt;br /&gt;        &#39;~&#39; : ～&lt;br /&gt;    punctuator/half_shape:&lt;br /&gt;        &#39;~&#39; : ～&lt;br /&gt;&lt;/pre&gt;&lt;/blockquote&gt;&lt;br /&gt;以下是我個人所有的修改：&lt;br /&gt;&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;修改“～”標點符號、停用大寫字母recognizer、停用shift鍵中/英輸入功能、iterm2程式裏啟用輸入法。&lt;br /&gt;&lt;blockquote&gt;&lt;pre&gt;~/Library/Rime $ ls *.custom*&lt;br /&gt;cangjie5.custom.yaml default.custom.yaml  squirrel.custom.yaml&lt;br /&gt;~/Library/Rime $ for i in `ls *.custom*`; do echo &quot;\$ cat $i&quot; &amp;&amp; cat $i; done&lt;br /&gt;$ cat cangjie5.custom.yaml&lt;br /&gt;patch:&lt;br /&gt;    punctuator/full_shape:&lt;br /&gt;        &#39;~&#39; : ～&lt;br /&gt;    punctuator/half_shape:&lt;br /&gt;        &#39;~&#39; : ～&lt;br /&gt;$ cat default.custom.yaml&lt;br /&gt;patch:&lt;br /&gt;    recognizer/patterns/uppercase: noop&lt;br /&gt;    ascii_composer/switch_key/Shift_L: noop&lt;br /&gt;    ascii_composer/switch_key/Shift_R: noop&lt;br /&gt;    ascii_composer/switch_key/Control_L: noop&lt;br /&gt;    ascii_composer/switch_key/Control_R: noop&lt;br /&gt;$ cat squirrel.custom.yaml&lt;br /&gt;patch:&lt;br /&gt;    app_options/com.googlecode.iterm2: false&lt;br /&gt;&lt;/pre&gt;&lt;/blockquote&gt;</description><link>http://tokyo-jupiter.blogspot.com/2014/05/rime.html</link><author>noreply@blogger.com (Anonymous)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-10902736.post-3280465723044304672</guid><pubDate>Thu, 01 May 2014 09:32:00 +0000</pubDate><atom:updated>2015-01-22T01:43:24.126+08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">電腦技巧</category><title>Wubi + WinPE安裝Ubuntu到移動硬盤</title><description>Wubi是一個可以把Ubuntu安裝在Windows分區裏的小程式。 它的特點是不用重新分區，而且能和Windows並存。 它會先透過Windows的bootmgr啟動grub4dos的mbr image，然後使用grub4dos啟動disk img入面的Ubuntu。 因為要在其他電腦啟動Wubi的話必需要先有Windows的bootmgr。 但其實我們可以用WinPE的辦法開機。&lt;br /&gt;&lt;br /&gt;首先我們需要有可啟動的WinPE USB。 然後修改&lt;i&gt;/boot/bcd&lt;/i&gt;加入Wubi的開機選項。&lt;br /&gt;主要是使用Real-mode Boot Sector模式，指定Wubi的mbr文件引導。&lt;br /&gt;具體內容可以從Wubi原來的bcd檔案抄回來。&lt;br /&gt;最後用diskpart active分區。&lt;br /&gt;但是休眠後會無法讀取硬盤而死機。&lt;br /&gt;&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;代碼：&lt;br /&gt;&lt;blockquote&gt;&lt;pre&gt;U:\boot&gt;bcdedit /store bcd /create /application bootsector&lt;br /&gt;{48e95291-7bd3-11e2-bb24-180373d3babd}&lt;br /&gt;&lt;br /&gt;U:\boot&gt;set wubib={48e95291-7bd3-11e2-bb24-180373d3babd}&lt;br /&gt;&lt;br /&gt;U:\boot&gt;bcdedit /store bcd /set %wubib% device BOOT&lt;br /&gt;操作順利完成。&lt;br /&gt;&lt;br /&gt;U:\boot&gt;bcdedit /store bcd /set %wubib% path \ubuntu\winboot\wubildr.mbr&lt;br /&gt;操作順利完成。&lt;br /&gt;&lt;br /&gt;U:\boot&gt;bcdedit /store bcd /set %wubib% description Lubuntu&lt;br /&gt;操作順利完成。&lt;br /&gt;&lt;br /&gt;U:\boot&gt;bcdedit /store bcd /displayorder %wubib% /addfirst&lt;br /&gt;操作順利完成。&lt;br /&gt;&lt;br /&gt;U:\boot&gt;bcdedit /store bcd /displayorder {b45b76b1-28a3-11e2-af07-180373d3babd}&lt;br /&gt;/remove&lt;br /&gt;操作順利完成。&lt;br /&gt;&lt;br /&gt;U:\boot&gt;bcdedit /store bcd /displayorder {063b8c3a-27e5-11e2-9fc7-180373d3babd}&lt;br /&gt;/remove&lt;br /&gt;操作順利完成。&lt;br /&gt;&lt;br /&gt;U:\boot&gt;bcdedit /store bcd /displayorder {default} /remove&lt;br /&gt;操作順利完成。&lt;br /&gt;&lt;br /&gt;U:\boot&gt;bcdedit /store bcd /default %wubib%&lt;br /&gt;操作順利完成。&lt;br /&gt;&lt;br /&gt;U:\boot&gt;bcdedit /store bcd /timeout 1&lt;br /&gt;操作順利完成。&lt;br /&gt;&lt;br /&gt;U:\boot&gt;bcdedit /store bcd /enum&lt;br /&gt;&lt;br /&gt;Windows Boot Manager&lt;br /&gt;--------------------&lt;br /&gt;identifier              {bootmgr}&lt;br /&gt;description             Windows Boot Manager&lt;br /&gt;locale                  en-US&lt;br /&gt;inherit                 {globalsettings}&lt;br /&gt;default                 {default}&lt;br /&gt;displayorder            {default}&lt;br /&gt;toolsdisplayorder       {memdiag}&lt;br /&gt;timeout                 1&lt;br /&gt;&lt;br /&gt;真實模式開機磁區&lt;br /&gt;---------------------&lt;br /&gt;identifier              {default}&lt;br /&gt;device                  boot&lt;br /&gt;path                    \ubuntu\winboot\wubildr.mbr&lt;br /&gt;description             Lubuntu&lt;br /&gt;&lt;br /&gt;U:\boot&gt;bcdedit /store bcd /enum all&lt;br /&gt;&lt;br /&gt;Windows Boot Manager&lt;br /&gt;--------------------&lt;br /&gt;identifier              {bootmgr}&lt;br /&gt;description             Windows Boot Manager&lt;br /&gt;locale                  en-US&lt;br /&gt;inherit                 {globalsettings}&lt;br /&gt;default                 {default}&lt;br /&gt;displayorder            {default}&lt;br /&gt;toolsdisplayorder       {memdiag}&lt;br /&gt;timeout                 1&lt;br /&gt;&lt;br /&gt;Windows 開機載入器&lt;br /&gt;-------------------&lt;br /&gt;identifier              {063b8c3a-27e5-11e2-9fc7-180373d3babd}&lt;br /&gt;device                  ramdisk=[boot]\sources\w8boot.wim,{7619dcc8-fafe-11d9-b4&lt;br /&gt;11-000476eba25f}&lt;br /&gt;path                    \windows\system32\boot\winload.exe&lt;br /&gt;description             Windows 8 PE 4.0 x64&lt;br /&gt;locale                  en-us&lt;br /&gt;inherit                 {bootloadersettings}&lt;br /&gt;osdevice                ramdisk=[boot]\sources\w8boot.wim,{7619dcc8-fafe-11d9-b4&lt;br /&gt;11-000476eba25f}&lt;br /&gt;systemroot              \windows&lt;br /&gt;detecthal               Yes&lt;br /&gt;winpe                   Yes&lt;br /&gt;ems                     Yes&lt;br /&gt;&lt;br /&gt;Windows 開機載入器&lt;br /&gt;-------------------&lt;br /&gt;identifier              {7619dcc9-fafe-11d9-b411-000476eba25f}&lt;br /&gt;device                  ramdisk=[boot]\sources\boot.wim,{7619dcc8-fafe-11d9-b411&lt;br /&gt;-000476eba25f}&lt;br /&gt;path                    \windows\system32\boot\winload.exe&lt;br /&gt;description             Windows Setup&lt;br /&gt;locale                  en-US&lt;br /&gt;inherit                 {bootloadersettings}&lt;br /&gt;osdevice                ramdisk=[boot]\sources\boot.wim,{7619dcc8-fafe-11d9-b411&lt;br /&gt;-000476eba25f}&lt;br /&gt;systemroot              \windows&lt;br /&gt;detecthal               Yes&lt;br /&gt;winpe                   Yes&lt;br /&gt;ems                     Yes&lt;br /&gt;&lt;br /&gt;Windows 開機載入器&lt;br /&gt;-------------------&lt;br /&gt;identifier              {b45b76b1-28a3-11e2-af07-180373d3babd}&lt;br /&gt;device                  ramdisk=[boot]\001_WIMS\winpe.wim,{7619dcc8-fafe-11d9-b4&lt;br /&gt;11-000476eba25f}&lt;br /&gt;path                    \windows\system32\boot\winload.exe&lt;br /&gt;description             Windows PE&lt;br /&gt;locale                  en-us&lt;br /&gt;inherit                 {bootloadersettings}&lt;br /&gt;osdevice                ramdisk=[boot]\001_WIMS\winpe.wim,{7619dcc8-fafe-11d9-b4&lt;br /&gt;11-000476eba25f}&lt;br /&gt;systemroot              \windows&lt;br /&gt;detecthal               Yes&lt;br /&gt;winpe                   Yes&lt;br /&gt;ems                     Yes&lt;br /&gt;&lt;br /&gt;Windows 記憶體測試器&lt;br /&gt;---------------------&lt;br /&gt;identifier              {memdiag}&lt;br /&gt;device                  boot&lt;br /&gt;path                    \boot\memtest.exe&lt;br /&gt;description             Windows Memory Diagnostic&lt;br /&gt;locale                  en-US&lt;br /&gt;inherit                 {globalsettings}&lt;br /&gt;&lt;br /&gt;真實模式開機磁區&lt;br /&gt;---------------------&lt;br /&gt;identifier              {default}&lt;br /&gt;device                  boot&lt;br /&gt;path                    \ubuntu\winboot\wubildr.mbr&lt;br /&gt;description             Lubuntu&lt;br /&gt;&lt;br /&gt;EMS 設定&lt;br /&gt;------------&lt;br /&gt;identifier              {emssettings}&lt;br /&gt;bootems                 Yes&lt;br /&gt;&lt;br /&gt;偵錯工具設定&lt;br /&gt;-----------------&lt;br /&gt;identifier              {dbgsettings}&lt;br /&gt;debugtype               Serial&lt;br /&gt;debugport               1&lt;br /&gt;baudrate                115200&lt;br /&gt;&lt;br /&gt;通用設定&lt;br /&gt;---------------&lt;br /&gt;identifier              {globalsettings}&lt;br /&gt;inherit                 {dbgsettings}&lt;br /&gt;{emssettings}&lt;br /&gt;&lt;br /&gt;開機載入器設定&lt;br /&gt;--------------------&lt;br /&gt;identifier              {bootloadersettings}&lt;br /&gt;inherit                 {globalsettings}&lt;br /&gt;{hypervisorsettings}&lt;br /&gt;&lt;br /&gt;Hypervisor 設定&lt;br /&gt;-------------------&lt;br /&gt;identifier              {hypervisorsettings}&lt;br /&gt;description             Hypervisor Settings&lt;br /&gt;hypervisordebugtype     Serial&lt;br /&gt;hypervisordebugport     1&lt;br /&gt;hypervisorbaudrate      115200&lt;br /&gt;&lt;br /&gt;裝置選項&lt;br /&gt;--------------&lt;br /&gt;identifier              {7619dcc8-fafe-11d9-b411-000476eba25f}&lt;br /&gt;ramdisksdidevice        boot&lt;br /&gt;ramdisksdipath          \boot\boot.sdi&lt;br /&gt;&lt;br /&gt;安裝 Ramdisk 選項&lt;br /&gt;---------------------&lt;br /&gt;identifier              {ramdiskoptions}&lt;br /&gt;description             Ramdisk options&lt;br /&gt;ramdisksdidevice        unknown&lt;br /&gt;ramdisksdipath          \boot\boot.sdi&lt;br /&gt;&lt;br /&gt;U:\boot&gt;&lt;br /&gt;&lt;/pre&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;</description><link>http://tokyo-jupiter.blogspot.com/2014/05/wubi-winpeubuntu.html</link><author>noreply@blogger.com (Anonymous)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-10902736.post-8711503572886104484</guid><pubDate>Thu, 17 Oct 2013 15:11:00 +0000</pubDate><atom:updated>2014-03-23T20:11:18.610+08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Linux</category><category domain="http://www.blogger.com/atom/ns#">電腦技巧</category><title>RIME自定義化</title><description>按照個人習慣定制RIME輸入法&lt;br /&gt;停用左右shift功能，按SHIFT不會切換中/英輸入功能&lt;br /&gt;停recognizer大寫圖案，SHIFT+字母直接打大寫英文字母不用按多一下Enter&lt;br /&gt;直交〜全形符號，喜歡直接打這個符號。其他符號其實也可以照辦煮碗&lt;br /&gt;&lt;br /&gt;&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;pre&gt;$ cat ~/.config/ibus/rime/default.yaml&lt;br /&gt;# Rime default settings&lt;br /&gt;# vim: set sw=2 sts=2 et:&lt;br /&gt;# encoding: utf-8&lt;br /&gt;&lt;br /&gt;config_version: &quot;0.13&quot;&lt;br /&gt;&lt;br /&gt;schema_list:&lt;br /&gt;- schema: luna_pinyin&lt;br /&gt;- schema: cangjie5&lt;br /&gt;- schema: luna_pinyin_fluency&lt;br /&gt;- schema: luna_pinyin_simp&lt;br /&gt;&lt;br /&gt;switcher:&lt;br /&gt;caption: 〔方案選單〕&lt;br /&gt;hotkeys:&lt;br /&gt;- Control+grave&lt;br /&gt;- Control+Shift+grave&lt;br /&gt;- F4&lt;br /&gt;save_options:&lt;br /&gt;- full_shape&lt;br /&gt;- simplification&lt;br /&gt;- extended_charset&lt;br /&gt;&lt;br /&gt;menu:&lt;br /&gt;page_size: 5&lt;br /&gt;&lt;br /&gt;punctuator:&lt;br /&gt;full_shape:&lt;br /&gt;&quot; &quot; : { commit: &quot;　&quot; }&lt;br /&gt;&quot;,&quot; : { commit: ， }&lt;br /&gt;&quot;.&quot; : { commit: 。 }&lt;br /&gt;&quot;&lt;&quot; : [ 《, 〈, «, ‹ ]&lt;br /&gt;    &quot;&gt;&quot; : [ 》, 〉, », › ]&lt;br /&gt;&quot;/&quot; : [ ／, &quot;/&quot;, ÷ ]&lt;br /&gt;&quot;?&quot; : { commit: ？ }&lt;br /&gt;&quot;;&quot; : { commit: ； }&lt;br /&gt;&quot;:&quot; : ：&lt;br /&gt;&quot;&#39;&quot; : { pair: [ &quot;‘&quot;, &quot;’&quot; ] }&lt;br /&gt;&quot;\&quot;&quot; : { pair: [ &quot;“&quot;, &quot;”&quot; ] }&lt;br /&gt;&quot;\\&quot; : [ 、, ＼, &quot;\\&quot; ]&lt;br /&gt;&quot;|&quot; : [ ・, ｜, &quot;|&quot;, &quot;§&quot;, &quot;¦&quot; ]&lt;br /&gt;&quot;`&quot; : [ ｀, &quot;`&quot; ]&lt;br /&gt;#&quot;~&quot; : [ 〜, &quot;~&quot;, ～, 〰 ]&lt;br /&gt;&quot;~&quot; : { commit: 〜}&lt;br /&gt;&quot;!&quot; : { commit: ！ }&lt;br /&gt;&quot;@&quot; : [ ＠, &quot;@&quot;, ☯ ]&lt;br /&gt;&quot;#&quot; : [ ＃, &quot;#&quot;, ⌘ ]&lt;br /&gt;&quot;%&quot; : [ ％, &quot;%&quot;, &quot;°&quot;, &quot;℃&quot; ]&lt;br /&gt;&quot;$&quot; : [ ￥, &quot;$&quot;, &quot;€&quot;, &quot;£&quot;, &quot;¥&quot;, &quot;¢&quot;, &quot;¤&quot; ]&lt;br /&gt;&quot;^&quot; : { commit: …… }&lt;br /&gt;&quot;&amp;&quot; : [ ＆, &quot;&amp;&quot; ]&lt;br /&gt;&quot;*&quot; : [ ＊, &quot;*&quot;, ・, ×, ※, ❂, · ]&lt;br /&gt;&quot;(&quot; : （&lt;br /&gt;&quot;)&quot; : ）&lt;br /&gt;&quot;-&quot; : [ －, &quot;-&quot; ]&lt;br /&gt;&quot;_&quot; : ——&lt;br /&gt;&quot;+&quot; : [ ＋, &quot;+&quot; ]&lt;br /&gt;&quot;=&quot; : [ ＝, &quot;=&quot; ]&lt;br /&gt;&quot;[&quot; : [ 「, 【, 〔, ［ ]&lt;br /&gt;&quot;]&quot; : [ 」, 】, 〕, ］ ]&lt;br /&gt;&quot;{&quot; : [ 『, 〖, ｛ ]&lt;br /&gt;&quot;}&quot; : [ 』, 〗, ｝ ]&lt;br /&gt;half_shape:&lt;br /&gt;&quot;,&quot; : { commit: ， }&lt;br /&gt;&quot;.&quot; : { commit: 。 }&lt;br /&gt;&quot;&lt;&quot; : [ 《, 〈, «, ‹ ]&lt;br /&gt;    &quot;&gt;&quot; : [ 》, 〉, », › ]&lt;br /&gt;&quot;/&quot; : [ 、, &quot;/&quot;, ／, ÷ ]&lt;br /&gt;&quot;?&quot; : { commit: ？ }&lt;br /&gt;&quot;;&quot; : { commit: ； }&lt;br /&gt;&quot;:&quot; : ：&lt;br /&gt;&quot;&#39;&quot; : { pair: [ &quot;‘&quot;, &quot;’&quot; ] }&lt;br /&gt;&quot;\&quot;&quot; : { pair: [ &quot;“&quot;, &quot;”&quot; ] }&lt;br /&gt;&quot;\\&quot; : [ 、, &quot;\\&quot;, ＼ ]&lt;br /&gt;&quot;|&quot; : [ ・, &quot;|&quot;, ｜, &quot;§&quot;, &quot;¦&quot; ]&lt;br /&gt;&quot;`&quot; : &quot;`&quot;&lt;br /&gt;&quot;~&quot; : { commit: 〜}&lt;br /&gt;#&quot;~&quot; : [ &quot;~&quot;, 〜, ～, 〰 ]&lt;br /&gt;&quot;!&quot; : { commit: ！ }&lt;br /&gt;&quot;@&quot; : &quot;@&quot;&lt;br /&gt;&quot;#&quot; : &quot;#&quot;&lt;br /&gt;&quot;%&quot; : [ &quot;%&quot;, ％, &quot;°&quot;, &quot;℃&quot; ]&lt;br /&gt;&quot;$&quot; : [ ￥, &quot;$&quot;, &quot;€&quot;, &quot;£&quot;, &quot;¥&quot;, &quot;¢&quot;, &quot;¤&quot; ]&lt;br /&gt;&quot;^&quot; : { commit: …… }&lt;br /&gt;&quot;&amp;&quot; : &quot;&amp;&quot;&lt;br /&gt;&quot;*&quot; : [ &quot;*&quot;, ＊, ・, ×, ※, ❂, · ]&lt;br /&gt;&quot;(&quot; : （&lt;br /&gt;&quot;)&quot; : ）&lt;br /&gt;&quot;-&quot; : &quot;-&quot;&lt;br /&gt;&quot;_&quot; : ——&lt;br /&gt;&quot;+&quot; : &quot;+&quot;&lt;br /&gt;&quot;=&quot; : &quot;=&quot;&lt;br /&gt;&quot;[&quot; : [ 「, 【, 〔, ［ ]&lt;br /&gt;&quot;]&quot; : [ 」, 】, 〕,  ］ ]&lt;br /&gt;&quot;{&quot; : [ 『, 〖, ｛ ]&lt;br /&gt;&quot;}&quot; : [ 』, 〗, ｝ ]&lt;br /&gt;&lt;br /&gt;key_binder:&lt;br /&gt;bindings:&lt;br /&gt;# Emacs style&lt;br /&gt;- { when: composing, accept: Control+p, send: Up }&lt;br /&gt;- { when: composing, accept: Control+n, send: Down }&lt;br /&gt;- { when: composing, accept: Control+b, send: Left }&lt;br /&gt;- { when: composing, accept: Control+f, send: Right }&lt;br /&gt;- { when: composing, accept: Control+a, send: Home }&lt;br /&gt;- { when: composing, accept: Control+e, send: End }&lt;br /&gt;- { when: composing, accept: Control+d, send: Delete }&lt;br /&gt;- { when: composing, accept: Control+k, send: Shift+Delete }&lt;br /&gt;- { when: composing, accept: Control+g, send: Escape }&lt;br /&gt;- { when: composing, accept: Alt+v, send: Page_Up }&lt;br /&gt;- { when: composing, accept: Control+v, send: Page_Down }&lt;br /&gt;# commonly used paging keys&lt;br /&gt;- { when: composing, accept: ISO_Left_Tab, send: Page_Up }&lt;br /&gt;- { when: composing, accept: Shift+Tab, send: Page_Up }&lt;br /&gt;- { when: composing, accept: Tab, send: Page_Down }&lt;br /&gt;- { when: paging, accept: minus, send: Page_Up }&lt;br /&gt;- { when: has_menu, accept: equal, send: Page_Down }&lt;br /&gt;- { when: paging, accept: comma, send: Page_Up }&lt;br /&gt;- { when: has_menu, accept: period, send: Page_Down }&lt;br /&gt;&lt;br /&gt;recognizer:&lt;br /&gt;patterns:&lt;br /&gt;email: &quot;^[a-z][-_.0-9a-z]*@.*$&quot;&lt;br /&gt;#uppercase: &quot;[A-Z][-_+.&#39;0-9A-Za-z]*$&quot;&lt;br /&gt;url: &quot;^(www[.]|https?:|ftp:|mailto:).*$|^[a-z]+[.].+$&quot;&lt;br /&gt;&lt;br /&gt;ascii_composer:&lt;br /&gt;switch_key:&lt;br /&gt;#Shift_L: inline_ascii&lt;br /&gt;Shift_L: noop&lt;br /&gt;#Shift_R: commit_text&lt;br /&gt;Shift_R: noop&lt;br /&gt;Control_L: noop&lt;br /&gt;Control_R: noop&lt;br /&gt;&lt;/pre&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;++++++++++++&lt;br /&gt;&lt;br /&gt;M&lt;br /&gt;ac OS平台順便把&lt;i&gt;squirrel.yaml&lt;/i&gt;也改一下&lt;br /&gt;我喜歡在iterm2裏繼續使用輸入法的，把對應幾行刪掉即可。</description><link>http://tokyo-jupiter.blogspot.com/2013/10/rime.html</link><author>noreply@blogger.com (Anonymous)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-10902736.post-3922712819990430300</guid><pubDate>Wed, 12 Jun 2013 09:38:00 +0000</pubDate><atom:updated>2013-11-06T14:28:43.282+08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">網絡技巧</category><category domain="http://www.blogger.com/atom/ns#">電腦技巧</category><title>Mac OS Chrome textarea使用fixed width font字型</title><description>由於經常使用綱上的系統寫作，發現Mac OS的Google Chrome裏textarea預設不是使用monospace固定寬度的字型。&lt;br /&gt;常常寫wiki的時候覺得很麻煩，因為那些字元並沒有好好的對齊。&lt;br /&gt;參考了&lt;a href=&quot;https://chrome.google.com/webstore/detail/fixed-width-text-for-gmai/gamfbnidfgeeahogblblgafgpdhdkmib&quot;&gt;Fixed Width Text for Gmail™&lt;/a&gt;擴充功能，修改了一下。&lt;br /&gt;其實就是簡單的把所有textarea強制使用monospace font&lt;br /&gt;&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;pre&gt;// ==UserScript==&lt;br /&gt;// @name           Textarea Fixed Width Font&lt;br /&gt;// @namespace      http://ToKyo-JuPiTer.Blogspot.com&lt;br /&gt;// @description    Fixed-Width font for all textarea&lt;br /&gt;// @author         Jimmy&lt;br /&gt;// @version        1.0&lt;br /&gt;// @include        http://*&lt;br /&gt;// @include        https://*&lt;br /&gt;// @grant          GM_addStyle&lt;br /&gt;// ==/UserScript==&lt;br /&gt;&lt;br /&gt;// monospace for all textarea&lt;br /&gt;var css = &quot;textarea { font: medium monospace !important; }&quot;;&lt;br /&gt;&lt;br /&gt;if (typeof GM_addStyle != &quot;undefined&quot;) {&lt;br /&gt;    GM_addStyle(css);&lt;br /&gt;} else if (typeof addStyle != &quot;undefined&quot;) {&lt;br /&gt;    addStyle(css);&lt;br /&gt;} else {&lt;br /&gt;    var heads = document.getElementsByTagName(&quot;head&quot;);&lt;br /&gt;    if (heads.length &gt; 0) {&lt;br /&gt;        var node = document.createElement(&quot;style&quot;);&lt;br /&gt;        node.type = &quot;text/css&quot;;&lt;br /&gt;        node.appendChild(document.createTextNode(css));&lt;br /&gt;        heads[0].appendChild(node);&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;/blockquote&gt;把以上代碼儲存為&lt;i&gt;&amp;lt;filename&amp;gt;.user.js&lt;/i&gt;&lt;br /&gt;然後在Google Chrome裏打開&lt;i&gt;chrome://extensions/&lt;/i&gt;，把剛才保存的檔案拉進去。&lt;br /&gt;成功〜！</description><link>http://tokyo-jupiter.blogspot.com/2013/06/mac-os-chrome-textareafixed-width.html</link><author>noreply@blogger.com (Anonymous)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-10902736.post-5671839191304359125</guid><pubDate>Fri, 05 Apr 2013 04:33:00 +0000</pubDate><atom:updated>2013-04-05T14:12:35.019+08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">電腦技巧</category><title>Windows Run Command</title><description>Via: &lt;a href=&quot;http://productivity.ben61a.com/windows/run.php&quot;&gt;Run... Command / Windows / Computer Productivity&lt;/a&gt;&lt;br /&gt;記錄一下常用的Run命令：&lt;br /&gt;&lt;ul&gt;&lt;li&gt;cmd&lt;/li&gt;&lt;li&gt;taskmgr&lt;/li&gt;&lt;li&gt;appwiz.cpl&lt;/li&gt;&lt;li&gt;compmgmt.msc&lt;/li&gt;&lt;li&gt;osk&lt;/li&gt;&lt;li&gt;regedit&lt;/li&gt;&lt;li&gt;control&lt;/li&gt;&lt;ul&gt;&lt;li&gt;netconnections&lt;/li&gt;&lt;li&gt;printers&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;intl.cpl&lt;/li&gt;&lt;/ul&gt;</description><link>http://tokyo-jupiter.blogspot.com/2013/04/windows-run-command.html</link><author>noreply@blogger.com (Anonymous)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-10902736.post-5707674527270105775</guid><pubDate>Mon, 25 Feb 2013 15:08:00 +0000</pubDate><atom:updated>2013-07-21T23:11:00.834+08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Linux</category><title>Ubuntu LiveCD boot to ram</title><description>實驗完發現沒有效果，拔走USB後依舊會有錯誤。&lt;br /&gt;以後再看&lt;br /&gt;++++++&lt;br /&gt;&lt;br /&gt;在&lt;a href=&quot;http://ubuntuforums.org/showthread.php?t=1583206&quot;&gt;這裏&lt;/a&gt;看到&lt;br /&gt;原來修改&lt;i&gt;boot/grub/grub.cfg&lt;/i&gt;入面linux那一行&lt;br /&gt;給kernel傳一個參數：&lt;i&gt;toram&lt;/i&gt;&lt;br /&gt;比如改成這樣：&lt;br /&gt;&lt;blockquote&gt;&lt;pre&gt;...&lt;br /&gt;menuentry &quot;Try Ubuntu without installing&quot; {&lt;br /&gt; set gfxpayload=keep&lt;br /&gt; linux /casper/vmlinuz.efi.signed  file=/cdrom/preseed/ubuntu.seed boot=casper quiet splash toram --&lt;br /&gt; initrd /casper/initrd.lz&lt;br /&gt;}&lt;br /&gt;...&lt;/pre&gt;&lt;/blockquote&gt;就可以把root加載到內存，然後執行甚麼都會超級快～&lt;br /&gt;應該開機以後把USB拔下也依然能繼續跑的&lt;br /&gt;&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;在&lt;a href=&quot;https://wiki.ubuntu.com/BootToRAM&quot;&gt;Wiki&lt;/a&gt;看到，toram這個Opteion是Casper實現的&lt;br /&gt;這個Casper貌似是專門用在LiveCD的(&lt;a href=&quot;http://manpages.ubuntu.com/manpages/lucid/man7/casper.7.html&quot;&gt;via&lt;/a&gt;)&lt;br /&gt;</description><link>http://tokyo-jupiter.blogspot.com/2013/02/ubuntu-livecd-boot-to-ram.html</link><author>noreply@blogger.com (Anonymous)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-10902736.post-2577803328702613272</guid><pubDate>Mon, 25 Feb 2013 14:53:00 +0000</pubDate><atom:updated>2015-01-22T01:39:36.372+08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Linux</category><title>ToKyo-JuPiTer: Gentoo mount internal disk without root</title><description>&lt;a href=&quot;http://tokyo-jupiter.blogspot.com/2011/06/gentoo-mount-internal-disk-without-root.html&quot;&gt;上篇&lt;/a&gt;講到mount internal disk的權限其實是polkit控制的 但是Gentoo預設是需要root權限 如果直接修改action的xml每次升級都會變回來 而真正的設定檔案其實是在&lt;i&gt;/etc/polkit-1/rules.d&lt;/i&gt; 在&lt;a href=&quot;http://wiki.gentoo.org/wiki/Polkit&quot;&gt;Gentoo wiki&lt;/a&gt;便有寫 加入檔案&lt;i&gt;/etc/polkit-1/rules.d/10-udisks.rules&lt;/i&gt;: &lt;blockquote&gt;&lt;pre&gt;polkit.addRule(function(action, subject) {&lt;br /&gt;    if (action.id == &quot;org.freedesktop.udisks2.filesystem-mount&quot; &amp;&amp;&lt;br /&gt;        subject.user == &quot;username&quot;) {&lt;br /&gt;        return &quot;yes&quot;;&lt;br /&gt;    }&lt;br /&gt;});&lt;/pre&gt;&lt;/blockquote&gt;這樣便可  也可以直接修改admin group為wheel 加入檔案&lt;i&gt;/etc/polkit-1/rules.d/10-admin.rules&lt;/i&gt;: &lt;blockquote&gt;&lt;pre&gt;polkit.addAdminRule(function(action, subject) {&lt;br /&gt;    return [&quot;unix-group:wheel&quot;];&lt;br /&gt;});&lt;/pre&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;PS Gentoo改版以後界面變漂亮了～ 終於不再是那個超簡陋的、看上去很不專業的wiki &lt;br /&gt;&lt;br /&gt;&lt;!- more -&gt;&lt;br /&gt;++++++&lt;br /&gt;原來是wiki少了一個括號，直接return yes則不用輸入密碼。&lt;br /&gt;admin group應該是需要輸入密碼確認的。&lt;br /&gt;+++@20150122&lt;br /&gt;升級以後action.id變了，現在應該是&quot;org.freedesktop.udisks2.filesystem-mount&quot;</description><link>http://tokyo-jupiter.blogspot.com/2013/02/tokyo-jupiter-gentoo-mount-internal.html</link><author>noreply@blogger.com (Anonymous)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-10902736.post-2224443072907063987</guid><pubDate>Wed, 23 Jan 2013 16:45:00 +0000</pubDate><atom:updated>2013-01-24T00:48:00.053+08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Software</category><category domain="http://www.blogger.com/atom/ns#">電腦技巧</category><title>MacPorts sync失敗</title><description>一直都覺得MacPorts sync太慢總時失敗，可能是rsync比較容易timeout的原因&lt;br /&gt;找到&lt;a href=&quot;https://trac.macports.org/wiki/howto/PortTreeTarball&quot;&gt;官方文檔&lt;/a&gt;，原來可以用Tarball下載每天自動打包的Port Tree&lt;br /&gt;配置方法超容易，修改&lt;i&gt;$prefix/etc/macports/sources.conf&lt;/i&gt;&lt;br /&gt;&lt;blockquote&gt;#rsync://rsync.macports.org/release/ports/ [default]&lt;br /&gt;http://www.macports.org/files/ports.tar.gz [default]&lt;/blockquote&gt;把原本的rsync一行改成透過http下載的tarball&lt;br /&gt;由於我不是經常地同步port tree，偶爾才升級一下。&lt;br /&gt;每天打包的tarball比較適合我&lt;br /&gt;&lt;br /&gt;&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;SEO: macports port sync selfupdate always failed websync http daily tarball</description><link>http://tokyo-jupiter.blogspot.com/2013/01/macports-sync.html</link><author>noreply@blogger.com (Anonymous)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-10902736.post-4767285934350195133</guid><pubDate>Fri, 11 Jan 2013 14:23:00 +0000</pubDate><atom:updated>2013-01-11T22:30:43.681+08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Linux</category><title>Linux系統工具</title><description>&lt;br /&gt;Linux System monitor tools:&lt;br /&gt;&lt;br /&gt;htop - (top)interactive process viewer.&lt;br /&gt;vmstat - Report virtual memory statistics.&lt;br /&gt;w - Show who is logged on and what they are doing.&lt;br /&gt;uptime - Tell how long the system has been running.&lt;br /&gt;ps - report a snapshot of the current processes.&lt;br /&gt;free - Display amount of free and used memory in the system.&lt;br /&gt;iostat&lt;br /&gt;sar&lt;br /&gt;mpstat&lt;br /&gt;pmap - report memory map of a proces.&lt;br /&gt;ss - another utility to investigate sockets.&lt;br /&gt;tcpdump - dump traffic on a network.&lt;br /&gt;strace - trace system calls and signals.&lt;br /&gt;/proc - cpuinfo, meminfo, zoneinfo, mounts&lt;br /&gt;Nagios - Network monitoring application.&lt;br /&gt;Cacti - web-base monitoring application.&lt;br /&gt;lsof - list open files.&lt;br /&gt;&lt;br /&gt;sysstat package:&lt;br /&gt;&lt;br /&gt;iostat&lt;br /&gt;sar&lt;br /&gt;mpstat&lt;br /&gt;&lt;br /&gt;iprout package:&lt;br /&gt;&lt;br /&gt;ip&lt;br /&gt;ss&lt;br /&gt;tc&lt;br /&gt;&lt;br /&gt;few more tools:&lt;br /&gt;&lt;br /&gt;nmap&lt;br /&gt;lsof&lt;br /&gt;ntop&lt;br /&gt;conky / GkrellM&lt;br /&gt;vnstat&lt;br /&gt;mtr&lt;br /&gt;iptraf&lt;br /&gt;nmon - system monitor tools&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Traffic Monitor / Networking testing&lt;br /&gt;&lt;br /&gt;There are some useful tools: vnstat can report the transfered data and transfer rate. mtr can trace route path with ping together, useful for finding the traffic neck. ss is the successor of netstat, much more efficient and faster.&lt;br /&gt;&lt;br /&gt;nmap, a scanning tool. ntop, network traffic reporter.&lt;br /&gt;&lt;br /&gt;sar can do:&lt;br /&gt;&lt;br /&gt;Collective CPU usage&lt;br /&gt;Individual CPU statistics&lt;br /&gt;Memory used and available&lt;br /&gt;Swap space used and available&lt;br /&gt;Overall I/O activities of the system&lt;br /&gt;Individual device I/O activities&lt;br /&gt;Context switch statistics&lt;br /&gt;Run queue and load average data&lt;br /&gt;Network statistics&lt;br /&gt;Report sar data from a specific time&lt;br /&gt;and lot more..&lt;br /&gt;&lt;br /&gt;</description><link>http://tokyo-jupiter.blogspot.com/2013/01/linux.html</link><author>noreply@blogger.com (Anonymous)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-10902736.post-5138974978470689882</guid><pubDate>Mon, 05 Nov 2012 10:31:00 +0000</pubDate><atom:updated>2012-11-05T18:31:37.410+08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Linux</category><title>ToKyo-JuPiTer: Ubuntu版本號</title><description>以前寫過關於&lt;a href=&quot;http://tokyo-jupiter.blogspot.com/2006/11/ubuntu.html&quot;&gt;ToKyo-JuPiTer: Ubuntu版本號&lt;/a&gt;的文章&lt;br /&gt;現在找到了官方關於&lt;i href=&quot;https://wiki.ubuntu.com/DevelopmentCodeNames&quot;&gt;開發代號(DevelopmentCodeNames)&lt;/i&gt;的wiki&lt;br /&gt;有齊歴史的開發代號，如果想看&lt;i href=&quot;https://wiki.ubuntu.com/Releases&quot;&gt;Release&lt;/i&gt;也有官方的wiki。可以查看Release Note</description><link>http://tokyo-jupiter.blogspot.com/2012/11/tokyo-jupiter-ubuntu.html</link><author>noreply@blogger.com (Anonymous)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-10902736.post-4808921296251541397</guid><pubDate>Sat, 13 Oct 2012 15:38:00 +0000</pubDate><atom:updated>2012-10-13T23:38:23.418+08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Linux</category><title>修改分區標簽</title><description>先講ext2/3/4，建立分區時其實可以指定分區標簽的：&lt;br /&gt;&lt;i&gt;$ sudo mkfs.ext4 -L &quot;LABEL&quot; /dev/sdz99&lt;/i&gt;&lt;br /&gt;如果想日後修改分區標簽，最簡單的就是用e2label&lt;br /&gt;&lt;i&gt;$ sudo e2label /dev/sdz99 &quot;NEW_LABEL&quot;&lt;/i&gt;&lt;br /&gt;還有個&lt;i&gt;tune2fs&lt;/i&gt;可以用的，具體自行研究。&lt;br /&gt;&lt;br /&gt;想修改FAT文件系統的標簽一樣可以：&lt;br /&gt;&lt;i&gt;$ sudo dosfslabel /dev/sdz99 &quot;NEW_LABEL&quot;&lt;/i&gt;&lt;br /&gt;要修改xfs的話則用：&lt;br /&gt;&lt;i&gt;$ sudo xfs_admin -L &quot;NEW_LABEL&quot; /dev/sdz99&lt;/i&gt;&lt;br /&gt;xfs還有提供一堆有用的工具，比如：&lt;br /&gt;&lt;i&gt;xfs_fsr&lt;/i&gt;可以做線上重組，對一個已掛載的分區做碎片重組&lt;br /&gt;&lt;i&gt;xfsdump&lt;/i&gt;備份整個分區，可以做增量備份和分割備份。&lt;br /&gt;好像ext4也有提供一些類似的工具&lt;br /&gt;&lt;br /&gt;SEO: partition label xfs ext3 ext4 fat ntfs</description><link>http://tokyo-jupiter.blogspot.com/2012/10/blog-post.html</link><author>noreply@blogger.com (Anonymous)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-10902736.post-4214852840190757615</guid><pubDate>Tue, 09 Oct 2012 01:34:00 +0000</pubDate><atom:updated>2012-10-09T10:52:46.432+08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Linux</category><title>SSH反向連接</title><description>&lt;blockquote&gt;&lt;pre&gt;#!/bin/bash&lt;br /&gt;&lt;br /&gt;function line()         {&lt;br /&gt;while [ ! -f /tmp/stop ];&lt;br /&gt;do ssh -o ExitOnForwardFailure=yes -R 4334:localhost:22 user@remotehost.com &amp;quot;while netcat -zv localhost 4334; do sleep 300; done&amp;quot;;&lt;br /&gt;sleep 5;&lt;br /&gt;done&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;line &amp;amp;&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;/blockquote&gt;&lt;br /&gt;ssh有個很好用的能力，就是建立反向連接。&lt;br /&gt;之前有講過&lt;a href=&quot;http://tokyo-jupiter.blogspot.com/2009/08/ssh-tunnel.html&quot;&gt;ssh的tunnel&lt;/a&gt;，反向連接有點類似但是方向相反。&lt;br /&gt;先看代碼：&lt;br /&gt;&lt;blockquote&gt;&lt;i&gt;$ ssh -N -L  4334:localhost:4334 user@remotehost.com &amp;amp;&lt;/i&gt;&lt;/blockquote&gt;這樣就可以把localhost的4334port反向連接到remotehost的4334，有點神奇的。&lt;br /&gt;向remotehost4334port建立的連接等同於連接到localhost&lt;br /&gt;&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;回到一開頭的bash script，有時候電腦在防火檣後面或NAT後面，想要在外面連進去會被限制。&lt;br /&gt;這時候可以用ssh的反向連接能力，例如把本機的22port連接去遠端的4334port。&lt;br /&gt;在遠端主機可以用4334port登入ssh去後面的電腦&lt;br /&gt;因為ssh連接長時間閒置可能會被斷開，所以要加一個while讓它不停自動重連。&lt;br /&gt;同時斷開後要退出ssh進程，連接後使用netcat檢查一下連接是否存在。&lt;br /&gt;由於自動重連需要免密碼登入，可參考&lt;a href=&quot;http://psp-jupiter.blogspot.com/2008/12/sshfs.html&quot;&gt;這裏&lt;/a&gt;</description><link>http://tokyo-jupiter.blogspot.com/2012/10/ssh.html</link><author>noreply@blogger.com (Anonymous)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-10902736.post-3942088644121055841</guid><pubDate>Mon, 08 Oct 2012 08:43:00 +0000</pubDate><atom:updated>2012-10-09T09:27:28.659+08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Linux</category><title>Socket programming好容易</title><description>先來看一段代碼：&lt;br /&gt;&lt;blockquote&gt;&lt;pre&gt;exec 3&amp;lt;&amp;gt;/dev/tcp/www.fedora.org/80 &amp;amp;&lt;br /&gt;echo -e &quot;GET /&lt;br /&gt;&quot; &amp;gt;&amp;amp;3&lt;br /&gt;cat &amp;lt;&amp;amp;3&lt;br /&gt;&lt;/pre&gt;&lt;/blockquote&gt;&lt;br /&gt;bash可以用這種形式：&lt;i&gt;/dev/tcp/&amp;lt;hostname&amp;gt;/&amp;lt;port&amp;gt;&lt;/i&gt;建立tcp連接，但只限用exec執行。&lt;br /&gt;（因為實際上並不存在這個文件）&lt;br /&gt;&lt;i&gt;3&amp;lt;&amp;gt;&lt;/i&gt;這個其實是定義一個file descriptor，號碼是3&lt;br /&gt;可以讀取又可以寫入&lt;br /&gt;然後可以用&lt;i&gt;&amp;amp;3&lt;/i&gt;當成普通檔案讀寫&lt;br /&gt;因為www.fedora.org在80port跑的是http server，給它傳一個GET就會返回首頁容&lt;br /&gt;可以用bash做基於明文的tcp socket programming&lt;br /&gt;&lt;br /&gt;&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;事實上udp也是支援的，只要把地址中的&lt;i&gt;tcp&lt;/i&gt;換成&lt;i&gt;udp&lt;/i&gt;即何&lt;br /&gt;例如：&lt;i&gt;/dev/udp/&amp;lt;hostname&amp;gt;/&amp;lt;port&amp;gt;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;關於bash的文件描述符，定義方法是：&amp;gt;或&amp;lt;前面加數字&lt;br /&gt;&amp;lt;是讀取，&amp;gt;是寫入，&amp;lt;&amp;gt;兩個一起就是同時讀取和寫入&lt;br /&gt;bash預設已經打開了012二個描述符，它們是stdin, stdout, stderr&lt;br /&gt;也能用&amp;amp;2來當成普通文件寫入stderr&lt;br /&gt;2&amp;gt;&amp;amp;1就是把stderr重定向去stdout&lt;br /&gt;（題外話：&lt;i&gt;$ ls /adksjdkfjas 2&gt;&amp;1 &gt; /dev/null&lt;/i&gt;&lt;br /&gt;這樣照樣會有輸出，因為先把stderr重定向去stdin。然後才把stdin重定向去/dev/null。&lt;br /&gt;這樣stderr的實際值應該是原來的stdin。）&lt;br /&gt;&lt;br /&gt;Via:&lt;br /&gt;&lt;a href=&quot;http://tldp.org/LDP/abs/html/io-redirection.html&quot;&gt;Advanced Bash-Scripting Guide:  I/O Redirection&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;http://hacktux.com/bash/socket&quot;&gt;Bash Socket Programming&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;SEO: bash socket programming bash file descriptor I/O redirection</description><link>http://tokyo-jupiter.blogspot.com/2012/10/socket-programming.html</link><author>noreply@blogger.com (Anonymous)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-10902736.post-4610474745398415146</guid><pubDate>Fri, 07 Sep 2012 07:10:00 +0000</pubDate><atom:updated>2012-09-07T15:10:56.096+08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">電腦技巧</category><title>整合Windows 7安裝光碟</title><description>在Windows 8都出了的今日才研究整合Windows 7安裝光碟可能有點傻&lt;br /&gt;但Windows 8應該也能用同樣的方法做整合的&lt;br /&gt;入正題&lt;br /&gt;&lt;br /&gt;Windows 7的安裝光碟其實有四種：&lt;br /&gt;第一種有32bit的Starter, Home Base, Home Premium, Professional, Ultimate&lt;br /&gt;第二種有64bit的Home Base, Home Premium, Professional, Ultimate&lt;br /&gt;第三種是32bit的Enterprise&lt;br /&gt;第四種是64bit的Enterprise&lt;br /&gt;所以總共需要有四張ISO有11個不同的Windows 7版本&lt;br /&gt;&lt;br /&gt;而安裝Windows 7的光碟其實是一個Win PE 3.0的開機影像入面有一個install.wim的安裝影像&lt;br /&gt;只要修改install.wim就可以在安裝時選擇不同的版本&lt;br /&gt;(wim是微軟的一種file base image format，類似zip的東西)&lt;br /&gt;我們需要做的事情很簡單，先挑一個iso作為母盤然後提取其他版本的install.wim&lt;br /&gt;再把所有東西整合在一起&lt;br /&gt;我們需要的工具很簡單：&lt;a href=&quot;http://www.microsoft.com/zh-tw/download/details.aspx?id=575&quot;&gt;imagex(from AIK)&lt;/a&gt;、&lt;a href=&quot;http://www.7-zip.org/&quot;&gt;7z&lt;/a&gt;、四張Windows 7的iso&lt;br /&gt;如果要把最後做出來的ISO放進手指裏，還需要有&lt;a href=&quot;http://www.microsoftstore.com/store/msstore/html/pbPage.Help_Win7_usbdvd_dwnTool&quot;&gt;Windows 7 USB/DVD download tool&lt;/a&gt;。可參考&lt;a href=&quot;http://tokyo-jupiter.blogspot.com/2012/09/acer-notebookwindows-7.html&quot;&gt;這裏&lt;/a&gt;&lt;br /&gt;&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;由於32bit的機器是不能使用64bit的光碟開機&lt;br /&gt;所以母片最好使用32bit Windows 7&lt;br /&gt;為方便起見可以先把ISO安裝到USB手指裏，然後再把其餘的install.wim提取出來&lt;br /&gt;這樣就可以直接整合進手指裏的install.wim，不需要頻繁的修改ISO&lt;br /&gt;imagex工具是在微軟提供的AIK裏，需要先下載一個很大的ISO。&lt;br /&gt;解開或掛載ISO，執行入面的setup安裝AIK&lt;br /&gt;安裝好以後還不能直接在cmd裏執行imagex，估計是因為imagex是被設計成在win pe環境下使用&lt;br /&gt;所以需要在開始功能表裏找出Microsoft Windows AIK-&gt;Deployment Tools Command Prompt&lt;br /&gt;這樣才能使用imagex還有dism等工具&lt;br /&gt;&lt;br /&gt;imagex的用法很簡單&lt;br /&gt;查看wim入面的資料：&lt;br /&gt;&lt;i&gt;imagex /info install.wim&lt;/i&gt;&lt;br /&gt;修改wim入面index的name和description：&lt;br /&gt;&lt;i&gt;imagex /info install.wim 1 new_name new_desc&lt;/i&gt;&lt;br /&gt;把from_install.wim裏index 1的image提取出來再加到to_install.wim裏，name是&quot;Windows 7 ENTERPRISE&quot;&lt;br /&gt;&lt;i&gt;imagex /export from_install.wim 1 to_install.wim &quot;Windows 7 ENTERPRISE&quot;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;可以先查看一下wim裏有幾個index，然後一個個的export&lt;br /&gt;處理好install.wim後工作還未完成&lt;br /&gt;因為安裝光碟裏sources目錄下有個ei.cfg的檔案，可以用來指定安裝程式使用install.wim裏哪個index&lt;br /&gt;簡單地把它刪掉便可以在安裝時選擇需要的版本&lt;br /&gt;其次需要提取其它版本的ISO裏&lt;i&gt;sources&lt;/i&gt;目錄下的&lt;i&gt;install_Windows 7 XXXXXXXXXX.clg&lt;/i&gt;&lt;br /&gt;每個版本都會有一個.clg檔案，把它們都提取出來並整全在一起。&lt;br /&gt;這個檔案的作用暫時未明&lt;br /&gt;估計&lt;i&gt;install_&lt;/i&gt;後面需要和install.wim裏index的name一樣。&lt;br /&gt;因為有32bit和64bit兩個版本，所以丟進去時要改一改名做&lt;i&gt;install_Windows 7 XXXXXXXXXX 32bit.clg&lt;/i&gt; or &lt;i&gt;install_Windows 7 XXXXXXXXXX 64bit.clg&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;使用USB手指的話只要把檔案都放進去就可以，找台電腦開機測試一下就完成了～&lt;br /&gt;其實install.wim能夠用7z開啟並修改，入面只是一個很基本的windows&lt;br /&gt;如果想加入幾個綠色軟件可以直接打開塞進去的：）&lt;br /&gt;&lt;br /&gt;SEO： integrate windows 7 installation DVD USB</description><link>http://tokyo-jupiter.blogspot.com/2012/09/windows-7.html</link><author>noreply@blogger.com (Anonymous)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-10902736.post-739937169562716113</guid><pubDate>Tue, 04 Sep 2012 03:05:00 +0000</pubDate><atom:updated>2012-09-04T12:10:52.135+08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">電腦技巧</category><title>重裝Acer Notebook並激活Windows 7</title><description>最近幫人重裝Windows，一開始錯誤地安裝了Ultimate&lt;br /&gt;而他只有Home Premium的Key&lt;br /&gt;於是要降級才能激活他的正版Windows 7&lt;br /&gt;&lt;br /&gt;降級其實很簡單，首先要搞一搞Windows 7的安裝光碟&lt;br /&gt;我是使用USB Windows 7安裝手指，先要用&lt;a href=&quot;http://www.microsoftstore.com/store/msstore/html/pbPage.Help_Win7_usbdvd_dwnTool&quot;&gt;Windows 7 USB/DVD download tool&lt;/a&gt;制作安裝手指&lt;br /&gt;安裝完按照指示操作即可，需要有Windows 7 installation DVD iso&lt;br /&gt;需要注意，安裝過程會清除手指上所有資料。記得備份&lt;br /&gt;另外要注意的是在32bit環境下制作64bit USB會出現錯誤&lt;br /&gt;需要有32bit的bootsect.exe&lt;br /&gt;&lt;br /&gt;解決方法是入手一個然後把它丟在：&lt;i&gt;C:\Users\username\AppData\Local\Apps\Windows 7 USB DVD Download Tool&lt;/i&gt;&lt;br /&gt;可以上網下載，或者從32bit的Windows 7 ISO裏提取（在boot目錄裏）&lt;br /&gt;&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;完成後要改一改&lt;i&gt;sources\ei.cfg.bak&lt;/i&gt;&lt;br /&gt;這個檔案其實是用來區分不同版本的Windows 7&lt;br /&gt;Home Base、Home Premium、Professional、Ultimate的Windows 7的安裝光碟內容實際上是一樣的，唯一不同的是ei.cfg的內容&lt;br /&gt;可以修改它來安裝其實版本的Windows 7，或者簡單的刪掉它&lt;br /&gt;這樣安裝時就可以選擇安裝哪一個版本的Windows 7&lt;br /&gt;&lt;br /&gt;有了安裝光碟後就可以開始降級動作&lt;br /&gt;先開機進入Windows 7，然後修改注冊表(regedit)&lt;br /&gt;進入&lt;i&gt;HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion&lt;/i&gt;，修改&lt;b&gt;EditionID&lt;/b&gt; &lt;i&gt;HomePremium&lt;/i&gt;和&lt;b&gt;ProductName&lt;/b&gt; &lt;i&gt;Windows 7 HomePremium&lt;/i&gt;&lt;br /&gt;注意Home和Premium中間沒有空格&lt;br /&gt;然後插入Windows 7安裝手指，執行setup.exe&lt;br /&gt;選擇升級-&gt;HomePremium&lt;br /&gt;按提示操作，中間會重新關機數次。如果插着USB的話可能會使用USB開機&lt;br /&gt;記得第一次重新開機時拔除USB&lt;br /&gt;安裝程式懂得自己透過無線網下載更新&lt;br /&gt;原來的Windows裏安裝了的程式和設定都會保留的&lt;br /&gt;&lt;br /&gt;複制完檔案便開始安裝和設定Windows，經過漫長的等待後就會完成降級&lt;br /&gt;因為原來的Ultimate還沒激活，開始使用Windows 7之前會要求輸入key&lt;br /&gt;找找貼在Notebook底的貼紙，輸入上面寫的key&lt;br /&gt;最後激活完成：）</description><link>http://tokyo-jupiter.blogspot.com/2012/09/acer-notebookwindows-7.html</link><author>noreply@blogger.com (Anonymous)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-10902736.post-5315546433918907630</guid><pubDate>Fri, 17 Aug 2012 15:11:00 +0000</pubDate><atom:updated>2012-08-17T23:12:33.487+08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Linux</category><title>Clean Gentoo green world</title><description>Gentoo的portage被設計得很先進，會分開使用者直接安裝或因為依懶而安裝的套件&lt;br /&gt;在emerge時會有深綠和淺綠之分&lt;br /&gt;如果某個套件是因為編譯某東西而暫時需要安裝，可以用&lt;i&gt;emerge -1 &amp;lt;atom&amp;gt;&lt;/i&gt;&lt;br /&gt;這樣是不會把套件加進去&lt;i&gt;world&lt;/i&gt;裏，再沒有用處的時候就會被清理掉&lt;br /&gt;如果是錯誤地安裝了某套件，單單想把它從&lt;i&gt;world&lt;/i&gt;裏清走又不想完全刪掉&lt;br /&gt;可以修改&lt;i&gt;/var/lib/portage/world&lt;/i&gt;文件&lt;br /&gt;刪裏裏面套件的名字就可以～</description><link>http://tokyo-jupiter.blogspot.com/2012/08/clean-gentoo-green-world.html</link><author>noreply@blogger.com (Anonymous)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-10902736.post-5967183168718645862</guid><pubDate>Tue, 14 Aug 2012 16:24:00 +0000</pubDate><atom:updated>2012-08-16T09:35:04.676+08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Linux</category><title>掛載硬盤/光碟影像檔</title><description>再在Linux要掛載iso檔非常簡單，直接&lt;i&gt;$ sudo mount /path/to/disk.iso /media/cdrom&lt;/i&gt;&lt;br /&gt;以前要加&lt;i&gt;-o loop&lt;/i&gt;的現在不用了&lt;br /&gt;掛載硬盤影像檔也很容易，如果是單個分區的話也是直接mount&lt;br /&gt;&lt;i&gt;$ sudo mount /path/to/sda1.img /media/sda1&lt;/i&gt;&lt;br /&gt;如果是整個硬盤的影像檔入面有分區的話就麻煩一點&lt;br /&gt;首先要找出目標分區的偏移量(offset)&lt;br /&gt;這裏需要用到&lt;i&gt;parted&lt;/i&gt;這隻程式，&lt;strike&gt;安裝gparted的話就會有&lt;/strike&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;pre&gt;&lt;i&gt;$ sudo parted /path/to/sda.img&lt;br /&gt;(parted) unit B                                                           &lt;br /&gt;(parted) print                                                            &lt;br /&gt;型號： (file)&lt;br /&gt;磁碟 /path/to/sda.img：750156374016B&lt;br /&gt;磁區大小 (邏輯/物理)：512B/512B&lt;br /&gt;分割區：msdos&lt;br /&gt;Disk Flags: &lt;br /&gt;&lt;br /&gt;編號  起始點         結束點         大小           類型     檔案系統  旗標&lt;br /&gt;1    1048576B       16107175935B   16106127360B   primary  ntfs      diag&lt;br /&gt;2    16107175936B   16212033535B   104857600B     primary  ntfs      啟動&lt;br /&gt;3    16212033536B   125468409855B  109256376320B  primary  ntfs&lt;br /&gt;4    125468409856B  750155464703B  624687054848B  primary  ntfs&lt;br /&gt;&lt;/i&gt;&lt;/pre&gt;&lt;/blockquote&gt;要使用的單位是Byte，這裏使用編號4這個分區。&lt;br /&gt;它的起始點是&lt;i&gt;125468409856B&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;i&gt;$ sudo mount -o loop,ro,offset=125468409856 /path/to/sda.img /media/sda3/&lt;/i&gt;&lt;br /&gt;掛載成功！（這裏ro是read only）&lt;br /&gt;&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;也可以用dd把目標分區提取出來成為影像檔&lt;br /&gt;skip=125468409856/512=245055488 count=624687054848/4=156171763712&lt;br /&gt;（為甚麼除4暫時不清濋，應該是512才對。未試驗囧）&lt;br /&gt;&lt;i&gt;$ sudo dd if=/path/to/sda.img of=/path/to/sda3.img bs=512 skip=245055488 count=156171763712&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;如果用VirtualBox也許可以的～&lt;br /&gt;首先把硬盤影像檔和一個loop device連接&lt;br /&gt;&lt;i&gt;$ sudo losetup /dev/loop7 /path/to/sda.img&lt;/i&gt;&lt;br /&gt;然後建立一個vmdk檔案指向這個loop device&lt;br /&gt;&lt;i&gt;$ VBoxManage internalcommands createrawvmdk -filename /path/to/sda.vmdk -rawdisk /dev/loop7 &lt;/i&gt;&lt;br /&gt;最後在VBox裏加入這個vmdk到虛擬機裏然後開機便可：）&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;SEO1： mount hard disk image included partitions &lt;br /&gt;SEO2： use disk image via loop device in Virtualbox&lt;br /&gt;SEO3： use physical device in Virtualbox vmdk&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://blog.mybox.ro/2010/11/03/how-to-use-a-raw-disk-image-file-in-virtualbox/&quot;&gt;Via 1&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;http://www.andremiller.net/content/mounting-hard-disk-image-including-partitions-using-linux&quot;&gt;Via 2&lt;/a&gt;</description><link>http://tokyo-jupiter.blogspot.com/2012/08/blog-post_15.html</link><author>noreply@blogger.com (Anonymous)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-10902736.post-7133779679269743441</guid><pubDate>Fri, 27 Jul 2012 07:48:00 +0000</pubDate><atom:updated>2012-07-27T15:48:27.089+08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Software</category><category domain="http://www.blogger.com/atom/ns#">電腦技巧</category><title>Android 一鍵建立wifi連線</title><description>最近有位同事覺得Android的wifi設定界面好難用，確實也是有點難用&lt;br /&gt;於是想寫一個小程式能夠一鍵建立連線&lt;br /&gt;這裏有&lt;a href=&quot;http://stackoverflow.com/questions/4374862/how-to-programatically-create-and-read-wep-eap-wifi-configurations-in-android/4375874&quot;&gt;教學 (How to programatically create and read WEP/EAP WiFi configurations in Android?)&lt;/a&gt;&lt;br /&gt;最大的難點是Android的EAP使用的是non-public API，只能靠逆向工程的手法&lt;br /&gt;幸好有教學有代碼：）&lt;br /&gt;&lt;br /&gt;要看的主要是第四點：&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;有一些常量在這裏：&lt;br /&gt;&lt;blockquote&gt;&lt;i&gt;    private static final String INT_PRIVATE_KEY = &quot;private_key&quot;;&lt;br /&gt;private static final String INT_PHASE2 = &quot;phase2&quot;;&lt;br /&gt;private static final String INT_PASSWORD = &quot;password&quot;;&lt;br /&gt;private static final String INT_IDENTITY = &quot;identity&quot;;&lt;br /&gt;private static final String INT_EAP = &quot;eap&quot;;&lt;br /&gt;private static final String INT_CLIENT_CERT = &quot;client_cert&quot;;&lt;br /&gt;private static final String INT_CA_CERT = &quot;ca_cert&quot;;&lt;br /&gt;private static final String INT_ANONYMOUS_IDENTITY = &quot;anonymous_identity&quot;;&lt;br /&gt;final String INT_ENTERPRISEFIELD_NAME = &quot;android.net.wifi.WifiConfiguration$EnterpriseField&quot;;&lt;/i&gt;&lt;/blockquote&gt;然後是主要的saveEapConfig方法：&lt;br /&gt;&lt;blockquote&gt;&lt;i&gt;void saveEapConfig(String passString, String userName)&lt;br /&gt;{&lt;br /&gt;&lt;br /&gt;/********************************Configuration Strings****************************************************/&lt;br /&gt;final String ENTERPRISE_EAP = &quot;TLS&quot;;&lt;br /&gt;final String ENTERPRISE_CLIENT_CERT = &quot;keystore://USRCERT_CertificateName&quot;;&lt;br /&gt;final String ENTERPRISE_PRIV_KEY = &quot;keystore://USRPKEY_CertificateName&quot;;&lt;br /&gt;//CertificateName = Name given to the certificate while installing it&lt;br /&gt;&lt;br /&gt;/*Optional Params- My wireless Doesn&#39;t use these*/&lt;br /&gt;final String ENTERPRISE_PHASE2 = &quot;&quot;;&lt;br /&gt;final String ENTERPRISE_ANON_IDENT = &quot;ABC&quot;;&lt;br /&gt;final String ENTERPRISE_CA_CERT = &quot;&quot;;&lt;br /&gt;/********************************Configuration Strings****************************************************/&lt;br /&gt;&lt;br /&gt;/*Create a WifiConfig*/&lt;br /&gt;WifiConfiguration selectedConfig = new WifiConfiguration();&lt;br /&gt;&lt;br /&gt;/*AP Name*/&lt;br /&gt;selectedConfig.SSID = &quot;\&quot;SSID_Name\&quot;&quot;;&lt;br /&gt;&lt;br /&gt;/*Priority*/&lt;br /&gt;selectedConfig.priority = 40;&lt;br /&gt;&lt;br /&gt;/*Enable Hidden SSID*/&lt;br /&gt;selectedConfig.hiddenSSID = true;&lt;br /&gt;&lt;br /&gt;/*Key Mgmnt*/&lt;br /&gt;selectedConfig.allowedKeyManagement.clear();&lt;br /&gt;selectedConfig.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.IEEE8021X);&lt;br /&gt;selectedConfig.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_EAP);&lt;br /&gt;&lt;br /&gt;/*Group Ciphers*/&lt;br /&gt;selectedConfig.allowedGroupCiphers.clear();&lt;br /&gt;selectedConfig.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.CCMP);&lt;br /&gt;selectedConfig.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.TKIP);&lt;br /&gt;selectedConfig.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.WEP104);&lt;br /&gt;selectedConfig.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.WEP40);&lt;br /&gt;&lt;br /&gt;/*Pairwise ciphers*/&lt;br /&gt;selectedConfig.allowedPairwiseCiphers.clear();&lt;br /&gt;selectedConfig.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.CCMP);&lt;br /&gt;selectedConfig.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.TKIP);&lt;br /&gt;&lt;br /&gt;/*Protocols*/&lt;br /&gt;selectedConfig.allowedProtocols.clear();&lt;br /&gt;selectedConfig.allowedProtocols.set(WifiConfiguration.Protocol.RSN);&lt;br /&gt;selectedConfig.allowedProtocols.set(WifiConfiguration.Protocol.WPA);&lt;br /&gt;&lt;br /&gt;// Enterprise Settings&lt;br /&gt;// Reflection magic here too, need access to non-public APIs&lt;br /&gt;try {&lt;br /&gt;// Let the magic start&lt;br /&gt;Class[] wcClasses = WifiConfiguration.class.getClasses();&lt;br /&gt;// null for overzealous java compiler&lt;br /&gt;Class wcEnterpriseField = null;&lt;br /&gt;&lt;br /&gt;for (Class wcClass : wcClasses)&lt;br /&gt;if (wcClass.getName().equals(INT_ENTERPRISEFIELD_NAME)) &lt;br /&gt;{&lt;br /&gt;wcEnterpriseField = wcClass;&lt;br /&gt;break;&lt;br /&gt;}&lt;br /&gt;boolean noEnterpriseFieldType = false; &lt;br /&gt;if(wcEnterpriseField == null)&lt;br /&gt;noEnterpriseFieldType = true; // Cupcake/Donut access enterprise settings directly&lt;br /&gt;&lt;br /&gt;Field wcefAnonymousId = null, wcefCaCert = null, wcefClientCert = null, wcefEap = null, wcefIdentity = null, wcefPassword = null, wcefPhase2 = null, wcefPrivateKey = null;&lt;br /&gt;Field[] wcefFields = WifiConfiguration.class.getFields();&lt;br /&gt;// Dispatching Field vars&lt;br /&gt;for (Field wcefField : wcefFields) &lt;br /&gt;{&lt;br /&gt;if (wcefField.getName().equals(INT_ANONYMOUS_IDENTITY))&lt;br /&gt;wcefAnonymousId = wcefField;&lt;br /&gt;else if (wcefField.getName().equals(INT_CA_CERT))&lt;br /&gt;wcefCaCert = wcefField;&lt;br /&gt;else if (wcefField.getName().equals(INT_CLIENT_CERT))&lt;br /&gt;wcefClientCert = wcefField;&lt;br /&gt;else if (wcefField.getName().equals(INT_EAP))&lt;br /&gt;wcefEap = wcefField;&lt;br /&gt;else if (wcefField.getName().equals(INT_IDENTITY))&lt;br /&gt;wcefIdentity = wcefField;&lt;br /&gt;else if (wcefField.getName().equals(INT_PASSWORD))&lt;br /&gt;wcefPassword = wcefField;&lt;br /&gt;else if (wcefField.getName().equals(INT_PHASE2))&lt;br /&gt;wcefPhase2 = wcefField;&lt;br /&gt;else if (wcefField.getName().equals(INT_PRIVATE_KEY))&lt;br /&gt;wcefPrivateKey = wcefField;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Method wcefSetValue = null;&lt;br /&gt;if(!noEnterpriseFieldType){&lt;br /&gt;for(Method m: wcEnterpriseField.getMethods())&lt;br /&gt;//System.out.println(m.getName());&lt;br /&gt;if(m.getName().trim().equals(&quot;setValue&quot;))&lt;br /&gt;wcefSetValue = m;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;/*EAP Method*/&lt;br /&gt;if(!noEnterpriseFieldType)&lt;br /&gt;wcefSetValue.invoke(wcefEap.get(selectedConfig), ENTERPRISE_EAP);&lt;br /&gt;&lt;br /&gt;/*EAP Phase 2 Authentication*/&lt;br /&gt;if(!noEnterpriseFieldType)&lt;br /&gt;wcefSetValue.invoke(wcefPhase2.get(selectedConfig), ENTERPRISE_PHASE2);&lt;br /&gt;&lt;br /&gt;/*EAP Anonymous Identity*/&lt;br /&gt;if(!noEnterpriseFieldType)&lt;br /&gt;wcefSetValue.invoke(wcefAnonymousId.get(selectedConfig), ENTERPRISE_ANON_IDENT);&lt;br /&gt;&lt;br /&gt;/*EAP CA Certificate*/&lt;br /&gt;if(!noEnterpriseFieldType)&lt;br /&gt;wcefSetValue.invoke(wcefCaCert.get(selectedConfig), ENTERPRISE_CA_CERT);&lt;br /&gt;&lt;br /&gt;/*EAP Private key*/&lt;br /&gt;if(!noEnterpriseFieldType)&lt;br /&gt;wcefSetValue.invoke(wcefPrivateKey.get(selectedConfig), ENTERPRISE_PRIV_KEY);&lt;br /&gt;&lt;br /&gt;/*EAP Identity*/&lt;br /&gt;if(!noEnterpriseFieldType)&lt;br /&gt;wcefSetValue.invoke(wcefIdentity.get(selectedConfig), userName);&lt;br /&gt;&lt;br /&gt;/*EAP Password*/&lt;br /&gt;if(!noEnterpriseFieldType)&lt;br /&gt;wcefSetValue.invoke(wcefPassword.get(selectedConfig), passString);&lt;br /&gt;&lt;br /&gt;/*EAp Client certificate*/&lt;br /&gt;if(!noEnterpriseFieldType)&lt;br /&gt;wcefSetValue.invoke(wcefClientCert.get(selectedConfig), ENTERPRISE_CLIENT_CERT);&lt;br /&gt;&lt;br /&gt;// Adhoc for CM6&lt;br /&gt;// if non-CM6 fails gracefully thanks to nested try-catch&lt;br /&gt;&lt;br /&gt;try{&lt;br /&gt;Field wcAdhoc = WifiConfiguration.class.getField(&quot;adhocSSID&quot;);&lt;br /&gt;Field wcAdhocFreq = WifiConfiguration.class.getField(&quot;frequency&quot;);&lt;br /&gt;//wcAdhoc.setBoolean(selectedConfig, prefs.getBoolean(PREF_ADHOC,&lt;br /&gt;//      false));&lt;br /&gt;wcAdhoc.setBoolean(selectedConfig, false);&lt;br /&gt;int freq = 2462;    // default to channel 11&lt;br /&gt;//int freq = Integer.parseInt(prefs.getString(PREF_ADHOC_FREQUENCY,&lt;br /&gt;//&quot;2462&quot;));     // default to channel 11&lt;br /&gt;//System.err.println(freq);&lt;br /&gt;wcAdhocFreq.setInt(selectedConfig, freq); &lt;br /&gt;} catch (Exception e)&lt;br /&gt;{&lt;br /&gt;e.printStackTrace();&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;} catch (Exception e)&lt;br /&gt;{&lt;br /&gt;// TODO Auto-generated catch block&lt;br /&gt;// FIXME As above, what should I do here?&lt;br /&gt;e.printStackTrace();&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;WifiManager wifiManag = (WifiManager) getSystemService(Context.WIFI_SERVICE);&lt;br /&gt;boolean res1 = wifiManag.setWifiEnabled(true);&lt;br /&gt;int res = wifiManag.addNetwork(selectedConfig);&lt;br /&gt;Log.d(&quot;WifiPreference&quot;, &quot;add Network returned &quot; + res );&lt;br /&gt;boolean b = wifiManag.enableNetwork(selectedConfig.networkId, false);&lt;br /&gt;Log.d(&quot;WifiPreference&quot;, &quot;enableNetwork returned &quot; + b );&lt;br /&gt;boolean c = wifiManag.saveConfiguration();&lt;br /&gt;Log.d(&quot;WifiPreference&quot;, &quot;Save configuration returned &quot; + c );&lt;br /&gt;boolean d = wifiManag.enableNetwork(res, true);   &lt;br /&gt;Log.d(&quot;WifiPreference&quot;, &quot;enableNetwork returned &quot; + d );  &lt;br /&gt;}&lt;/i&gt;&lt;/blockquote&gt;&lt;br /&gt;用了Java Reflection API，Android常常有non-public API所以reflection很有用的。因為在compile time時找不到一些non-public的symbol，用reflection就可以使用它們了。原理大概是先建立一些類型為Field的Object，然後比較classname找出目標object。最後找出所有預先知道了名字的Method，call Method的做法和平時的不一樣。看不明的話可以參考&lt;a href=&quot;http://download.oracle.com/javase/tutorial/reflect/index.html&quot;&gt;這裏&lt;/a&gt;</description><link>http://tokyo-jupiter.blogspot.com/2012/07/android-wifi.html</link><author>noreply@blogger.com (Anonymous)</author><thr:total>0</thr:total></item></channel></rss>