python初體驗hello world

不學python不行啊
曾有位高人說過:
python因為簡單,所以很難
想必python如同珍瓏棋局, 當世高人紛紛堪不破(aka: 學越多越難懂python),
只有心中毫無雜念之人(初心者)才能真正了解python啊

學了兩天, 終於搞定hello world

這是我搞定Hello World的心智圖筆記

最後發現python3 與 python2差異頗大, 借書只能借到舊版, 只好買了最新版碁峯 python 3.9 技術手冊

買筆電除了M$ OFFICE外的選擇"onlyoffice"

我們買windows筆電, 搭載的是試用版office 365, 若不想租用office 365, 可以移除後, 改用與M$相容性極高的onlyoffice.

onlyoffice 是免費軟體, 平台支援linux , windows, 與mac (包括mac m1) ç, 比之前open office , libre office 更貼近M$ office , 非常推薦使用., 千萬不要使用謎版的M$ office, 以免侵權.

PS. 可搭配免費可商用的字型 CNS11643全字庫 (全字庫首頁)

移除windows server上分享的印表機

通常把印表機刪除就好了, 但是有時候還真的不知道為何, 在使用者端還是會看到之前分享的印表機.
這時候只好到註冊表刪除看看了,

HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion

若在註冊表看到不該出現的印表機設定, 就勇敢的刪除下去吧,
刪除完畢, server重開機, 再從使用者端看看幽靈印表機還有沒有出現.

工作關係需要雙開wechat

  1. 安卓使用雙開助手(請注意, 這會被警告是有害軟體, 請斟酌使用)
    https://www.multiopen.cn/
  2. windows 10上面雙開
    新增一個wechat_multi.bat檔案
    輸入(wechat目錄請依照實際例子使用)
start C:\"Program Files (x86)"\Tencent\WeChat\WeChat.exe 
start C:\"Program Files (x86)"\Tencent\WeChat\WeChat.exe

儲存後, 執行wechat.bat 即可雙開


安裝免費防毒軟體注意事項

天下沒有白吃的午餐, 防毒軟體公司提供免費版本, 通常會綁定廣告, 防毒訊息收集回報, 或是警告的方式引導至付費版本.
所以使用者自行安裝免費的防毒軟體, 常常會誤按造成困擾, 他們只想要基本防護而已.

我推薦 avg 免費防毒軟體, 雖然沒有 comodo免費版功能多, 但是一般使用者夠用了, 比winodws內建的好就好了,

當然安裝設定也要注意一下, 預設值不要照單全收

我製作簡單的安裝設定步驟, 請點選參考

誤刪docker 某個image, 重啟後, 相關連的container都無法使用了

真的手殘, 錯誤地停用某個 mariadb database 並且刪除了 image, 還好平常有記錄當時docker 執行的指令, 設定檔案也都在, 很快地就把該container 還原起來了.

但是參考到該container也跟著無法使用, 出現以下錯誤訊息:

 Cannot link to a non running container 

重開這些container, 也無法解決問題, 最後重新啟動 docker service ,才如願解決這個狀況.
我想應該是重啟docker時, 系統重新規劃這些container 內部ip, 就能順利參考到了.

docker安裝moodle線上學習初體驗

docker搜尋一下, 找到 bitnami 製作的moodle images , 照著做滿簡單就能架站


1. 下載docker compose yaml檔案

curl -sSL https://raw.githubusercontent.com/bitnami/bitnami-docker-moodle/master/docker-compose.yml > docker-compose.yml

2. 修改yml如下

version: '2'
 services:
   mariadb:
     image: 'docker.io/bitnami/mariadb:latest'
     environment:
       - ALLOW_EMPTY_PASSWORD=yes
       - MARIADB_USER=bn_moodle
       - MARIADB_DATABASE=bitnami_moodle
       - MARIADB_CHARACTER_SET=utf8mb4
       - MARIADB_COLLATE=utf8mb4_unicode_ci
     volumes:
       - 'mariadb_data:/bitnami/mariadb'
   moodle:
     image: 'docker.io/bitnami/moodle:latest'
     ports:
       - '8088:8080'
       - '8445:8443'
     environment:
       - MOODLE_DATABASE_HOST=mariadb
       - MOODLE_DATABASE_PORT_NUMBER=3306
       - MOODLE_DATABASE_USER=bn_moodle
       - MOODLE_DATABASE_NAME=bitnami_moodle
       - ALLOW_EMPTY_PASSWORD=yes
     volumes:
       - 'moodle_data:/bitnami/moodle'
       - 'moodledata_data:/bitnami/moodledata'
     depends_on:
       - mariadb
     hostname:'<主機名稱>'
 volumes:
   mariadb_data:
     driver: local
   moodle_data:
     driver: local
   moodledata_data:
     driver: local

3. 這個moodle container 內部預設的http port 8080 , https port 8443, 我改成 80888445

docker-compose up -d

4. 瀏覽器輸入 https://ip:8445 登入, 預設帳號 user , 密碼 bitnami

5. 設定docker本體主機上面的let's enpcrypt後, 進行httpd apache 與container對應工作

<VirtualHost *:443>
  ServerName 主機名稱
  ErrorLog /var/log/httpd/ssl_error_log
  TransferLog /var/log/httpd/ssl_access_log
  SSLEngine On
  SSLCertificateFile /etc/letsencrypt/live/<主機名稱>/cert.pem
  SSLCertificateKeyFile /etc/letsencrypt/live/<主機名稱>/privkey.pem
  SSLCACertificateFile /etc/letsencrypt/live/<主機名稱>/fullchain.pem
  SSLProxyEngine On
  ProxyRequests Off
  ProxyPreserveHost On
  RequestHeader set X-Forwarded-Proto "https"
  ProxyPass / http://localhost:8088/
  ProxyPassReverse / http://localhost:8088/
  <Location />
    Order allow,deny
    Allow from all
  </Location>
</VirtualHost>   

 

6. 若需要發email , 除了設定server ip 帳號密碼外, 還需要進入container , 安裝sendmail 這支程式 (2021/03/02)
另外需要進入container, 手動新增crontab規則(2021/03/04)

crontab -u www-data -e
####
*/15 * * * * /opt/bitnami/php/bin/php /bitnami/moodle/admin/cli/cron.php >/dev/null
#請確認php路徑,與moodle安裝路徑是否正確

docker的nextcloud手動升級經驗17->20

公司 nextcloud 版本號為 17 , 今天突然心血來潮, 手動pull 最新版的nextcloud 20, 結果系統直接進入維護模式, 再起不能...
我自己犯了跨兩個大版本不能升級禁忌, 原本想說若失敗, 再把舊的啟用即可, 甚至連設定檔都懶得備份,
當我發現新版啟用失敗時, 只好回到舊的nextcloud,
哎呀! 居然無法啟動, 應該是新版本有改動到舊版設定檔案, 於是就GG了.
這下慘了! 我得趕緊想辦法解決, 在公司同仁發現前, 解決升版, 降版都失敗的窘境,
最後靈光一閃, 終於成功升級到最新版本!
以下真實記錄一下解決的過程:


1. pull nextcloud 最新版號20, 掛載舊的設定檔案, 啟動後出現維護模式, 無法使用. 我於是下指令解除維護模式, 瀏覽器上顯示出現可升級的選項, 上吧, 皮卡丘!

docker exec --user www-data nextcloud_2 php occ maintenance:mode --off

皮卡丘上場了, 但是不給力... 瀏覽器出現升級失敗, 版本不支援的訊息(Updates between multiple major versions are unsupported),
好險docker還能進入nextcloud, 我找到version.php這個檔案, 發現裡面指定只能從19升級到20

$OC_Version = array(20,0,5,2);
$OC_VersionString = '20.0.5';
$OC_Edition = '';
$OC_Channel = 'stable';
$OC_VersionCanBeUpgradedFrom = array (
   'nextcloud' => 
   array (
     '19.0' => true,
     '20.0' => true,
   ),
   'owncloud' => 
   array (
     '10.5' => true,
   ),
 );

2. 死馬當活馬醫, 把version.php的資料改成讓17能升級到18 (19改成17, 20改成18), 然後pull nextcloud 18版 , 再掛上舊有的設定檔案後, 啟動 nextcloud 18版, log 居然神奇的啪啪啪, 出現17升級到18的訊息, 瀏覽器也能成功登入nextcloud, 並且顯示幕前版本18版

Initializing nextcloud 18.0.13.1 …
Upgrading nextcloud from 17.0.5.2 …
Initializing finished
Nextcloud or one of the apps require upgrade - only a limited number of commands are available
You may use your browser or the occ upgrade command to do the upgrade
 Setting log level to debug
 Turned on maintenance mode
 Updating database schema
 Updated database
 Disabled incompatible app: workflow_pdf_converter
 Updating  …
 Migrate old user config
 Starting …
     0/0 [>---------------------------]   0%

3. pull nextcloud 19版 , 掛上舊設定檔案, 啟動後也成功升級到19版

4. 掛上之前最新的nextcloud 20版, 也能從19升到20囉 , 驚險完成升級任務.

nextcloud連接onlyoffice體驗

我自己的nextcloud原本連結 Collabora Online 達到可線上編輯office檔案的功能, 但是最近發現only office更相容M$ office, 於是想試用only office線上編輯的功能, 這次也是使用docker 安裝,不使用only office內建的let's encrypt功能, 使用docker本體主機上的let's encrypt 與 onlyoffice 進行mapping.

docker volume create onlyoffice_fonts
docker run --restart always -v onlyoffice_fonts:/usr/share/fonts -v /etc/letsencrypt:/etc/letsencrypt  --name onlyoffice -d  -p 8443:443 onlyoffice/documentserver

這樣就安裝完畢了, 接下來就是進入only office, 進行憑證的對應
** onlyoffice_fonts 的路徑可以存放其他字型(TTF), 再進入only office執行 /usr/bin/documentserver-generate-allfonts.sh即可使用新的字型

docker exec -it onlyoffice bash
######
mkdir /var/www/onlyoffice/Data/certs
cd /var/www/onlyoffice/Data/certs/
openssl dhparam -out dhparam.pem 2048
ln -s /etc/letsencrypt/live/onlyoffice.test.com/fullchain.pem /var/www/onlyoffice/Data/certs/onlyoffice.crt
ln -s /etc/letsencrypt/live/onlyoffice.test.com/privkey.pem /var/www/onlyoffice/Data/certs/onlyoffice.key
######
docker restart onlyoffice

上面紅色部分就是這個only office的網址, 請自行更改, 最後再到nextcloud啟用onlyoffice連結功能, 再輸入docker 的onlyoffice的網址, 如: https://onlyoffice.test.com , 就可以享用高度相容M$ office的線上編輯功能了

PS. 若docker onlyoffice的憑證是自己簽發的, 經過測試無法使用, 官網建議的做法一樣失敗, 請三思 https://api.onlyoffice.com/editors/nextcloud
測試的nextcloud 20.0.4 , 插件onlyoffice是6.1.0.83

M$ office的另一種選擇onlyoffice

有一天幫同事看了一款筆電, 硬體規格很好, 價格也很優惠, 再仔細一看, 原來作業系統不是windows , 而是一款叫做 Endless OS 的作業系統, 難怪便宜多了.
一般這種非windows筆電,除非是MAC BOOK, 否則麻瓜們很難接受, 主要原因在於M$ office相容性, 雖然替代的軟體很多, 可惜相容度有待加強, 介面差異也頗大, 麻瓜使用的意願不可能高.
好奇心的驅使下, 讓我相知道為何廠商敢搭載非windows作業系統, 放到只有麻瓜會看的賣場上販賣.
於是我查了 Endless OS 規格, 發現預載了 only office , 試用了結果非常棒, 連介面都非常M$.
only office跟其他office替代軟體一樣, 並沒有台灣的新細明體, 標楷體, 若自用只能自行想辦法安裝(但這要小心, 不要觸法),
不過沒關係還是可以安裝其他相容的字型, 如國發會的全字庫 商用也沒問題呢.

1 2 3 4 5 ... 44