2018年12月31日 星期一

Win10 開機啟動目錄位置 (解決UAC問題)

如何設置程式在Win10 開機時自動啟動 (解決UAC問題)

1. 檢查開機啟動設定
  1. 開始 > 設定  > 應用程式 > 啟動. 檢查程式是否設定為 開啟。
  2. 若無啟動程式選項,可 右鍵點選 開始 > 工作管理員 > 開機 頁籤,右鍵點選 程式 選擇 啟用。 

2. 新增開機啟動程式
  1. 點選 開始,找尋要新增的 程式。
  2. 右鍵點選該程式,選擇 更多,選擇 開啟檔案位置。(如無該選項,表示該程式無法自動啟動)。
  3. 開啟檔案位置後, 按下 Windows logo key R, 輸入 shell:startup (新增個人使用者),輸入 shell:common startup (新增全體使用者), 選擇 確定 可開啟啟動目錄。
  4. 將該程式複製貼上至啟動目錄即可。

3. 在UAC啟用的情況下,如果程式啟動時需要管理者權限,則需要改用下列方式來處理
  1. 以 SpeedFan 為例。
  2. 首先以 SpeedFan 為名建立工作排程
  3. 點選 搜尋,輸入 taskschd ,開啟 工作排程器 > 建立工作,名稱輸入 SpeedFan,核取下方「以最高權限執行」, 點選 動作 頁籤,點選 新增瀏覽 至 speedfan.exe 所在目錄,選取 speedfan.exe,點選 確定,結束新增。再點選 確定,結束建立工作。
  4. 完成後可以在工作排程器看到新增的 SpeedFan 排程。
  5. 接下來在桌面建立捷徑
  6. 在桌面按右鍵選擇新增捷徑,輸入 schtasks /run /tn "SpeedFan" (名稱必須與排程名稱相同),點選 下一步,輸入 SpeedFan,點選 完成
  7. 右鍵點選 SpeedFan 捷徑,選擇 內容 > 變更圖示,選擇 speedfan.exe 來變更圖示。
  8. 再將捷徑複製貼上至啟動目錄,即可完成免UAC啟動。

2018年9月3日 星期一

免費取得憑證

SSL For Free 免費提供 90 天的憑證

連線至SSL For Free網站:
https://www.sslforfree.com/

輸入要申請憑證的網址(如:www.example.com),點選 Create Free SSL Certificates。

接下來進行申請憑證網址的驗證:
選擇 Manual Verification,再選擇 Manually Verify Domain,之後點選
Download File #1
Download File #2

並將下載的檔案依照指示放在 http://www.example.com/ 及 http://example.com/ 的
.well-known/acme-challenge/
目錄下。

要特別留意的是,在Windows建立 .well-known 目錄時,需要在名稱後再加上一個點(.),方可建立以點(.)為起始的目錄。

之後再選擇 Download SSL Certificate,就可以把憑證下載下來。

下載的檔案是 sslforfree.zip ,裡面包含三個檔案:
certificate.crt
private.key
ca_bundle.crt

再搭配 apache 的 SSL 設定,即可將網站的憑證啟用。

最後,輸入 Email 申請到期提醒,如此在到期前一週,會收到提醒通知,再來重新申請憑證。

免費網域及主機註冊服務申請

Freenom 提供 .tk 等免費網域

連線至
https://www.freenom.com/

輸入要申請的網域名稱,如有可用的網域名稱,則選擇 Get it now,之後再選擇 Checkout。

選擇要使用的期限,免費最長期限為12個月。

輸入Email,完成驗證後,接著輸入基本資料(姓名、公司名稱、電子郵件、地址、連絡電話)及密碼後 ,即可取得網域。


取得網域後,可使用 Freenom 提供的免費網域主機註冊服務(DNS)
以先前註冊網域的帳號密碼登入
https://my.freenom.com/

選擇 Services,再選擇 My Domains,再選擇 Manage Domain,可進入網域管理畫面。

進入網域管理畫面後,選擇 Manage Freenom DNS,即可進入主機註冊畫面。

輸入主機名稱,選擇TTL時間長度,輸入對應的IP位主,選擇SAVE後,即可完成註冊登錄。
如果要註冊網域名稱本身的IP位址,可以在主機名稱輸入空白即可。






2018年8月25日 星期六

SCP Through SSH Tunnel


# 經由 host_gateway 將 file_remote 從 host_remote 複製到 本機
# 利用 ProxyJump 功能 (新版SSH支援)
scp -o 'ProxyJump user_gateway@host_gateway' user_remote@host_remote:file_remote file_local

2018年6月4日 星期一

變更 Chrome 的 titlebar (在平板電腦上)

進入 chrome://flags/#windows10-custom-titlebar

將其設置為 disable 可在平板電腦上維持畫面右上方半高的 min/max/exit buttons

2018年4月5日 星期四

IDX/SUB字幕 轉換為 SRT字幕

從DVD轉檔得了影片和字幕,影片沒問題,可以順利上傳,但字幕是IDX/SUB,無法上傳至Google Drive或YouTube,成為播放時的字幕。

解法1:
將影片與IDX/SUB字幕合併,如此播放時就會有字幕;但把影像合併,顯然需要相當時間,且合併後,會永遠保持在影片內,較無彈性。

解法2:
從網路上下載影片的SRT字幕,如果運氣好,版本和影片完全一致,無需修改,就可以順利使用。
如果版本有點差異,時間軸就會不完全吻合,此時就要調整SRT的時間軸。此時,Aegisub和SrtEdit可以幫上忙,如果是整體時間軸的前後移動。但,如果是每間隔一段時間軸,就要重新調整間距,那調整工作就會相當繁瑣。
如果下載的中文版是簡體字版,就會有用語差異的問題,這時候還需要簡繁轉換,及一些詞語轉換。這也會需要一點工時。

解法3:
將IDX/SUB轉換為SRT,這需要工具協助把圖形轉換為文字。

  1. SubRip 1.17.1可以將SUB的時間軸及每句字幕的圖檔轉換為BMP檔,形成成百上千的單句字幕圖檔。

    1. 選擇VOB檔案->打開文件目錄->選擇字幕語言版本->選擇字幕保存為BMP,加上時間及尺寸->開始->輸入暫存的檔案名稱->保存
    2. 預設選擇I-Author->Custom colors and contrast->調整顏色讓圖形文字更容易辨識->確定後會開始自動產生圖檔
    3. 輸出格式->設定輸出格式,選擇Text Format下的SubRip(*.srt)->另存檔案輸出 .srt 檔

  2. 再利用SubToSrt 3.13讀取SubRip產生的srt和bmp檔,就可以經由OCR自動辨識,就可以把圖形轉換為文字,過程中部分無法自動辨識的文字,會需要人工協助鍵入,但整體辨識率還算不錯,人工協助辨識的部分還可以成為字庫,提高之後的文字辨識率。


解法3成功的產出我要的字幕,很棒!

2018年2月24日 星期六

XAMPP 更新...

修正httpd.conf下列內容:

  1.  取消目錄瀏覽
  2. 將logs定時roration

取消目錄瀏覽,找到:
<Directory "D:/xampp/htdocs">
Options Indexes FollowSymLinks Includes ExecCGI
AllowOverride All
Require all granted
</Directory>

刪除其中的 Options 改成
<Directory "D:/xampp/htdocs">
Options FollowSymLinks
AllowOverride All
Require all granted
</Directory>

將logs做rotation
ErrorLog "|D:/xampp/apache/bin/rotatelogs.exe D:/xampp/apache/logs/error-%Y%m%d.log 86400"
CustomLog "|D:/xampp/apache/bin/rotatelogs.exe D:/xampp/apache/logs/access-%Y%m%d.log 86400" combined

將 / 重導至 HTTPS
<If "%{HTTP_HOST} != 'www.sclai.tk'">
    Redirect "/" "https://www.sclai.tk/"
</If>

<If "%{HTTPS} != 'on'">
    Redirect "/" "https://www.sclai.tk/"
</If>

修正httpd-ssl.conf下列內容:

  1. 將logs定時rotation
  2. #ErrorLog "D:/xampp729/apache/logs/error.log"
    ErrorLog "|D:/xampp729/apache/bin/rotatelogs.exe D:/xampp729/apache/logs/error-%Y%m%d.log 86400"

    #TransferLog "D:/xampp729/apache/logs/access.log"
    TransferLog "|D:/xampp729/apache/bin/rotatelogs.exe D:/xampp729/apache/logs/access-%Y%m%d.log 86400"

    #CustomLog "D:/xampp729/apache/logs/ssl_request.log" \
              "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
    CustomLog "|D:/xampp729/apache/bin/rotatelogs.exe D:/xampp729/apache/logs/ssl_request-%Y%m%d.log 86400" \
              "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"

  3. 調整ServerName及ServerAdmin
  4. #ServerName www.example.com:443
    #ServerAdmin admin@example.com
    ServerName www.myname.com:443
    ServerAdmin nobody@gmail.com

  5. 配合sslforfree調整憑證檔案(全部憑證置放於conf/sslforfree/目錄下)
  6. #SSLCertificateFile "conf/ssl.crt/server.crt" SSLCertificateFile "conf/sslforfree/certificate.crt"

    #SSLCertificateKeyFile "conf/ssl.key/server.key" SSLCertificateKeyFile "conf/sslforfree/private.key" SSLCACertificateFile "conf/sslforfree/ca_bundle.crt"

修正php.ini的下列內容:

  1.  設定 PHP 的時區
  2. 開啟imap extension

設定PHP的時區
找到
[Date] ;date.timezone =

改成
[Date] date.timezone = "Asia/Taipei"

或者在 php 中加入:
date_default_timezone_set("Asia/Taipei");

就可以確保時區的正確性。

開啟imap extension
找到
;extension=imap

改成
extension=imap

2018年2月18日 星期日

Hard Links, Junctions, and Symbolic Links

在NTFS上有Hard link,Junction和Symbolic link三種,簡單來說:

  1. Hard Link就是檔案本身,僅適用在本機磁碟
  2. Junction是hard link的一種,專用於目錄
  3. Symbolic link本身就是一個檔案,指向鎖鏈結的檔案或目錄
詳細內容可參考:

可使用 mklink 來建立三種鏈結。

C:\>mklink /?
建立符號連結。

MKLINK [[/D] | [/H] | [/J]] Link Target

        /D      建立目錄符號連結。預設是檔案符號連結。
        /H      建立永久連結而不是符號連結。
        /J      建立目錄連接。
        Link    指定新符號連結名稱。
        Target  指定新連結參照的路徑 (相對或絕對)。

2018年2月17日 星期六

Apache logs rotation

XAMPP中apache的(\xampp\apache\logs]) access log和error log會隨時間增長,
可利用 (\xampp\apache\bin\) rotatelogs.exe 來 rotate log:

修改 (\xampp\apache\conf\) httpd.conf,運用 rotatelogs.exe 每 86400 秒產生一個檔案:
#ErrorLog "logs/error.log"
ErrorLog "|D:/xampp/apache/bin/rotatelogs.exe D:/xampp/apache/logs/error-%Y%m%d.log 86400"

#CustomLog "logs/access.log" combined
CustomLog "|D:/xampp/apache/bin/rotatelogs.exe D:/xampp/apache/logs/access-%Y%m%d.log 86400" combined

如啟用SSL,須同步修改 http-ssl.conf:
#ErrorLog "D:/xampp/apache/logs/error.log"
ErrorLog "|D:/xampp/apache/bin/rotatelogs.exe D:/xampp/apache/logs/error-%Y%m%d.log 86400"

#TransferLog "D:/xampp/apache/logs/access.log"
TransferLog "|D:/xampp/apache/bin/rotatelogs.exe D:/xampp/apache/logs/access-%Y%m%d.log 86400"

#CustomLog "D:/xampp/apache/logs/ssl_request.log" \
          "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
CustomLog "|D:/xampp/apache/bin/rotatelogs.exe D:/xampp/apache/logs/ssl_request-%Y%m%d.log 86400" \

          "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"