2019年9月3日 星期二

git - 查詢某個區間、某人的修改紀錄


公司到了月底,要提交上月份的工作紀錄,
利用 git commit 來回憶一下

$ cd [專案目錄]
$ git log --since='2019-08-01' --before='2019-08-31' --author=Frankie

參考
Git 基礎 - 檢視提交的歷史記錄

2019年9月2日 星期一

Secure Shell Extension SSH Key 錯誤


使用 Google Chrome 的 Secure Shell Extension 出現 ssh key 的問題時,


























請在 SSH 的視窗按下 Ctrl + shift + J
並輸入 term_.command.removeAllKnownHosts() 即可




2019年9月1日 星期日

樹梅派 - 安裝 Docker

經過了快10次安裝,
終於測試出安裝沒有錯誤的方式,
我使用的 img 檔是【2019-07-10-raspbian-buster-full】
如果你使用的是 Stretch 安裝應該就不會有問題

參考的地方有
docker 快速使用 | 葉子
树莓派 NOOBS V3.2.0 Docker – 通信科协
linux - Raspberry Pi 3上的Docker安装失败,无法匹配aufs中的内核版本
Get Docker Engine - Community for Debian

安裝期間一直遇到 aufs-dkms 的問題,
根據第二篇參考,目前官方還沒有解決,
接下來將從最開始, img 檔寫入到 SD 卡之後開始。


第一階段說明 Raspbian 的基本設定
  1. img 檔寫入 SD 卡之後,在 SD 卡新增一個 ssh 空檔,以便等一下可以用 ssh 連線
  2. 先確定日期正確與否,不正確的話就更新日期
    • $ date
    • $ sudo date -s"2019-09-01 15:30:00"
  3. 若是用 pi2 的板,這邊就要先執行 raspi-config,將記憶卡未分割的部分擴展
    • sudo raspi-config
    • 7 Advanced Options\7A1 Expand Filesystem
  4. ssh 連線到樹梅派之後,修改套件來源
    • $ sudo nano /etc/apt/sources.list
      
    • deb http://free.nchc.org.tw/raspbian/raspbian/ buster main contrib non-free rpi
    • sudo nano /etc/apt/sources.list.d/raspi.list
    • deb http://mirror.tuna.tsinghua.edu.cn/raspberrypi/ buster main
    • $ sudo apt-get clean all
      $ sudo apt update
  5. 開啟 VNC 連線
    • sudo raspi-config
    • 進入 [5 Interfacing Options] 將 VNC 開啟
  6. 使用 VNC 連線進入 xwindow
    • 第一次進入 xwindow 時,會跳出一些設定畫面,請跟著做完
    • 軟體更新也請做完
第二階段說明 Docker 安裝

  1. 更新軟件源
    • $ sudo apt update
  2. 安裝 docker  官方源會用到的軟件
    • $ sudo apt install gnupg2
    • pi2 用 gnupg ,應該不用另外安裝
  3. 添加 gpg key
    • $ curl -fsSL https://download.docker.com/linux/raspbian/gpg | sudo apt-key add - 
      
  4. 添加 docker 套件來源
    • $ echo "deb [arch=armhf] https://download.docker.com/linux/raspbian stretch stable" | sudo tee /etc/apt/sources.list.d/docker.list 
    • $ sudo apt update
  5. 安裝 docker
    • $ sudo apt install --no-install-recommends docker-ce
  6. 啟動 docker
    • $ sudo systemctl enable docker
      $ sudo systemctl start docker.service
  7. 將使用者加入群組
    • $ sudo usermod -aG docker $USER
  8. 確認 Docker 執行正常
    • $ sudo docker run hello-world


2019年8月29日 星期四

Docker - 小筆記((整理中))

測試 Docker 是否安裝成功,
通常會使用 hello-world 來測試,
不過要注意的是,每下一次下面的指令,container 就會多一個
docker run hello-world

入門指令
## List Docker CLI commands
docker
docker container --help

## Display Docker version and info
docker --version
docker version
docker info

## Execute Docker image
docker run hello-world

## List Docker images
docker image ls

## List Docker containers (running, all, all in quiet mode)
docker container ls
docker container ls --all
docker container ls -aq


docker run

  • -d background 執行
  • -p [docker port]:[外部 prot] 指定 port 對應

docker run -d -p 4000:80 friendlyhello

docker container

  • ls 列出 container

$ docker container ls
CONTAINER ID        IMAGE               COMMAND             CREATED
1fa4ab2cf395        friendlyhello       "python app.py"     28 seconds ago

  • stop [container id] 停止指定的 container

docker container stop 1fa4ab2cf395

docker images

  • 列出 images

$ docker images

REPOSITORY               TAG                 IMAGE ID            CREATED             SIZE
friendlyhello            latest              d9e555c53008        3 minutes ago       195MB
gordon/get-started         part2               d9e555c53008        3 minutes ago       195MB
python                   2.7-slim            1c7128a655f6        5 days ago          183MB
...

  • 等同 docker image ls

$ docker image ls


docker build -t friendlyhello .  # Create image using this directory's Dockerfile
docker run -p 4000:80 friendlyhello  # Run "friendlyhello" mapping port 4000 to 80
docker run -d -p 4000:80 friendlyhello         # Same thing, but in detached mode
docker container ls                                # List all running containers
docker container ls -a             # List all containers, even those not running
docker container stop <hash>           # Gracefully stop the specified container
docker container kill <hash>         # Force shutdown of the specified container
docker container rm <hash>        # Remove specified container from this machine
docker container rm $(docker container ls -a -q)         # Remove all containers
docker image ls -a                             # List all images on this machine
docker image rm <image id>            # Remove specified image from this machine
docker image rm $(docker image ls -a -q)   # Remove all images from this machine



參考
https://docs.docker.com/get-started/














2019年8月16日 星期五

Git - 相關常用指令


  • SSL 憑證問題
    1. git 從 2.14 版起支援 windows 的憑證存放區設定
    2. 使用 git config --global http.sslBackend schannel 指令啟用,會跳出帳號密碼視窗讓你輸入
  • pwd
    • 顯示目前路徑
  • cd
    • 切換路徑
  • git status
    • 顯示目前 branch 狀態
  • git add [path/file_name]
    • 將檔案移到 stage 區
  • git reset HEAD [path/file_name]
    • 將檔案從 state 區移回到 working area 區,修改還在
  • git checkout [branch]
    • 切換 branch
  • git branch
    • git branch -d [branch]
      • 刪除 [branch]
    • git branch -D [branch]
      • 強制刪除 [branch]
  • git push [origin] :[branch]
    • 刪除遠端 branch
    • origin 指的是遠端主機的名字
    • [-f | -force ] 強制覆蓋遠端
  • git checkout -b [new_branch] [old_branch]
    • 建立 [new_branch] 且複製 [old_branch]
    • 可將 [new_branch] reset soft,用來重新整理 commit 點
  • git show [commit_id]
    • 顯示 [commit_id] 修改了那些檔案與內容
    • --no-patch 不顯示檔案與內容,只顯示 commit message
  • git commit --amend --no-edit
    • 直接將修改的檔案加入上次的 commit
    • --no-edit 不修改 commit message

2019年5月21日 星期二

C# - 內送的表格式資料流(TDS) 遠端程序呼叫(RPC) 通訊協定資料流不正確


今天在跨 DB 批次塞資料的時候出現這個錯誤,












一開始以為是某筆資料問題、或是組 Insert SQL 哪邊沒處理好,
查了好久終於找到是寫 Log 的地方存檔錯誤,
根據參數 @p5 推斷出對應的欄位,
該欄位的資料型態是 VARCHAR(MAX),
於是乎終於在 GOOGLE 下對了關鍵字
"c# varchar max TDS RPC"

然後找到了發生一樣問題的文章
使用DbCommand傳遞參數發生例外
SQLCLR-SqlString Max Size 8000 Limitation

根據文章我的理解是這樣的,
在產生 Insert SQL 的時候,會去計算內容大小,
8000 以內跟 8000 以上產生的 statement 不一樣,
但如果內容有中文時,會造成計算上的錯誤,
所以就出現這個錯誤訊息了,
最後改法沒用文章裡面的解法,
直接把 VARCHAR(MAX) 改成 NVARCHAR(MAX) 結束。

2019年3月15日 星期五

SQL SERVER - 如何讓 sa 可以連線

被問太多次了,只好寫一下...
  1. 設定 SQL Server 驗證模式

    1. 選到 SQL SERVER 滑鼠右鍵【屬性(R)】
    1. 在【伺服器屬性】選【安全性】,改成【SQL Server 及 Windows 驗證模式(S)】
    1. 【確定】之後需要重啟SQL Server服務
  1. 設定 sa 為可登入

    1. 【安全性\登入】選【sa】,在【sa】上滑鼠右鍵【屬性(R)】。如果 sa 不能登入應該會有紅色 x 符號,不確定就跟著設定一次。
    1. 在【登入屬性】中,選【一般】,修改【密碼】,剩下的屬性如圖。
    1. 接著選【狀態】,設定如圖。確定之後應該就可以用 sa 連線


2019年3月12日 星期二

SQL - 清空 DB 所有 TABLE



DECLARE @name VARCHAR(50)

DECLARE table_cursor CURSOR  FOR
SELECT name FROM sys.tables
OPEN table_cursor
FETCH NEXT FROM table_cursor INTO @name;

WHILE @@FETCH_STATUS = 0 
BEGIN

PRINT 'TRUNCATE TABLE ' + @name;
EXEC ('TRUNCATE TABLE ' + @name);

FETCH NEXT FROM table_cursor INTO @name;
END

CLOSE table_cursor; 
DEALLOCATE table_cursor; 

SQL SERVER - 查詢 TABLE 大小、清除 TABLE 未使用空間,縮小 DB 檔案


先查詢每個 TABLE 占用的空間大小


SELECT 
    t.NAME AS TableName,
    --s.Name AS SchemaName,
    p.rows AS RowCounts,
    SUM(a.total_pages) * 8 /1024 AS TotalSpaceMB, 
    SUM(a.used_pages) * 8 /1024 AS UsedSpaceMB, 
    (SUM(a.total_pages) - SUM(a.used_pages)) * 8 /1024 AS UnusedSpaceMB
FROM 
    sys.tables t
INNER JOIN      
    sys.indexes i ON t.OBJECT_ID = i.object_id
INNER JOIN 
    sys.partitions p ON i.object_id = p.OBJECT_ID AND i.index_id = p.index_id
INNER JOIN 
    sys.allocation_units a ON p.partition_id = a.container_id
LEFT OUTER JOIN 
    sys.schemas s ON t.schema_id = s.schema_id
WHERE 
    t.NAME NOT LIKE 'dt%' 
    AND t.is_ms_shipped = 0
    AND i.OBJECT_ID > 255 
GROUP BY 
    t.Name, s.Name, p.Rows
ORDER BY 
    --t.Name
SUM(a.total_pages) DESC

清空 TABLE

TRUNCATE TABLE XXX_TABLE

修改 DB 的復原模式為簡單


ALTER DATABASE IAM_SKL
SET RECOVERY SIMPLE
--SET RECOVERY FULL;
GO

縮小 DB 實體檔案,清出未使用空間

USE XXX_DB;
DBCC SHRINKFILE (XXX_DB, 7);
GO
DBCC SHRINKFILE (XXX_DB_log, 7);
GO

修改 DB 邏輯名稱 - 備份還原時使用

Alter DataBASE DB_NAME
MODIFY FILE(NAME= 'DB_NAME' ,NEWNAME= 'DB_NAME-BACKUP' )
Alter DataBASE DB_NAME
MODIFY FILE(NAME= 'DB_NAME_log', NEWNAME= 'DB_NAME-BACKUP_log' )


2019年3月10日 星期日

VS2013 - Win10 無法安裝


電腦重新安裝之後開始要安裝開發環境...
結果第一步就卡關!
VS2013 無法安裝!!!
而且.....也看不出什麼原因!!!
google 了一下,網路上最先找到的這個
解決Windows 10 X64無法安裝Visual Studio 2013
不過這個看起來是針對已經安裝過 VS2013 ,然後無法安裝語言包的問題,
所以我不是這個問題,這上面提到的解法也無法幫我解決!

後來又找到這篇
win10不能安装vs2013,怎么解决?
直接跟著第二點作法將安裝檔的快取清除(如下)

卸载所有.net framework,并且清除VS 安装缓存,清除缓存的命令如下所示:
1.cd "C:\ProgramData\Package Cache"
2.del /F /S *.msiDelete /F /S *.cab :重启电脑,点击安装。

然後也沒重開機就安裝成功了!

2019年2月18日 星期一

免錢系統硬碟移轉筆記

最近拿 PC 來做些正經事,
所以內附的 120GB SSD 馬上就不夠用了!
原本考慮買個 512GB 的 M2 來使用,
不過想想還是先拿之前 NB 換下來的 240GB SSD 來撐一陣子吧~~~

由於原本的硬碟有 PC 廠商的還原磁區想要一起移轉到新硬碟,
所以沒有用光碟安裝,而且 PC 也沒光碟機~~~

於是開始 google 一下硬碟移轉的軟體,

先找到了一款 Renee Becca,
安裝之後才發現免費的不會複製開機磁區,放棄~~~~

後來又找到 EaseUS Todo Backup Free 11.5
複製成功,隨即又用 EaseUS Partition Master 13.0 來調整分割區,
結果無法開機,也無法用修復的方式修復~~~
想說會不會是因為調整過分割區的關係,
於是刪除分割區重新複製,結果一直複製失敗!
最後只好放棄~~~

而且 EaseUS Todo Backup Free 11.5 會常駐記憶體,
刪除了又會馬上自己起來,跟病毒一樣我不愛!

最後在 mobile01 的討論串中找到 MiniTool Partition Wizard
複製成功,也可以開機~~~
但不確定是不是 MiniTool Partition Wizard 就順便幫我安裝了  Avast Free Antivirus ?
但目前可以正常使用就是了,
但有潔癖的我應該會重新安裝吧!
另外裡面有提到 - 分區助手,下次可以試試看~~~

2019/02/19 更新
剛剛發現 win 10 無法[重設此電腦],

看起來應該是[修復磁碟分割]變成[主要磁碟分割]的關係



















但是在 MiniTool Partition Wizard 看起來感覺沒什麼不一樣?
有沒有可能是原本的硬碟的[重設此電腦]就是壞的呢?



一些參考的網址

其實是介紹 Renee Becca - 5款流行硬碟克隆軟體對比

EaseUS Todo Backup Free  免費版 + AOMEI Partition Assistant Standard Edition 免費版 - [教學] 快速正確轉移 SSD 上的作業系統 ~ UEFI 介面 Windows 10 OS 搬家教學

Easeus Partition Master Free 13.0 - 別用盜版的Partition Magic了,來試試免費的硬碟分割工具—Easeus Partition Master Free 13.0中文版吧!

EaseUS Todo Backup - 如何複製Windows到新硬碟上去?使用EaseUS Todo Backup教學

mobile01 討論串 - 新的SSD早上拿到了,請問WIN10系統遷移問題....