Quantcast
Channel: 簡睿隨筆
Viewing all 904 articles
Browse latest View live

ppInk、gInk:免費、開源的螢幕標註+電子白板畫筆工具,簡報、教學錄影必備!

$
0
0

今天介紹兩款系出同門的螢幕標註(screen annotation)+電子白板工具:ppInk與gInk,不僅免費且為GitHub開放原始碼的專案,ppInk由gInk擴充而來,添加了除了畫筆以外的更多功能,Epic Pen與ZoomIt能完成的工作也能用它們來達成,大力推薦給經常需要簡報或教學的朋友。

01|700

1. 安裝

到[ppInk Releases](Releases · pubpub-zz/ppInk)網頁下載後解壓縮即可使用,如果有遠端控制ppInk需求的下載完整版(ppInk.版本.zip),沒有遠端控制需求的下載精簡版(ppInkS.版本.zip)。ppInk完整版可透過http://localhost:7999/供Streamdesk / Matric / Touchportal…等工具連線使用,遠端連線的操作我並未使用,有需求的朋友請自行測試。

ppInk也有與OBS錄影整合的功能,因為我沒有使用OBS,請有需求的朋友請自行測試。

2. 設定

在開始使用ppInk之前最好先設定,否則會找不到滑鼠游標(此時按下〔Esc〕即可回復脫離螢幕標註模式),ppInk的設定稍微複雜,第一次使用的朋友們務必看到最後,以免發生操作困難的狀況。在系統托盤(System Tray)持有到ppInk圖示按右鍵→【Options…】即可開啟設定對話窗。

先來設定比較單純的畫筆→【Pens】。

2.1. 畫筆設定

ppInk有編號0~9共10支畫筆,開啟ppInk時預設的畫筆是編號最小的畫筆,每支畫筆能分別設定透明度、粗細與是否消失:

  1. 透明度(Alpha):有預設值Pencil(鉛筆,255)、Highlighter(螢光筆,80)兩種,數字越小越透明。可自行輸入設定值。
  2. 粗細寬度(Width):有細(30)、一般(80)、粗(500)三種,數字越大越粗。可自行輸入設定值。
  3. 消失(Fading):畫筆點擊後超過幾秒(預設0.1秒)即消失,勾選者才會有消失功能。
  4. 線條樣式(Line Style):點擊樣式可變更為線條等6種樣式。

01|700

2.2. 一般設定

最上面是工具列設定,勾選者會出現在工具列上,工具列列舉了ppInk所有的功能:

  1. 畫筆:畫面在第二個分頁設定,一定會出現在工具列
  2. 畫筆形狀:預設是任意手繪形狀,其他還有直線(l)、矩形(r)、圓形(o)、箭頭(a)、遞增編號(n)、文字輸入(t)等不同選項
  3. 剪貼畫(Cliparts):
    1. 選擇圖形(按c)並點擊插入
    2. 插入貼畫1(/)點擊插入或拖拉矩形變更大小
    3. 插入貼畫2(*)點擊插入或拖拉矩形變更大小
    4. 插入貼畫3(-)點擊插入或按著持續插入
  4. 橡皮擦(e
  5. 套索(Lasso q):多重選擇ppInk物件,進入套索狀態後:
    1. 左鍵:點擊或拖拉區域選擇物件
    2. 右鍵:移除已選擇物件
    3. 雙擊:切換選擇/不選擇
    4. 多重操作:由工具列選擇移動、變更屬性、變更大小或旋轉
  6. 箭頭游標(Ctrl+Alt+G) :1. 啟動ppInk繪圖狀態,2. 繪圖狀態/游標狀態切換,可暫時脫離繪圖模式讓滑鼠正常操作,再返回繪圖模式
  7. 吸附切換(g):切換吸附功能,例如在兩個物件間拉箭頭線條會有吸附作用
  8. 局部放大(z):Zoom In功能
  9. 顯示/隱藏切換(v
  10. 螢幕截圖(k
  11. 儲存(Ctrl+Shift+S)/載入(Ctrl+Shift+L)繪圖
  12. 聚光燈模式:按 Alt不放
  13. 結束ppInk功能:按Esc

01|700

2.3. 其他設定重點

  1. 輔助工具列(Secondary Toolbar):部份選項有多個選擇,例如矩形有空心、實心、白色填充等多個選擇,若未勾選則每次點擊切換一個選項
  2. 畫筆顯示兩行(Show pens on two lines):勾選讓畫筆顯示成兩行
  3. 顯示浮動視窗(Show Floating Window):啟用繪圖模式的浮動視窗
  4. 背景面板(Background Board):開啟ppInk工具列時螢幕使用的背景色
  5. 畫布游標(Canvas cursor):進入ppInk後游標的樣式,有大箭頭和筆尖兩種
  6. 工具列在打開時折疊(Toolbar folded at opening):勾選後工作列只顯示>符號
  7. 白色工作列圖示(Use white tray icon):工作列背景太深寸可勾選以正常顯示ppInk圖示
  8. 準確的游標(Spot On Cursor):繁體中文翻譯錯誤,勾選後按Alt會進入聚光燈功能

修改設定後記得點擊右下角的儲存設置檔(Save to Files)。

3. 相關鏈接

##您可能也會有興趣的類似文章


[Obs#89] QuickAdd巨集快速開啟設定視窗-Step by step;直接使用window.open

$
0
0

1. 前言

前一集影片介紹使用Advanced URI+Shell Commands來達成以最少的點擊而達成快速的設定,最後使用QuickAdd巨集和Shell Commands的{{clipboard}}剪貼簿以選單方式開啟不同的設定,透過網友提示,其實有更簡單、更直接的方法來達成,因此本片來修訂腳本的寫法。

2. QuickAdd腳本

點在最後面的window.open("obsidian://advanced-uri?vault=MOC&settingid=" + choice);,用window.open直接開指選定的settingid。

2.1. advanced_uri.js

module.exports = advanced_uri;

// 用window.open直接開啟advnace uri的ettingid指定的設定視窗
async function advanced_uri(params) {
  quickAddApi = params.quickAddApi;

  const aTexts =   [ "Hotkeys", "社群外掛", "外掛瀏覽器", "主題瀏覽器", "Shell Commands", 
    "QuickAdd", "cMenu", "BRAT" ];
  const aValues = [ "hotkeys", "community-plugins", "plugin-browser", "theme-browser", "obsidian-shellcommands", 
    "quickadd", "cmenu-plugin", "obsidian42-brat" ];
  let choice = await quickAddApi.suggester(aTexts, aValues);
  //console.log("choice", choice);

  //this.quickAddApi.utility.setClipboard(choice);
  window.open("obsidian://advanced-uri?vault=MOC&settingid=" + choice);

  return choice;

3. 設定步驟

  1. 用檔案總管在Obsidian儲存庫任意資料夾新增advanced_uri.js,建議將所有的.js放置在獨立的資料夾,方便管理與修改等操作。
  2. 貼入advanced_uri.js原始碼並存檔。
  3. 開啟QuickAdd選項→點擊下方的【Manage Macros】
  4. 在最下方輸入巨集名稱→點擊【Add macro】
  5. 在User Scripts選擇advanced_uri.js→按【Add】
  6. 回到QuickAdd Settings,在右下角選擇Choice以建立QuickAdd選單的選項,輸入名稱後按【Add Choice】

設定完成後即能在QuickAdd選單裡來使用自訂的快速設定了。

4. 相關鏈接

5. 教學影片

##您可能也會有興趣的類似文章

VREW:準確率頗高的語音轉文字工具-自動產生YouTube字幕的另一選擇

$
0
0

Vrew是來自韓國的免費語音辨識軟體,除了能將影片、音訊檔轉換為文字外,也提供了簡便的字幕編輯功能,對於需要製作影片字幕或逐字稿的場合,能方便的產生字幕檔(.srt)與文字檔(.txt),產生檔案時還能選擇自動翻譯成多種語言。Vrew提供了線上試用的網站,有興趣的朋友可以先體驗一番,覺得有用處時再下載使用。

Vrew看起來是Electron環境的網頁應用,有Windows、macOS與Linux版本,分析語音時必須連上網路才能正常運作。若想要不限時數使用必須免費註冊,不註冊的話一個月只能使用辨識90分鐘。

目前支援的語音識別語言:華語(中文,特別註明繁體,不知會否是詞彙上的差異?)、英語、日語、韓語、西班牙語。

1. 辨識說明

  1. 功能表【文件】→【新項目】,指定好要處理的檔案。
  2. 選擇要辨識的語言後按【確認】。

01|400

  1. 右上角出現開始分析的訊息。
    01|400
  2. 語音分析完成後,Vrew依斷句顯示每句成一個影片片段(Clips)。

2. 影片片段操作

每個片段由4個部份組成:
01|700
1. 左側縮略圖:這句話的影片縮略圖
2. 中間上方:每個字一格方塊,可做下列操作:

Clip方塊組成

  1. 滑鼠游標移動到方塊上方會顯示對應影片
  2. 雙擊顯示該字的長度,並可拖拉與播放
  3. 移動游標到某個方塊後可以按Enter分割其後方塊到下一句或
  4. Delete刪除其後方塊
  5. 在句末按Delete可合併下一句
    01|700
  6. 中間下方:字幕文字輸入框,按Ctrl+E合併下一句
  7. Tab可播放目前影片片段的語音
  8. 右側上方:片段的開始時間
  9. 右側下方:片段長度

右鍵功能表也能操作:
01|900

3. 字幕修改

雖然Vrew的辨識正確率算高,但斷句通常過短(可能因人而異),如果逐句操作或EnterDelete(或Ctrl+E)操作又太花時間,我琢磨出的操作步驟如下:

  1. 將產生的字幕存成文字檔(.txt):功能表【文件】→【導出為另一種類型】→文本
  2. 另一個更快產生出文字檔的方式:影片片段區域右鍵功能表→【複製全部字幕】,再貼入編輯器存成.txt
  3. 在文字編輯器裡處理斷句,此時不用修正錯字,只要快被速合併過短句子或明顯示的斷句問題
  4. 回到Vrew,功能表字幕→導入稿件,Vrew會自動匹配文字檔和影片片段
  5. 匹配完成後再逐句調整
  6. 功能表【文件】→【導出為另一種類型】→【字幕文件】,產生.srt檔案,可勾選自動翻譯的字幕語言
    • 繁體中文會自動產生不必選擇
    • 找不到韓語,要找朝鮮語

後續可以用Vrew直接產生帶字幕的影片,或到慣用的剪輯軟體繼續調整。

4. 相關鏈接

5. 教學影片

##您可能也會有興趣的類似文章

[AHK#99] 偵測並啟動Windows服務

$
0
0

1. 問題描述與需求

同事提了一個狀況,如何確保某個每天定時重新啟動的服務有正確的啟動,在遇到啟動異常且找不到明確原因後,最終提供了偵測與重新啟動的作法來處理,雖然不算是最好的解法,但至少多了一層保障。

簡單且明確的需求直接用AutoHotkey來處理。以先前介紹過的Gitea服務當範例。

2. 邏輯說明

偵測執行應用的作法有很多個,例如 #IfWinActive, ahk_exe, wt 或 if WinActive(“wt”) 等,但目前要偵測的是服務的執行狀態,最簡單的作法是執行 sc.exe query,取得sc的輸出結果,若執行狀態是STOPPED表示未啟動,再叫用 start_service.bat 啟動之。

2.1. sc.exe

[!REF] sc用法
功能: SC 是一個用來和服務控制管理員及服務溝通的命令列程式
語法: sc <server> [command] [service name] <option1> <option2>...
command: query – 查詢服務的狀態,或列舉服務類型的狀態

Z:\test\gitea&gt;sc query gitea

SERVICE_NAME: gitea
        TYPE               : 10  WIN32_OWN_PROCESS
        STATE              : 4  RUNNING
                                (STOPPABLE, NOT_PAUSABLE, ACCEPTS_SHUTDOWN)
        WIN32_EXIT_CODE    : 0  (0x0)
        SERVICE_EXIT_CODE  : 0  (0x0)
        CHECKPOINT         : 0x0
        WAIT_HINT          : 0x0

2.2. 啟動批次檔

啟動服務可以用傳統的 net.exe 或 sc start 命令,此處用 net.exe。

net start gitea

3. 腳本原始碼

  • 將sc query 服務名導出到chk-is-running.txt
  • 讀取chk-is-running.txt檔案,找到STATE字串,判斷它的值是否是RUNNING,不是RUNNING就執行start_service.bat
;; chk-is-running  服務名稱 系統目錄  啟動批次檔名
;; chk-is-running gitea z:\test\gitea start_service.bat
#SingleInstance Force

ServiceName = %1%    ;; "gitea"
ServiceDir = %2%  ;;"z:\test\gitea"   ;; 系統目錄
StartBat = %3%  ;;"start_service.bat"  ;; 啟動服務的批次檔

ServiceChk = sc query "%ServiceName%" > %ServiceDir%\chk-is-running.txt
runwait, %COMSPEC% /C %ServiceChk%, ,Hide  

FileRead, FileContent, %ServiceDir%\chk-is-running.txt
Loop, Parse, FileContent, `n,`r
{
FileLine = %A_LoopField%
Lookfor = STATE
  IfInString, FileLine, %LookFor%
  {
    StringGetPos, pointer, FileLine, :
    StringRight, ServerStatus, FileLine, StrLen(FileLine) - pointer - 5
    if (ServerStatus == "RUNNING") {
      FileAppend, % PID . " " . A_YYYY . "-" . A_MM . "-" . A_DD . " " . A_Hour . ":" . A_Min . ":" . A_Sec . " " . ServiceName . " is running " . " `n", %ServiceDir%\chk-is-running.log
    } else {
      Run, %ServiceDir%\%StartBat% , %ServiceDir%, Hide|UseErrorLevel, PID
      ;;MsgBox %ErrorLevel%
      FileAppend, % PID . " " . A_YYYY . "-" . A_MM . "-" . A_DD . " " . A_Hour . ":" . A_Min . ":" . A_Sec . " After net start " . ErrorLevel . " `n", %ServiceDir%\chk-is-running.log
    }
  }
}
Return

4. 相關鏈接

5. 教學影片

##您可能也會有興趣的類似文章

Free Online Hookup Free

$
0
0

Hookups Dating Sites

Naughty Dating Service

No cost hookup websites can be located anywhere via the internet. However, there is one major problem with most of them. When you go to their websites, they may advise you that you can get their solutions definitely free of fee. But then when you try and basically become a member of the website, you will probably find out that you are currently not in fact made it possible for to do so.So, the facts that free hookup websites supply as a way for these people to allow their people try their expert services for free? Perfectly there are several reasons behind it. First and foremost, they want new people to come to their websites. A lot more new persons reach their websites, a lot more cash they should earn in the advertisements.

Safety and anonymity are the main values

But what about people who are looking to find lovers on these blogs? If they want to have partners, they need to pay the price that the free websites ask for their services. They will need to fork out because there are quite a few other people who are accomplishing the identical point as you may. While you will be unable to get the top notch online dating sites yourself, we have a technique to get hookup websites that are superior to all of the sleep.Everything is dependant on obtaining the finest free hookup websites. There are various different kinds of systems that men and women use when looking for connections. Some use social networking systems, and others makes use of the most popular going out with websites. If you want to be able to find new people to get dates with, you will need to use the best of the best.What are these websites that you need to use? If you want to meet people for sexual encounters, you can use the adult websites. On the other hand, you can also use the social networking websites for casual encounters and even friendships if you want to make new friends. You should definitely look into the adult websites and the social networking platforms.The best of the best hookup dating sites will allow you to post adulfriendfinder a free profile if you want to find sex partners. This is why it is possible to know other people in regards to what you need in the possible partner. You can discuss your bodily capabilities and you will also identify of your pursuits. You have got to make sure that you acquire loads of images as this is where by individuals is able to view you. In some cases, you might even post a photo of you naked, but this should be seen as a compliment to your profile.

Is It Safe to Meet a Stranger for a One-Night Stand?

When you use these websites, you will be able to meet people that have similar interests and needs as you. If you are able to meet people that share the same interests and needs as you, then you will have a much better chance of actually connecting with someone that you might think about dating or having sex with. These websites help you satisfy persons that you might not have had to be able to fulfill otherwise. Free hookup online dating sites let individuals to meet individuals who are within their individual areas.

Free Nude Dating Sites

Despite the fact that these websites allow it to become easy for people to hookup, they nonetheless want to ensure the site is as person-hospitable as it can be. These websites have done aside with all the pictures as well as the elegant backdrops. They have got instead dedicated to helping to make every thing as customer-warm and friendly as possible. They can supply people that have the info that they have to maintain the online dating site as customer-warm and friendly as is feasible. If a person has trouble using the website, then they should probably move onto another online dating site.您可能也會有興趣的類似文章

小小輸入 法2.6.0測試中

$
0
0

我使用中的中文輸入法是小小輸入法,最後一個正式版是2018/03/04釋出的2.5.0,時隔多年,近日又釋出了2.6.0,有在使用的朋友們可更新試試。
我目前使用後與2.5.0相比,最大的差異是候選窗的位置顯示得比較正常,跟隨游標的位置也比較準確了。

相關鏈接

##您可能也會有興趣的類似文章

    未發現類似文章

[Obs#90] Callouts擴充:CalloutTypesetting CSS Snippet

$
0
0

1. 安裝

  1. GitHub點擊【Copy raw content】圖示,將內容存入儲存庫資料夾/.obsidian/snippets/CalloutTypesetting.css檔案。
  2. 設定→外觀→重新載入CSS Snippets

2. 設定

使用Style Settings外掛設定。

3. 語法

[!TIP] 語法

 > [!Callout類型 | Typesetting]:在標準的Callout中括號裡用Pipe (|)符號增加擴充的CSS類別,可用空白分隔多個擴充類別

4. 使用範例

4.1. ltr 橫排由左到右

[!REF | ltr]+ 《錯誤》 鄭愁予
我打江南走過
那等在季節裡的容顏如蓮花般開落

東風不來,三月的柳絮不飛
你的心如小小的寂寞的城
恰若青石的街道向晚
跫音不響,三月的春帷不揭
你底心是小小的窗扉緊掩

我達達的馬蹄是美麗的錯誤
我不是歸人,是個過客…

01|700

4.2. rtl 橫排右靠對齊

[!REF | rtl]+ 《錯誤》 鄭愁予
我打江南走過
那等在季節裡的容顏如蓮花般開落

東風不來,三月的柳絮不飛
你的心如小小的寂寞的城
恰若青石的街道向晚
跫音不響,三月的春帷不揭
你底心是小小的窗扉緊掩

我達達的馬蹄是美麗的錯誤
我不是歸人,是個過客…

01|700

4.3. vertical-lr 豎排由左到右

[!REF|vertical-lr]+ 《錯誤》 鄭愁予
我打江南走過
那等在季節裡的容顏如蓮花般開落

東風不來,三月的柳絮不飛
你的心如小小的寂寞的城
恰若青石的街道向晚
跫音不響,三月的春帷不揭
你底心是小小的窗扉緊掩

我達達的馬蹄是美麗的錯誤
我不是歸人,是個過客…

01|700

4.4. vertical-rl 豎排由右到左

[!REF|vertical-rl]+ 《錯誤》 鄭愁予
我打江南走過
那等在季節裡的容顏如蓮花般開落

東風不來,三月的柳絮不飛
你的心如小小的寂寞的城
恰若青石的街道向晚
跫音不響,三月的春帷不揭
你底心是小小的窗扉緊掩

我達達的馬蹄是美麗的錯誤
我不是歸人,是個過客…

01|700

4.5. vertical-rl + wide 豎排由右到左+寬版

[!REF|vertical-rl wide]+ 《錯誤》 鄭愁予
我打江南走過
那等在季節裡的容顏如蓮花般開落

東風不來,三月的柳絮不飛
你的心如小小的寂寞的城
恰若青石的街道向晚
跫音不響,三月的春帷不揭
你底心是小小的窗扉緊掩

我達達的馬蹄是美麗的錯誤
我不是歸人,是個過客…

01|700

4.6. vertic`al-rl+keep-height 豎排由右到左+區塊高度固定

[!REF | vertical-rl keep-height]- 《錯誤》 鄭愁予
我打江南走過
那等在季節裡的容顏如蓮花般開落

東風不來,三月的柳絮不飛
你的心如小小的寂寞的城
恰若青石的街道向晚
跫音不響,三月的春帷不揭
你底心是小小的窗扉緊掩

我達達的馬蹄是美麗的錯誤
我不是歸人,是個過客…

01|700

4.7. vertical-lr + upright

[!REF | vertical-lr upright] Poem
When I was one-and-twenty
I heard a wise man say,
“Give crowns and pounds and guineas
But not your heart away;
Give pearls away and rubies
But keep your fancy free.”
But I was one-and-twenty,
No use to talk to me.

When I was one-and-twenty
I heard him say again,
“The heart out of the bosom
Was never given in vain;
’Tis paid with sighs a plenty
And sold for endless rue.”
And I am two-and-twenty,
And oh, ’tis true, ’tis true.
我打江南走過
那等在季節裡的容顏如蓮花般開落

東風不來,三月的柳絮不飛
你的心如小小的寂寞的城
恰若青石的街道向晚
跫音不響,三月的春帷不揭
你底心是小小的窗扉緊掩

我達達的馬蹄是美麗的錯誤
我不是歸人,是個過客…

01|700

4.8. vertical-lr + sideways

  • sideways: 文字轉90度

[!REF | vertical-lr sideways] Poem
When I was one-and-twenty
I heard a wise man say,
“Give crowns and pounds and guineas
But not your heart away;
Give pearls away and rubies
But keep your fancy free.”
But I was one-and-twenty,
No use to talk to me.

When I was one-and-twenty
I heard him say again,
“The heart out of the bosom
Was never given in vain;
’Tis paid with sighs a plenty
And sold for endless rue.”
And I am two-and-twenty,
And oh, ’tis true, ’tis true.

我打江南走過
那等在季節裡的容顏如蓮花般開落

東風不來,三月的柳絮不飛
你的心如小小的寂寞的城
恰若青石的街道向晚
跫音不響,三月的春帷不揭
你底心是小小的窗扉緊掩

我達達的馬蹄是美麗的錯誤
我不是歸人,是個過客…

01|700

4.9. vertical-rl + l-align 豎排+左靠

  • l-align與r-align只對豎排有效

[!REF | vertical-rl l-align]- 《錯誤》 鄭愁予
我打江南走過
那等在季節裡的容顏如蓮花般開落

東風不來,三月的柳絮不飛
你的心如小小的寂寞的城
恰若青石的街道向晚
跫音不響,三月的春帷不揭
你底心是小小的窗扉緊掩

我達達的馬蹄是美麗的錯誤
我不是歸人,是個過客…

01|700

4.10. vertical-rl + r-align 豎排+右靠

  • 閱讀模式才能看到右靠效果

[!REF | vertical-rl r-align]- 《錯誤》 鄭愁予
我打江南走過
那等在季節裡的容顏如蓮花般開落

東風不來,三月的柳絮不飛
你的心如小小的寂寞的城
恰若青石的街道向晚
跫音不響,三月的春帷不揭
你底心是小小的窗扉緊掩

我達達的馬蹄是美麗的錯誤
我不是歸人,是個過客…

[!REF | vertical-rl r-align]- Poem: 《海燕》 高爾基

在蒼茫的大海上……在高傲地飛翔
在蒼茫的大海上……在高傲地飛翔
在蒼茫的大海上,狂風捲集着烏雲。在烏雲和大海之間,海燕像黑色的閃電,在高傲地飛翔。
一會兒翅膀碰着波浪,一會兒箭一般地直衝向烏雲,它叫喊着,──就在這鳥兒勇敢的叫喊聲裏,烏雲聽出了歡樂。
在這叫喊聲裏──充滿着對暴風雨的渴望!在這叫喊聲裏,烏雲聽出了憤怒的力量、熱情的火焰和勝利的信心。
海鷗在暴風雨來臨之前呻吟着,──呻吟着,它們在大海上飛竄,想把自己對暴風雨的恐懼,掩藏到大海深處。
海鴨也在呻吟着,──它們這些海鴨啊,享受不了生活的戰鬥的歡樂:轟隆隆的雷聲就把它們嚇壞了。
蠢笨的企鵝,膽怯地把肥胖的身體躲藏到懸崖底下……只有那高傲的海燕,勇敢地,自由自在地,在泛起白沫的大海上飛翔!
烏雲越來越暗,越來越低,向海面直壓下來,而波浪一邊歌唱,一邊衝向高空,去迎接那雷聲。
雷聲轟響。波浪在憤怒的飛沫中呼叫,跟狂風爭鳴。看吧,狂風緊緊抱起一層層巨浪,惡狠狠地把它們甩到懸崖上,把這些大塊的翡翠摔成塵霧和碎末。
海燕叫喊着,飛翔着,像黑色的閃電,箭一般地穿過烏雲,翅膀掠起波浪的飛沫。
看吧,它飛舞着,像個精靈,──高傲的、黑色的暴風雨的精靈,——它在大笑,它又在號叫……它笑那些烏雲,它因為歡樂而號叫!
這個敏感的精靈,——它從雷聲的震怒裏,早就聽出了睏乏,它深信,烏雲遮不住太陽,──是的,遮不住的!
狂風吼叫……雷聲轟響……
一堆堆烏雲,像青色的火焰,在無底的大海上燃燒。大海抓住閃電的箭光,把它們熄滅在自己的深淵裏。這些閃電的影子,活像一條條火蛇,在大海里蜿蜒遊動,一晃就消失了。
——暴風雨!暴風雨就要來啦!
這是勇敢的海燕,在怒吼的大海上,在閃電中間,高傲地飛翔;這是勝利的預言家在叫喊:

01|700

01|700

5. 相關鏈接

6. 教學影片

##您可能也會有興趣的類似文章

Kopia定時快照式備份工具,大幅降低資料毀損機率

$
0
0

01

Kopia是個GitHub的開放原始碼備份工具,採取定時快照式備份的機制,意即我們只要設定好備份的頻率等原則,Kopia會在背景定時產生快照,我們可以設定每年、每月、每週、每天保留的快照個數,快照備份的位置可選擇檔案系統、Google Cloud Storage、Amazon S3或WebDAV Server等,選擇很多,彈性十足,又因為是使用漸進式備份,備份速度很迅速。

免費、開源又跨平台,大力推薦大家使用。

01|700

1. 快照與備份的差異

假設你的資料有100MB,每個小時做一次備份,則一整天會做24個備份,佔用的磁碟機空間是24 * 100 = 2400MB的磁碟空間。
快照則是採用版本控制的概念,只儲存有變動的部份,因此佔用的空間會減少許多。

第一個快照100MB,第二個快照假設變動了10MB,則兩個快照佔用空間是110MB,與備份相比少了90MB。
快照的缺點是必須保留每個變動,才有辦法取回完整的內容。

2. 安裝

GitHub Releases下載對應作業系統的KopiaUI安裝檔或zip檔。

3. 設定

3.1. 建立儲存庫

首先要建立儲存庫(Repository),指定備份要儲存的位置,可以將備份存放在本地的檔案系統、Google Cloud Storage、AWS S3、Azure、WebDAV server等。

只要在System Tray由右鍵功能表→【Connect To Another Repository…】就能設定多個不同的儲存庫。

01|700

3.2. 建立原則(Policy)

透過Policies建立備份的原則(策略),針對不同的備份路徑可設定不同的備份原則。

01|700

原則的設定項目有10大項,Snapshot Retention(快照保留)設定不同時間的快照保留份數,例如月備份、週備份各自的備份個數等。
01|700

3.3. 快照備份

新的備份路徑用【New Snapshot】即可建立,選擇好資料夾與各工具 後,點擊【Snapshot Now】。

01|700

每個使用【New Snapshot】建立的路徑都會一筆記錄,點擊各自右側的Snapshot now馬上產生當時的快照,點擊路徑(Path)就能看到所有的快照資料。
01|700

每個快照會有代碼(Root欄位),在命令行時能以此代碼來操作。

01|700

KopiaUI目前尚無快照比對的介面,要比對差異必須使用koipa.exe命令行。

[!TIP] 異動比較
kopia diff <舊的Root ID> <新的Root ID>

3.4. 還原

進入某個快照後點擊【Mount】,Kopia會將快照掛載成虛擬磁碟機(似乎是WebDAV的技術),透過這個磁碟機就可以存取快照當時的資料狀態,比對無誤後按【Restore】。
01|700

再指定還原的存放資料夾,還原的內容會放到這個指定的資料夾裡。

01|700

4. 相關鏈接

  • Fast and Secure Open-Source Backup Kopia

5. 教學影片

##您可能也會有興趣的類似文章


[Obs#91] 用Dashboard++ CSS片段建立Obsidian儲存庫首頁

$
0
0

使用Dashbvoard++ CSS片段快速建立美觀、豐富資訊的儲存庫首頁(Homepage)。

01|700
(使用Bubble Space主題)

除了CSS片段,還使用到了下列外掛:

外掛名稱 功能 安裝方式
Homepage 指定特定筆記為首頁,進入Obsidian時自動開啟 第三方外掛
Banners 筆記頂端顯示圖片 第三方外掛
Buttons 以按鈕形式提供各種功能 第三方外掛
Dataview 標籤統計 第三方外掛
Tasks 待辦事項清單 第三方外掛

1. 安裝步驟

  1. Dashboard.css點擊Copy raw contents將內容複製到剪貼簿,再將剪貼簿內容存入儲存庫資料夾/.obsidian/snippets/
  2. 設定→外觀,找到CSS片段後重新整理,啟用dashboard.css

2. 使用方法

---
cssclass: dashboard
---

以無序列表的格式即可形成水平式的兩階層選單,用較少的空間顯示更多的資訊。

3. 美化頁面

  1. 使用Banners外掛加上封面。可以用下列方式動態取得隨機圖片:
---
banner: "![[https://source.unsplash.com/1600x900?sky]]"
---
  1. 用button美化功能鏈接
  2. 用Admonitions或Callouts包住列表
  3. 用Dataview或Tasks做資訊的動態查詢

4. 範例

5. 相關鏈接

6. 教學影片

##您可能也會有興趣的類似文章

隨時掌握Windows輸入法狀態的小工具:ImTip

$
0
0

ImTip是使用Aardio桌面開發環境製作的輸入法提示工具,能顯示輸入狀態,當我們在輸入時能很清楚當前輸入狀態,不必再分神到右下角觀察鍵盤狀態。

1. 設定

  • 如果想讓提示顯示久一點的話,取消勾選倒數第二行的【僅切換輸入目標或狀態後顯示】
  • 最右側可只選擇不同的提示樣式
  • 如果不滿意設置的結果,按最上 方的【重置】即還原

01|700

2. 超級熱鍵

由ImTop的右鍵功能表啟用超級熱鍵功能後,可以自行設定需要的熱鍵,例如:

  • 由右鍵功能表點擊管理超級熱鍵後,將需要的熱鍵範例複製到/*范例及说明{{*/上方
  • 按〔Ctrl+#〕開啟調色器
    01|500
  • 按〔Ctrl+$〕再輸入數字按Enter後轉換成大寫中文數字
  • 有興趣試用更多功能者,可到aardio官方網站學習或下載aardio開發環境撰寫它的程式語言

3. 小小輸入法設定

ImTip只能適用使用Windows TSF(Text Services Framework)架構的輸入法,符合TSF的輸入法會顯示在右下角的輸入法清單裡。我使用的小小輸入法並未使用TSF架構執行,必須執行下列步驟將之註冊成TSF輸入法:

  1. 更新小小輸入法到最新的2022/06/03的2.60版(下載
  2. 啟動yong.exe後,在系統托盤的小小輸入法圖示上,用右鍵功能表→【工具】→【軟件更新】,更新到2022/06/19後的修改版本
  3. 在命令行執行解除TSF安裝、再重新安裝TSF的步驟
cd 安裝資料夾\tsf
uninstall.bat
install.bat
  1. 重新執行yong.exe

在右下角的鍵盤列表中能找到小小輸入法的話,表示已成功將之註冊成TSF的輸入法鍵盤了,再執行ImTip.exe,此時已能正確的顯示輸入狀態了。

4. 相關鏈接

5. 教學影片

##您可能也會有興趣的類似文章

JetBraisn即將提高售價

$
0
0

JetBrians的開發工具是很多人平日的編程工具,在這篇新聞 Increased Subscription Pricing for IDEs, .NET Tools, and the All Products Pack | JetBrains News宣佈了將於今年(2022)的10月調高售價。

若有使用它的產品,記得在10月前續訂,也有最多續訂3年的優惠。

##您可能也會有興趣的類似文章

如何在Windows 11啟動獨立的IE瀏覽器;擺脫Edge的IE模式

$
0
0

原本以為在Windows 11裡已經無法啟動獨立的IE瀏覽器了,沒想到微軟還是留了一個後門:可以用COM Object來操作IE瀏覽器。
以下介紹使用VBS與,AutoHotkey的作法,讓獨立執行的IE瀏覽器能「起死回生」。

1. VBS

  1. 使用文字編輯器撰寫下列程式碼:
StartURL = &quot;about:blank&quot; 
set IE = CreateObject("InternetExplorer.Application") 
IE.Visible = true 
IE.Navigate StartURL
  1. 將檔案存成 ie.vbs (副檔名必須為.vbs)
  2. 執行ie.vbs,Windows會叫用wscript.exe執行
  3. 若.vbs檔案關聯有誤,則自行設定檔案類型關聯即可

01|700

2. AutoHotkey

使用AutoHotkey操作COM物件:

  1. 使用文字編輯器或Advanture IDE撰寫下列程式碼:
#SingleInstance Force

;;StartURL := &quot;about:blank&quot;
StartURL := &quot;https://google.com&quot;

ie := ComObjCreate("InternetExplorer.Application") ;create object
ie.visible := true 
ie.navigate(StartURL)
While ie.readyState != 4 || ie.document.readyState != "complete" || ie.busy  
   sleep 10
  1. 檔案總管→在ie.ahk上開啟右鍵功能表→Compile Script以產生ie.exe。
  2. 若Compile Script出現錯誤,直接執行C:\Program Files\AutoHotkey\Compiler\ahk2exe.exe,指定好檔案後按〔Convert〕

3. 相關鏈接

4. 教學影片

##您可能也會有興趣的類似文章

[AHK#52] 1.1.28新功能:Function Hotstring

$
0
0

原來AutoHotkey自從1.1.28版開始已經提供了稱為Function Hotstrings的功能了,簡單理解就是能在熱字串裡寫腳本程式碼了。
另外,也可以使用Hotstring函數動態控制熱字串。

1. 範例

#SingleInstance Force

; This example also demonstrates one way to implement case conformity in a script.
:C:BTW::  ; Typed in all-caps.
:C:Btw::  ; Typed with only the first letter upper-case.
: :btw::  ; Typed in any other combination.
  btw() {
    hs := A_ThisHotkey  ; For convenience and in case we're interrupted.
    if (hs == `":C:BTW")
      Send BY THE WAY
    else if (hs == ":C:Btw")
      Send By the way
    else
      Send by the way
    }

::tst::
  SendInput #e
  return

::aa:: Hotstring(": :btw", "new BTW string")
::bb:: btw()
::cc:: 
  btw()
  return

::dd::
  try
    Hotstring("::btw", " bb tt ww")
  catch
    MsgBox The hotstring does not exist or it has no variant for the current IfWin criteria.
  return

相關鏈接

✅ Function Hotstrings: https://www.autohotkey.com/docs/Hotstrings.htm#Function
✅ Hotstring: https://www.autohotkey.com/docs/commands/Hotstring.htm

教學影片

##您可能也會有興趣的類似文章

[Obs#92] Obsidian彙編文章的簡單方法:2個外掛+1個CSS片段

$
0
0

[!INFO] 需求
把多篇筆記的全部或部份內容彙集、編纂成一個檔案,方便閱讀或輸出成PDF

1. 範例

  • 內嵌筆記檔案可以附加#只顯示特區段,或用^顯示特定區塊(Block)
# Obsidian學習筆記本-輸出PDF

## 1. Markdown語法
![[用Obsidian學會Markdown]]

## 2. Obsidian使用介面
![[Obs#02 Obsdian的基本操作指引]]

## 3. Obsidian CSS彙總
![[Obsidian CSS Notes]]

## 4. Obsidian Plugin彙總
![[Obsidian Plugins Notes]]

2. 彙編的方法

  • 範例
# test2

![[test3]]
![[test4]]

2.1. 方法1-Compile Notes外掛

  • 尚未上架,手動安裝或使用BRAT安裝
  • 優點:有選項設定能略過YAML區內容
  • 缺點:
    1. 要讀取的檔案必須在同一個資料夾
    2. 彙編後的筆記是固定內容,來源檔後來的異動不會影響已產生的檔案
    3. 無法指定特定區段或區塊
  • 使用方法:
    1. ![[筆記名稱]]指定要讀取的檔案
    2. 按〔Ctrl+P〕→執行【Compile notes into one】

2.2. 方法2-Dynamic Embed

  • 由第三方外掛安裝
  • 優點:動態內容,彙總筆記隨來源內容變動
  • 缺點:
    1. 沒有選項設定
    2. 只能整個檔案輸出(包含YAML區),無法指定特定區段或區塊
  • 使用方法:使用程式碼區塊

[!REF] 語法

```dynamic-embed
![[筆記名稱]]
```

2.3. 方法3-CSS片段

這是目前我建議的方法。

3. CSS片段

一樣是使用Obsidian的內嵌檔案語法,以![[筆記名稱]]指定要讀取的檔案,但有下列幾個重點要注意。

[!QUESTION] 問題
1. 有些主題會設定內嵌區塊的高度,筆記內容較多時會出現捲軸
2. 自訂CSS片段若設定內嵌區塊高度,會影響PDF格式

預設的Obsidian主題CSS會設定內嵌區塊高度:

.markdown-embed-content {
  max-height: 600px;
  overflow: auto;
}

Blue Topaz主題:

--embed-content-height: 600px;

body.adjustable-embed-content-height :is(.markdown-preview-view,.markdown-rendered) .markdown-embed-content {
  padding-right: 0;
  max-height: var(--embed-content-height);
  max-width: 100%;
  overflow: auto;
}

4. 新增embeds-full.css片段

4.1. 設定

在儲存庫資料夾/.obsidian/snippets/裡建立embeds-full.css,內容如下:

.embeds-full .internal-embed.is-loaded .markdown-embed .markdown-embed-content {
  max-height: unset !important;
}

.embeds-small .internal-embed.is-loaded .markdown-embed .markdown-embed-content {
  max-height: 350px !important;
}

embeds-full.css定義了兩個CSS類別:

  • embeds-full: 無高度設定
  • embeds-small: 設定高度為350px

4.2. 使用

  1. 在要套用的筆記YAML區加上cssClass,讓筆記裡的內嵌區塊高度變小並出現捲軸:
---
cssClass: embeds-small
---
  1. 在要套用的筆記YAML區加上cssClass,讓筆記裡的內嵌區塊出現全部內容:
---
cssClass: embeds-full
---

5. 匯出PDF

若匯出的PDF內嵌區塊未出現全部內容,則檢查CSS片段是否有設定內嵌區塊高度造成此狀況。

6. 相關鏈接

7. 教學影片

##您可能也會有興趣的類似文章

Kindle .mobi格式即將無法寄信了

$
0
0

今天寄了夾有 .mobi 電子書檔案到Kindle的信箱,收到了自動回覆的信:

「We wanted to let you know that starting August 2022, you’ll no longer be able to send MOBI (.mobi, .azw) files to your Kindle library. Any MOBI files already in your library will not be affected by this change. MOBI is an older file format and won’t support the newest Kindle features for documents. Any existing MOBI files you want to read with our most up-to-date features for documents will need to be re-sent in a compatible format.

Compatible formats now include EPUB (.epub), which you can send to your library using your Send to Kindle email address. We’ll also be adding EPUB support to the free Kindle app for iOS and Android devices and the Send to Kindle desktop app for PC and Mac. 」

2022年8月開始 .mobi, .azw就無法再使用了,看來是.epub會是未來主要支援的格式。

##您可能也會有興趣的類似文章


AdSense帳號區分成兩組

$
0
0

Blog和YouTube的AdSense是使用同一個帳號,原來是合併在一起,因此金額也是一個金額(明細有區分成兩筆),今天突然發現拆成兩組資料了。AdSense是Blog的,另外獨立出YouTube的資料,金額分成兩項了。

另外,從2022年9月開始,亞洲地區全面停用西聯匯款的支付方式了。

01|500

##您可能也會有興趣的類似文章

YouTube影片實務01:Filmora 11使用關鍵幀局部放大螢幕

$
0
0

在錄製電腦教學影片時,為了更好說明程式碼的邏輯,經常需要放大影片中程式碼區域,這樣能讓觀眾更容易看清楚程式內容。幾經摸索後,找到了Filmora 11放大局部影片區域的方法:使用視頻關鍵幀(Keyframing)。

1. 關鍵幀的操作步驟

1.1. 局部放大

  1. 點選要局部放大的影片剪輯片段(Clip)。注意:千萬不要漏了這個步驟
  2. 移動播放頭(playhead)到要放大開始位置的前幾秒時間軸
  3. 點擊時間軸上方關鍵幀按鈕(添加視頻關鍵幀),新增的關鍵幀會記錄100%螢幕大小,位置 0s
  4. 向後幾秒(按 1 次Shift+Right向後 1 秒)後再點擊關鍵幀圖示(第2個關鍵幀),變更螢幕大小為150%,並移動影片位置
  5. 若當前關鍵幀在大小或位置與前一個關鍵幀有差異時(即變動了),二者間會出現綠色箭頭線條,表示畫面會有逐幀變化

1.2. 影片還原/變更大小或位置

  1. 點選影片剪輯片段(Clip)
  2. 移動播放頭(playhead)到要還原或新位置的前幾秒時間軸
  3. 點擊時間軸上方關鍵幀按鈕(添加視頻關鍵幀),新增的關鍵幀會記錄目前的螢幕狀態(這是第3個關鍵幀,切記不要做任何變動)
  4. 向後幾秒(按 1 次Shift+Right向後 1 秒)後再點擊關鍵幀圖示(第4個關鍵幀),變更螢幕大小或移動影片位置
  5. 若當前關鍵幀在大小或位置與前一個關鍵幀有差異時(即變動了),二者間會出現綠色箭頭線條,表示畫面會有逐幀變動(動畫效果)。

2. 另一個方法:裁剪和縮放(Crop)

  1. 把需要放大的影片裁切成另一個片段
  2. 在新的片段按〔Crop〕,Pan & Zoom

3. 相關鏈接

4. 教學影片

##您可能也會有興趣的類似文章

YouTube影片實務02:Filmora 11製作Subscription推廣動畫的幾個方法

$
0
0

1. 方法1—善用素材庫(Stock Media)

  1. 由素材庫的Pexels或Pixabay網站搜尋「subscribe」
  2. 點擊預覽

    1. 只需要無聲影片時,將影片直接拖拉到時間軸
    2. 需要聲音:再對要使用的影片右鍵→在資源管理器中顯示→複製其檔案路徑,將媒體檔匯入專案資料夾
  3. 將媒體檔拖拉到時間軸後,雙擊媒體檔
  4. 按【綠幕摳像】去背
  5. 變更影片大小與位置

2. 方法2—使用標題(Titles)

  1. 建立新專案
  2. 搜尋「subscribe」
  3. 將適合的標題元件拖拉到時間軸後,雙擊之並變更內容
  4. 在適當位置加上音效
  5. 新增綠底顏色當做綠幕
  6. 匯出成影片檔

Filmora 11.5後已提供部份範圍的影片匯出功能,因此能在一個專案裡製作多個動畫。

3. 方法3—使用畫中畫(Elements)

操作步驟與標題相同,但畫中畫是影片,無法再修改內容。

4. 相關鏈接

5. 教學影片

##您可能也會有興趣的類似文章

[AHK#53] AutoHotkey多行內容輸出時的偏移問題

$
0
0

1. 問題描述

AutoHotkey可以用圓括號來設定多行內容,例如:

text =
(
  第1行
  第2行
  第3行



- 第1項
- 第2項
- 第3項
)

f1::
  Send %text%
  return

但是多行文字在輸出時會因為開頭的空白而造成偏移問題,上例按〔F1〕後的輸出如下:

第1行
  第2行
    第3行

    - 第1項
    - 第2項
    - 第3項

2. 解決方法

找到了一個簡單的解決方法:透過剪貼簿輸出就能解決偏移問題。

#SingleInstance Force

text =
(
  第1行
  第2行
  第3行

- 第1項
- 第2項
- 第3項
)

f1::
  Clipboard = %text%
  ;;Clipboard := text
  Send {space 2}^v
  return

額外輸出兩個空白再輸出〔Ctrl+V〕,輸出內容就能正確對齊了。

3. 教學影片

##您可能也會有興趣的類似文章

Blog網站支援https

$
0
0

一直沒有動力去添加Blog網站的https通訊協定,上周終於去嘗試啟用https。

我的網站是使用WordPress,透過cPanel控制,只要到WordPress後台的設定裡把網站網址由http://改成https://就可以,但文章裡使用到的上傳圖片卻無法存取成功,都會出現「403 Forbidden 」的錯誤…

詢問廠商客服後,他提醒可能是cPanel的防盜連保護是輸入http://,要一併修改成https://才可以。最後找到cPanel的HotLink保護,將網址全部成https://,果然就一切正常了。

01|500

##您可能也會有興趣的類似文章

Viewing all 904 articles
Browse latest View live