顯示具有 好用軟體 標籤的文章。 顯示所有文章
顯示具有 好用軟體 標籤的文章。 顯示所有文章

2024/6/20

在Win 11家用版上跑Windows子系統Android版並安裝微信apk檔

由於中國軟體普遍都有資安風險,詳見:

究极养蛊!电脑装满流氓软件全家桶会发生什么?

中國APP的水很深—拼多多與抖音敲響的警鐘

但淘寶買多了,免不了用到中國軟體來聯絡商家,如微信。

之前是先用一台舊的安卓手機安裝微信手機版,然後再把微信電腦版關在沙盒裡面跑,但每次都需要靠手機掃碼才能登入,很是麻煩,所以就想利用虛擬機來安裝微信手機版,可以省去登入步驟。

首先,我的Win 11家用版並不支持虛擬機(Hyper-V),一番搜索後發現可以手動安裝,詳見:

如何在 Win10 / Win11 家用版安裝 Hyper-V 虛擬機器?

接著按照教學影片開啟三個Windows功能:

Windows11與Android完美融合,不用再裝模擬器!

然後再按照上面影片從GitHub下載WSA與WSA PACMAN回來安裝並進行設定。載點如下:

https://github.com/MustardChef/WSABuilds/releases (請下載x64版本)

https://github.com/alesimula/wsa_pacman/releases/tag/v1.4.0

虛擬機裝好後,就可以用手機去下載微信apk檔(https://weixin.qq.com/)(請留意只有手機瀏覽器能下載到apk檔,桌機瀏覽器不行),然後抓到電腦上, 點開apk檔就能直接安裝,並如一般程式運行:

 

至於安全性的話,由於微信app是在WSA虛擬機中運作,無法存取上層Windows作業系統中的檔案,所以推測應該很安全。如果之後證明WSA可以穩定運行的話,我的Sandboxie-Plus就能退休了,跑起來遠不如WSA方便,而且一個沙盒就要佔用6G以上的空間,此外,據說Sandboxie-Plus真要安全的話,還是要付錢的(https://sspai.com/post/88759):

如果要讓WSA存取Windows作業系統中特定資料夾的檔案,只要在WSA開啟下圖功能即可:


補充:跑WSA需要較大的記憶體,建議至少16GB以上。
 

2024/2/17

第一次用Gemini 1.5寫Google Apps Script以進行Google 試算表的自動化

 

為了自動列出雲端硬碟上某個資料夾的使用者,問了ChatGPT一個問題:

我有一個google試算表。試算表的B1儲存格存放的資料是一個google雲端硬碟上的資料夾的連結,例如:
https://drive.google.com/drive/u/0/folders/XXXXXXXXXXXXXXXXXXXX
我需要一個script來完成以下工作:

1. 先清除B2:B100的資料。
2. 在B2顯示資料夾名稱。
3. 在B3顯示資料夾所有者。
4. 在B4、B5、B6...列出資料夾編輯者。
5. 列完編輯者之後,接著再列出檢視者。
 

ChatGPT給的程式碼執行後一直出現錯誤,無法順利執行,再三反饋給ChatGPT,多次修改後仍無效,放棄。

想到Google幾天前啟用的Gemini 1.5,以下是Gemini的答案與修改過程:

好的,以下是一個可以完成您需求的 Google Apps Script:

```
function getFolderInfo() {
  // 清除 B2:B100 的資料
  var sheet = SpreadsheetApp.getActiveSheet();
  sheet.getRange('B2:B100').clearValues();

  // 取得資料夾 ID
  var folderId = sheet.getRange('B1').getValue().match(/folders\/(.*)/)[1];

  // 取得資料夾資訊
  var folder = DriveApp.getFolderById(folderId);

  // 顯示資料夾名稱
  sheet.getRange('B2').setValue(folder.getName());

  // 顯示資料夾所有者
  sheet.getRange('B3').setValue(folder.getOwner().getEmail());

  // 顯示資料夾編輯者
  var editors = folder.getEditors();
  for (var i = 0; i < editors.length; i++) {
    sheet.getRange('B' + (4 + i)).setValue(editors[i].getEmail());
  }

  // 顯示資料夾檢視者
  var viewers = folder.getViewers();
  for (var i = 0; i < viewers.length; i++) {
    sheet.getRange('B' + (4 + editors.length + i)).setValue(viewers[i].getEmail());
  }
}
```

這個 Script 的執行方式如下:

1. 在 Google 試算表中,開啟 Script 編輯器。
2. 將上述程式碼貼到 Script 編輯器中。
3. 儲存 Script。
4. 在 Script 編輯器中,點選執行按鈕。

執行 Script 後,試算表中的 B2:B100 儲存格就會顯示出您指定的資料夾的相關資訊。

以下是 Script 的詳細說明:

* `getFolderInfo()` 函式是 Script 的入口點。
* `sheet.getRange('B2:B100').clearValues()` 這一行用於清除 B2:B100 儲存格中的資料。
* `var folderId = sheet.getRange('B1').getValue().match(/folders\/(.*)/)[1]` 這一行用於取得資料夾 ID。
* `var folder = DriveApp.getFolderById(folderId)` 這一行用於取得資料夾物件。
* `sheet.getRange('B2').setValue(folder.getName())` 這一行用於顯示資料夾名稱。
* `sheet.getRange('B3').setValue(folder.getOwner().getEmail())` 這一行用於顯示資料夾所有者。
* `var editors = folder.getEditors()` 這一行用於取得資料夾編輯者陣列。
* `for (var i = 0; i < editors.length; i++) { sheet.getRange('B' + (4 + i)).setValue(editors[i].getEmail()) }` 這一行用於顯示資料夾編輯者。
* `var viewers = folder.getViewers()` 這一行用於取得資料夾檢視者陣列。
* `for (var i = 0; i < viewers.length; i++) { sheet.getRange('B' + (4 + editors.length + i)).setValue(viewers[i].getEmail()) }` 這一行用於顯示資料夾檢視者。

希望這個 Script 能夠滿足您的需求。

我:執行後出現錯誤訊息:TypeError: sheet.getRange(...).clearValues is not a function

Gemini:

出現這個錯誤訊息的原因是,您使用的 Google Apps Script 版本太舊了。在舊版本的 Google Apps Script 中,`sheet.getRange()` 方法沒有 `clearValues()` 函式。

要解決這個問題,您需要將 Google Apps Script 版本更新到最新版本。更新方法如下:

1. 在 Google 試算表中,開啟 Script 編輯器。
2. 點選 **資源** > **管理 Script 版本**。
3. 在 **版本** 對話方塊中,點選 **更新**。

更新 Google Apps Script 版本後,您應該就可以正常執行 Script 了。

如果您不想更新 Google Apps Script 版本,也可以使用以下方法來清除 B2:B100 儲存格中的資料:

```
var sheet = SpreadsheetApp.getActiveSheet();
var range = sheet.getRange('B2:B100');
range.clearContent();
```

`clearContent()` 方法的效果與 `clearValues()` 方法相同,但它適用於所有版本的 Google Apps Script。

採用Gemini提供的第二個方案,修改程式碼之後就能順利執行了,不虧是自家產品,對自家的試算表有較好的支援。

相較於GhatGPT,Gemini第二次回覆就成功了,而且每段程式碼還一一解釋,非常適合學習電腦語言,超棒der~~~

 

2023/12/7

Gemini問世,Google對openAI說:你大爺還是你大爺

Google官方影片:

中文博主解說:

直接問Google Bard什麼時候開放使用,以及對一般使用者的收費,回答如下:

根據Google的公告,Gemini Nano 已於2023年12月6日開放給Android平台開發者使用。Gemini Pro 預計在2023年12月13日透過Google Cloud的Vertex AI、AI Studio,向開發者及企業提供。Gemini Ultra 則針對早期註冊開發者、企業提供,目標在2024年初向大眾開放使用。

因此,如果您是Android平台開發者,您現在就可以開始使用 Gemini Nano。如果您是一般使用者,您需要等到2024年初才能使用 Gemini Pro 或 Gemini Ultra。

以下是 Gemini 的開放時間表:

  • Gemini Nano:2023年12月6日
  • Gemini Pro:2023年12月13日
  • Gemini Ultra:2024年初

目前尚未有Google官方的正式公告,但根據Google的慣例,一般使用者使用的 Gemini Pro 或 Gemini Ultra 可能不會是免費的。

Gemini Pro 和 Gemini Ultra 提供的功能比 Gemini Nano 更強大,例如更大的模型容量、更高的運算速度、更豐富的 API,因此 Google 可能會收費來維護這些服務。

不過,Google 也有可能提供免費的 Gemini 版本,但功能可能會有所限制,例如模型容量較小、運算速度較慢、API 較少。

如果您是一般使用者,建議您等到 Gemini 正式開放後,再根據您的需求選擇適合的版本。

 

2023/12/3

超級無敵好用,今天與ChatGPT的對話


使用chatGPT3.5協助電腦工作已經有一陣子了,心得就一個字:神!大概是我用過最厲害的應用,每一次GPT寫的代碼全都能滿願,讓我這個程式小白也能享受一點執行程式的樂趣,真的是太棒了!今天的對話如下:

Me: 在google試算表的script中,我有一段程式碼如下:

function hideDataRows() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  var dataRange = sheet.getRange("D2:D" + sheet.getLastRow());
   // 假設資料從第二列開始,D欄
  var dataValues = dataRange.getValues();
  for (var i = 0; i < dataValues.length; i++) {
    var row = i + 2;
     // 資料索引 + 2,因為索引從0開始,而實際的列從2開始
    var rowData = dataValues[i][0];
    if (rowData !== "") {
      sheet.hideRows(row);
    }

  }
}

我想在程式碼的開頭加入執行的條件:如果G1儲存格內的字串包含"ok",那麼就繼續往下執行,否則就停止執行。該怎麼改寫呢?

GPT秒答:

您可以在程式碼的開頭加入一個條件判斷,檢查 G1 儲存格的值是否包含 "ok"。如果不包含,則停止執行,否則繼續執行。以下是修改後的程式碼:
function hideDataRows() { var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); // 檢查 G1 儲存格的值是否包含 "ok" var conditionCell = sheet.getRange("G1"); var conditionValue = conditionCell.getValue(); if (conditionValue.indexOf("ok") === -1) { // 如果 G1 儲存格的值不包含 "ok",則停止執行 return; } var dataRange = sheet.getRange("D2:D" + sheet.getLastRow()); var dataValues = dataRange.getValues(); for (var i = 0; i < dataValues.length; i++) { var row = i + 2; var rowData = dataValues[i][0]; if (rowData !== "") { sheet.hideRows(row); } } }

這樣修改後,當 G1 儲存格的值不包含 "ok" 時,程式碼將會在條件判斷處停止執行,否則將繼續執行隱藏資料列的操作。

以下是其他chatGPT成功幫我解決的問題(皆列出原始提示): 

我有一個google sheets工作表,A欄是日期,如果日期是今天以前的日期,且迄今已超過7天,就隱藏該列,請問script應該怎麼寫?

我想在google試算表中寫一個script,讓我可以隱藏工作表C欄中除了第一列之外,所有包含資料的列,程式碼應該怎麼寫呢?

2023/11/5

DIY升級電腦並安裝aster虛擬終端機(拖機軟體)供兩人同時使用

上回在新風機出風口裝了一台單極負離子發生器,結果沒多久,放在附近的的迷你電腦華碩VC66就故障了,送修快2個禮拜,花了1500元,回來沒幾個月又壞了,打算不修了。

家中剩一台電腦,家人不接受輪流使用的方案。本來想把VC66上能用的零件都拆下來,再組一台,但買主板、機殼、電供、作業系統...花費可能會超過10000,於是就上網找看看有沒有一台電腦可以同時供兩人使用的辦法。

之前在辦公室用過硬體虛擬終端機,體驗很差,就是這台:

這次在youtube上看到aster這個軟體(點我看影片),應該能用,就來試試。

一台電腦同時給兩人使用,會消耗較多系統資源,就先升級一下硬體。三年前組裝的電腦配置如下:

CPU:i5-9600k
內存:金士頓HyperX Fury DDR4 3466 8Gb*2套條
顯卡:核顯UHD 630
硬碟:WD SN750 250G nvme M.2 SSD(系統)
                  SN520 256G nvme M.2 SSD(D槽)
主板:華擎 Z390M-ITX/ac
電供:海盜船 SF450
機殼:聯力 PC Q34

首先花了1350裝了Geforce GT 1030顯卡,功耗只有30W,採無扇設計:

雖然是N卡 GTX 10系中最便宜的一塊,userbenchmark顯示其速度是核顯UHD 630的162%,大概是2.6倍,供兩人同時上網是綽綽有餘,這樣偶爾作影片轉檔也可以快一點,但打怪是不行的。

趁機把速度快、發熱高的系統碟散熱器從佳翼N80升級成冰川之翼(淘寶貨),原來的N80換到D槽 SSD:

兩條硬碟的待機溫度由原來的5X度降低為45~48度,還不賴。

原本SSD佔用的PCIe插槽讓位給了獨立顯卡,SSD只好透過轉接卡(M.2 Key A/E轉M.2 nvme SSD)插到無線網卡的插槽上:

通道從PCIe  3.0 x16直連變成PCIe  3.0 x1走南橋,讀寫速度砍半,不是系統碟,使用上無感。

原來16GB開雙通道的記憶體,大部分情況是夠用的,但偶爾為了處理影片要開到10G以上的虛擬磁碟,會不太夠。最近DDR5上市,DDR4降價不少,就趁機升級32GB。

在順發3C的露天賣場買了金士頓 FURY Beast DDR4 3600 16GB*2 套條,只要2250還免運費:

拆下塔散:

換上新的記憶體之後,散熱膏家裡沒庫存,還好沒硬化,抹平繼續用,實測對溫度沒影響。

舊的記憶體在露天上用920元賣出:

記憶體頻率從3466提高到3600,使用Ramdisk來對記憶體測速,讀寫速度確實略有提昇:


硬體升級完畢,接著是軟體的部份。先上aster官網下載14天試用版,按照youtube影片安裝、設定。硬體分配如下:

這裡說明兩台螢幕的連接方式。

首先在bios裡面開啟多顯卡,讓核顯、獨顯都能獨立作業。開啟成功的話,在工作管理員視窗可以看到兩張GPU:

接著兩台螢幕分別接到主機板與獨顯的HDMI接口即可。

音源的分配方式,本來是參考youtube影片用229元含運買了usb外接音效卡:

但買來才發現是多餘的,對於內建揚聲器的螢幕來說,HDMI音源可以分開輸出,設定方式如下:

實測兩人同時上網、看影片,資源佔用都不高,完全不會感到卡頓:

軟硬體測試都沒問題,最後就來購買軟體授權,對這種可以省錢、省時間的軟體,我是很願意花錢的。家中只有2人,只要買2人版:

官網上提供的三家臺灣代理商:

上代理商的網站,第1家實際上是俄國公司,要價2900台幣。第二家友環,要詢價。第三家官網上找不到aster。最後決定直接在aster官網上刷卡購買,只要54.99USD,信用卡帳單是1768台幣。

付款後就能看到啟動金鑰:


算一下成本:

顯卡 1350元
內存 2250元
舊內存-920元
aster 1768元
冰川之翼49rmb
M.2轉接卡23rmb
合計:約4800台幣

個人認為aster的優點如下:

1. 省錢,組裝一台電腦的成本肯定比兩台低,光是作業系統就能省下好幾千。

2. 在花費相同的情況下,只組一台電腦能獲得的最高效能,肯定比組兩台高。

3. 節省硬體的維護管理成本。

4. 環保,以後可以減少電子垃圾。

5. 省電。

家裡有多人同時使用電腦需求的讀者可以參考。 

相關資源:

一台電腦多人使用整理,NComputing、BeTwin、Aster、Unraid

舊電腦快速升級與重新安裝 Windows11 22H2 跳過TPM2.0 跳過安全開機

後記:

迷你電腦VC66拆賣,CPU賣了1100,兩條DDR4 8G賣580,兩個電供賣360,再回血2040,成本降到2760,遠比購買新機便宜~~~ 

2023/3/6

2023年最火的服務ChatGPT能作什麼?

ChatGPT官網:https://chat.openai.com

個人覺得講笑話最厲害,比人講的還好笑。

1. 寫信

2. 寫程式

3. 講笑話

4. 講官話

5. 帶你健身

6. 解答我的問題,有時確實比google好用,不過有時會錯。


 

2022/2/4

使用Spectroid頻譜分析App找尋室內高頻噪音來源

之前買了LG 變頻除濕機 MD161QPK3,發現機器運轉時會出現高頻噪音,所以找了一款頻譜分析軟體Spectroid來分析噪音的特性,以下是MD161QPK3在靜音模式與其他模式下噪音的頻譜圖:

 

後來利用這個app ,又在室內發現幾個會產生高頻噪音的電器。令人意外的是352 X50S也有高頻噪音,但頻率極高,接近17K Hz,人耳幾乎聽不見,所以一直都沒發現:


 

另外裝在浴室的三路遙控開關,在全關與只開一路的情況下,也會發出高頻噪音,而且以全關時聽覺上較明顯, 只開一路時的高頻噪音頻率太高,反而聽不太出來:


 

這款App有個小bug,橫軸(頻率)預設顯示是對數軸,而且最高只顯示到10K Hz,要在Setting/Display/Frequency axis scale中把選項改為Linear (線性),才能展開10~20K Hz的高頻。


 


2021/1/12

用GeoGebra線上數學工具求三角函數極值

最近DIY的時候,剛好要求一段距離的最小值(下圖y線段):



勉強把高中的三角函數複習一下,寫出下面的公式,其中x是角度:



到https://www.geogebra.org/calculator,輸入公式後,即可求出極值為17公分:


實際施工時,使用極值,非常成功!


2020/8/6

空照圖與衛星影像應用軟體之王—Google Earth Pro版 附全台灣100公尺等高線kmz/kml檔

使用Google Earth超過十年,這款神級軟體仍然是我最常用的GIS,重點是免費,連付費pro版在幾年前都全面開放免費註冊,值得分享,以下列舉用途數例:

利用「國有林事業區林地分區」及「原住民保留地」(政府開放資料)圖層來找尋可以正常買賣的土地:





渠道平面圖,在工作站幾乎天天看,超好用:

健行、路跑路線長度估算:

面積、周長估算:
將臺灣暗蟬20年的調查結果標示於地圖上,其中有一些分佈點還是透過空照圖去預測找出來的:


回溯地貌變遷,下圖是台南市七股十年間的海岸侵蝕:


 
可以知道誰的距離最近,方便人力派遣:

用內政部20公尺網格數值地形模型資料(DTM)轉KMZ檔,可在空照圖上顯示等高線:
另外還有很多強大功能,讀者可自行探索應用。

最後開放用內政部20公尺網格數值地形模型(DTM)轉成的全台灣100公尺等高線kml檔供讀者下載,約141 MB,可以用來測試顯卡好不好(內顯跑起來會有點卡)。

補充,google earth為了展示其強大的3D功能,預設會自動傾斜視角,首次接觸這款軟體的使用者,很容易被這項功能困擾,可以修改選項如下圖:

2020/7/10

實測SoftPerfect RAM Disk虛擬磁碟效能


SoftPerfect RAM Disk本人已經使用數年,是一款我願意花小錢購買的軟體之一。UI設計簡單明瞭,開機就常駐,當作暫存區,關機就會自動清空檔案,有時處理大檔非常好用,跑起來比PCIe Gen4 NVMe 固態硬碟還快:


這種速度,實體硬碟大概要用好幾條NVme SSD組Raid 0才能到達了,但虛擬磁碟花費更省,還可以利用大容量記憶體的多餘資源,算是CP值很高的小投資。

實測平台摘要如下:


2019/1/22

解決PIME新酷音輸入法鎖死當掉的方法,含4種自動重啟程式之試用心得(推薦Restart On Crash)

PIME是本人慣用的輸入法,因其內建的新酷音輸入法著名,已經用十年以上。這個輸入法雖然好用勝於微軟新注音,但缺點是常常會當掉,無法正常輸入,必須開啟工作管理員,在背景處理程序找到PIME Launcher,結束工作之後重啟PIME Launcher才能恢復正常,非常麻煩。

為了讓重啟PIME的工作能更有效率,首先在桌面上建立一個捷徑,在「輸入項目的位置」輸入:taskkill /f /im PIMELauncher.exe

命名捷徑後放在桌面,等到PIME當掉時,回到桌面點兩下這個捷徑,就可以立刻結束程序,不用再開啟工作管理員。然後按下Alt+Space呼叫Launchy程式視窗,輸入PIME重啟,即可恢復正常。

有沒有更快的方法?PIME是一個我一定會用到的程式,有沒有方法可以讓他一直保持運行?也就是在這個程式被強制關閉或當掉時,能夠自動重啟?於是我就在網路上搜尋能夠自動重啟程式的程式,找到一篇介紹文章,一口氣介紹了8種。

8 Tools to Automatically Restart a Crashed or Closed Application

試用了其中四種後就發現理想的程式,馬上收進自己的必備程式清單。

1.RestartMe(不推薦)

需以系統管理員身份才能正常執行。介面設計沒有考慮到使用者可能會在「顯示設定」調整縮放比例,導致介面的視窗無法正常顯示。

2.Control Running Programs (不推薦)

Win10中無法運行。

3.Application Monitor(不推薦)

免安裝程式。缺點是這個程式最高的檢查頻率是每30秒一次,所以當他發現我們要保持運行的處理程序已經關閉時,可能已經過了30秒,非常沒效率。

4.Restart On Crash(小編推薦)




免安裝程式。介面簡單,功能完整,可在背景運行,檢查頻率最高可達每秒一次,發現程式關閉後可選擇立刻或延遲重啟。除了可以重啟已經關閉的程序,還可以監視程序是否沒有回應並自動強制結束程式後重啟。

Restart On Crash官網及載點

2023/6/2後記:

使用免費軟體有一定的風險,所以將Restart On Crash的主程式檔RestartOnCrash.exe上傳台灣電腦網路危機處理暨協調中心的「惡意檔案檢測服務」服務網站,初步檢測結果無異常,動動態檢測結果的風險值是0,應該是很安全的程式。


 2024/4/11補記:

升級W11後,此軟體失效,看作者日後有沒有繼續更新吧。