Thursday, November 14, 2013

Non blocking connect

同事問我為何用 select () 去等 non blocking connect () 卻會馬上 return 但卻顯示 EINPROGRESS。

找了一陣子文章,似乎都指向一個答案,必須要使用 epoll 。

下面是相關的程式碼範例

另外相關的文章也有討論到這個問題。
link1
link2
link3
link4
link5



Tuesday, November 12, 2013

Ubuntu 從 Windows 出發的安裝過程

終端機

    MenuBar->檔案->設定組合偏好設定
    取消 使用系統固定字型
    Liberation 10 字型
    我比較習慣這樣的字型

    可以在視窗中直接 Ctrl + Alt + T 叫出來,這比較適合在 X Window 嚴重損毀時,Unity Launcher 通通無法執行時。

    複製 : Ctrl + Ins
    貼上 : Shift + Ins

GCIN 中文輸入法控制台

    原本的 iBus 輸入法只有 拼音 跟 Bopomo 感覺很難使用
    所以我手動安裝 gcin
        sudo apt-get install gcin
    然後從 Launcher (左側列) → 系統設定值 → 語言支援
        鍵盤輸入法系統 gcin
    然後可能需要重開機才會生效

Dropbox

    ClassicMenuIndicator 可以從 Ubuntu 軟體中心 (在 Launcher上) 去安裝

ClassicMenu Indicator

    這是類似以往 Gnome 的開始程式集選單, 似乎較新的 Ubuntu 12, 13 都拿掉了這個功能, 改而使用 Unity Launcher (左側工具列) 最上面那個 [搜尋您的電腦和網上資源] 來尋找你要的程式, 這樣的缺點是你根本不知道系統上有什麼程式可以用.
ClassicMenuIndicator 可以從 Ubuntu 軟體中心 (在 Launcher上) 去安裝



檔案

    改成慣用的清單檢視顯示方式
    檔案->MenuBar->偏好設定->清單檢視,以修改日期

Skype

    從英文官網下載 skype-ubuntu-precise_4.2.0.11-1_i386.deb
    下載後在瀏覽器選擇以 Ubuntu軟體中心 來安裝. 裝完就可以使用了.

Line

    因為沒有Linux版本的wine,所以要安裝 Windows 版本的才可以,以 wine (Wine Windows Program Loader) 去執行 LineInst.exe。
    如果是從 Ubuntu 軟體中心(Unity Launcher) 去安裝 Wine 1.4, 會需要再安裝後手動升級 1.5/1.6. 否則安裝LineInst.exe 會出現錯誤訊息.
        sudo add-apt-repository ppa:ubuntu-wine/ppa
        sudo apt-get update
        sudo apt-get install wine1.5
    Line 的中文輸入一定要搭配 gcin , Ubuntu 預設的 iBus 無法輸入, 你會無法選字.

Google Chrome

    不用浪費時間去 Google 網站下載安裝 Google Chrome, 我的經驗都是失敗 …
    按照網路上的說法, Google Chrome 其實是來自 Ubuntu 的 Chromium 瀏覽器, 而這可以從 Ubuntu 軟體中心去安裝

wintricks

    如果沒有出現在 ClassicMenu Indicator 裏面的 Wine 程式集的話, 就從 console 執行
    winetricks --gui   
    選擇 Select the default wineprefix (好像會需要首次一些對話框, 應該確定就可以)
    ->Install a Windows DLL or component
    riched20 (因為 Office 會用到), vcrunxxx 全選
    他會去下載安裝一些以後我們會用到的東西

小畫家

    Ubuntu 上類似小畫家的軟體是 Pinta, 可以從軟體中心去安裝

Vmware Player

    如果你的工作需要用到 Windows , 那就會需要 Vmware Player
    從這邊下載 Linux 32Bit
        chmod 755 VMware-Player-6.0.1-1379776.i386.bundle
        sudo ./Vmware-Player-6.0.1-1379776.i386.bundle

Microsoft Office

    以 Wine 來安裝, 要注意一定要在 winetricks 裏面安裝 riched20 , 否則 PowerPoint 會無法執行起來.
        mkdir xx
        sudo mount -o look Office_Enterprise_2007_32bit_ChnTrad.ISO xx
        cd xx; wine setup.exe
    安裝完後, 就可以從桌面 或是 ClssicMenu Indicator 去選擇執行了.


OutLook 2007

    之前有使用過 Evolution ,但是感覺不是很好用,所以還是希望回到原來的 Outlook2007.






Inkscape

          向量圖形編輯器, 以前安裝 Windows 版本,現在可以安裝 Linux 版本了了,從 Ubuntu 軟體中心安裝.

OpenSCAD

          玩 3D 列印的人會用到的模型設計軟體。Ubuntu 軟體中心.

Putty

         Ubuntu 軟體中心,安裝好後,ttyS0 必須要用 root
                  sudo putty
         右鍵選單 -> Ctrl + 滑鼠右鍵 才會出現.

Wireshark

         Ubuntu 軟體中心,安裝好後,必須要用 root
                  sudo wireshark

TeamViewer

         http://www.teamviewer.com/zhtw/download/linux.aspx
    中文的部份似乎有問題,另外安裝完後似乎無法登入,可能要重開機。

Synergy

        目前測得與 VMware 會互相衝突,懶得去找問題再那。

SketchUp

        PlayOnLinux 與 Wine 都無法正常的安裝好 SketchUp, 前者是執行時無法選擇 Template ,後者是執行時抱怨缺少 OPENGL 。所以幕前只能在 VMware Player 裏面執行。

Netfabb

MeshLab

EAGLE

Any Video Converter

Play on Linux

參考這篇文章,這是一套讓 Windows 程式可以在 Wine 上跑的腳本整合軟體
   Ubuntu 軟體中心
         可以安裝 Internet Explorer 8, 甚至跑 ActiveX


RPM 與 Ubuntu apt-get/dpkg 指令對照表

Minicom

       sudo minicom  /dev/ttyS0 -c on -m
       原本打算使用 Putty , 卻因為 Copy Paste 搞不定 ,各種左鍵拉選,中鍵貼上,Shift+Ins 貼上其他程式的複製,卻無法複製出去,感覺困難重重。索性把 Minicom  灌起來用。
       Minicom 所使用的特殊按鍵 Ctrl + A 因為 Screen 會用到,所以我用 -m 的方式替換掉 Ctrl + A 特殊鍵為 Esc + Z ,另外如果要送出 Serial Break 的話,Putty 是用 Ctrl + PrintScreen,Minicom 則是 ESC , Z , F 就可以送出。
       -c on 是打開 ANSI 彩色功能。

SSH-server

       sudo apt-get install openssh-server

關閉螢幕自動鎖定

       我不確定是 NVIDIA 顯示卡驅動程式問題還是何者,似乎螢幕因為自動省電關閉後,要喚醒時有機會讓系統整個 HANG 住 (鍵盤都不會有反應) ,所以建議把
        系統設定值 ->亮度與鎖定 當不活動多就後把螢幕關閉 改成 [ 永不 ].

顯示卡驅動程式

又再發生一次螢幕 hang 住的事件,這次我更換顯示卡驅動程式
系統設定值 -> 軟體和更新 -> 額外驅動程式
從 [使用 X.Org X server ...] 更換到 [使用 NVIDIA binary Xorg driver .... 319-updates (專有)]
希望可以解決問題。