星期六, 7月 21, 2007

Conky是一個能輸出成類似terminal樣式的system monitor software
Official Site

#include

星期三, 7月 18, 2007

Firefox 突破50%.........

唔,今天才知道,原來看這blog的browser分佈,呈現不常規的取向......
最近一個月的統計.
1. Firefox 346 55.01%
2. Internet Explorer 259 41.18%
3. Opera 12 1.91%
4. Mozilla 5 0.79%
5. Safari 3 0.48%
6. Konqueror 3 0.48%
7. Mozilla Compatible Agent 1 0.16%
-----------------------------------------------------------

唔,果然是blog內容決定一切。
都是programer的東西(汗)

grub-install with SATA disk

常常把boot loader搞爛,或是少了哪個分割區。
這時使用linux的Live CD求援。
透過grub-install指定開機區與設定檔,就能把分割區救回來。
範例:我的 /dev/hdb 掛載到 /disk2 下,如何安裝 grub 到 /dev/hdb ?
[root@linux ~]# grub-install --root-directory=/disk2 /dev/hdb

一般來說,這樣子就ok了。
但是,SATA的硬碟會有些許問題。諸如...
does not have any corresponding BIOS drive

的錯誤。
這是因為device map broken所導致的。請服用強制recheck。
# grub-install --recheck /dev/sda
即可搞定~!!

星期四, 6月 28, 2007

神奇的firefox 文字複製/貼上

最近抓檔案時,遇到winrar解壓縮crc錯誤。
本以為是原作者沒弄好、或是winrar特殊版本的問題。
結果發現,是firefox的問題。
當在firefox營幕上的一串字裡面無空白時(即 顯示正常),把它複製/貼上到txt檔中。
會發現莫明的多了幾個空白在裡面。 冏rz

測試平台: firefox 2.0.0.4、WinXP sp2

星期六, 6月 16, 2007

Error: unresolved external symbol _WinMain@16

  1. 如果你是用VS開新專案,然後手動加入source code
  2. 如果以前是用VS2003或是更早的版本,然後轉到VS2005上
  3. 想把一個Win32 Console Application增加 UI,但是背後的Console Window不知如何拿掉
  4. 想把專案的Console Window叫出來。
以上的狀況,常會遇到一個Error:[ unresolved external symbol _WinMain@16 referenced in
function ___tmainCRTStartup ]。其中,粗體字部分也許會不同。
這種問題是因為,Source Code中的main,也就是我們預計的程式enrty point 與VS預期的名字相異,造成VS抓不到entry point,當然就出現了unresolved symbol。
一般來說,是由於SubSystem沒設定好所造成的。 更改Linker->System->SubSystem即可
但如果你的程式中,有新舊兩種WinAPI,比如include 又加入新版的Window Form( 有design view的 ),此時VS可能會搞混,所以上面的方法就失效了。

今天花了4個小時左右,終於把這個問題搞懂.....Orz
重點記錄幾個地方:( 以VS2005為例 ) Project Configuration Property中
  1. General -> CRL support:如果用VS2005的Windows Form,是需要用到CRL( /crl )的,如果想把project compile成lib、dll,似乎要用/crl safe。
  2. C/C++ -> Preprocessor:Definitions 中,有無_CONSOLE、_WINDOWS、WINDOWS等。這個地方其實就等同設定#define _CONSOLE...等。
  3. C/C++ -> Precompiled Headers:一般是設定成stdafx.h。不設定....似乎也沒差。
  4. Linker -> System -> SubSystem:設定成 WINDOWS、CONSOLE兩類最常見。如果沒設定,VS會看你的main function來選擇
    1. CONSOLE:Win32 character-mode application. Console applications are given a console by the operating system. If main or wmain is defined, CONSOLE is the default.
    2. Extensible Firmware Interface:The EFI_* subsystems. See the EFI specification for more information. For example, see the Intel web site. The minimum version and default version is 1.0.
    3. NATIVE:Device drivers for Windows NT. If /DRIVER:WDM is specified, NATIVE is the default.
    4. POSIX:Application that runs with the POSIX subsystem in Windows NT.
    5. WINDOWS:Application does not require a console, probably because it creates its own windows for interaction with the user. If WinMain or wWinMain is defined, WINDOWS is the default.
  5. Linker -> Advanced -> Entry Point:其實就是指定你的main function的起始位置。這是用在當你選了SubSystem成Console或是Windows,VS卻認錯你的entry point。此時,用這邊手動指定即可。

星期五, 6月 08, 2007

Tag Cloud

其實本來Blogger就有Tag排序的功能,只是沒有做成Tag Cloud的樣式。
所以我們只需要把原有的Tag List製做成Tag Cloud即可。
首先,先改CSS的設計部分:
/* Style for Label Cloud */
#labelCloud {
text-align: center;
}
#labelCloud .label-cloud li{
display: inline;
background-image: none !important;
padding: 0 5px;
margin: 0;
vertical-align: baseline !important;
border: 0 !important;
}
#labelCloud ul{
list-style-type: none;
margin: 0 auto;
padding: 0;
}
#labelCloud .label-count {
padding-left: 0.2em;
font-size: 9px;
color: #777;
}

接下來,加入製做Tag Cloud的js code
紅色部分是自訂的地方,諸如blog網址、大小字型、顏色…等。
<!-- User defined inline javascript -->
<script language='javascript' type='text/javascript'>
<!-- Functions used for Label Cloud: adjustLabel(), generateLabels()-->
var labels = new Object;
function adjustLabel(min, max, weight, total) {
  if (min &gt; max)
    var temp=(min-max)/Math.log(total), result=min-Math.floor(Math.log(weight)*temp);
  else
    var temp=(max-min)/Math.log(total), result=Math.floor(Math.log(weight)*temp+min);
  return result;
}  

function generateLabels(){
  var blogURL = 'http://abinlee.blogspot.com';
  var maxFontSize = 18;
  var minFontSize = 11;
  var maxColor = [204,204,204];
  var minColor = [119,119,119];
  var showCount = true;
 
  var labelColor= [];
  var labelSize = 0;
  var labelCount = new Array(); 
 
  for (var i in labels)
    if (!labelCount[labels[i]])
      labelCount[labels[i]] = new Array(labels[i])
 
  total = labelCount.length-1;
  section = document.getElementById('labelCloud');
  ul = document.createElement('ul');
  ul.className = 'label-cloud';
 
  for(var tag in labels) {
    for (var i=0; i &lt; 3; i++)
      labelColor[i]=adjustLabel(minColor[i], maxColor[i], labels[tag], total);
   
    labelSize = adjustLabel(minFontSize, maxFontSize, labels[tag], total);
    li = document.createElement('li');
    li.style.fontSize = labelSize+'px';

    a = document.createElement('a');
    a.title = labels[tag]+' articles with Label: '+tag;
    a.style.color = 'rgb('+labelColor[0]+','+labelColor[1]+','+labelColor[2]+')';
    a.href = blogURL+'/search/label/'+encodeURIComponent(tag);
   
    if (showCount) {
      span = document.createElement('span');
      span.innerHTML = '('+labels[tag]+') ';
      span.className = 'label-count';
      a.appendChild(document.createTextNode(tag));
      li.appendChild(a);
      li.appendChild(span);
    }
    else {
      a.appendChild(document.createTextNode(tag));
      li.appendChild(a);
    }
    ul.appendChild(li);
    ul.appendChild(document.createTextNode(' '));
  }
  section.appendChild(ul);   
}
</script>

最後把widget code展開,找到id='Label1'的widget,將這整個widget以下面的code取代掉。
<b:widget id='Label1' locked='false' title='Labels' type='Label'>
<b:includable id='main'>  <!-- Add Label Cloud -->
  <b:if cond='data:title'>
    <h2><data:title/></h2>
  </b:if>
  <div class='widget-content'> 
  <div id='labelCloud'/>
    <script type='text/javascript'>
      <b:loop values='data:labels' var='label'>
        labels[&quot;<data:label.name/>&quot;] = <data:label.count/>;
      </b:loop>
      generateLabels();
    </script>
    <noscript>
      <ul>
      <b:loop values='data:labels' var='label'>
        <li>
          <b:if cond='data:blog.url == data:label.url'>
            <data:label.name/>
          <b:else/>
            <a expr:href='data:label.url'><data:label.name/></a>
          </b:if>
          (<data:label.count/>)
        </li>
      </b:loop>
      </ul>
    </noscript>
    <b:include name='quickedit'/>
  </div>
</b:includable>
</b:widget>   


ps. 因為這樣子做出的Tag Cloud是以Blogger給定的Tag list製做的,所以排序就是以Blogger的設定為主,以次數或是字母排序。當然,改成了Tag Cloud之後,還使用次數排序,就看不出效果啦~

Toggle/ Untoggle Your Blogger's Sidebar

參考自abintech的Blog hack系列
要做的工作就是:
  1. 把想展開摺疊的區塊找出來,
  2. 做一個按鈕或連結,當按下去的時候,去切換該區塊的狀態(display inline or none)。
打開完整範本原始碼,首先貼入處理這個動作的 Javascript (貼在head標籤內):

<script type='text/javascript'>
<!-- Function used for Sidebar Element Toggling: ElementToggle()-->
function ElementToggle(id) {
var element = document.getElementById(id).getElementsByTagName(&#39;div');
for(i = 0; i < element.length; i++) {
attribute = element[i].getAttribute('id');
if(attribute == 'toggle')
{
if (element[i].style.display == &#39;none')
element[i].style.display = &#39;inline';
else
element[i].style.display = &#39;none';
}
}
}
</script>


接下來,要去修改元件 (Widget) 的程式碼。同樣以個人資料 (Profile) 元件為例,找 <b:widget ...> 開頭 </b:widget> 結尾的區段,應該是類似下面這樣:

<b:widget id='Profile1' locked='false' title='AUTHOR PROFILE' type='Profile'>
<b:includable id='main'>
<b:if cond='data:title != ""'>
<h2><data:title/></h2>
</b:if>
<div class='widget-content'>
............. (程式內文略過不表)
</b:includable>
</b:widget>


這個元件的 ID = Profile1,是範本裡用來識別該元件的方法,接下來要插入動態切換的連結,可以用圖片(此處我用[+/-]代替)


<b:widget id='Profile1' locked='false' title='AUTHOR PROFILE' type='Profile'>
<b:includable id='main'>
<b:if cond='data:title != ""'>
<h2><data:title/><a href='javascript:void(0); style='float:right;margin:-23px 0;' onclick='javascript:ElementToggle("Profile1");'>[+/-]</a></h2>
</b:if> <div class='widget-content' id='toggle' style='display:none;'
>
............. (程式內文略過不表)
</b:includable>
</b:widget>

搞定 !
---------From Moto http://moto.debian.org.tw/viewtopic.php?t=11377-----------
pulseaudio可以輸出到常用的alsa oss 驅動的裝置,esound server,遠端電腦(rtp),或甚至是windows 的waveout驅動.

可以接收來自
1.有支援pulseaudio的程式(xine,bmpx,audacious等等)
2.透過alsa-lib的plugin讓所有支援alsa的程式使用pulseaudio
3.支援esd的程式..pulseaudio可以完全取代esd
4.OSS模擬 (像是aoss一樣,可以給java發出聲音)
其他其他...
大概分享一下我在我電腦上使用pulseaudio的安裝方法
apt-get install pulseaudio pulseaudio-module-x11 paman pavucontrol pulseaudio-esound-compat pulseaudio-utils
module-x11 讓x11發出的警告beep聲音透過pulseaudio發出,像是..命令列已經沒有東西了又按backspace就會逼..vi裡面亂按也會..
paman pulseaudio manager可以讓你看目前server的狀態,所有的input/output
pavucontrol 音量控制,這個一定要裝,可以控制個別程式的音量

修改 /etc/pulse/default.pa
輸出輸入
### Load audio drivers statically
load-module module-alsa-sink device=dmix
load-module module-alsa-source device=plughw:1,0
輸出到alsa的dmix裝置,
從硬體1,0來錄音,你也可以設定成dsnoop

其實,修改到這樣子就可以用了...
不過我還加了esd的功能..
load-module module-esound-protocol-tcp auth-ip-acl=10.11.12.13;192.168.50.0/24;127.0.0.0/8
load-module module-esound-protocol-unix
讓那些ip可以透過tcp把聲音送到本機,或是也可以用unix socket

恩...就先這樣,執行pulseaudio之前.要先建立esd socket,不然,本機也會用tcp連線
mkdir -p /tmp/.esd
chmod 1777 /tmp/.esd
touch /tmp/.esd/socket
chmod 777 /tmp/.esd/socket
執行看看
pulseaudio --verbose
Note: 1. mplayer設定成pulse輸出的話,會crash. 改用esd輸出。
To support audio of Flash:
pulseaudio.revolutionlinux.com



星期一, 6月 04, 2007

In Ubuntu, there are many remote desktop utilities: tightvnc, vncserver, vnc4server(Xvnc), x11vnc, vino( the vnc which Feisty build in ).
The difference between them is to open a new display or connect to the existing one.

The easiest way for building server is choose the System -> Preference -> Remote Desktop and set up your settings.
But it's the solution in Gnome.

I use E17 as my window-manager, and don't know how to set up the vino-preference.
So, I've tried vncserver, vnc4server and finally x11vnc.

x11vnc is a server which let you control desktop environment remotely. It needs to start up X window first and use this display session( usually :0 ).
The most common problem is Xlib find display:0 error as .Xauthority isn't well set up.
When you see the tips and tried
ps -wwaux|grep auth
You'll find the existing session's auth. Here's the file used by Enlightenment 17.
x11vnc -auth /var/:0.Xauth
Also, you need a password for authentication of remote connection.
Just exec vncpasswd to generate ~/.vnc/passwd and use -rfbauth $HOME/passwd.
Or use -usepw. A .x11vncrc will be helpful.

As the client side, you can just use RealVnc's free client to connect the server.

ps. I found some errors as :
Xlib: connection to ":0.0" refused by server
Xlib: No protocol specified
Google it and find the solution:
sudo xhost local:kimk
But I still don't understand why.

星期四, 5月 31, 2007

Upgrade Ubuntu from Edgy to Feisty

Well, I upgrade my ubuntu to Feisty by using "update-manager -c -d".
But an error occurred.
If you use GUI to upgrade it, you might get the following message:
Authentication failed
Authenticating the upgrade failed. There may be a problem with the network or with the server.
or use command line to type "sudo update-manager -c -d", get more specific message:
extracting ‘/tmp/tmpVuEU0n/feisty.tar.gz’
authenticate ‘/tmp/tmpVuEU0n/feisty.tar.gz’ against‘/tmp/tmpVuEU0n/feisty.tar.gz.gpg’
exception from gpg: GnuPG exited non-zero, with code 131072
It's obvious that we don't have a gpg authentication. So, just type gpg ,as a normal user. Once it says Go ahead and type your message …, you can just press Ctrl-C to get back to the command prompt.

星期四, 5月 17, 2007

[HowTo] FreeBSD console framebuffer

First thing we have to do is add VESA and SC_PIXEL_MODE to the kernel and rebuild. You should always cvsup and rebuild your kernel and world to the latest available. However, don't try to 'optimize' the BSD kernel. It is already well optimized. If there is an option, like this, that you need to have, then go for it. We need to open the kernel config file. I would recommend that you cvsup first so that you rebuild the latest world/kernel, but it's optional.
cvsup -h cvsup2.freebsd.org -g -L 2 /usr/share/examples/cvsup/standard-supfile
Obviously, you can use whichever cvsup server you want. You can install fastest_cvsup to fins what server is fastest for your location as well. If this is the first time you are cvsup-ing, it will take some time. When it completes, we will continue.
cp /usr/src/sys/i386/conf/GENERIC /usr/src/sys/i386/conf/GENERICVESA
Name it to whatever you want.
vi /usr/src/sys/i386/conf/GENERICVESA
You will see, a couple of lines down an "ident GENERIC" line. You can change this if you want. It will be the display of the kernel in uname.

Directly after that, you will start to see 'option xxxxx #Description' sections..

This is where we add our options:
options VESA
options SC_PIXEL_MODE

Save your changes and exit.

From here, you generally build the world, and the kernel, install the kernel, reboot to single-user mode, mergemaster, installworld, etc... but I'm going to skip the buildworld because it will eat up a lot of time, and we can do it after the kernel.
cd /usr/src
make buildkernel KERNCONF=GENERICVESA
make installkernel KERNCONF=GENERICVESA
reboot
Now, you won't get the resolution just yet, we're not quite done. Boot back up and do the following:
kldload vesa
vidcontrol -i mode | less
You should see a punch of different modes. Scroll through and find one you'd like. For me, 1024x768x24 is the size I want. The first column shows the mode number, mine being 280.

Choose the one you want and try:
vidcontrol MODE_xxx
Substituting "xxx" for the number of the mode you want. The screen will go bank for a second, then it should come back with the prompt. If it cannot handle the resolution you specified, it should return with an error.

If it works, GREAT! Now we can add this to /etc/rc.conf to load on boot-up. However, we must make sure we load vesa on boot-up as well.
vi /boot/loader.conf
add the line :
vesa_load="NO"
change it to "YES" (maintaining caps)

Save, and exit.
vi /etc/rc.conf
and add to the end:
allscreens_flags="MODE_xxx"

星期三, 5月 16, 2007

網球終於有點Sense了

這學期選的透早網球課,終於有點收獲了.
雖然只是對牆打,但也抓到了一些輕鬆打的感覺。

今天的心得是.... 收拍要快,下一次揮拍擊球時,才能在身體的前方(90度半圓)的球點擊球。
多旋轉身體,會打得又遠又輕鬆。(這可以靠調整後拉拍的深度達到)
還有擊球後,手部的推出送球動作,也要注意。(推球動作能穩定你的球路)

ps. 當你總覺得擊球不順時,滿有可能是收拍太慢,使得下一次的擊球點,在身體的內側。
試著在擊球後,喊「後拉」、「拉」等字眼,提醒自己收拍,調整收拍的節奏。

星期三, 5月 09, 2007

安裝FreeBSD在Asus u5f

唔,最近老闆開金口,要擴充一台notebook。
在鳥鳥的中信局採購單、網卡要能快速的build與更改的考量下,買了U5f...
( 說實在的,我很想買Ferrari 1005耶! 如果我不是負責此產學案的人,就勸敗了啦~!!! )
在打開了純白色的u5f,安裝了Unbuntu 7.04之後....
一時興起,拿起來FreeBSD 6.2想要安裝。
結果.... 冏

星期五, 3月 30, 2007

wikipedia

雖然wiki本是一種大家編輯網站的方式,而裡面的資料可信度或是正確性沒有保證。
Wiki是一種可在網路上開放多人協同創作的超文本系統
一個wiki網站讓人能夠用網頁瀏覽器以及很簡單的標記語言合作撰寫文件。wiki技術的關鍵特質是能輕易用來創造與更新許多網頁。一般來說,改變網頁是不經審核的。大部分的wiki都是公開給一般大眾,不用註冊帳號。有些wiki會替使用者自動簽名,並且要求使用者持有一個「cookie」。私人的wiki之中,大多會要求身分認證。大部分的編輯都是即時的,而且幾乎會立即出現在網路上。這一點常導致系統被濫用。-----引自wikipedia

但是近幾年wikipedia這個網站在世界各地人們的建構下,形成一個龐大的資料庫,裡面有的資料包羅萬象。雖然沒有保證正確性,但至少有個參考說法,不是嗎?
所以除了google之外,使用wikipedia當作學習各類新名詞的人也逐漸上升中,可預見的,wikipedia將在網路中占有一席之地。
但是,這個網站在中國大陸如今卻被封鎖了。詳情請見Wikipedia talk:應對封禁。我想,這對對岸同胞的資訊來源是一大損失吧

星期四, 3月 29, 2007

sftp可能會發生的問題

今天想連到linux工作站的sftp,結果發生悲劇...

因為filezilla連線時,就卡在CONNECT上,完全不知道原因。
用wireshark看trace時,也只發現到有很多encrypted packet。
試著用linux的sftp連上工作站時,出現了戲劇化的轉折-
Received message too long 1500476704

What????

Google發現原來是sftp的FAQ阿(我真是太弱了...)
問題出在大家的 .bashrc/.tcshrc/.cshrc 這幾個檔案裡面。
如果我們在 .tcshrc/.cshrc/.bashrc 裡面 echo 一些東西,
或者是執行像是 date, nfrm, whosebirthday 等會印出東西的
動作,因為 sftp 執行時也會去執行這些檔案中的動作,所以
當這些檔案一輸出東西,sftp 的 server 就產生錯誤,而導致
上面所說的錯誤訊息並且斷線。

那solution呢?
當然是把會印出訊息的地方轉到sftp登入時不會執行的檔案上;
也就是.....bash的bash_profile
或者也可以加上if [$?prompt]來限制sftp去印這些東西~

ps. 如果執行一些命令時發生錯誤,那麼印出的錯誤訊息也會使sftp爛掉喔~

星期日, 3月 25, 2007

Nikon Coolpix 4500隱藏的祕密

本來想找4500的增距鏡有哪幾種。找著找著,看到了神奇的東西..
原來4500除了能存TIFF之外,還能存RAW....這真是大福音阿~!
雖然我現在少了圓頭的usb傳輸線,所以不能測試。但還是先把這麼重要的資訊記下吧~!
偷k也用得到呢

2篇關於打開4500 RAW的教學 1 2
關於RAW於TIFF的差別
个人认为 RAW 的主要优势不是分辨率,而是层次,12-bit 的 RAW 在层次上会明显强过 8-bit 的 JPEG,内置的 TIFF 也是 8-bit 的,所以实际价值不是太大。另外 12-bit 意味着可能具有更大的动态范围(具体的动态范围增加的幅度与机器有关)。
但是显然的,人眼对色彩和层次的分辨率是比较低的,不如对明度的分辨率,因而人眼看起来 100% 大小的 RAW 与 JPG 不会有明显区别,但放大到 400% 时就会有区别。我们似乎更重要的是提高色彩层次,从而具有更多的后期调整的空间。


使用RAW的後續編輯心得 1

星期六, 3月 24, 2007

World of Warcraft on Windows Vista

唔,最近wow台版要開放70級了,所以試著登入遊戲中。
沒想到,使用vista玩wow,是這麼的糟!!
當我用full screen時,螢幕三不五時就閃一下,還會黑掉1秒再復原....
當我試著使用新版的Intel Chipset driver installation安裝之後,一切....還是很糟。

在請教google之後,找到了幾篇相關文章:Wow官方的英文討論帖1 討論帖2
除此之外,還有篇「如何在Vista上玩魔獸世界
而我用的硬體是Intel 945G,在官方討論中寫到

Intel 945 & 950 Graphics

* Users are reporting that it will crash into a black screen. A message saying that the Display driver stopped responding and has recovered will follow. It has been reproduced in-house. Some users reported success using a new set of drivers drivers for the 945/950 series. These are released 2/4/07.



Desktop 945: http://downloadfinder.intel.com/scripts-df-external/Product_Filter.aspx?ProductID=2102&lang=eng


Mobile 945: http://downloadfinder.intel.com/scripts-df-external/Product_Filter.aspx?ProductID=2301



We are currently testing the game on these drivers. Early test indicate that these drivers have fixed the crash on the areas we have noted. If you want, try them and report your findings here.

事實上,在我使用window模式執行wow之後,狀況改善很多.....
而且如果電腦的配備是1GB以上的RAM時,有測試文章寫到Vista比WinXP好一點點。所以,扣除wow裡AddOns的相容性,在Vista跑wow其實沒有大家想像中的慘。

星期二, 3月 13, 2007

Ubuntu字型的設定

賴廣甫本來debian是用fontconfig設定字型的,在Ubuntu中,fontconfig預設沒有安裝,但是有fontconfig-voodoo這個套件。雖然到現在還是不知道這有啥用.....
簡述一下如何安裝ttf字型在edgy中吧!!
  1. 把ttf copy到/usr/share/font/truetype裡

  2. 執行fc-cache -v -f,重抓字型

  3. 使用fc-list |grep 字型名稱,找看看新安裝的字型是否在其中

以上是小總結。
ps.我在找如何在e17安裝字型時,發現一位高手的blog,裡面整理了linux的各種字型管理方法。

Kim Lai
賴廣甫
Kim Lai
Kimk Lai

星期日, 3月 11, 2007

游泳..

話說,最近開始嘗試捷式的左邊換氣。
動機是左右開弓的三次換氣,泳者的姿勢較不容易走樣....XD

以前,沒被教過捷式該怎游。只有在泳池偷看別人的方法,還有找書看。還記得那時候閒著沒事,自已練右換氣時,整個就是一團糟阿。捷式竟然比蛙式慢,令人吐血;而且勉強說是會換氣後,游起捷式比蛙式慢就算了,竟然還累得要死。大約游100m之後,兩隻手就不行了吧XD
這完全與我知道的「捷式是最快最省力的泳姿,因此在自由式賽項常被使用,故又稱自由式」相違背阿~~~!!!
在偷看了許多帥哥美女之後,我漸漸的會輕鬆快速的以捷式前進。那感覺就像是漂在水面上,用划手與打水推進;在換氣時,轉動身体吸氣就搞定了。但,這一切是建立在右換氣上。當試用左換氣時,世界變得不一樣了...
那個捷式游得比蛙式慢的我又回來了!!! 哇哈哈哈哈...I'm back !!!! Orz

看來,還需要偷看很多會左換氣的美女才行...

捷式教學 蛙式教學 仰式教學 蝶式教學
這是我在某blog看到的,上面有清楚的影片教學...四式都有喔
賴廣甫
Kim Lai
賴廣甫
Kim Lai
Kimk Lai

星期五, 3月 02, 2007

Vista的權限管理

[How to delete Windows Vista's System files]
有別於舊的WindowsXP系統,Vista的系統檔是分給一個叫TrustedInstaller的傢伙,而且這傢伙的權限還沒有刪除的能力。這使得我們需要刪除系統檔時,得要花上更多步。

簡單的說,要先把檔案或目錄的Owner改成自己(目前的UserName),然後把權限管理的頁面中,本機電腦/User的權限提升到有刪除能力,確定排在上面的權限中,沒有Deny或是擋掉刪除之類的。因為vista好像是從上而下inherit權限,如果上面沒有刪除能力( 比如說是SYSTEM ),那下面的User改了也沒用。

比較機車的地方在於,當使用vista的GUI界面修改Owner或權限時,預設是不會讓子目錄、檔案inherit新設定的權限。所以不論是改Owner或是權限時,記得要把inherit勾選。
賴廣甫
Kim Lai
賴廣甫
Kim Lai
Kimk Lai