2013年12月30日 星期一

x11

xev | grep -A2 --line-buffered '^KeyRelease' | sed -n '/keycode /s/^.*keycode \([0-9]*\).* (.*, \(.*\)).*$/\1 \2/p'

2013年12月26日 星期四

Visual Studio C++ 2003 在 Win7 上搜尋就當機的問題

Visual Studio .NET 2003 on Windows 7 hangs on search

個人推薦最簡單的方法
在下面的討論
You can do this by right clicking the shortcut to launch VS.NET 2003 and selecting properties, choosing the “Compatibility” sub-tab and then checking “Disable Desktop Compositing” as well as “Disable Visual Themes”

簡單講就是先單獨關閉 VC2003 的圖形主題,若真的不行再關閉 Aero 主題一定有效。

[Ubuntu] source: not found 的問題

我在 .sh 中寫:
source /home/myEnv

結果:
sh: 1: source: not found

解法:
在 .sh 中面加上指定使用的 Shell
#!/bin/bash

StackOverflow 上的討論是說:
The source command is built into some shells. If you have a script, it should specify what shell to use on the first line, such as:#!/bin/bash

[1] source command not found in sh shell

2013年12月25日 星期三

待整理 fork pipe dup2 execlp

fork()、pipe()、dup2() 和 execlp() 的組合技法
fred-zone.blogspot.tw/2010/05/forkpipedup2-execlp.html

GDB: breakpoint 出現 No Such File 的問題


有時使用遠端 Remote Debug 時,在下斷點時 GDB 會莫名出現 "No Such File" 的訊息,使得斷點一下在該檔案 GDB 就會提示一次,並且執行不到該檔案的路徑。

解決方法:
Debug Configurations → Source Tab → Add → Compilation Directory

指定到該找不到的檔案的目錄(或是 Project 目錄也行)


同場加映:

8 gdb tricks you should know

https://blogs.oracle.com/ksplice/entry/8_gdb_tricks_you_should

2013年12月23日 星期一

使用 boost::lexical_cast

在該篇討論中,最後提到,使用 Boost 的 lexical_cast 會有效率不彰的問題,除非真的必要(或是效率不重要),否則還是少用。


[1] 在文字和數字間轉換:boost::lexical_cast

2013年12月20日 星期五

When Ubuntu Mount Permission denied


[root@freescale component]# mount -o nolock 192.168.1.126:/home/MyShare /mnt/nfs/
mount: 192.168.1.126:/home/MyShare failed, reason given by server: Permission denied

root@susan-ubuntu:~# cd /etc
root@susan-ubuntu:/etc# gedit exports

/home/MyShare *(rw,sync,no_root_squash)
/home/Others *(rw,sync,no_root_squash)



restart nfs server
# sudo /etc/init.d/nfs-kernel-server start

check nfs server mount
# showmount -e localhost


1. Install
$ sudo apt-get install nfs-common
$ sudo apt-get install nfs-kernel-server

2. 設定 /etc/exports (For example: 將/mnt/iso share給all net使用)
$ sudo vi /etc/exports
/mnt/iso *(ro,sync)

3. 啟動 nfs server
$ sudo /etc/init.d/nfs-kernel-server start

FC6
重啟
/etc/init.d/nfs restart
檢查
exportfs
http://linux0101.blog.hexun.com.tw/8225946_d.html

4. 檢查
$ showmount -e localhost
成功的話應該可以看到這樣的訊息:
Export list for localhost:
/mnt/iso *


Ubuntu 架設nfs server

http://go-linux.blogspot.tw/2007/07/ubuntu-nfs-server.html

2013年12月11日 星期三

MTP 是什麼?

MTP 模式是微軟制訂的媒體傳輸協議(Media Transfer Protocol),透過 Windows Media Player 10 以上可以輕鬆管理影音檔案。

Android 4.1 開始使用這種方式來取代 USB 碟模式,基本上也不要擔心,因為兩者使用上幾乎沒有差別,同樣可以透過 USB 線來互傳檔案。

MTP 模式好處就是你可以同時在手機跟 PC 上存取手機上的檔案,記得以前手機接上 PC 後 (變成 USB 碟) 手機就不能執行某些 APP 了 (還能接電話啦!)

尤其是一些 APP 安裝在 SD 卡上的話。而且當手機脫離 PC 之後還要等一會兒,讓手機重新掃過內部儲存空間或室外插 SD 記憶卡之後才能正常運作

參考來源:
[1] 手機更新後出現 " 已啟用 MTP 模式 "

How do I check my Ubuntu version is 32-bit or 64-bit

How do I check my Ubuntu version is 32-bit or 64-bit?
uname -a
Result for 32-bit Ubuntu:
Linux discworld 2.6.38-8-generic #42-Ubuntu SMP Mon Apr 11 03:31:50 UTC 2011 i686 i686 i386 GNU/Linux
whereas the 64-bit Ubuntu will show:
Linux discworld 2.6.38-8-generic #42-Ubuntu SMP Mon Apr 11 03:31:50 UTC 2011 x86_64 x86_64 x86_64 GNU/Linux

[1] How do I check if I have a 32-bit or a 64-bit OS?

Ubuntu 12.04 Install Firefox 20

In this article I will show you how to install the latest (stable) Firefox, Firefox 20, on your Ubuntu 13.04 Raring Ringtail, Ubuntu 12.10 Quantal Quetzal, Ubuntu 12.04 Precise Pangolin, Linux Mint 14 Nadia and Linux Mint 13 Maya.

Installing Firefox 20 on Ubuntu and Mint is quite easy. All you have to do is:
Add the Firefox repo:
$ sudo add-apt-repository ubuntu-mozilla-security/ppa


Update the system:
$ sudo apt-get update


Install Firefox:
 sudo apt-get install firefox


[1] to Install Firefox 20 in Ubuntu 13.04, Ubuntu 12.10, Ubuntu 12.04, Linux Mint 14 and Linux Mint 13 by PPA

2013年12月9日 星期一

如何使用 Ubuntu 下的 Shared Floders?

方法如下:

1. 點選已安裝的虛擬機→右鍵選Setups→Options→Shared Floders→ADD→Browse 選擇要加與實體主機的共享磁碟或路徑

2. 在虛擬機上選擇"連線網路磁碟機"→瀏覽整個網路→選"VMware Shared Folders"下的相對應共享目錄,即可在虛擬機內使用實體主機內的資料檔案


另外在主機上也可開啟虛擬機的硬碟檔案

使用 VMware DiskMount 工具,這是VMware的免費工具

檔案下載 http://www.vmware.com/download/ws/index.html#Utilities




安裝後的使用方式 (已預設安裝路徑"C:\Program Files\VMware\VMware DiskMount Utility"為例,請以你實際安裝路徑為準)

vmware-mount V: "C:\Documents and Settings\Administrator\My Documents\My Virtual Machines\Windows XP Professional.vmdk" (以上路徑以虛擬安裝Windows XP為例)

vmware-mount V: -d (移除虛擬機硬碟路徑)




此方式可在虛擬機未開啟時連結至虛擬機之硬碟,但若要啟動虛擬機時,必須卸載虛擬機硬碟連結路徑!

/mnt/hgfs/share

原文來自 : http://forum.icst.org.tw/phpbb/viewtopic.php?t=8006 Lu 大大的回覆

[1] VMWare 虛擬機如何共享實體主機的資料夾
[2] 【求助】為何Vmware V5.5 無法於主ˋ客系統間拖拉檔案?

2013年12月6日 星期五

在 Blogger 上用 Google Code Prettify 顯示程式碼

經由 在 Blogger 上用 Google Code Prettify 顯示程式碼 的詳細描述後按圖施工,終於也將我的 Blogger 加上顯示程式碼的功能啦!

為了讓自己也記得怎麼做,特地記錄下來。

1. 在範本中的 <head> 插入這段:
<link href="http://google-code-prettify.googlecode.com/svn/trunk/src/prettify.css" rel="stylesheet" type="text/css"></link>
<script language="javascript" src="http://google-code-prettify.googlecode.com/svn/trunk/src/prettify.js" type="text/javascript"></script>
<script language="javascript" src="http://google-code-prettify.googlecode.com/svn/trunk/src/lang-css.js" type="text/javascript"></script>
<script type="text/javascript">
    document.addEventListener('DOMContentLoaded',function() {
        prettyPrint();
    });
</script>

2. 修改 CSS:
pre.code {
  display: block; /* fixes a strange ie margin bug */
  font-family: Consolas, Verdana;
  font-size: 10pt;
  overflow:auto;
  background: #f0f0f0 url(data:image/gif;base64,iVBORw0KGgoAAAANSUhEUgAAAAsAAASwCAYAAAAt7rCDAAAABHNCSVQICAgIfAhkiAAAAQJJREFUeJzt0kEKhDAMBdA4zFmbM+W0upqFOhXrDILwsimFR5pfMrXW5jhZr7PwRlxVX8//jNHrGhExjXzdu9c5IiIz+7iqVmB7Hwp4OMa2nhhwN/PRGEMBh3Zjt6KfpzPztxW9MSAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzB8HS+J9kUTvzEDMwAAAABJRU5ErkJggg==) left top repeat-y;
  border: 3px solid #ccc;
  padding: 10px 10px 10px 21px;
  max-height:400px;
  line-height: 1em;
}

最後在要顯示的程式碼用 <pre class="code prettyprint"> 和 </pre> 夾起來就行了
不過由於HTML的關係,要在純文字(撰寫)模式下貼上,再切到 HTML 模式下修改即可。

其它參考:
[1] 利用「新增小工具」功能,不必修改範本即可改變部落格的 CSS 樣式的方法
[2] 在網頁中嵌入顯示程式碼:Google Code Prettify

2013年12月4日 星期三

讀資料夾下的檔案


void main(int argc, char **argv)
{
    std::string filename,strPNG,strTXT;

    wchar_t InputPath[65535] = L"C:\\MyFolder";
 wchar_t szDir[65535];
 wchar_t dir[65535];
 
 _WIN32_FIND_DATAW FileData;
 HANDLE          hList;
 swprintf(szDir, L"%s\\*", InputPath );
 hList = FindFirstFileW( szDir, &FileData);

 SetCurrentDirectory( InputPath );

 while(1)
 {
  if ( hList == INVALID_HANDLE_VALUE )
  {
   cout << "No files be found.\n\n";
  }
  else
  {
   if (!FindNextFile(hList, &FileData)) 
   {
    if (GetLastError() == ERROR_NO_MORE_FILES)
     break;
   }
   swprintf(dir, L"%s\\%s", InputPath, FileData.cFileName);
   wprintf( L"%s\n", dir);
  }
 }
 FindClose(hList);
}
wsprintf 和 swprintf wsprintf 其實是一個巨集,對應著兩個 Windows API:wsprintfA 和 wsprintfW。最前面的那個w,不是寬字符(wide)的“w”,而是Windows的“w”。 而 swprintf 是 sprintf 的寬字符版,是 C 的標準輸入輸出。而造成這個問題的原因,則在於 Windows 的 wsprintf,並不支援浮點數……