顯示具有 Mac 標籤的文章。 顯示所有文章
顯示具有 Mac 標籤的文章。 顯示所有文章

2022年4月19日 星期二

rsync : 複製所有檔案但跳過有問題的

2022年4月19日 星期二

搶救快掛掉硬碟的資料,如果使用 Windows 的檔案總管,或是 Mac OS X 上的 Finder,遇到壞掉的檔案,可能就被中斷。有沒有可以自動跳過損壞檔案,繼續複製其它好的檔案,能盡量將資料救出的方法?

在 Mac OS X 的「終端機」中,如果以 cp、rsync,甚至 dd ,應該可以辦到。

假設要把 /path/to/source/ 中的所有檔案,複製到 /path/to/distination/ 裡。底下是用 rsync 的指令:

rsync -auv --ignore-errors /path/to/source/ /path/to/destination/

rsync 的常用參數筆記一下:

  • -a, --archive : archive mode;相當於 -rlptgoD ,會將底下的所有資料夾及檔案都複製,也會保留檔案的時間、擁有者、權限......等。
  • -u, --update : 如果 /path/to/distination 的檔案比較新,就跳過,不複製。
  • -v, --verbose : 顯示備份過程中的訊息。
  • --delete : 如果在  /path/to/distination 現有的檔案,是 /path/to/source 中不存在的,就刪除。
  • --ignore-errors :  即使在複製的過程中有 I/O error ,還是進行刪除。


2021年5月14日 星期五

Android : 手機變電腦的 Webcam : OBS

2021年5月14日 星期五
之前因為講課需要使用實物投影機,而電腦沒有外接的 Webcam 可用,又把  Android 手機 + IP Webcam 的方案拿出來用。如果搭配 Android adb 工具程式,甚至只要連接 USB 線,可以應用在沒有無線網路可用的環境中。那 Android 手機的鏡頭可以變成電腦的 Webcam,讓 Zoom、Google Meet......使用嗎?試了許久,利用所謂的 Virtual Camera ,的確是可以讓電腦的其它軟體當它一般的 webcam 來用。本篇先來玩玩 OBS 的虛擬相機 (Virtual Camera)。

Google Meet & Chrome 攝影機設定


2018年1月6日 星期六

Flash : 開放瀏覽器讀取本機的設定檔

2018年1月6日 星期六
2016年9月曾經在「雄 : Flash : Flash Player projector」中提到捨網頁瀏覽器,改用Adobe 的「Flash Player porjector」來開啟 .swf ,不然使用較新版的網頁瀏覽器開啟我設計的 Flash 小工具就老出現錯誤訊息而不能使用,類似底下的畫面:


會有錯誤訊息的主要原因是瀏覽器中的 Flash 播放器基於安全理由,預設是不讓程式讀取本機的其它檔案的,這樣一來,我的程式就無法載入設定檔繼續運作了。

除了之前的方法,另外下載單獨的播放器來開啟 .swf 檔案以外,其實也可以透過較複雜的設定程序,修改「受信任的位置設定」,告訴瀏覽器內嵌的 Flash 播放器要捨安全管制,開放電腦中哪些目錄給播放器讀取檔案。底下就以 Chrome 和 Safari 瀏覽器為例,說明如何解除安全管制。

2017年11月12日 星期日

Mac : 移除 CS5ServiceManager 更新的訊息

2017年11月12日 星期日
自己手動刪除了 CS5 ,但每次 OS X 開機時卻仍然出現  CS5ServiceManager 需要更新的訊息。找遍圖形界面,就是找不到刪除它的入口,只得好好的研究一下 Mac OS X 的開機流程,利用下指令的方式來移除 CS5ServiceManager。

2016年10月30日 星期日

Mac : 依日期分目錄歸檔的 shell script

2016年10月30日 星期日
幫同事救行動碟中的資料,由於救回的檔案幾乎只剩一堆編號,原來的檔名都不見了,加上資料量大,於是想順便幫忙把照片檔案按日期分別置入不同的資料夾中。找到在 Ask MetaFilter 中的這篇文章:


裡面是利用 shell script 去呼叫 Mac OS X 中的底下幾個指令來達成按日期歸檔的:

  • 「ls -1」:列出目錄中所有的檔案檔名。
  • 「mdls」:列出檔案的 metadata contents。
  • 「grep CreationDate」:只顯示帶有「CreationDate」的那行資料。
  • 「awk '{print $3}'」:以空白當分隔符號,取出第三個欄位的資料(年月日)。
  • 「export date=」:將找出的日期設為「date」的環境變數

以此來判斷日期的目錄是否存在,已存在就執行「cp」的指令複製檔案,不存在則先利用「mkdir」指令來建立目錄後,再執行檔案複製。

因為我已經將救回的檔案備份到另一顆隨身碟中了,所以在備份目錄中的操作,將原網頁中的指令改用「mv」指令,也就是用搬移來取代複製。

另外,此次救援的主要對象是照片和影片檔案,所以在列出檔案清單的「ls」指令後面加上了可能的副檔名「*.jpg *.nef *.mp4 *.mpg *.avi *.mov」來過濾,只搬移那些副檔名的檔案,其它的都不處理。

底下是依日期分目錄歸檔的 shell script :

#!/bin/bash
for image in `ls  -1 *.jpg *.nef *.mp4 *.mpg *.avi *.mov`; do export date=`mdls $image | grep CreationDate | awk '{print $3}'`;
if [ -d ./$date/ ]
then
mv $image ./$date/
else
mkdir ./$date/ && mv $image ./$date/
fi; done
exit

參考文章:

2014年7月23日 星期三

Mac : 按右鍵加上新增檔案選單

2014年7月23日 星期三

在研究如何幫 Mac OS X 右鍵加上新增檔案選單的方法,看到了一個利用 AppleScript Automator Workflow 寫的工具:


不過,作品寫的安裝程序和現行的 Mac OS X 10.9.x 並不相同,如果不想改它的程式碼,開啟「New File.applescript」後,只要先按「開啟」鈕後,再按「安裝」鈕後即可安裝完成。

如果想修改程式碼,則是先按「開啟」鈕後,再按「使用 Automator 打開」,即可進入 AppleScript 的編輯畫面。修改完程序,按 command + S 即可存檔。想安裝再執行前面提過的安裝步驟

初步使用,覺得這個 New File 的程序應該有兩處可以修改一下再安裝,它新增的檔案,預設檔名為「untitled」,可以改為習慣的檔名,例如:「未命名.txt」,將底下的:

with properties {name:"untitled"}

改為:

with properties {name:"未命名.txt"}


另外,新增完檔案的動作可以改為開啟檔案所在目錄,將底下的:

set target of Finder window 1 to theFile

改為:

set target of Finder window 1 to theFolder

玩了一下,想移除怎麼辦?哈!找了半天才找到它被安裝到這個目錄中:

~/Library/Services

不過這個 AppleScript 使用起來並不方便,必須對準資料夾後按右鍵,再選「服務」才能看到「New File」的選單,太複雜了。真有需要,安裝 XtraFinder 來用可能直覺好用些。





2014年6月22日 星期日

EzGo : 讀取 Mac 的 HFS 分割區

2014年6月22日 星期日

看到好友新竹瘋浪客在網路上問如何讀取無法開機的 Mac 硬碟,把之前 MBP 換下的硬碟拿來用 EzGo 試了一下,安裝「hfsprogs」即可讓 Ubuntu base 的 EzGo 11 多了個「hfsplus」的檔案系統可以 mount Mac 的 HFS 分割區。

安裝


先在 EzGo 的終端機下輸入並執行以下指令來安裝軟體:

sudo apt-get install hfsprogs

手動掛載


安裝完,我們就可以利用 mount 指令在終端機中下指令將 Mac 硬碟中的分割區掛載在系統中。像我的 Mac 硬碟以 USB 接上 EzGo 後,用 dmesg 查到它的裝置「代號」為 /deb/sdb ,而想查看的 HFS 分割區在 /dev/sdb2 ,可以執行以下的指令來掛載該分割區:

sudo mount -t hfsplus -o force,rw /dev/sdb2 /mnt

如果成功,就可以在 /mnt 中看到 Mac 硬碟中的資料了。

自動掛載


如果嫌在終端機中下指令太沒有「親和力」,那就得在系統設定檔中加一點「料」。先來看看,在沒有 mount 的狀況下,我們以 EzGo 的「檔案總管」試圖開啟 Mac 硬碟的情形:


在「Dolphin」的畫面中,紅底的訊息中其實已經提示我們,只要幫「/etc/filesystems」這個檔案裡加點「料」,下次它就可以幫我自動掛載 hfsplus(HFS) 格式的分割區了。

查了一下,我的 EzGo 11 中並沒有「/etc/filesystems」這個設定檔,我們可以在終端機中執行底下的指令來新增(或修改)該檔案:

sudo nano /etc/filesystems

然後在裡加入底下這一行:

hfsplus

好了就按 Ctrl + X 後再按 Y 儲存檔案。

將「檔案總管」關閉並重新開啟,點選 Mac 的硬碟,就會自動掛載 HFS 的分割區囉!


在終端中執行 mount 指令查看一下:


HFS 分割區以「hfsplus」的格式來掛載,不過,它是用唯讀的模式「ro」掛載的,所以,只能讀取,無法寫入。

參考網頁






2014年6月10日 星期二

Tools : 磁碟救援工具 ddrescue & PhotoRec

2014年6月10日 星期二

使用電腦有一件事一定得牢牢記住:「備份,備份,再備份」。現在的USB隨身碟也好,記憶卡也好,經常會聽到有人資料突然不見了,硬碟則是常有壞軌,甚或更嚴重,根本連偵測都偵測不到的情形發生。如果有養成好習慣,除了電腦的硬碟中有一份原始檔案,行動儲存裝置有備份,甚至「雲端」也來一份,相信就不怕那些不知何時會引爆的「炸彈」了。

最近有好幾次救援資料的經驗,由於當事人都沒有備份,只能死馬當活馬醫。除了類似 Final Data 這種商業軟體,我也試著在網路上找免費甚至「開源」的工具來解決。用過「GNU ddrescue」、「PhotoRec」後,覺得這兩個工具值得推薦,前者可以幫我們將有壞軌的磁碟備份成「映像檔」,而後者則可以幫我們將消失的檔案「撈」回來,至於能救回多少檔案,可能得看看運氣好不好囉!

2013年10月25日 星期五

Flash : Mac OS X 標楷體的字體名稱

2013年10月25日 星期五
我的 Flash 作品中,大部份都可以在設定檔中自行指定要使用的字體。這個功能基本上在 Windows 上是可以正常的運作,不過,有使用 Mac OS X 的人問我,為什麼設定檔中指定要用「標楷體」,出現的卻不是?之前在我的 MBP 中測試,一切正常啊!對 Mac 其實沒那麼熟,也百思不解。剛剛突發其想,將 Mac OS X 的預設語系設為「English」後,重新測試了一下,原來可以看到「標楷體」的 Flash 程式果然「不正常」了。仔細的研究 Mac OS X 的「字體簿」後,找到答案了。在 Mac 中給 Flash 用的「標楷體」字體名稱,在我的 Flash 程式的設定檔中,應該設為「STKaiTi-TC-Regular」啦!想知道怎麼查到的,就繼續看下去吧!

2013年7月28日 星期日

FaceTime : 多個裝置共用一個 Apple ID 通話

2013年7月28日 星期日
2010年底買的 iPad 因為記憶體實在太少,使用時經常「閃退」,這次一口氣買了 iPad 4 (整修品) 和 iPad mini,大的自己留著用,mini 則給老婆用。為了共用的考量,兩台使用了同一個 Apple ID。
昨天用新版的 iPad 來玩 FaceTime ,第一次用,手忙腳亂的。由於兩個裝置用的都是同一個 Apple ID ,將它們設定為不同的電子郵件地址來通話即可連線通話。但是同樣的方法用在 MBP 上卻一直失敗,弄到最後,iPad 4 可以和 MBP 通話,但是 MBP 可以和 iPad mini 連線,視窗上卻出現「null」的文字,而且兩邊都只有「切斷」的按鈕,沒有接聽鈕。明明三個裝置設定的是不同的電子郵件地址,卻只有兩個可以通。
早上看到 Apple 說明文件中的這句話「在 iPad、iPod touch 或 Mac 版 FaceTime 上註冊 FaceTime 時所用的 Apple ID 必須是電子郵件地址。」這句話,哈!豁然開朗。

2013年4月7日 星期日

Mac : Safari Bookmarks 的儲存路徑及匯入

2013年4月7日 星期日
寒假時把 MBP 上的雪豹直接昇級為山獅,總覺得它怪怪的,一直想再顆硬碟用 clean install 來比較看看。清明節掃墓騎自行車上山,回程時經過光華商場,就不小心帶了硬碟回家了。昨天很高興的把系統安裝好,並更新好,但是安裝 xCode 3 到最後,居然就當機,再也無法進入系統,只好重灌再試。就這樣,山獅安裝、更新的步驟玩了三次。仔細看訊息,卡在 Kernel Extensions : com.apple.iokit.CHUDKnernLib ,查了一下是 Xcode 3 在搞鬼,其實是有解決的方法的,不過,我在最後一次重灌,決定暫時不理 Xcode 才發現的。慢慢的把其它軟體都一一安裝回來了,Safari 的書籤放哪裡呢?怎麼匯入?

2013年1月30日 星期三

Mac : 隨手記

2013年1月30日 星期三
把一些有關 Mac OS X 亂七八糟、芝麻綠豆的事記在這篇中,陸續增加。

2013年1月29日 星期二

Mac : wjoy 讓 Wiimote 成為 Mac OS X 的搖桿

2013年1月29日 星期二
Wiimote 和 Mac 的配對連線在 Mac OS X 10.8 以後傳出了災情, 許多程式都無法正常的和 Wiimote 連線。在上網看資料時,發現了 wjoy ,它可以正常運作吔!照網站上的說明,它是可以讓 Wiimote 模擬成為 Mac OS X 中的鍵盤按鍵、滑鼠或是搖桿的 HID 裝置 driver 。最重要的是它能在 OS X 10.8 中正常運作,而且有原始碼可以擴充功能。先記一篇如何利用 wjoy 進行連線,再以 Enjoy 讓 Wiimote 的按鈕模擬成 Mac 某些鍵盤上的按鍵。

2013年1月21日 星期一

影片的旋轉

2013年1月21日 星期一
記得我家女兒第一天自己放雙手學走路時,我家老婆直拿相機隨手拍的影片需要旋轉,因為還有拍其它正常的影片,那時沒有很認真的找方法去處理,檔案就放在硬碟中。今天心血來潮,了試了幾種方法,把玩了一下,順便再回味一下當時學走路時可愛的樣子。

2012年8月5日 星期日

Mac : 讀寫 GH-625B 的資料

2012年8月5日 星期日
最近騎自行車都是利用 Android 手機加 Sports Tracker,好處是一機多用,缺點是耗電、搜尋衛星慢、誤差大,還可能會碰到有軌跡記錄了,最後資料卻在上載到網站後離奇不見的情形。其實家裡有一隻 GlobalSat (環天) 的 GH-625B,只因為覺得它的軟體不是那麼好用,而很少拿出來用。GH-625B 只提供 Windows 平臺的 driver 及軟體,研究了幾天,終於知道如何讓它可以在  Mac OS X 10.6.8 上連線,並讀出 GPS 記錄。

以下分成四個部份
  • PL-2303 USB-to-Serial 驅動程式
  • 資料擷取軟體
  • GPS 資料與圖資顯 

PL-2303 USB-to-Serial 驅動程式

GH-625B 附了一條 USB 的傳輸線,內建了 PL-2303 的晶片,骨子裡是採用 Serial 的傳方式在傳輸資料,因此才會那麼慢。我們如果只是把 USB 接頭插入 Mac ,因為沒有裝 PL-2303 USB to Serial 的驅動程式,所以無法和 GH-625B 連線。
因此首要之務是先把驅動程式的部份解決。只要到 GlobalSat (環天) 的網站或是 Prolific (旺玖科技) 的網站下載並安裝即可完成。
到 GlobalSat 網站後先點選「支援服務」中的「檔案下載」,「作業系統」點選「Mac」後按「Go」,這樣可以比較快找到。
如果是由旺玖的網站居然要先以帳號 guest、密碼 guest 登入後才能點選「技術支援」來下載「PL2303 USB to Serial Drivers」。
安裝完 PL2303 USB to Serial Drivers 會要求重新開機,開完機後,當我們把 GH-625B 的傳輸線插入 USB 接孔,手錶上就會出現是否要和電腦連線的對話了。

資料擷取軟體

在網路中找了半天,目前找到幾個和 GH-625B 連線讀取資料的方案:
視窗介面擷取軟體 : LoadMyTracks

LoadMyTracks 是 Mac 的 Native App,在 AppStore 中也找得到,不過,目前原始網站的版本比較新。因為它是視窗界面,使用起來會較直覺。
使用前要先到前述的網站中去將 LoadMyTracks 下載回來,然後就可以準備讀取 GH-625B 中的資料了。
連線讀取資料的操作程序如下:
  • 把 GH-625B 和 Mac 連接好,出現「CONNECT TO PC」選擇「YES」。或是直接由 GH-625B 的選單中選取「CONNECT TO PC」等待啟動軟體連線。
  • 啟動 LoadMyTracks 。
  • 並選擇 GPS 的種類「GH-615」。
  • 連接埠則選取「usbserial」。
  • 最後按「Aquire」鈕,指定要儲存的檔名及路徑,即可下載 GPS 上的資料。
上面有沒有發現一個很奇怪的問題,明明是 GH-625B ,為什麼是選「GH-615」?
因為如果選取「GH-625」就無法連線,選擇「GH-615」反而可以。「Lap」的功能只有 GH-625 才有,也因為如此,如果原始記錄是有分段計時的,下載回來的會全部合在一起,不含 LAP 的資訊。而不同次的記錄可能還要用別的工具來把它們分割成不同檔案,這個是它的一個缺點。
MacMaze 這個在 AppStore 中可以買到的軟體也滿好用的,不過要 11 塊美金。它比較人性化一點,會先顯示目前有哪些 Tracks 可以下載,這樣就不用花很多時間等待。在 usglobalsat 的這個討論串中也可以找到 MacMaze 舊版的程式來試用,不過,因為如果沒有註冊,無法輸出成 GPX 檔案。

文字介面擷取軟體

pykmaze、gh615 Project 和 tz_gh615 三個都是以 Python 開發的程式,由於是針對 GH-615 和 GH-625 而寫的,它們的功能較多。不過,這三支程式都必須在終端機中下以指令來操作,不論是安裝及使用,親和力較不足。

因為它們都是 Python 的程式,我們要先準備好以下的基本環境
Mac OS X 己經內建 Python (我的 OS X 10.6.8 中的是 Python 2.6.1) ,我們只要先把 pySerial 和 pytz 兩個 Python 的 package 下載回來,解壓縮並安裝即可。

以下載回來的 pyserial-2.6.tar.gz 為例,它的安裝程序如下:

tar zxvf pyserial-2.6.tar.gz
cd pyserial-2.6
python setup.py install

pytz 也是類似的步驟即可安裝完成。


pykmaze 、gh615 和 tz_gh615 三個各有優缺點,底下就我測試過的做一下筆記。

pykmaze

pykmaze 其實是針對 Geonaute Keymaze 500/700 GPS watch 而設計的程式,據聞是相容於 GlobalSat GH-615 的,因此可以拿來讀取 GH-625B 中的資料。
不過,原始的 GH-615 firmware 是沒有分段計時功能的,以致於有 Lap 過的 Tracks , pykmaze   會出現「Multi-lap entries not supported」的訊息而無法繼續,即使把警告拿掉,強制它讀取資料,讀到的會只有第一段的資料。我追了一下這部份的程式碼,並對照了 GH-625 的通訊協定文件,主要是原作者有部份的資料未正確的解碼造成無法處理分段計時的 tracks。現在只要下載我修改過的程式,相信就可以順利的讀出 GH-625B 中的資料。下載處如下:


 下載回來的檔案只要先解壓縮即可開始使用

tar zxvf eblot-pykmaze.tgz

照上面的指令解開以後,所有的程式都放在 eblot-pykmaze/pykmaze 中,切換到該目錄中後,即可執行 pykmaze.py 這個主程式:

查詢有哪些參數可用:
./pykmaze.py -h

查詢裝置的訊息:

./pykmaze.py  -i


查詢目前有哪些 tracks

./pykmaze.py -c


下載第一個 track 並儲存為 GPX 格式

./pykmaze.py -t 01  -x test.gpx


下載第一個 track 並儲存為 KML 格式
./pykmaze.py -t 01 -k  test.kml

pykmaze 由 GH-625B 中讀取完資料後,會將資料儲存在目前帳號下的資料庫中 (  ~/Library/Application\ Support/Pykmaze/pykmaze.sqlite ),下次就直接從快取中讀取資料,提昇了資料讀取的時間。如果想強制它重新由 GH-625B 中讀取資料,我們只要在參數中加入「-f」,反之,電腦沒有連接 GH-625B ,我們可以在參數中加入「-o」讓它以 offline 的方式,由快取中讀取之前儲存過的資料。
以速度及穏定度來說,pykmaze 算是目前文字介面中最好用的。

補記:
  • 查詢有哪些 port :
    python -m serial.tools.list_ports
  • pykmaze.py 指定使用哪一個 port (ex. COM18), 測試:
    pykmaze.py -p COM18 -i

gh615 Project

gh615 是 code.google.com 中的一個 project ,它是特別針對 GH-615 和 GH-625 而設計,功能算是最齊全,在 unix like 的終端機下也設計了對話框的方式來選取所要的功能。不過,在我的 MBP 中不知是哪裡有問題,有時能用,有時不能用。底下簡單的介紹一下它的使用方法。
修改設定檔 config.ini:

設定檔中的 「comport」 可以讓我們指定連結埠,Mac 設為 「/dev/tty.usbserial」,其它作業系統可以參考裡面的說明設為適當的代號。
 comport: /dev/tty.usbserial
其它選項則可以不用更改。

接下來,我們就可以準備啟動程式囉!在終端機裡切換到 gh615 的目錄下,執行底下的指令:

python gh600_console.py

出現文字的對話框以後,就可以依自己的需求選取功能。

gh615 有個名為「exportTemplates」的目錄,裡面的檔案是輸出資料時的樣版,這個方便我們自訂輸出的檔案格式。

補記

如果出現這樣的錯誤訊息

  File "templates.py", line 133, in <module>
    from compiler.consts import SC_LOCAL, SC_GLOBAL, SC_FREE, SC_CELL
ImportError: cannot import name SC_GLOBAL

修改一下 tamplates.py

from compiler.consts import SC_LOCAL, SC_GLOBAL, SC_FREE, SC_CELL

改為

from compiler.consts import SC_LOCAL, SC_GLOBAL_IMPLICIT, SC_GLOBAL_EXPLICIT, SC_FREE, SC_CELL


GPS 資料與圖資顯示

底下先列一下蒐集到的免費軟體。

下面的可以幫我們記錄分析蒐集的 GPS 資料
下面的則可以讀入 GPS 資料後,幫我們在相片中加入「位置」資訊。

相關連結




2011年12月19日 星期一

Mac : CrossOver 擾亂了中文輸入法(TCIM)的運作

2011年12月19日 星期一
剛開始使用 MBP 裡的 Mac OS 最不習慣的應該它的倉頡輸入法,因為它和我在 Windows 上用了十幾年的倉頡輸入法不同,Mac採用的是第五代的,有不少字的拆字原則不同,而就在我準備好好習慣的時候,曾經碰到幾次很怪的狀況,怎麼輸入都不正確,嚴重的打擊了我的自信心而去找了「香草輸入法」(裡面用倉頡第三代)來安裝(後來還是將它移除了)。今天又遇到很怪的事了,有部份的字用倉頡又打不出來,更令人氣惱的是,連用注音輸入法都怪怪,居然無法選字,當我把心一橫,機器重新開機以後,它又恢復正常了。直覺的認定是輸入法的問題,在「偏好設定」中沒找到可重新啟動輸入法的地方,上網也沒找到相關的資訊。東試西試,試了半天,總算找出禍首,並有土法煉鋼的方式可以解決問題了。

2011年1月25日 星期二

Wiimote : Wiimote 電子白板@Mac Book Pro

2011年1月25日 星期二
要架設 Wiimote 電子白板所需要的座標軟體在 Windows 上可選擇的似乎比較多,如果要在蘋果電腦上使用 Wiimote 電子白板該如何進行呢?底下以 Mac Book Pro (MBP) 為例,介紹兩種方式:
  • 用 Wiimote 操控蘋果電腦
  • 用 Wiimote 操控蘋果電腦虛擬機器中的 Windows
 
雄::gsyan © 2009. Design by Pocket