get paid

Get paid for the tasks you do online

2021年6月22日 星期二

PysimpleGUI 安裝與簡介

 安裝 pysimplegui  很簡單 

pip install pysimplegui or pip3 install pysimplegui 即可

Linux, Mac, Windows 樹莓派 都支援


先說一下 pysimplegui 與其他 GUI 如 pyqt5 等的最大差異在於

pyqt5 的基本視窗宣告完時 本身視窗就可以想像是一個 while loop , 他會一直執行

但 pysimplegui 比較像一個 function

自己需要加入 while loop 讓 program 變成一個無限迴圈

這樣 windows 才會一直顯現

下面是官網的sample code ..


import PySimpleGUI as sg sg.theme('DarkAmber') # Add a touch of color # All the stuff inside your window. layout = [ [sg.Text('Some text on Row 1')], [sg.Text('Enter something on Row 2'), sg.InputText()], [sg.Button('Ok'), sg.Button('Cancel')] ] # Create the Window window = sg.Window('Window Title', layout) # Event Loop to process "events" and get the "values" of the inputs while True: event, values = window.read() if event == sg.WIN_CLOSED or event == 'Cancel': # if user closes window or clicks cancel break print('You entered ', values[0]) window.close()


一開始當然是 import package ,

sg.theme 主要是定義主題顏色 從字面上就可以看出是深底字是 琥珀色

layout 就定義 windows 內的元件有哪些

每一行就用 [] 匡起來

如第一行 就 sg.text 一個元件

第二行 有兩個 sg.text , sg.InputText

第三行就兩個 button

window = sg.Window('Window Title', layout)

就是定義一個 windows , 使用 layout 中的元件


再來就 用 while loop 讓這windows 一直跑

window.read()


此時 windows 就會出來了

但 windows 還是要能做互動啊

event, values 這兩個就是 windows 互動用的

當 button 被按下了這時有 event 時 才會往下一行執行喔

如果是 輸入 text 此時 還是不會往下作 , 但如果是按下任何一個 button , 就會觸發 event

此事程式就會往下跑

如果是 cancel被按下,event == 'Cancel'

就會結束




python 簡易的 UI module - pysimplegui

 之前使用的 pyqt5 功能很強大, 但針對某些主要是做機器學習的應用.只是要簡單UI

而不想花太多時間在 GUI 設計上的人來說 pysimplegui 是很棒的選擇 


我的應用會用到很多 opencv ,  但之前測試 tkiner 顯示 frame 時 即使使用 multi-threading 還是會有不順的狀況, pyqt 也是 ,  且對很多人來說 multithread 有點小麻煩

而pysimplegui 我測過再 macOS , raspberry pi  下opencv 的 imshow 都很順 

code 也簡單好讀很多

不過如果你的 UI 設計 位置要要自訂 ,  那 pysimplegui 的建置就會很多了 

之後會做一些簡單的教學 

2021年6月12日 星期六

樹莓派 YouTube 直播的方法

raspivid -o - -t 0 -vf -hf -fps 30 -b 6000000 | ffmpeg -re -ar 44100 -ac 2 -acodec pcm_s16le -f s16le -ac 2 -i /dev/zero -f h264 -i - -vcodec copy -acodec aac -ab 128k -g 50 -strict experimental -f flv rtmp://a.rtmp.youtube.com/live2/<SESSION>

2021年5月18日 星期二

利用 GCP 建立 ssh reserve tunnel

 目前有幾台 tx2 架構在外部, 因為機器在 NAT 下, 也無法叫客人開 port 

於是想到利用GCP 的 固定 IP , 建立 reseve SSH

但之前踩了很多坑   其一是忘記將 sha public key 存到 tx2 上 

2. 原本使用別人建好的 GCP , 但 ssh 一直建不起來 ,  後來才發現該 IP 被客人的訪火想擋下了

於是自己在另建一台


簡單記錄一下設定 


1. Tx2 上 

command line 下 

 ssh -N -R 60030:localhost:22.  <gcp_username>@<GCP public IP> 


其中 60030 是 要將 ssh 轉的 port 

透過轉 port , GCP SSH 就要改用 60030 port 來跟 GCP 連線

2.  GCP 

ssh -p 60030 <tx2 username>@localhost 


60030 需要跟 tx2 轉的轉的

port 相同 , 如果有多台 tx2 , 可以利用 port 來分開 

這樣就可以透過 GCP 管理多台機器了 



2021年5月4日 星期二

"Brave" 瀏覽器使用心得

 用了 3 個月的 Brave 瀏覽器  初期是為了免費的加密貨幣來使用的

但後來越用越喜歡 ,  因為很多網站會追蹤你的使用紀錄 ,  但 brave 基本會擋掉一部分

另外 感覺使用上也比 chrome firefox 快很多.  當然這只是感覺

不過有些網站  需要改用 firefox or chrome  才能登入 

所以 firefox and chrome 還是不能移掉 



2021年2月12日 星期五

IoT data DashBoard 平台

 最近需要將 Raspberry Pi 收集的資料 統計給別人看

本來是用 GCP 自己收集資料 , 自己寫網頁

但 GCP 費用也不便宜

survey 一下 thing speaker 平台是最簡的單

直接用 https get 就可以將資料上傳到他們的平台了


2020年12月13日 星期日

利用 Python 下載 youtube

 最近會利用到 YouTube 上面的影片來做測試 

之前都用 web 的一些服務

但是後來發現 公司網路會阻檔這些網址

於是想到自己用 python 來 download

Python 有個很簡的 download model 叫 pytube 

直接用 pip install 就可以了

不過如果你是用舊版 3.8 前的 python , 必須要指定版本

因為 pip install 會安裝最新版的 pytube

但最新版只 support 3.8 

另外 還要用到 ssl 

因為有些網址 或 MAC 需要用到 SSL , 不然會有 error 發生

程式碼很簡單 如下

之後有空再寫成 UI 介面吧

import pytube

import ssl
ssl._create_default_https_context = ssl._create_stdlib_context
url=input("Input download youtube URL: ")
download = input("input the dir to save the file: ")
yt =pytube.YouTube(url)
# yt.download('/Users/chiusam/Downloads')
# video = youtube.streams.first()
video = yt.streams.first()
video.download('/Users/chiusam/Downloads')

Bloomberg Markets Wrap 2025-08-15: 股市因美國數據下漲,川普與普丁會議獲關注

 Bloomberg Markets Wrap 2025-08-15: 股市因美國數據下滑,川普與普丁會談受關注 發佈日期:2025-08-15 本篇文章翻譯與整理自 Bloomberg Markets Wrap(經 SWI swissin fo.ch 彙整),該報111導回顧了...