搜尋此網誌

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

2013年10月8日 星期二

【Java】JSON.jar教學

參考:
  1. http://www.ewdna.com/2008/10/jsonjar.html
  2. http://www.json.org/

轉載:

JSON in Java 並沒有提供 .jar下載,所以需要透過作者提供的source code打包下載,在包裝成.jar檔。
  1. 從 JSON in Java 連結到 github下載 Source Code
  2. 建立資料夾路徑 xxx/org/json/,其中 xxx 可以自訂,org/json/ 不可更改!
  3. 解壓縮 zip 檔裡的 JSONArray.java 等所有 java 檔至 xxx/org/json/ 底下,test資料夾不用。
  4. windows執行cmd,Linux執行terminal,切換至 xxx/。輸入指令 javac ./org/json/ *.java
  5. 在 xxx/ 目錄下繼續輸入指令 jar -cvf json.jar ./org/json/*.class
  6. 在目錄 xxx/ 底下看到 json.jar 就可以拿去 import 使用了。
作者  已打包好的json.jar檔

不過我目前使用jre的版本是1.7版,在按照上述第4步驟,出現不少compile error,按照原作者的github說明jre應該是1.2 - 1.4版,所以不確定是否和jre版本有關係。

總之,先下載上述已打包的jar檔使用。

2013年9月9日 星期一

【研究】YTB Downloader

前言

原本想推薦有一款不錯的youtube downloader HD,前幾年還不錯用,但最近幾乎每天都改版,一啟動就要你去更新,更新後不免又是安裝程式,裡面還包的不只有一種程式,虧他網頁還標榜沒有廣告、間諜...程式,結果一開始要安裝的Delta工具列,就是一個會自動綁你的IE、FireFox、Chrome、的惡意程式,真的大失所望。

每天更新,結果中文解碼又沒處理好,不知道再更新什麼,還是只是用自動化程式去跑,每天自動更新版本號和日期,讓google search時,資料是最新的,讓無知的使用者安裝有的沒的。
市面上越來越多號稱Free的軟體,都會綁一些怪怪的工具,甚至會修改機碼,讓你移除都無法,所在安裝時要注意看看到底是安裝了什麼內容到你的電腦裡。

不想用上述的幾乎每次啟動都要更新的下載器,其實還有許多選擇,譬如像是
  • chrome plug-in,若是每天都會用到youtub並下載,是很不錯。但是,plug-in是當打開chrome又會常駐在你電腦記憶體中,即使沒有瀏覽youtube畫面,plug-in一樣會存在在背景程式中。如果像我安裝了這些【工具】附加元件,多安裝一個不常用到的plug-in,白白耗費記憶體,很不划算。
  • Kej's FLV Retriever,網頁下載器,輸入網址後,需要先下載一個文件,再將文件的內容用記事本打開,貼到指定位置,最後才告知下載連結位置。等於下載動作需做兩次,對使用者來說太麻煩了。甚至,有時網址輸入錯誤,沒辦法即時得知錯誤訊息,需再貼上下載文件的內容後才得知輸入有誤,沒有一個很好的使用者經驗。

在上面實際做法後,參考他們處理方式,均是從youtube api取得youtube info的資訊,再從複雜的字串和數字的編碼,找出實際連結的位置,
舉例來說:
  • 原影片網址:http://www.youtube.com/watch?v=5y_KJAg8bHI
  • 把原網址改成http://www.youtube.com/get_video_info?video_id=5y_KJAg8bHI,就可以去取得所謂的youtube Info資訊,再分析這些資訊進一步取得實際影音的網址聯結。
按照wikipedia的說法,這些資訊包含了這些資訊,而影音格式也分為FLV、3GP(實際上info資訊裡是顯示3GPP)、MP4和WebM,而影片解析度則依上傳者的分享決定的,最高有到1080P,也就是前言那套軟體所說提供的HD畫值。

綜合以上知識,如果可以實作一套結合自動讀取info資訊檔,並分析info資料取得影片檔案實際下載位置,並download,就可以解決前面所有疑慮的問題。不需要耗費瀏覽器額外記憶體,不需要擔心首頁被綁架,不需要下載複製貼上才能下載。所以寫了一套YTB下載器,減少使用上的效率,但要遵守YOUTUBE 服務條款

以下程式碼僅供研究所用,無任何販售行為及獲得任何利益;若下載一切影音、文字,版權屬於原作者及出版社所有,請勿作商業上之用途,所有影音文字內容,請於實驗完後24小時以內將檔案刪除!
  • 這是ㄧ個自己研究用的下載器,裡面分析INFO資訊的演算法,則是參考Kej's FLV Retriever的處理方式。
  • 像是特定有授權的網站,用原始方式取得INFO資訊,會回傳沒有授權無法取得info的狀態,但是在後面加上eurl=.....後,又可以,但是實在查不出來eurl這個tag有什麼用意。
    • 例如:http://www.youtube.com/get_video_info?video_id=5y_KJAg8bHI&eurl=www.bbb.cc.dd
  • 設隱私的頁面仍然無法取得info。
  • 幾個類似的網址,可做處理:
    • http://www.youtube.com/watch?v=5y_KJAg8bHI
    • http://youtu.be/5y_KJAg8bHI
    • http://www.youtube.com/v/5y_KJAg8bHI 但會抓不到檔案名稱。

合體

其實這個下載器aCrawler只有console版的,須到config.properties中,更改設定,此外還包含了考古題下載器,所以整個程式碼,看起來會又臭又長。若網址輸入正確,目前可以下載郵局、銀行、和中華電信。但這部分考古題下載器的演算法還需要再改一下。

2013年9月5日 星期四

【GitHub】git did not exit cleanly (exit code 1)

git.exe push --all --progress  "origin"

To git@github.com:Ptodue/aCrawler.git
! [rejected]        master -> master (fetch first)
error: failed to push some refs to 'git@github.com:Ptodue/aCrawler.git'
hint: Updates were rejected because the remote contains work that you do
hint: not have locally. This is usually caused by another repository pushing
hint: to the same ref. You may want to first merge the remote changes (e.g.,
hint: 'git pull') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

就是說當GitHub有做修改時,要先push新資料到本機端,之後才能再pull上去。


2013年8月30日 星期五

【工具】GitHub設定


以下節錄至[1]
GitHub簡介
GitHub是個提供線上git空間的平台,能讓多名開發人員很方便地進行協力軟體開發。提供的方案包含免費和付費的帳號,而其中的差異在於能否使用私人空間。雖然免費的帳號只能使用公開的空間並且需要公佈所有原始碼,但對許多專案來說不是個問題。除此之外,免費的帳號沒有其他限制。 

 使用GitHub的優點包含:
  • 擁有線上原始碼和修改歷史瀏覽,能讓開發人員便利地分享原始碼
  • 有人創立分支(Fork)時能夠追蹤所有的分支
  • 越來越多的知名企業在徵才時會要求申請者提供GitHub帳號,以用來觀察在開源軟體社群中的參與,還有程式寫作風格和技巧等等(不過如果GitHub帳號上的東西太空洞或潦草的話,還是不要給雇主知道,免得扣分。)
--------------------------------------------------------------------------------------------------------------------------------------------------
而GitHub有專為windows所設計的gitHub for windows(設定參考,請按此),讓使用者不用再為了不熟linux指令,而無法使用git之類的程式版本控管。

不過就在第一次測試push,sync完後,久久沒有使用,某天,改了code,想透過gitHub for windows,再次上傳更新的code,悲劇發生了,不管怎樣就是無法sync,弄了許久,上網看相關解決辦法,無奈粉少人分享相關經驗。

直到找到了可以用TortoiseGit + MSysGit來跟GitHub配合,一樣有windows UI介面, 剛好Tortoise之前就有用過,加個git應該也差不多吧。
搜尋結果,只有一開始設定複雜,之後sync或branch push都很方便,不錯,正是我想要的。
設定可參考底下連結:
[1][教學]初心者git (TortoiseGit) + GitHub使用教學
[2]GitHub入門 Part.2 工具安裝與環境配置  

備註:GitHub UI跟可能[1][2]有些許差別。
實測
TortoiseGit 1.8.5.0 + Git-1.8.3-preview20130601.exe 可以順利安裝使用github。