2014年1月30日 星期四

What the shit is Samsung Galaxy S4 i959?

前篇在 《Galaxy S i909 客製機開箱》。當時沒發現是因為台灣亞太電信剛好有出客製機,所以才有包好的台灣版韌體可以刷。

這次的 i959 (Samsung Galaxy S4 中國電信天翼客製機)就沒有那個方法可以直接用了,因為台灣亞太電信並沒有進這一款手機,所以當然沒有台灣版的韌體可以抓來刷。

我原本找到的方法是直接裝 Google Play 的 apk 檔。後來雖然裝成功,但是一進 Google Play 就會閃退。上網找到的解法「安裝 GoogleServicesFramework.apk 與 GoogleLoginService.apk」,是成功解決掉閃退的問題,進入 Google Play 的時候成功登入 Google,連搜尋 Minion Rush 都可以出現搜尋建議,可是就是無法載入商店畫面。

後來我不爽了,就先把 i959 的 rom 給刷掉。跟 i909 一樣都是用 Odin 這個工具配上有人整理好的檔案。
  1. 三网i959三星Galaxy S4增大内存至11.89GB,刷Recovery,完美root!要的来啊!
    [各版本差異可以看《三网SCH-I959官方各个系统救砖必备,官方A版4件套,C版4件套,(F版4.3)5件套》]
  2. 所需檔案載點:
  3. 刷机必备:odin3.09.zip、 I959KEUFMK3[5件套C版4.3].rar
上面那個論壇要加入會員才看的到圖。

在這邊順手用文字記錄一下步驟。會要刷這版韌體純粹是因為會有比較大的可用空間。

首先是先去抓 Samsung 打算要拿來跟 iTunes 打對台的 Kies 安裝檔,裡面會有驅動程式。我是直接在台灣官網抓。因為這台是 Galaxy S4 的客製機,所以仍是抓 Kies。而不是 Android OS 4.3 以後用的 Kies3。

那篇文章提到的 SAMSUNG_USB_Driver_for_Mobile_Phones.exe 好像就是 Kies 裡面的其中一個驅動程式。

安裝完驅動後,把手機切成「Download 模式」再將下載的 Odin v3.09 打開。確認 ID:COM 下方有出現任何一個號碼的 Com port number。右方的那幾項按照下面寫的選擇檔案。
  1. PIT:JA3G_CHN_CTC_16G_F.pit
  2. BL:BL_I959KEUFMK3_2098067_REV00_user_low_ship.tar.md5
  3. AP:AP_I959KEUFMK3_2098067_REV00_user_low_ship.tar.md5
  4. CP:CP_I959KEUFMK2_2076812_REV00_user_low_ship.tar.md5
  5. CSC:CSC_CTC_I959CTCFMK3_2098067_REV00_user_low_ship.tar.md5
把左方 Option 的 Auto Reboot、 Re-Partition、 F. Reset Time 這三項打勾。設定完成後就可以按下方的 Start 了。

Download 模式:先關機。按著「音量下」、「Home」,再按「電源鍵」。等到開到有畫面後,用「音量上」選擇。

在這邊要註記一下我所遇到的問題。

AP_I959KEUFMK3_2098067_REV00_user_low_ship.tar.md5 這個檔案在 Mac 是 2.13 GB。以 Windows 來計算的話就是 1.98 GB,雖然跟 Fat32 的單檔最大 4GB 完全沒關係,可是我當時用 VMware 模擬出的環境就是在選擇 AP 這檔案的時候會有問題。我後來的解法是不用「映射桌面讓他直接從桌面讀取」或「VMware 掛載的網路磁碟機」,而是改採直接把檔案複製一份到 VMware 裡格式化出來的 C 槽下。這樣就可以成功的載入 AP_xxx.tar.md5 了。

不過到刷 root 的時候,我就不是用上面的方法了。上面是說用一個 Recovery 來做,但我是看到有人介紹兩款可以直接刷成 root 的軟體,比較之後就是用完美 ROOT

因為 【推薦】兩款Android刷機助手,讓您一鍵取得超級使用者權限(Root) 這篇文章提到的另一個 root 工具「刷机大师」,我安裝完後,他直接在手機裡安裝兩個 app。這種感覺很糟糕。

這些 root 工具都是靠工程師的 USB Debug 模式來達成 root。 Samsung i959 這台預設把開發人員選項給隱藏起來。開啟的方法是在「設定」>「更多」>「關於裝置」,找到「內部版本號」的那個選項。接著就是狂點那一行了,點了三、四下之後,就會有倒數提示,說還要點幾下才會啟用「開發人員選項」,繼續點下去就可以開啟該功能了。在裡面找「USB 除錯」選項來讓裝置 root。

說到「USB 除錯」,之前 i909 有一次就是不小心開了那個選項,導致沒辦法正常用 USB 傳輸資料。就是那一次,「某人」說她不會再問我電子產品的問題了。

結果「某人」這次看到我還是問我要怎麼把 Google 通訊錄傳到大陸客製機。我當時內心真的是想著「管你去死 = =」,自己要去買垃圾大陸手機。我當時還沒不知道大陸版是把所有 Google 相關東西全部都移除掉的。他們一直在那邊吵著說啥「這是續約免費的」、「不是用買的」,我自己覺得「那關我啥事」。叫你們買 iPhone 自己去亂買 Samsung,不會用想要怪誰啊。我才沒有必要要去教你咧。誰叫你自己不買 iPhone。

就算要貼錢,買一台好手機,會比買一檯被閹割到無法人道的免錢手機好用上幾百倍。花時間找資料把那閹掉的東西裝回去的精力以及遇到的幹事,絕對不是多貼的那一些錢可以彌補的。

找不到資料的感覺就是幹翻天!!!

話說前幾天有人(Marc Lin)因為紅米手機便宜而去買了一台。我今天聽到他在那邊幹說啥都要自己做,一堆東西都要自己重裝。買東西回來簡單用就好了,還要改來改去,真的是沒事找麻煩。

--

到這邊已經重新刷完韌體,並且 root 過裝置了。如果不需要刷機子的話也可以直接 root 機子就好了。

接下來要做的就是把 Google Services Pack 安裝起來就有 Google Play 可以來安裝剩下的剩下的 Google 服務。

--

這邊需要準備 Root Explorer 來更改檔案權限。而這個工具想要「正常使用」的前提條件就是裝置有 root 過。因為程式名稱就這樣寫了 XDDDD。

為什麼會用 i9500-google4.2.zip (這是所需檔案的載點)去搜尋「谷歌服务包」我已經忘記了。反正就是這樣找 orz。

當時我已經自暴自棄了。因為找不到 i959 的 Google Service 教學。所以我就乾脆自暴自棄的刷 i9500 用的版本。當時我內心的想法是這兩台差不多,所以就祈禱可以用吧。

我自己的做法是把檔案全都丟到手機裡,用 Root Explorer 把那些(以上面那載點內的檔案來說是九個) app 複製到 system/app 下。再用 RE 手動一個一個改權限。改完權限後重新開機。

就是這樣而已。

改權限那點我是參照下面這篇的「四【刷入谷歌服务包(GMS)】」那張權限設定照片。
三星GT-S7562i [Rom分享][刷機教程][Root教程][刷入谷歌服務包(GMS)]個人心得

因為刷機的關係(?)所以我在 i959 上看到的都是英文版的 Root Explorer。在要修改權限的 apk 上長按,等他跳出選單,選「權限」。總共有三欄, Owner、 Group、 Others,每一欄都有 Read、 Write、 Execute 這三種動作。把 Owner 的 Read 跟 Write 都打勾,再把 Group 與 Others 的 Read 打勾(Write 不要勾), Execute 整欄都留空,這樣就完成權限的調整了。

ReadWriteExecute
OwnerVV
GroupVV
OthersVV

完成設定的樣子應該要跟上面這表格黑色部分一樣。紅色粗體那兩個是要刪掉的。

就這樣啦~半夜三點三十三分了。大致上都寫了啦~~~

2013年12月12日 星期四

Feedburner Error

Your feed filesize is larger than 576K. You need to reduce its size in order for FeedBurner to process it. Tips for controlling feed file size with Blogger can be found in Tech Tips on FeedBurner Forums, our support site.

這就是目前 Part 2 那篇收不進去的原因。檔案太大了。

在 Blogger 的「設定」>「其他」,「網站資訊提供」下的「允許網誌資訊提供」,把「完整」選成「簡短」就好了。在「張貼資訊提供重新導向網址」那邊我是有設定 feedburner,因為當初想過,如果換個地方的話難道要叫讀者去重新訂閱?當然不!

所以找了 Google 買下的 Feedburner 來把資訊提供給燒起來,這樣換網誌的時候只要在後台設定 rss 來源,讀者是完全不用做事就會自動抓到新的來源。

為什麼 Google 你要把 Reader 收掉呢?

RSS 的 Reader 才是閱讀啊! Facebook、 Google+ 那種地方的訊息真的太亂了。

2013年12月1日 星期日

Aperture Workflow

Latest update: Dec. 10, 2013 公開版

其實我應該要先打已經兩個月過去還沒打完的美國兩周行。不過最近正好在搞這個,所以先打這個好了。至少這個比較簡單。

Forward
因為 Apple 的 OS X Mavericks (10.9) 策略,把舊版用系統的「軟體更新(Software Update...)」項目全部改成用 Mac App Store 來更新。所以就必須要讓之前在不是 Mac App Store 上購買程式的人在 Mac App Store 上有購買記錄,這樣才可以透過 Mac App Store 更新軟體。

iWork 的 Pages 、 Keynote、 Number,以及 Aperture 都是屬於這種類型的應用程式。
~隱藏的內容~隱藏的內容~隱藏的內容~隱藏的內容~
也就是⋯⋯一切盡在不言中。

附帶一提,爸爸說寶寶是二十五美金。

Features
雖然我只是想記錄一下我的使用方法,還有 Aperture 的英文選項翻譯(主要是後面這項)。
是的! Aperture 到現在仍是只有英文版。
不過既然都打了一篇偽心得文,當然要學學芸芸眾生都為 Aperture 打了一篇文章來記錄自己使用的工作流程啦。

今天早上為了去公司加班做十點要報告的投影片,我七點半就起床了,我兩點多才開始睡的。至少 Boss 說我的 FlashMap Layout 講的不錯 XDDD。

上面只是想表達我現在想睡了。


Aperture 的資料其實要找也不太好找,可是說難找, Apple 就直接有影片教學了。但是那個 Find Out How 網頁好像被刪掉了。現在我只有從 Support 裡頭找到各項的單獨影片。

不過可以先看看 from iPhoto to Aperture。裡面介紹 Aperture 比 iPhoto 多增加的功能。
  1. Multiple versions of a photo. Minimal hard drive space.
    VersionsEach version is a new copy in iPhoto.

    A single copy can have multiple versions in Aperture 3.
    When you want to create an alternate version of a photo, iPhoto duplicates the photo. Aperture stores as many variations as you want in a single image file. That’s big news, because it eats up far less hard drive space than storing duplicate photos. Aperture makes it easy to keep track of all those versions, too, so you can use different ones for different projects.
  2. Merge, sync, and split multiple libraries.
    Merge libraries
    Your iPhoto library is your Aperture photo library, automatically. With the new unified library, there’s one place for all your photos. And if you’ve accumulated multiple iPhoto libraries over the years — or you have libraries on different Mac computers — you can now use Aperture to merge them together and still open them in iPhoto. While iPhoto is designed to work with one library at a time, Aperture lets you set up as many libraries as you want and switch between them instantly. And you can export a project with all the related photos or an iPhoto Event as a new library.
  3. Never run out of hard drive space.
    iPhoto, One diskAperture, Several diskes
    As your iPhoto library grows, it may become too big to store on your computer’s hard drive. Aperture lets you set up as many external drives as you want and specify where to store each of your photos — without changing anything in your Aperture library. You can access and edit your photos the way you usually do, no matter where the originals are stored. This feature also allows you to add hard drives one at a time, whenever you need them. So your setup can grow along with your library.

以下是 Support 的影片中,我覺得比較有用的幾個。我分成「基本(大家都應該要知道的功能)」,以及「進階特色(真的很奇怪的 XDD)」。
    基本
  1. Welcome to Aperture 3
  2. Aperture 3: Merging Aperture Libraries
  3. Aperture 3: Adjusting Date and Time
  4. Aperture 3: Editing Metadata
  5. Aperture 3: Using Stacks
  6. Aperture 3: Embedding and Exporting Metadata
  7. Aperture 3: Exporting Versions, Masters, and Projects
  8. Aperture 3: Publishing Photos to Facebook or Flickr
  9. Aperture 3: Importing Basics
  10. Aperture 3: Filtering and Searching
  11. Aperture 3: Ratings, Keywords, Labels and Flags
  12. Aperture 3: Organize Your Photos Using Faces
  13. 進階特色之調整
  14. Aperture 3: Adjustment Presets
  15. Aperture 3: Adjusting Exposure
  16. Aperture 3: Highlights and Shadows
  17. Aperture 3: Recovering Highlights
  18. Aperture 3: Levels and Curves
  19. Aperture 3: Sharpening Images
  20. Aperture 3: Using Brushes to Apply Adjustments
  21. Aperture 3: Using Quick Brushes to Retouch Photos
  22. Aperture 3: Black-and-White and Color Effects
  23. Aperture 3: Using Lift and Stamp
  24. Aperture 3: Making Prints and Contact Sheets
  25. Aperture 3: Working with Video in Aperture
  26. Aperture 3: Viewing Multiple Displays
  27. 進階特色之怪功能
  28. Aperture 3: Using Quick Preview
  29. Aperture 3: Making Multiple Selections
  30. Aperture 3: Importing GPS Locations from a GPS Tracker or iPhone
  31. Aperture 3: Organize Your Photos Using Places

我略掉了幾個。我只有直接看名稱標題來分類,沒有真的一個一個點開來看,因為有些之前看過了。等我以後有空再來調順序了。

我就是在看了影片之後才知道堆疊的功用與人臉辨識要怎麼選確認。

Workflows
我的工作流程很簡單。

把照片匯入(Import),刪掉覺得不需要留的,對於會上傳到 Flickr 的照片加上名稱與註解(metadata),就這樣。

最多只會做裁剪(crop)跟轉正(straighten),一些需要馬賽克或是修痘痘的狀況會加上修飾(retouch)。通常那些攝影師會做的後製我都不會去做,主要原因我自己認為就是那個顏色病的關係

不過他們這種軟體最重要的功能就是修飾照片。 Aperture 自以為豪的還有裡面的 preset 功能,把照片的調校設定存起來,直接套用到其他照片。我不知道 Lightroom 有沒有這功能。

經常跟 Apple 的 Aperture 相比的軟體就是 Adobe 的 Lightroom,他們這等級的軟體都是拿來後製照片的。對於照片管理的功能,我不知道 Lightroom 有沒有。我自己認為 Google 的 Picasa 跟 Apple 的 iPhoto 是一起被比較照片管理軟體,最主要功能就是整理照片。

我自己原本就是想找個圖片管理軟體來整理照片,因為以前在 Windows 的資料夾整理方式已經沒辦法對付日益肥大的照片資料庫了。雖然目前才快要 20GB 而已。

從 Windows 換到 Mac 的時候就拿了 iPhoto 來用。一開始用一用也沒什麼,可是後來發現有更進階版的 Aperture 就有想過要不要換過來。讓我卻步的主要原因就是軟體本身要 US$79.99

Aperture 主要提供的功能我都不會去使用它,感覺上頗為浪費錢。我只會用 Aperture 來當比較進階的資料庫,因為介紹重點之一就有說 Aperture 對修改照片是用資料記錄的方式,而不是像 iPhoto 的製造另一個檔案。

話說 Picasa 也是這麼記錄修改的照片,只不過他沒有像 Aperture 弄出個資料庫來儲存。我自己是比較喜歡這種資料庫的感覺,因為所有資料全都在資料庫下,備份的時候直接整包複製就好了。很多微軟下的軟體,都是檔案跟資料分兩邊存,因為萬惡 C 槽下的使用者帳戶。

不過我還是比較喜歡可以像一般開資料夾的方式找回圖片, iTunes 就是這樣。雖然 iPhoto 跟 Aperture 的資料庫都可以那樣開,但是裡面的照片不是按照專案來存放的,好像是按照匯入時間。 iTunes 下的資料庫是按照「歌手、專輯、歌曲」這種方法來整理,所以如果真的需要自己手動找回檔案的話,其實不會很難。

Library
Aperture 的資料庫跟 iPhoto 的,以及 Mac 下的應用程式都一樣,都是在資料夾上加後綴名(.aplibrary,因為不能稱「附檔名」), Mac 就會自動把它包起來。想要顯示裡面的內容,必須要按右鍵選「Show Package Contents」。

iTunes 的資料庫概念其實跟 Aperture 與 iPhoto 的一樣,只不過他沒有用後綴名把它包起來而已。

簡單的說,該程式會需要用到的資料,都會被放在這裡面。以 iTunes 來說,就是音樂;對 Aperture 來說,就是照片。

而除了檔案本身之外,還會多一些檔案來記錄一些無法存放在檔案內的資料,如喜好程度等等。

所以這些資料庫,都可以單純靠翻資料夾來找出原始檔。只不過 Apple 軟體的設計想法,都是讓你用軟體去管理那些內容,而不是自己手動去整理。蘋果可是很愛搞出「智慧型」什麼東西的咧。

當你只有幾百張照片/幾百首音樂的時候,還會想要用資料夾來整理。但是當這數字變成「幾萬」了之後,我不覺得有誰有辦法單純靠資料夾就整理好的。就算整理好,要把東西找出來就絕對不是一件容易的事。

Master, Original, and Version
Originals and Versions
Originals and Versions
Master 跟 Original 其實是一樣的意思,代表最原始的圖檔。而 Version 就是經過修改後的版本。像上面這樣代表每一個圖檔,都只有一種版本。
上圖那個預設資料庫:
2736 versions, 2724 originals
(代表有幾張照片有多種版本,可能是十二張圖片以下)

Aperture 的優點中, iPhoto 會將每次修改存成一個新的檔案,而 Aperture 只會把各版本修改資料用數據化的記錄下來,並不會存成一個新檔。所以這樣可以以很小的空間,記錄很多種的版本。就我所知, Picasa 就是用這種方式記錄修改過的資料。

iOS 裝置上所拍攝的相片、影片,直接在裝置上修改也會用這種記錄修改地方的方式來儲存修改資訊。所以直接在 Windows 下把檔案抓出來,看到的會是原始檔,而不是修改過的樣子。之前看過有人抱怨這件事。其實我自己是蠻喜歡這樣的,「原始檔」的重要性應該不需要多加解釋。就跟錄影界常用的「母片」是一樣的意思啊。有最原始的東西,想要怎麼改都可以。但是被修改過的東西,是很難用回原來的模樣。對於某些事情,是根本不可能變回原來的樣子。

在現在 Aperture 的選單設定中,大多數字眼都是用 Original 這個字。可是在 Aperture 資料庫裡的資料夾結構中,是以 Masters 來做為資料夾名稱的。如果將 Aperture 的資料庫打開,以下這幾個資料夾是比較重要的資料夾。
  • Masters
  • Previews
  • Thumbnails
並不是說其他幾個不重要,只是因為檔案在大的通常是這幾個。

其實名稱還蠻清楚的。所有圖片的原始檔都會存在 Masters 下,而 Thumbnails 則是儲存照片、影片的縮圖。這兩個資料夾是一定會有的。可以拿來節省空間的,就是剩下的那個 Previews,預覽圖的存放地。

Previews
在 Aperture 的設定標籤頁中,其中一頁就是「Previews」。裡面可以選擇新匯入的圖片們要不要建立 Previews,還有 Previews 的尺寸以及圖片品質。

為何有了 Thumbnails 之外還要有 Previews,這就牽涉到另一項那個「可以將照片存放在多個磁碟」的功能了。

就我所知道的, Aperture 只能有一個「主資料庫」。

雖然 Aperture 可以把照片「匯出成資料庫」,也有「合併資料庫」的功能。但是真正的資料庫只會有一個。

如果是說好幾個各別分開的資料庫,這件事 iPhoto 也可以做,這個就不是 Aperture 比 iPhoto 強悍的地方了。

Aperture 可以存放在多個磁碟的功能,所存放的資料是「圖片的原始檔」,並不是我原本以為的「部分資料庫」。

剛剛提到的三大資料夾, Masters、 Previews、 Thumbnails,佔最多空間的當然就是存放原始檔的 Masters。也就是為什麼要把原始檔分開放。而這就是 Aperture 的「存放在多個磁碟」功能。

我當初在用這個功能的時候真的以為可以分成好幾個部分資料庫,以及一個主資料庫。後來發現不能這麼搞之後,只好真的切成兩個資料庫來放。必須要存成資料庫的形式,就是資料庫除了一些基本的 Metadata 之外,還包含了照片的喜好程度、相簿、面孔辨識等無法儲存在相片圖檔本身的資料。而這些不能夠直接存在照片裡的資料,通常就是讓這些照片更好用的資訊。

所以 Previews 的功能,就是把原本可能幾十 MB 的原始 RAW 檔,以設定的壓縮等級以及大小產生出預覽檔留存在資料庫裡。這樣就算存到外接磁碟的原始檔不在,也可以拿預覽檔來做一些基礎編輯。不過官方有說明,有些事情仍是必須要有原始檔才能夠做,遇到這種事情的時候, Aperture 會有提示視窗請你將原始檔的硬碟接上。

稍微解釋一下:平常照相的時候,相機存成的照片格式是 JPG/ JPEG。這是種破壞性壓縮,檔案是已經經過相機的白平衡等後製產生出來的。而 Raw 檔是相機的感光元件所接收到的數據,完全沒有被動過。所以只要用支援的程式開啟,你可以將白平衡、色彩飽和度、對比度、清晰度等等設定改成任何你想要的樣子。這就是原始檔的重要!
我以前看過 Sony A700 的 Raw 檔,一張圖片就快要 20MB 了。

Aperture Previews Preferences
Aperture Previews Preferences

接著上面。在 Aperture 的預設設定中,對於舊的照片不會特別去產生 Preview。不過在預設設定中有讓新照片,在匯入的時候自動產生 Preview 的功能。我自己是把這個選項關掉。因為我只是用 iPhone,最多是用小小的 Sony T30 來照相,真的不需要用到預覽圖來佔空間。如果以後改用單眼的話,應該就會需要預覽的功能了,因為這樣能夠大大地加快圖片顯示的速度。

在這邊對 Previews 的檔案做個結論。如果你的原始檔不在資料庫裡,那 Aperture 一定會幫你製作預覽。如果你是用單眼拍的 Raw 檔,那你可以讓 Aperture 在匯入的時候就建立預覽,或是等匯入之後再來製作預覽。如果只是小小 2-3 MB 的照片,其實是可以不用製作預覽,順便節省空間。

Relocate and Consolidate
Relocate 就是將照片原始檔移出資料庫,選擇之後要放的位置。
Consolidate 則是將照片原始檔放回資料庫裡。

被 Relocate 過的照片,就稱作 Referenced Images。而原始檔存在資料庫裡的照片則是 Managed Images。

Relocate 這個選項,就是要使用 Aperture 多磁碟存放功能要選擇的項目。 Relocate 可以選擇存放在本機磁碟而不存放在外接磁碟裡,但這樣變成沒什麼意義。因為空間仍然被占去了。

Export and Import
Export 可以選擇要輸出 Original 或是 Version。不過我自己比較喜歡直接把檔案從 Aperture 拉出到 Finder 的桌面或是下載資料夾。這功能大致上都可以用,不過我好像有遇過 Version 拉不出去,只能拉 Original。

但 Export 最重要的功能,對我來說就是「輸出成資料庫」。我自己就是用這功能來分割資料庫的。雖然跟我原本想的不太一樣,至少還可以用啦。

不過官網影片介紹 Export to library 的時候,用的例子是將專案的部分照片或是一整個專案輸出,帶到其他地方編輯,等回來的時候再將該資料庫合併回主資料庫。 Aperture 的 Export to library 功能,匯出的資料庫就是一個完整的資料庫。

在 Import 的時候, Aperture 會問使用者要將資料庫合併(Merge),或是增加成新檔案(Add)。如果選擇後者,你的資料庫就會有重複的檔案。如果是 merge,它會將修改以 Version 的方式合併到你原本資料庫裡的檔案。 Import 的功能我沒什麼測試,所以我不知道有增加又有刪除會發生什麼事。

我當時的測試,「匯出資料庫」的時候還可以選擇要不要連預覽照片一起匯出。因為我的目的是想要把 iPhoto 的資料庫格式改成以 Aperture 原生的格式來儲存。外加當初亂搞亂用, iPhoto 裡面的資料根本不知道是不是正確的。

Aperture 3.x: What Are Managed Images and Referenced Images?

Quick Preview
Quick Preview 這功能就是不讀取原圖,改讀取產生出來的 Preview 檔來加速 Aperture 速度。

Shortcuts and Notes
對我來說最重要的快速鍵就是 v,用途就是 Cycle View Mode。我自己之前用 iPhoto 時,一直想要用鍵盤把 Viewer Mode 轉成 Browser Mode,可是只能用滑鼠轉換。

人臉辨識可以用滑鼠框選 Aperture 辨識出來的多張面孔,一次把它們全部確認成同一個人。我之前在 iPhoto 的時候可是點到快瘋了。

而堆疊(Stacks)的功用是將時間相近,或是同樣主題的照片集合在一起,減少專案中顯示出來的項目數。
舉例來說,單眼相機在拍婚攝之類的主題時,攝影師都會狂按快門,所以同一時間的照片可能有個位數到幾十位數的照片。這樣管理上會很麻煩,而 Auto-Stack 可以按照你設定的間隔,自動把照片們堆疊起來,減少 Project 下的顯示數。普通的 Stack 就是自己手動選擇照片把照片給疊起來。它的主要功能就是這樣。

將照片們在 Browser Mode 選擇起來後,以 v 鍵切換瀏覽界面,配上 z 鍵或雙指縮放來改變照片大小,用 shift 來同時平移選擇的照片位置。這招來比較照片我覺得還不錯。不過我覺得 Aperture 在 Mavericks 的雙指縮放經常縮放過頭,不知道在動物系列的時候有沒有這個問題。

結尾
目前就想到這些,所以就先這樣啦~~~

啦啦啦~~~

2013年9月10日 星期二

[震怒] 去你的死 Blogger

之前吃我一篇「Aug. 25th, 2013: ed2k javascript, TextMate, and batch href to “target = "_blank"”」就算了。反正我才剛開始打。

現在又吃掉我一篇了!!!!

這篇的名字我還不能打出來!!!

我資料找得很辛苦啊!!!斷斷續續地打了六個月的時間就這麼消失了!!現在那些圖片我根本不知道原圖在哪啊!



重點是那些 ed2k 連結更是難找啊!!

好不容易整理好了,全部都被蓋過去了!!!我明明是按「新文章」啊!!




你這個垃圾!!!!

2013年9月8日 星期日

Aug. 25th, 2013: ed2k javascript, TextMate, and batch href to “target = "_blank"”

ed2k javascript version: Jul. 30th, 2014

本篇文章原文已經消失過一次。這次是重打的,所以會比較簡潔一點。

幸好我有用 Xmarks 來備份書籤。不然我當時找到的那些書籤全都沒辦法找回來,這篇的資料來源也只能流產了。


因為有在一個咳咳論壇看到他們網站用的程式碼,所以我把它抓回來改成我要的樣子。除了那個 “Download selected item(s)” 按鈕我真的改不了,其他的部分都跟那論壇用的程式碼不一樣。改不了的原因在下面解釋。

不過我後來找資料的時候發現他用的程式碼,跟很多論壇用的都一樣。似乎只要是 Discuz! 模版的論壇就可以用。

使用前提及已知 Bugs:
  1. 檔案名稱必須要自行對過。一旦發生問題會導致整段程式碼出不來。
    最常發生問題的地方就是下方紅字的檔案名稱處。
    ed2k://|file|FileName.FileType|FileSize|Hash|h=RootHash|/

    原本還有一個檔名中有 ' (single quotation) 會導致程式碼印失敗的問題。不過我查了一下發現微軟不支援 " (double quotation) 出現在檔名。所以我改了一下我在 Javascript 用來包參數的符號,這樣就不會有這個問題了。

    但是 Mac 支援 ' 與 " 出現在檔名,它連 / 與 \ 都支援咧。反正目前以 Windodws 為主。
  2. 目前確定知道的問題中,只要未被轉碼過的檔名中有 % ,會導致程式碼會無法出來。 (fix)
  3. 將選項取消勾選後並重新整理網頁,那些選項不會重新自動勾選。 (fix)



參考資料:
因為有下面那個特別標出的來源,所以我才可以做出這種不用管輸入參數個數問題的程式碼。 “arguments” 是好東西啊!

  1. W3Schools
  2. JavaScript 初階教學
  3. JavaScript 中階教學
  4. 那些年,我們應該瞭解的 JavaScript 小知識 - 物件, 數字, 字串, 陣列, 迴圈
  5. Javascript Tutorial
  6. HTML 4.0 Special Entities
  7. eD2k連結(官網)
  8. eD2k連結(維基)

我是先看「JavaScript 初階教學」及「JavaScript 中階教學」這兩篇之後才開始看我抓到的 ed2k script 的程式碼。因為有了基礎之後才看得懂他寫啥呀 XDDDD

會把 W3Schools 放在第一個是因為我之前在用 CSS 的時候也經常到這個網站找參數定義。



程式碼及使用方法:
“Download selected item(s)” 的執行概念是用 window.location 將 ed2k 連結送給瀏覽器,再由瀏覽器按照註冊的連結種類,轉送給 ed2k 連結所註冊的程式。

如果讓所有的連結連續狂送進 ed2k 程式會導致程式直接死當的這種情況在舊版作業系統(如: Windows 2000)經常發生。或是 ed2k 程式中已經有上百個下載項目的情形下更容易發生程式當掉。只是在新作業系統中比較不會全系統當掉,只會是那個 ed2k 程式當掉。所以有個延遲時間是非常重要的。

按照我抓到的來源,它是用 window.setTimeout 來制作延遲的效果。他這個程式的缺點是每次都需要去把全部的連結抓過一次才知道他這次要送誰出去。我原本想要把它改成只用一個參數傳入來寫。可是寫出來的對於延遲時間處理都一直失敗,少數有成功的(alert 成功, window.location 失敗)也不合我意。

我不想要一個程式用兩個函式,當時用了 for 迴圈將 setTimeout 包起來。因為 for 迴圈的關係,會導致 setTimeout 一次全部跑完。而我有想過把延遲時間一直加上去,讓他跑完 for 迴圈的時候就把所有需要執行的程式都按照間隔給設定好。可是 setTimeout 加上 window.location 會導致莫名的問題。我上網找了資料,可是也沒有看到答案。這個方法最後只能「暫時」宣告失敗。當時已經是星期天凌晨了,所以先去睡覺,醒來後就直接用抓到的程式碼來做了。我也是有想過不要用延遲時間直接一次全送出去,可是後來想到過去的經驗,覺得還是做一下延遲會比較保險一點。

按照那個程式的設計想法,除了送第一個連結後可能需要等 ed2k 程式啓動所以等了六秒後才送第二個連結過去,其他都是等五百毫秒就送一個。

就是因為「延遲」做出不我自己想要的樣子,所以那個按鈕改不了的原因就是這樣了。

後來補充的(Jul. 27th, 2014):

快要一年後,因為克林姆跑回台中,原本要繼續寫去年九月故事的我不知道為啥一直去戳 emule 的那篇文章,所以就變成改這份程式碼了。

這次主要參考的都是跟字串有關的網站,還有為了把那個全域變數換掉而特地去查的 getTime 用法。再來就是為了 delay 而做的 for (var delay = 0; delay < 0xBADBF0; delay++) {}。

學校的 ind 雖然可以連,但是 blogger 抓不下來。所以我就去跟改版過的 Google Code 交手了一下,發現他現在有 subversion 耶!!!感覺上還蠻不錯 XDDD。

這次用到了正規表示式(Regular Expression)來把 /%[0-9a-fA-F]{2}/g 給過濾掉。我其實原本是用 /%../ 來做的,後來才知道最後要加一個 g 才會繼續判斷。那時是直接找十六進位的判斷法,稍微改幾個字就修成我可以用的。

.split .replace .indexOf 都還蠻常用到的,比較起來 .match 沒那麼好用。主要是錯誤判斷的時候很麻煩。我這次豬爬格(debug)的時候都是用 document.write (); 來看結果。比起之前用的 alert (); 真的是方便許多。不過有錯誤的話也是整篇程式碼不出來。


我遇到比較難的問題有兩個,但目的都是要做同一件事。就是判斷檔名發生問題後的取代措施。之前發現的問題就是檔案名稱中有單獨的 % 會導致 decodeURIComponent 掛點導致整段程式碼自殺。

我想了兩種方法,第一種比較簡單的是發現檔名有問題,直接把檔案名稱換成 FileNameError + Hash 值 + .filetype。優點就是大部分檔名有問題的都可以套用同樣的公式,缺點就是不知道原本的檔名大概長怎樣。這個方法的難題是不知道附檔名要怎麼從字串中拆出來。(必須保留附檔名的原因就不用提了)

第二種方法是把多出的那個 % 從字串中拆掉。這個就是比較難的方法了。


我遇到的字串就長得像下面這樣。
File Name:
Company - Someone & Anotherone %-- BTS.mp4

ed2k Name:
Company%20-%20Someone%20&%20Anotherone%20%--%20BTS.mp4

遇到的難題就別提了,直接寫解法。我懶得打字了(日記在追殺我)。下面有些寫的有點簡略(「要宣告兩個變數卻只用一個」等等),自己看程式碼吧。

第一種要取得附檔名,就是用 variable.split('.') 把字給分開,再用 variable[variable.length - 1] 來取得最後一個「.」後面的內容(也就是附檔名了)。

第二種困難的原因就是 javascript 沒有取代特定位置字元的方法,想要一個 .replace + .indexOf 的函式就要自己寫啦。我後來睡覺醒來想到的方法是先用 .split() 跟 .match() 把他們分開,還有把分開的東西存起來,再把 split 出來的東西判斷裡面有沒有不該存在的 % 後,之後將他們用黏的加在一起。目前程式碼裡是維持這種的寫法。

不過第二種寫法會遇到一個問題,如果該檔名完全沒有 %xx 的話,用 .match 加上 document.write 後(或是其他種組合),程式就會死給你看。判斷式真的不好寫啊。

備註一個東西,就是想要 if (judgement == 'undefined') 的話,可以改成 if (judgement) 來寫。不然的話,「聽說」是要用 if (judgement === 'undefined') 來寫,而結果也不一定會成功。我自己是用 if (judgement) 來做。

我的第二種方案原本想要做的是算出要取代的 % 是在第幾個字元,再用算式移除掉它之後再把原本的還原回去。我到現在還沒想出這個鬼方法要怎麼寫。相黏法真的實在是太好了。



參考資料:
  1. JavaScript Regex 的 字串比對(Match) 與 取代(Replace)
  2. Regular Expression (RegExp) in JavaScript
  3. [入門][Regex] Regular Expression 詳論
  4. How do I replace a character at a particular index in JavaScript?
  5. How to determine if variable is 'undefined' or 'null'
其他的我大多是用關鍵字在遇到的時候下去找的。就是 replace 與 indexOf 是我在網路上找不到解法的,現在用的這個是我自己想出來的。不過在對字元處理的時候,找個網站有整理 String Object Methods 的來參考有什麼指令可以用的話還蠻不錯的。


最後再提一個東西,我用 javascript 寫出批次取代 emule 給的 ed2k 連結的程式碼了。就是網頁右邊的方塊其中一組。也因為寫出那東西的關係,還順帶寫出製造 textarea 的程式碼。

已移除(繼續往下)

上面這東西的程式碼:
已移除(繼續往下)

後來補充的(Jul. 28th, 2014):

花了點時間把 ed2kscript 的跟 textarea 的程式碼合併在一起。

新版:
textarea replacement:


Result:



ed2kscript:


Result:


兩者在一起的程式碼:



下面這邊才是這次新加的內容。又是一個把側邊欄的工具程式碼做成真正的工具啦。



這次是按了按鈕之後會將按鈕隱藏掉並顯示出隱藏文字的程式碼。就是上面那個按鈕。




程式碼:


參考的資料:
  1. HTML - input value kept after Refresh
  2. HTML/CSS Making a textbox with text that is grayed out, and disappears when I click to enter info, how?

後來補充的(Jul. 30th, 2014):

剛剛在吃洋芋片的時候想著來看一下 Blogger 長怎樣好了。就看到上面那段話。

「將選項取消勾選後並重新整理網頁,那些選項不會重新自動勾選。」

剛好想到在做隱藏按鈕那個工具的時候,好像也有遇到同樣的問題,而且答案似乎就是很簡單的 autocomplete="off"。所以就右手拿著洋芋片,左手單隻手來做測試。

Bug 就這麼解了 XDDD

以下就是目前 v1.2 版。


使用方法就是在 html 的 body 下加上 javascript 的語法,裡面塞 XPCed2kMain ("ed2k_link","ed2k_link"); 如下:



工欲善其事,必先利其器。

我原本是用 Blogger 直接改 Javascript。可是後來真的受不了。測試的時候經常會遇到要把某幾段程式碼暫時註解掉,換個寫法試試看。沒有工具來做這件事真的會大大降低工作效率。所以我上網找了一下 Mac 可用的程式編輯器,找到了這個 TextMate。用起來目前覺得還不錯,雖然好像是需要註冊的,不過還沒看到逼註冊的視窗,就先這樣用了。

我當時找到的排名第一位的 Coding Tool 都是 Komodo Edit 這款奪冠。我試用了一下,我發現他有即時預覽的功能,感覺上真的頗強大啊!不過我後來還是因為 TextMate 的版面看起來比較簡潔一點所以就沒去用看起來有點複雜的 Komodo Edit。

這篇會有這段,當然不是廢話一堆只是要說我用 TextMate 來當寫程式工具。要提的是他的快速鍵啊!來源參考了以下兩篇。不過某一篇快要死了(無名小站要關了)。看在他可憐的份上還是先放著好了。

這個程式預設的縮排是用 tab,要改的話在下方 soft tabs,將 Indent Using 改成 spaces,而 Indent Size 改成 2。這樣就是「用空格以兩格為單位來作縮排」了。

  1. TextMate tips
  2. TextMate 操作

我下面只留我覺得有用的或是有趣的快捷鍵。

常用:
  1. cmd + /:註解所選行/註解所選區塊
    cmd + alt + /:新增區塊註解或註解區塊程式
  2. alt + [:減少縮排
    alt + ]:增加縮排
    cmd + alt + [:按規則縮排
  3. ctrl + cmd + up/down/left/right:將選擇的文字區塊上、下、左、右移動
  4. cmd + e:將目前選擇文字變成尋找目標
    cmd + (shift) + g:下(上)一個符合尋找目標
  5. cmd + alt + left/right:切換開啓的檔案
    cmd + `:切換視窗

有趣:
  1. cmd + alt + 1/2/3:按層收合/展開程式區塊(1 - function; 2 - 'for' or 'if' in function; 3 - and so on)
  2. 'todo' + tab:加入代辦事項
  3. ctrl + shift + t:顯示 todo 列表
  4. ctrl + shift + c:計算選擇文字中的數字(含 Hex 與 Decimal 互轉)




下面的這些程式碼,是我自己直接憑記憶打出來的了。我也找不到當時參考的那個來源了。

功能就是把目前網頁的連結在點選之後以新分頁開啓。裡面以 Start 及 End 包著的那部分是可以放在文章後面,讓網頁讀取到該程式碼以前的連結變成在新分頁開啓。之後讀取到的程式碼仍是維持原本設定值。而整段程式碼是改在整個網頁讀取完成後,以 window.onload 來執行轉換的程式。所以會變成網頁上所有的連結全都變成在新分頁開啓。



會需要這個東西跟網頁的跳出率有關係。像是很多網頁大家都是找到了之後就跳掉,如: Google Search。所以這樣改的話可以改善如 Google Analytics 統計數據上的表現。以上是我猜的啦~