2012年6月30日 星期六

Remote Desktop Apps on my Toys–Which one is the BEST ?

keyword: MacPro, Mac OS X, new ipad, remote desktop, VNC, windows XP/7

我在撰寫Remote Desktop Apps on my Toys–Remoter VNC一文時找了許多資料,畢竟資工宅的要求很多,多到有點脫離多數使用者的需求了,所以我決定重新審視不同族群的需求。跟寫論文一樣,首先我先定義使用者需求,可分為三個方向:「通用性」、「安全性」、與「費用」。

  1. 通用性
    通用性是指一般作業系統或智慧型裝置預設的工具,讓使用者在使用時能以最快的速度上手使用為主要目的。對Mac OS X「Settings」的Sharing而言,打開它就等於打開了 FTP Server、OpenSSH Server及VNC Server;對Windows而言,打開「遠端桌面」就等於打開RDP (Remote Desktop Protocal) 功能。所以,如果能支援這些預設的功能的app代表其通用性越高。
  2. 安全性
    只要透過網路進行資料分享,就會有安全性上的考量,不過一般使用者對於這點的感受度並不強烈,只有在出事的時候才會「特別有感覺」。Windows RDP跟VNC早期其實都沒有加密(Encrypt),現在呢?
    - Windows RDP 預設有加密
    - RealVNC Server預設有加密,選項中可以調整是否要強制加密,是我目前用起來調性最高的軟體。
    - UltraVNC Server預設沒有加密,但他有選項可以結合SecureVNC Plugin來加密,安裝時會一起安裝,只是預設沒有打開而已。
    - Mac OS X Lion 預設沒有加密,我還沒找資料看怎麼打開加密功能,總之不是打個勾就可以解決的事…
    - Splashtop、iTeleport、LogMeIn、TeamViewer等這類的遠端軟體都有加密。
  3. 費用
    所有以上提過的程式,只要是在PC/NB上的都不用錢,要錢的永遠都是該死的app

    以下是我整理iPad App中我試過的特性整理。綠色圈代表預設就有的優勢,黃色圈代表需要付費才有的優勢。
      通用性

    安全性

    費用

    Splashtop/iTeleport/LogMeIn   o  
    TeamViewer   o o
    Remoter VNC o o o
    VNC Viewer o o  

其實還有另一個重要的指標:效能。這點由於我沒有全部都一個個試過所以無法評論,請大家有興趣可直接上網查詢人家的心得。

對於一般使用者而言,我會推薦Splashtop/iTeleport/LogMeIn這一類的app,它們就有點像需要付費的google Chrome一樣,大家只要註冊一個帳號,這些app就可以幫你管理所有的裝置,安全性也沒有顧慮,資訊也都是同步的。缺點除了要付費外,每一個裝置也都要裝他們的程式。

如果想要節省費用,又不在意通用性的話,TeamViewer是最好的選擇,它甚至可以穿越公司的防火牆( 據可靠消息指出 )!不過有聽說畫面不是很順,這就要看個人接受度了。

如果像我一樣,又想要便宜,又想要用OS預設的服務懶得每個機器都裝軟體,又想要兼顧安全性的話,那就只能像我這樣一直掙扎了…Remoter VNC雖然有支援SSH,但一樣需要額外付費 (60NTD,相較便宜),接下來就是等看看哪天誰會願意出一個有支援加密的版本了。

最後要特別提一下Splashtop這個國產app,只要尋搜遠端桌面app一定可以找到很多有關它的評論,它安裝容易,讓使用者可以幾乎忽略通用性;它也有加密;更重要的是它曾經很便宜過,也降價過。我本來也想買它,但就在它最近特價的當天,當我正要按下「購買app」時,我發現原本評論的五顆星變成4.5顆,我趕快看了一下評論,原來有人馬上反應「更新完後只能在同一個網域下連線,要跨網域的話要收月費/年費」。過了一天,新聞稿也出來了。如此一來,只有原本舊版就有購買的用戶能享用免費的Anywhere Access Pack,新用戶就要錢了。Store 評論中也有人反應A/V Streaming 也變慢了,總之我最後並沒有購買它,因此也無法提供確切的訊息供大家參考囉。

2012年6月29日 星期五

Remote Desktop Apps on my Toys–Remoter VNC

keyword: MacPro, Mac OS X, new ipad, remote desktop, VNC, windows XP/7,

身為一個資工宅,自從我入手new ipad後就無時無刻不在思考怎麼 generalize / visualize 我的工作/娛樂環境,目前我會用到的裝置/OS分別為:Lenovo x200/winXP, PC/win7, new ipad/MacOS X, MacPro/MacOS X Lion。以前在Windows的環境下都是習慣用RealVNC這套工具,畢竟VNC是最著名的跨平台遠端桌面工具,選用RealVNC而沒有用TightVNC, UltraVNC也單純只是因為RealVNC已經滿足我個人使用上的需要,因此沒有特別去比較彼此間的優缺。不過,這個世界的和平,從我入手new ipad後開始漸漸崩壞 … ( ? )

ipad上的遠端桌面非常多,從最近很著名的 Splashtop、很貴的 iTeleport、到免費的 LogMeInTeamViewer等,但是,以上所提及的這些app「通通不是VNC相容」的 (註: iTeleport Connect程式有包含VNC Server叫Jaadu,你可以裝自己的VNC Server但還是需要透過Connect程式來管理)。也就是說,從Client到Server全部都要裝他們自家的軟體而且彼此沒有共通。對還沒有收入的我而言除非免費而且廣泛使用的東西有很重大的漏洞,否則我懶得去變更我的使用習慣。

更何況,當你打開MacPro的Sharing –> Remote Management時內建的也是VNC Server!

這時候,打個app store搜尋「vnc」,卻發現多半都要錢,VNC Viewer要%9.99,iTap VNC $11.99,iTeleport: VNC甚至要價$24.99 (750NTD)。幸運的是,最近Remoter VNC在特價 $0.99,就買來試用了一下。安裝好後,連線的操作很直覺,我就省略步驟說明直接貼圖了。
2012-06-29 17.45.00
2012-06-29 17.45.41
2012-06-29 17.45.59
2012-06-29 17.46.13

成功登入後的操作就跟一般遠端桌面一樣了。目前我用這套軟體遠端MacPro遇到了一個我想要但它好像沒有的功能:多工手勢 (Multitask Gesture),也就是沒有虛擬apple Magic觸控板,我不確定其他app有沒有這功能,但如果是apple user應該會很想要這功能。

結論:Remoter VNC適合於想遠端的目標電腦已裝有VNC遠端控制、(趨近於)免費不在意連線時指令加密功能、 不想為了控制個遠端桌面還要到處註冊帳號的使用者。以我自身為例,MacPro上的Mac OS X Lion內建就有VNC Server,Windows 7 / XP 上我都有裝 RealVNC Server (註:記得要改一下 ReaVNC Server的設定,找到 Select Encryption 改成 Prefer off),用這套就很方便。如果你習慣用Windows內建的RDP連進去工作,這套app也有支援這個功能,只是要再加錢 (120台幣)。

2012年6月21日 星期四

How do I get free space of Dropbox for using Camera Upload?

今天從Alison那裡得知Dropbox APP有個重大更新,打開ipad來看果然app store的更新選項中有Dropbox,順手更新完後發現有一些小問題,就來紀錄一下心得,也算是購入new ipad以來第一次為它寫APP心得吧。不過與其說是為new ipad寫心得不如說是為Dropbox寫心得,Dropbox算是當前最有名的雲端服務,我用它來備份一些重要的文件或程式,因此一聽到Dropbox又要送3GB給使用者時當然二話不說趕快來跟一下潮流 (之前是玩Dropquest偵探遊戲送了1.2GB)。步驟如下:

  1. 更新智慧型裝置上的Dropbox APP,更新完後會有指示問你是否要使用Camera Upload的功能,按照指示做即可。
  2. 做完後,打開Dropbox APP的Settings可以看到多出一個Camera Upload選項,而且已經被打開(On),你也可以隨時關掉這個功能。
    image
  3. 由於預設是開啟的,所以此時Dropbox正在偷偷把你裝置裡所有的照片上傳中,左下方切到Uploads時就可以看到。所以如果不想要上傳的話記得先關掉Camera Upload功能。
    image

注意!!

如果你手邊的電腦也有安裝Dropbox的話,請特別注意這段!新的PC/Mac版的Dropbox也有內建Camera Upload功能,很有可能在你接上任何相機/手機/平板電腦後它會自動幫你上傳!請在右下角Dropbox圖示上點右鍵選Preferences。
image

General –> Camera Upload –> Change AutoPlay Settings
image

將所有有關 Dropbox 的通通改掉,我是改成「每次都詢問我」
image

使用心得:這個空間是專為相片/影片設計的,表面上說給3GB的免費空間其實是500MB一次次慢慢給,你用完了才會幫你加。雖然你會在你的Dropbox目錄下看到一個Camera Uplaods,你也可以偷偷把其他檔案擺進去讓它備份,但其實這個檔案吃的是你原本剩下的空間而非他送的3GB空間Dropbox在這裡講得很清楚了,要享用這免費空間只有使用Dropbox程式的Camera Upload功能上傳的檔案才可以。對於喜歡拿著手機到處拍照的人而言算是很棒的備份功具,不用怕哪天手機丟了/壞了照片也跟著不見哦。

2012年6月19日 星期二

[Matlab] function_memo

醉資心最近掛了,害我無法查我以前紀錄下來的 matlab 常用功能,只好也在blog備份一篇。

How can I select multiple points using the Data Cursor and export the coordinates to the MATLAB workspace?

來源: mathworks , datacursormode

steps -

  1. plot the figure
  2. click the Data Cursor button on the toolbar
  3. click any point of your choice on the figure. if you wanna set multiple points, press Alt key.
  4. right-click anywhere on the figure –> “export cursor data to workspace” –> enter variable name –>  enter

他會將cursor data存成structure,每個element有三個欄位。

  • Target : 這筆cursor來自哪個figure (handle)
  • Position: 座標
  • DataIndex: 這筆cursor位於每個陣列的哪個位置

程式自動化的作法:

fig = figure;
z = peaks;
plot(z(:,30:35))
dcm_obj = datacursormode(fig);
set(dcm_obj,'DisplayStyle','datatip',...
'SnapToDataVertex','off','Enable','on')

% Now, click on the line to place datatip before executing the next line of code.

c_info = getCursorInfo(dcm_obj)

How to plot an image onto another one transparently ?

在Audio Signal Processing的實驗中,我們會很常需要把實驗結果貼在spectrogram上來看,用imagesc function來畫spectrogram會比用spectrogram function快很多,因為前者是2D後者是3D。在我用imagesc畫完後想要新增一張新的image貼在上面時試了很多方法,例如:

h1 = image(plot_t, plot_f, ones(size(MskMaxtrix)), 'AlphaData', 0.2*(1-MskMaxtrix), 'CData', colormap(flipud(copper(2))));

h1 = image(plot_t, plot_f, ones(size(MskMaxtrix)),'CData',colormap(flipud(copper(2))));
或者乾脆先畫出值再調整colormap
h1 = image(plot_t, plot_f, 0.1*ones(size(MskMaxtrix)));
colormap(flipud(copper(2)));
通通沒用!最後解決的方法如下:

green = cat(3, zeros(len_f, len_t), ones(len_f, len_t), zeros(len_f, len_t));

hold on;
h1 = imagesc(plot_t, plot_f, green);
set(h1,'alphadata',0.2*(1-MskMaxtrix));
hold off;

先畫完後,再用set去調整 alphadata 屬性。這裡的MskMaxtrix是一個非0即1的矩陣,1代表通過,0代表沒通過,因此上面的例子是為了畫沒通過(過濾掉)的頻譜,0.2代表透明程度。

2012年6月15日 星期五

[Mac OS X Lion] FTP/SFTP server

最近要開始將部份工作檔案移植到Mac環境上,原本是利用WinSCP程式透過ssh的scp指令在傳,後來覺得這樣傳很不方便又不能續傳,就把腦筋動到FTP上。不過令我失望的是,我最慣用的FileZilla Client竟然沒支援Mac (Client有支援),最後才在這個網頁中知道Lion原本就有內建FTP Server,只是不同於先前的Mac OS,Lion已經將Share files and folders using FTP這個原本應該存在於系統設定選單中的選項給移除了,所以現在要開啟FTP Server只能透過terminal輸入指令:

sudo -s launchctl load -w /System/Library/LaunchDaemons/ftp.plist

我猜,為了安全性的考慮,所以Lion把這個選項拿掉,而不知不覺提供了SFTP的功能,早在我們開啟

Sharing –> “Remote Login”

的選項時,就同時開了SSH Server與SFTP Server了。之後,在別台機器要連上來時,只要記得用FTP Client連線時選擇SFTP選項即可。以FileZilla為例:

image

2012年6月14日 星期四

ssh port forwarding using Putty

先前我貼過一篇相關文章,後來發現在windows環境下其實putty已經可以很完美又簡單的幫我達成這個任務,完全沒必要為了這個小功能再去裝什麼virtual, ubuntu, 及搞兩邊os資料同步問題。

事前準備:

  1. 下載 pietty
  2. 確定你要的功能是從你的電腦(A)透過(B)連到(C),並將防火牆該開的port都開好。

步驟:

  1. 執行pietty
  2. 勾選PuTTY模式
  3. 至Connection->SSH->Tunnels選單
    image
  4. Soucre port 輸入本機端(A)的port,Destination輸入(C)的IP跟port,IP與port之間要有個冒號。下面選項選取Local是要連出去,選Remote是讓別人連進來,所以我們的需求是選Local。填好後按下Add。
     image
    image
  5. 點選Session,Host Name輸入(B)的IP,下方Saved Sessions格子可填入一個名字,然後按右邊的Save,便可將剛剛的設定存下,以後要再做一樣的動作時就可以直接連線。
    image
  6. 按下Open,輸入(B)的帳號密碼後就成功了。
  7. 如果要檢查是否有成功,可點Pietty最左角上的小圖示,選Event Log,如果裡面會有一行:Local port 12000 forwarding to (C)’s IP:22 的訊息,那就代表成功。
  8. 成功以後,這個Pietty完成的連線就擺著不要理它,開另外一個Pietty連線,Host Name填localhost,port那邊改成12000,這樣看起來是連到本機端(A) port 12000,但實際上最後到達的會是 (C) 的 22 。
  9. 註:一旦最早開的Pietty連線中斷或程式中止,port forwarding的動作就會自動解除,之後再連localhost:12000就沒用了。

2012年6月13日 星期三

[Mac OS Lion] Open Matlab by Terminal

前兩週我自己入手了new ipad,這週lab的MacPro也交貨,為了重新建好在Mac OS環境下的工作環境,接下來我應該會貼一堆跟Mac OS有關的memo文吧。。。

先從剛解決的問題開始往回講。在我安裝完學校授權的MATLAB R2011a,並成功將先前宗鑫學長在Mac下compile好的64-bit noise floor程式移植好後,我便開始著手幫阿型學弟設定環境讓他可以遠端進來跑這支程式。有一些前提如下:

  1. 阿型的帳號權限是一般人 (staff, not admin)
  2. 只能用terminal

可是登入後執行matlab -nodesktop後卻出現訊息如下:

MATLAB_maci64[11043:8203] This process is attempting to exclude an item from Time Machine by path without administrator privileges. This is not supported.

這排訊息出現後依舊成功進入了matlab shell,我忽略這排訊息,打算直接執行 matlab 程式,執行後卻出現跟上面一樣的訊息。問了google大師後得到的解法是:

該帳號先執行一次 sudo matlab –nodesktop ,之後就算重新登入了執行 matlab 都不會再次出現這種問題。(reference: 123,  …)

可是這並沒有解決我的問題,因為要執行sudo就必要需要提升阿型的帳號權限到admin才行,而且如果我在圖形介面下老實的執行MATLAB app,在matlab介面下的指令列輸入要執行的程式就沒有這個問題。

這個問題如果要同時滿足前面的兩個前提,目前可算是無解中!