SUNO歌詞試做

 這是我自己寫的,想拿來在Suno來試試,先記下來:

第一首:

若時間有一個季節,那一定是冬季,漫飛細雨是妳的言語,刺寒無限時間裡。

若冬季有一個時間,那一定是夜裡,黑色大地是我的思緒,蕭瑟整個冬季裡。


第二首:

[Verse] 

教室窗外風,吹進午後。

妳在我前頭,托著面孔 。

偷偷望著妳揚起的髮梢,心跳總比鐘聲早。

放學後,走過熟悉的街口。

 妳停在,晚風吹來的路口。

 [Chorus] 

迎著撫過妳長髮的微風,是否就能輕嗅妳的幽香。

彷彿妳就在我的眼中,笑著泛紅的面容。 

 迎著撫過妳臉頰的微風,是否就能輕觸妳的溫柔。

彷彿妳就在我的懷中,靜看夕陽的倦容。

 [Outro] 

風仍吹過那個路口,吹散了青春的悸動。

而我始終記得那一天,妳停下來迎風的笑容。

 今天我騎單車上班,經過河華路時,發現路旁的行道樹下不斷飄著黃色花瓣,原本我已經騎遠了,但是突然想起「我與浪漫相約在花雨中」,於是我折回去,在一張公共的長椅坐下,拿出應該在辦公室匆匆吃完的早餐,與浪漫一起享用。花雨不濕衣,卻沾身,低頭時,我看見胸口有殘花,是它們輕輕留下的證據。

於是我用AI幫我產一張圖,雖然與真實的情境有些出入,不過倒也符合意境,所以我就把字也加上去了。



Oracle KVM:Storage Pool的狀態是locked

 

  • 記錄一下發現其中一個VM在關機後沒有辦法重啟,錯誤訊息是說Storage Pool目前是inactive
  • 按下activate的按鈕後,Activate的task一直在跑,無法成功或結束,只好以SSH登入KVM Manager主機,以指令取消Task:
  • Task取消後,Storage Pool的狀態變成locked,檢查log也沒有看到什麼特別的錯誤
  • 因為檢查不出來哪裡有問題,只能找高手幫忙,他的做法跟我在網上找到的討論相似,強制更新資料庫的值來改變狀態,當然執行前要先檢查系統的log。
  • 以SSH登入KVM管理主機,執行下列指令登入PostgreSQL(Oracle Linux KVM):sudo -u postgres psql engine
  • 檢查一下目前的狀態,SQL:select id,storage,storage_name,storage_pool_id,status from storage_domains;,結果目前status的值是5,也就是locked
  • 我在網上找到的文章是更改storage_domains,SQL如下:update storage_domains set status=1 where id= ;

    但是會出現無法更改的警告:To enable updating the view, provide an INSTEAD OF UPDATE trigger or an unconditional ON UPDATE DO INSTEAD rule

  • 改用這個SQL檢查一下狀態:SELECT * FROM storage_pool_iso_map,status一樣是5
  • 強制更改狀態,SQL:UPDATE storage_pool_iso_map SET status = 1 WHERE storage_id =
  • 重新查詢Storage_pool_iso_map的status,發現已成功更改為3
  • 重啟一下服務:systemctl restart ovirt-engine,再到網頁版管理介面查看Storage Pool的status,現在變成active了,試著啟動vm也成功了。
  • 修改資料庫算是危險的動作,建議還是找專人來處理比較好,這裡僅記錄一下,也許以後自己建KVM測試區時可以試一試。

Window 10利用PowerShell來關閉IPv6

 今天被要求先關掉自己電腦的IPv6,因為微軟有發佈漏洞,因為沒有使用IPv6,所以關掉也沒有什麼影響。


最簡單的方式是用網卡的內容取消勾選「網際網路通訊協定第 6 版 (TCP/IPv6)」,而這次試用PowerShell來關掉IPv6,先輸入下列的指令,找出所有的網路適配器

Get-NetAdapterBinding -ComponentID ms_tcpip6


由上圖可以發現,目前我的電腦中只剩下「乙太網路 2」還有啟用IPv6,於是執行下列的指令來關閉IPv6

Disable-NetAdapterBinding -Name "乙太網路 2" -ComponentID ms_tcpip6


再執行一次檢查的指令,就可以發現「乙太網路 2」的IPv6也被關閉了。

FRM-40654: Record has been updated. Requery block to see change

 Oracle的ERP在客戶基本檔的from出現一個錯誤: FRM-40654: Record has been updated. Requery block to see change

一開始以為是有 Table Lock,但是查了一下,並沒有發現有Table Lock的現象,而且只有單一客戶的資料會有這個問題,最後發現是相關的 Table中,有一個欄位的資料前後有空白造成的,更新資料就解決了。

簡單紀錄一下,下次再出現時就知道如何解決了。

利用指令typeperf來監控Windows的效能

 

[[Windows]] 有一個可以取得效能監控的指令:typeperf,就像是「控制台」->「系統管理工具」->「效能監視器」,只是效能監視器是圖形介面,typeperf則是CSV格式輸出文字。typeperf還允許加上 -si 來指定秒數; -sc 指定取樣次數,再加上 -o 可將結果存成文字檔。



語法如下,例如想要取得CPU的使用率,可以使用指令:typeperf Processor(_Total)% Processor Time
	  typeperf  [options]
	  typeperf -cf  [options]
	  typeperf -q [object] [options]
	  typeperf -qx [object] [options]	  
	  註: 參數是效能計數器的完整名稱,格式為 \Computer\Object(Instance)\Counter,例如"Server_Name\Processor(1)\% User Time"。
可用效能監視器來取得,下面有兩個範例

第一個範例是我想要取得CPU的使用率,由下圖可知Processor計數器有數種參數,我的選擇是「% Processor Time」,而例項則表示我有4個Core,而「_Total」則是全部


所以指令組成如左: typeperf "Processor(_Total)% Processor Time",結果如下圖


第二個範例是要監控chrome瀏覽器其中的一個Thread,如下圖


所以指令的組成如左:typeperf "Thread(chrome/20)Elapsed Time",其結果如下圖:


另外typeperf也可以一次取得多個監控數值,但是要把欲監控的項目寫在一個文字檔(test.txt)內如下:


接著我們將指令改為讀取文字檔:typeperf -cf test.txt -si 1 -sc 10,每一秒會監控一次,一共取樣10次,其結果如下:


D3.js如何選擇上一階元素(Panent Node)

先來看下列 d3.js 的程式碼,我要產生兩個不同大小、顏色的圓形

svg_test03 = d3.select("#svg_test03")
svg_test03_g = svg_test03.append('g')

svg_test03_g
  .append('circle')
  .attr('cx', 80 )
  .attr('cy', 60)
  .attr('r', 50)
  .attr('fill','#ff0000')
  .append('circle')
  .attr('cx', 80 )
  .attr('cy', 60)
  .attr('r', 40)
  .attr('fill','#ffffff')


其產生的svg碼如下,第二個圓被包在第一圓的程式碼之中,顯然這並不符合我們的需求,實際上第二個圓在網頁上也是沒有顯示出來




我們要的結果應該是兩個圓形都要在<g>元素底下才對。我們修改一下程式碼,讓第二個圓在新建時應該先取得上一階元素(<g>)

svg_test03_g
  .append('circle')
  .attr('cx', 80 )
  .attr('cy', 60)
  .attr('r', 50)
  .attr('fill','#ff0000')
  .select(function() { return this.parentNode; }) //取得上一階元素
  .append('circle')
  .attr('cx', 80 )
  .attr('cy', 60)
  .attr('r', 40)
  .attr('fill','#ffffff')


利用this.parentNode來取得上一階元素後再增加第二個圓,此時svg才會符合我們的期待,網頁上也才能正確顯示兩個圓形




如果要取得上二階的元素時,可以使用兩次的this.parentNode:

.select(function() { return this.parentNode; }) 
.select(function() { return this.parentNode; }) //利用兩次來取得上兩階的元素



SUNO歌詞試做