ADSense script

Code Colors

2017年1月31日 星期二

Windows push repo to bitbucket by TortoiseGit

Step 1: 建立Putty Key 密鑰  密鑰
Step 2: 申請Bitbucket帳號, 並建立一個Repository
Step 3: Bitbucket SSH 密鑰設定方式
進入Bitbucket的管理畫面,在Bitbucket 右上角頭像中選取 Bitbucket settings

選擇左下角 Security 的SSH key

這邊SSH Key 能刪除但不能更改.新增方式 Add Key, 將標記名稱與公鑰即可貼上.
Step 4: 在TortoiseGit中輸入相關訊息
推送有兩種方式,都需要將其路徑貼到 TortoiseGet   Remote origin 的 URL 中,Putty Key 位置也一併寫入。

上述的 URL 路徑 可以在Bitbucket 中的 Repository中找到。

1. HTTPS:
   Push 的時候會讓你輸入Bitbucket 的密碼。

2. SSH:
  設定密碼到 Bitbucket 後,可不輸入密碼直接上傳資料。

但...人算不如天算,錯誤訊息:
tortoisegit bitbucket to the list of known hosts. Permission denied (publickey). fatal: Could not read from remote repository.這主要是因為Key 無法正確配置,我們雖然設定了密鑰位置也設定了 Bitbucket 的公鑰,但 TortoiseGit 推送中的 autoload key 顯示無法勾選,那到底是有load key 還是沒有 load key 呢?

其實這主要是由於 ssh client 設定錯誤, 我們需要指定 SSH client 的位置,預設是ssh (for OpenSSH),對應錯誤會讓 Key 無法產生作用,我們需要在 TortoiseGit settings => Network 中設定 SSH client 正確路徑, Plink 一般是 "C:\Program Files\TortoiseGit\bin\TortoiseGitPlink.exe"
參考. 當然你安裝時選成 Plink 但想用openssh key, 也是相同的位置做更改。

2017年1月28日 星期六

Git 移除太大的檔案

一不小心加入大檔案到 git , 事後才發覺該怎麼辦呢?
請參考官方網站 維護及資料復原 ...
注意 請先將資料備份  若改壞恕不負責

使用 "C:\Program Files\Git\git-bash.exe", 看一下Git 控管中資料到底有多少,
先用 git 整理一下資料,
 $ git gc
Counting objects: 118, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (103/103), done.
Writing objects: 100% (118/118), done.
Total 118 (delta 74), reused 0 (delta 0)

看看資料大小:
$ git count-objects -v
count: 0
size: 0                  <===== 尚未整裡的資料大小
in-pack: 118
packs: 1
size-pack: 88824 <===== 整理後的資料大小 (88MB)
prune-packable: 0
garbage: 0
size-garbage: 0

先看看我們有什麼大的檔案 在 git 歷史裡
$ git verify-pack -v .git/objects/pack/pack-f281f7156b17e6bd09a5997530c06f73f00d35d9 | sort -k 3 -n | tail -3
41695866016a1b15c0afca6f245ead1688927a78 blob   48375598 17882652 73069419 1 431afce4d21aae4f7456423d57e7aa41e5270572
431afce4d21aae4f7456423d57e7aa41e5270572 blob   107386372 18624491 54444035
98cfa13fbe22f508b65b58772b18d0888f7a02e8 blob   107386372 18662533 27542

偷懶的做法:
$ git verify-pack -v .git/objects/pack/* | sort -k 3 -n | tail -3  
431afce4d21aae4f7456423d57e7aa41e5270572 blob   107386372 18624491 54444035
98cfa13fbe22f508b65b58772b18d0888f7a02e8 blob   107386372 18662533 27542  <== 會有重複的
98cfa13fbe22f508b65b58772b18d0888f7a02e8 blob   107386372 18662533 27542

檔案名稱反查
$ git rev-list --objects --all | grep 98cfa13f
98cfa13fbe22f508b65b58772b18d0888f7a02e8 wx_pch.h.gch/Debug_wx_pch_h_gch

知道名稱後,就可以把他從 Git 控管的歷史中移除掉
$ git filter-branch --index-filter 'git rm --cached --ignore-unmatch  wx_pch.h.gch/Debug_wx_pch_h_gch'
Rewrite a9d6e52a7bbfe36b82aa1b84aaf2042ff6942210 (1/7) (0 seconds passed, remaining 0 predicted) rm 'wx_pch.h.gch/Debug_wx_pch_h_gch'
Rewrite 5d5eba75d45a1da9728be2536c72db25831fb4d3 (2/7) (1 seconds passed, remaining 2 predicted) rm 'wx_pch.h.gch/Debug_wx_pch_h_gch'
Rewrite 7dd375e3e9f5a92c8af45ea9e418a9ba9f4f6258 (2/7) (1 seconds passed, remaining 2 predicted) rm 'wx_pch.h.gch/Debug_wx_pch_h_gch'
Rewrite a46b60616757186fb94f2a3d81f526b3c6e4db19 (2/7) (1 seconds passed, remaining 2 predicted) rm 'wx_pch.h.gch/Debug_wx_pch_h_gch'
Rewrite c89c8050190e6c9c4a7054843a210ec545848f1d (5/7) (2 seconds passed, remainRewrite 22fd295101421c6d805bd076d359e94938da731f (5/7) (2 seconds passed, remainRewrite 342f4d3624e78b7528eeb4ebbd1ccafd033162e6 (5/7) (2 seconds passed, remaining 0 predicted)
Ref 'refs/heads/master' was rewritten

再讓 Git 整理一下資料
$ rm -Rf .git/refs/original
$ rm -Rf .git/logs/
$ git gc
Counting objects: 64, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (24/24), done.
Writing objects: 100% (64/64), done.
Total 64 (delta 34), reused 53 (delta 33)
$ git prune --expire=now

看看整理過後的資料大小:
$ git count-objects -v
count: 0
size: 0
in-pack: 64
packs: 1
size-pack: 39
prune-packable: 0
garbage: 0
size-garbage: 0


縮小好多 就等待檢查資料有沒有被改壞.....

2017年1月22日 星期日

一些有感的話 form 凃磊說的


人生不會苦一輩子,但一定會苦一陣子,如果你逃避苦這一陣子,就一定會苦一輩子!

人的生存空間是兩條線,一條是你的能力,一條是你的忍耐力,這中間就是你的生存空間。你要是能人之所不能,忍人所不忍,你的生存空間就比別人大。

在你面前絕口不提別的女人的男人,也有可能是一個衣冠禽獸,而在你面前可以公然稱讚別的女人漂亮的男人,也許真的別無二心。

人類生存的原則:不要太把自己當人看,也不要太不把別人不當人看。

道德這個東西,用於律己時,好過一切法律;為律他時,壞過一切私刑

有些人注定是你生命中的過客,卻總是成為你記憶中的常客,但永遠也僅止於做客。

因為寂寞而錯愛,就會因為錯愛而寂寞

2017年1月13日 星期五

久違的 wxWidgets

由於 win7 最近需要一些工具,Console 說他解決不了,剛好 wxWidgets 湊巧路過,於是就開始了痛苦的掙扎......
我沒有概念是否有現成的 dll 可以直接下載,還是走了老方法自己 build 一套;但不是 dll build不出來,不然就是C::B一直說錯版本,最後才在 youtube上試到可行的方式,

Code::Blocks 16.01  含 mingw 的版本
wxWidgets 3.0.2 Windows 的版本

1. Build wxWidgets:
cmd (console)下:
//==============================================
先設定 compiler 路徑:
set MinGW=C:\Program Files (x86)\CodeBlocks\MinGW\
set Path=%MinGW%bin;%MinGW%mingw32\bin;%Path%
//==============================================
將路徑移至 wxWidets 資料夾後,清除資料再進行編譯(約30分鐘或更久)
cd  wxWidgets-3.0.2\build\msw
SET MAKE_PARM=-f makefile.gcc SHARED=1 MONOLITHIC=1 UNICODE=1 CXXFLAGS=-std=gnu++11
mingw32-make %MAKE_PARM% BUILD=release clean
mingw32-make %MAKE_PARM% BUILD=release 
//==============================================
檢查是否成功編譯
查看 wxWidgets-3.0.2\lib\gcc_dll 是否有成功產出 dll 檔案


//==============================================
把setup.h檔案複製到 include 資料夾中
 lib\gcc_dll\ 底下出現 "mswu" 和 "mswud" 兩個資料夾,
選擇其中一個,將 wx 資料夾裡的setup.h 檔案複製至include\wx 下即可

牙醫助理可以固定班嗎?

雖然很難但也不是沒可能,多找找看。 診所規模與營業時間影響班表 • 小型診所(單一牙醫師):