chlorine gas uses sigma p or sigma sp3 bonding?

ⅦA氟族氯氣(Cl₂)分子由兩顆氯原子(Chlorine)以單鍵,即σ鍵結合而成。每顆氯原子其原子序17,電子組態[Ne] 3s²3p⁵,最外殼層有7個價電子,其中6個成對,1個未成對。根據八隅體規則(Octet Rule),將兩個氯原子的未成對電子重疊共用,讓每個氯原子周圍有8個價電子時,氯氣分子可達到最大穩定度。對於氯氣的σ鍵組成是σp-p或σsp3-sp3混成軌域(hybridized orbitals),目前兩種說法都有支持者如下。

  1. σp-p: 依據兩個p軌域未成對電子重疊共用,可形成八隅體穩定現象,而支持氯氣的σ鍵組成是σp-p的說法有
    Chemistry - Molecular Structure (27 of 45) Sigma(p-p) Bond - Example
  2. σsp3-sp3: 依據價殼層電子對互斥理論(VSEPR, Valence Shell Electron Pair Repulsion Theory),氯原子周圍空間位數(Steric Number)=鍵結數1+孤電子對數3=4,而支持氯氣的σ鍵組成是σsp3-sp3的說法有
    Hybridization of Cl2 (description of hybrid orbitals for Chlorine)

由於兩者預測的分子形狀都是直線形,故無法由預測形狀區別,只能期待由實驗獲得的鍵長或鍵強度判定。相關的ⅦA氟族、ⅥA氧族、或VA氮族氣體分子應該也有類似的σ鍵組成疑問待證實。

how to manage self-select user groups on moodle

使用Moodle教學平台,如果想讓同學自由分組,有兩種作法。第一種是使用外加的Group self-selection module模組,操作較簡便,但此非預設模組,須請Moodle管理者安裝才能用此分組活動。第二種是從預設模組手動管理,操作較麻煩,但可利用現有票選(Choice)活動達成,不失為可行的替代方案。以下將介紹第二種手動管理法

1. 開啟【票選(Choice)】活動C,設定截止期限之前,允許學生自由變更組別。
   假設想分成 N=10 組,每組人數上限 M=5 人,則可規劃
     team00, team01, team02, ..., team10, team11, team12, team13, team14, team15共16組。
   其中,team00為教師,助教群組,供了解學生操作畫面。team01 ~ team10為實際10個分組。
       team11 ~ team15為備用分組,供臨時拆分組暫存之用。
   活動的選項設定如下:
     是否允許變更選擇: 
     允許選擇一個以上的選項: 
     限制回答的次數: 
      選項1: team00, 限制1: 2
      選項2: team01, 限制2: 6
      .....
      選項16: team15, 限制16: 6
   其中,限制人數上限為M+1=6,供緩衝之用。最終仍可要求每組M=5人。

2. 匯出 票選活動的分組結果 成為 外部分組名單檔案
   進入【票選(Choice)】活動C,點選【查看?個回應/以Excel檔案格式下載】。
   打開C.xlsx檔案,可看到同學自由分組結果,如下。
      學號    名字    學號   分組      選擇 {$a}
      rrrrr   nnnn   rrrr   team07    team07
      .....
   其中,【分組】欄為學生目前所屬組別,【選擇{$a}】欄為學生選取組別。
   兩者相同表示學生沒打算變動組別,兩者不同表示學生想變動組別。
   留下【學號】【選擇 {$a}】兩欄位,整理成如下分組匯入格式,存成外部C.csv檔
      username, group
      學號1, team01
      學號2, team01
      .....
      學號n, team02

3. 批次匯入 外部分組名單檔案 成為 課程分組名單
   點選【系統管理/課程管理/用戶/匯入學生名單:】
    檔案位置:選擇一檔案,C.csv
    CSV分隔符號: ,
    編碼: UTF-8
    Role to assign: 學生
    First column contains: Id number
    Create group(s) if needed: 
    Create grouping(s) if needed:  ** (新分組是否獨立為新分群)
    Send me a mail report: 
    點選【加入課程】
    ---
    username xxx already enroled and added to Moodle's group team yy
    .....
    0 enroled
    zz group(s) created : team01, team02, ...
    tt grouping(s) created :

4. 產生 分組摘要表 供確認
   點選【系統管理/課程管理/用戶/分組/概要】,將摘要表拷貝到專屬頁面供學生確認。

5. 若想局部修正 分組名單,可修改C.csv檔,依步驟3.重新匯入。
   或點選【系統管理/課程管理/用戶】,由分組/成員/新增移除使用者,增減分組成員。

6. 取得最後課程設定好的 分組名單
   可重複步驟2,再次利用【票選(Choice)】活動C,匯出名單C.xlsx。
   留下其中的【學號】【分組】兩欄位即可。

以上步驟3,用檔案批次匯入名單的角色非常關鍵,可免去步驟5,點選逐一加入名單的辛勞。

參考: 
1. [Moodle 2.6-2.8] How to download the list of participants with groups in a course
2. Blog: moodle administration memo

how to add a user with quota limit on ubuntu?

於Ubuntu作業系統想手動新增用戶,可利用如下adduser指令。

#################################
# add user with a login name of user_name
###################
$sudo adduser  --home=/home/user_name  user_name
正在新增使用者 `user_name' ...
增加新群組 `user_name' (10xx) ....
正在新增新使用者 `user_name' (UID 10xx) 到群組 `user_name' ....
正在新增家目錄 `/home/user_name' ...
正在從 `/etc/skel'複製檔案 ...
輸入新的 UNIX 密碼:
再次輸入新的 UNIX 密碼:
passwd: 密碼已成功地變更
正在改變 user_name 的使用者訊息
請輸入新值,或直接按 ENTER 鍵以使用預設值
	全名 []: user full name
	房間號碼 []:
	工作電話 []: phone
	住家電話 []:
	其它 []:
以上輸入的資料正確嗎? [Y/n] Y


#################################
# confirm user profile of user_name
##################
$ grep user_name /etc/passwd
user_name:x:10xx:10xx:user full name,,phone,:/home/user_name:/bin/bash


#################################
# assume quota limit of source_user is 
#        Filesystem  blocks   quota   limit   grace   files   quota   limit   grace
#      /dev/sdyy      zz         30000000 100000000              13       0       0
# copy disk quota limit settings of source_user to user_name
##################
$sudo edquota -p  source_user   user_name


################################
# confirm disk quota limit
#   blocks: usage of data blocks
#   quota:  soft limit of data blocks
#   limit:  hard limit of data blocks
#   grace:  grace period when soft limit of data blocks is exceeded
#   --
#   files:  usage of inode blocks
#   quota:  soft limit of inode blocks
#   limit:  hard limit of inode blocks
#   grace:  grace period when soft limit of inode blocks is exceeded
#   --
#   when grace period is exceeded, no further writing to disk is allowed 
#     until usage is reduced below soft limit
##################
$sudo quota -u user_name
Disk quotas for user user_name (uid 10xx):
     Filesystem  blocks   quota   limit   grace   files   quota   limit   grace
      /dev/sdyy      60  30000000 100000000              13       0       0

rdp port is not listening when using xrdp

Ubuntu等Linux系統可以透過xrdp軟體監聽tcp rdp (3389)埠號,接受Windows mstsc遠端桌面客戶端連線。
一旦發現3389埠號無法連線,可以如下進行診斷:

1.檢查3389埠號是否有行程監聽
  $ sudo lsof -i :3389
  COMMAND   PID USER   FD   TYPE    DEVICE SIZE/OFF NODE NAME
  xrdp    12345 xrdp    6u  IPv4 257547474      0t0  TCP *:3389 (LISTEN)

  $ sudo ss -tulpn | grep 3389
  tcp    LISTEN     0      2         *:3389                  *:*                   users:(("xrdp",pid=12345,fd=6))

2.重新啟動xrdp服務
  $ sudo rm /var/run/xrdp/xrdp.pid    # 刪除舊行程記錄,才能重啟服務
  $ sudo service xrdp restart         # 舊重啟方法
  $ sudo systemctl restart xrdp       # 新重啟方法

how to use the piclayer plugin in josm for map making

開放街圖常用 JOSM 軟體當作其 Java 版圖資編輯器。用 JOSM 標示設施時,有時須要參考相關圖片,例如景點空拍圖或官方設施圖等,疊圖以確定其位置。這時可安裝 piclayer 外掛,將這些圖片放進 JOSM 圖層,挑選其中幾個顯眼目標,透過平移、縮放、旋轉等操作,和開放街圖作對齊,以利針對景點相關設施位置,進行標示作業。

以下以修改故宮至善園的標示為例作說明。

0a.預先將景點設施圖以螢幕擷圖貼到小畫家存成【至善園.png】圖檔,如下:
0b.點選【編輯/偏好設定】,如下:
0c.點選【外掛/搜尋】輸入 piclayer,按【OK】,開始安裝 piclayer 外掛,如下:
1a.點選【圖磚/來自檔案的新相片圖層】,如下:
1b.點選預先擷取好的【至善園.png】圖檔,放進新圖層,命名為【至善園.png】圖層,如下:
2.點選【至善園.png】圖層為作用圖層,利用左側piclayer工具欄的平移、旋轉、縮放按鈕,操作圖層的圖片, 挑選其中幾個顯眼目標,將疊圖和底層圖資校正對齊。範例中的圖層由上而下依序顯示(visible)如下, 最上層為【至善園.png】圖層,透明度 < 50%, 中間層為【nlsc_wms_2019EMAP98】臺灣通用電子地圖(新),透明度 < 50%, 最底層為【nlsc_wms_2019PHOTO2】正射影像圖(通用)
3.點選【資料圖層1】圖層為作用圖層,顯示開放街圖向量圖資,利用左側開放街圖工具欄,開始修改設施位置及標示。
4.點選【檔案/上傳資料...】,上傳圖資更新集。稍後重新載入,即可得到新版至善園開放街圖,如下:
    註解
  1. 如何於JOSM載入臺灣通用電子地圖(新)及正射影像圖(通用)圖磚,可參考「how to show NLSC taiwan maps on JOSM」說明。
  2. 對於扭曲不大,或水平/垂直軸比例一致的圖片,piclayer 外掛允許操作左側工具欄的平移、旋轉、縮放三顆按鈕,將圖片校正對齊底圖; 對於扭曲較大,或水平/垂直軸比例不一致的圖片,piclayer 外掛也允許操作左側工具欄的綠色右上箭頭按鈕。先於圖片以圓圈標示3處檢查點, 再操作左側工具欄的紅色右上箭頭按鈕,分別對準圓圈正中央,移動檢查點和底圖對應位置重疊。 如此不斷修正圖片和底圖的3處檢查點對應關係,試著以仿射變換,將圖片校正對齊底圖,過程如「Using PicLayer plugin in JOSM...」YouTube範例所示。

no menu after xrdp to ubuntu

Ubuntu可以安裝xrdp遠端桌面服務,利用Microsoft Terminal Service Client (mstsc.exe)遠端桌面登入。
登入之後,會開啟如下桌面相關行程,假設所用為xfce4輕量級桌面:
  /bin/sh /etc/X11/Xsession
  /usr/lib/xorg/Xorg :xx -auth .Xauthority -config xrdp/xorg.conf -noreset -nolisten tcp -logfile .xorgxrdp.%s.log
  /usr/sbin/xrdp-chansrv
  xfce4-session
  /usr/lib/x86_64-linux-gnu/xfce4/xfconf/xfconfd
  xfwm4
  xfdesktop
  xfsettingsd
  xfce4-panel

如果初次登入之後,只見螢幕中有一塊黑色空白(blank black)面板,卻看不到其他軟體選單。
這時,可對著黑色空白面板按下滑鼠右鍵,如下:


從跳出的右鍵選單中,點選「面板偏好設定(E)...」。
或從終端機,利用 xfce4-panel -p 指令,進入「面板偏好設定(E)...」,如下


從跳出的面板選單中,點選「Backup and restore」備份及復原,如下。

若沒有「Backup and restore」備份及復原可點選,可自行按綠色+,增添新面板,
再於新面板的項目(M),按綠色+,為面板新添「Applications Menu」項目,獲得應用程式選單鈕。

執行 xfpanel-switch,從跳出的Xfce面板切換器中,點選「Xfce 4.12」組態,再按下齒輪套用按鈕,如下:


即可順利回復螢幕上方軟體列(Applications Menu)及下方快速列(Shortcut Menu)兩面板選單,如下:

json format for ChineseQA-with-BERT

正常解問答題時,常以1文章1問題1答案為單位進行,但準備資料集時為省空間,常依實際1文章多問題多答案格式來存放案例。 故在利用底層BERT(雙向變形器編碼表現法)微調模型及預測問答時,須將1文章多問題多答案資料,還原成1文章1問題1答案格式, 才能進行微調及預測。

百度ChineseQA-with-BERT套件可基於BERT預訓練模型作問答題微調。 其run_dureader.py可接受的訓練檔json格式,可用來存放1文章1問題1答案內容,或1文章多問題多答案內容。

其中,訓練案例的各欄位路徑如下:

․問題編號: data/paragraphs/qas/id
․文章: data/paragraphs/context
․問題: data/paragraphs/qas/question
․答案: data/paragraphs/qas/answers/text

以下舉例說明此格式用來存放1文章1問題1答案的json格式長相。
{
    "data": [
        {
            "paragraphs": [
                {
                    "context": "文章",
                    "qas": [
                        {
                            "answers": [
                                {
                                    "answer_start": 答案起點下標,
                                    "text": "答案"
                                }
                            ],
                            "is_impossible": false,
                            "id": 問題編號,
                            "question": "問題"
                        }
                    ]
                }
            ],
            "title": "N.A."
        }
   ]
}

memo for installing pycharm on ubuntu with snap-confine problem

  發覺Ubuntu 16.04/18.04下,
  若使用snap安裝pycharm
    snap install pycharm-community --classic
  老在執行時出現如下安全性問題 
    Snap-confine has elevated permissions and is not confined but should be
  
  這時,可改用如下1或2方法重新安裝 pycharm 解決執行不起來問題。
  1. umake安裝pycharm法
    sudo add-apt-repository ppa:ubuntu-desktop/ubuntu-make
    sudo apt-get update
    sudo apt-get install ubuntu-make
    --
    umake ide pycharm
  其中,安裝路徑預設在~/.local/share/umake/...
  可以搬到全域路徑供大家共用:
   cd /usr/local/share
   sudo cp -pr ~/.local/share/umake .
   sudo ln -s /usr/local/share/umake/bin/jetbrains-pycharm-ce /usr/bin/pycharm
  這時就可用pycharm啟動ide整合開發環境
  
  2. 直接下載tar.gz安裝pycharm法
    https://www.jetbrains.com/pycharm/download/#section=linux

    cd /usr/local/share
    sudo tar zxvf pycharm-2019.2.3.tar.gz 
    sudo ln -s /usr/local/share/pycharm-2019.2.3/bin/pycharm.sh /usr/bin/pycharm
  這時就可用pycharm啟動ide整合開發環境

memo for streaming google drive on ubuntu file system

若想在Ubuntu檔案系統掛載串流版Google硬碟,可考慮安裝google-drive-ocamlfuse。
串流版好處是不佔實體硬碟空間,有須要才從雲端抓取資料到快取區。
其安裝指令如下,須管理者權限:
 $ sudo add-apt-repository ppa:alessandro-strada/ppa
 $ sudo apt install google-drive-ocamlfuse

安裝好之後,可供一般用戶以用戶模式掛載到家目錄,方便存取。
以下掛載指令只要執行一次即可,會啟動瀏覽器作身份確認:
  $ mkdir ~/google-drive
  $ google-drive-ocamlfuse ~/google-drive

若想卸載,可用以下指令
  $ fusermount -u ~/google-drive

症狀A: 發現執行 google-drive-ocamlfuse,沒有跳出瀏覽器驗證身份。
解法A: 清空快取狀態,指令是 google-drive-ocamlfuse -cc
       或顯示掛載除錯訊息,指令是 google-drive-ocamlfuse -debug ~/google-drive
      

症狀B: 發現 google-drive-ocamlfuse 不釋放刪除檔案之快取內容,吃光個人硬碟配額。
       用 quotarepquota -avus 指令看得到配額用光,而 du -s ~/ 指令卻看不到被誰吃光,
       但用 lsof | grep pid 指令則可以看到上千個 50MB 快取塊仍未釋放。
解法: 重新啟動google-drive-ocamlfuse,作法是
1.查詢google-drive-ocamlfuse行程pid,指令為 ps ux | grep google-drive-ocamlfuse
2.刪除google-drive-ocamlfuse行程,釋放已刪除快取,指令為 kill -9 pid
3.重新啟動google-drive-ocamlfuse,指令為 google-drive-ocamlfuse ~/google-drive

參考
1. Rendeck (2018) Google Drive on Ubuntu 18.04 Bionic Beaver Linux
2. GitHub: Disk space not freed up from cache #512
3. EPH 的程式日記 [Linux] 使用 lsof, lslocks, fuser 指令列出目前鎖定中的 file locks
4. 想知道硬碟用量及哪些目錄、檔案最耗空間的指令如下: 
     > quota       # 看個人配額使用情形
     > du -s ~/*    # 看個人第一層家目錄空間用量
     > tree -s --sort=size ~  # 逐層列舉家目錄以下各檔案大小,由大到小排序
                              # 若無tree指令,可請管理員用 sudo apt-get install tree指令安裝

memo for installing docker-ce on ubuntu 18.04

Quick Memo for Installing docker-ce on Ubuntu 18.04

# prepare utilities
> sudo apt-get update
> sudo apt-get install apt-transport-https ca-certificates curl software-properties-common

# add key and repository
#    curl -f fail silently
#    curl -s silent mode
#    curl -S show error
#    curl -L allow redirect
> curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
> sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu bionic stable"

# install docker-ce
> sudo apt-get install docker-ce

# check docker status
> sudo service docker status
> sudo systemctl status docker

# grant docker permission to specific user 'foobar'
> sudo setfacl -m user:foobar:rw /var/run/docker.sock
> sudo setfacl -x user:foobar /var/run/docker.sock
> getfacl /var/run/docker.sock
getfacl: 從絕對路徑名尾部去除“/”字符
# file: var/run/docker.sock
# owner: root
# group: docker
user::rw-
user:foobar:rw-
group::rw-
mask::rw-
other::---
> docker image list

# disable and unload AppArmor for container removal
> sudo aa-status
> sudo systemctl disable apparmor.service --now
> sudo service apparmor teardown
> sudo aa-status


Reference:
1.如何在Ubuntu 18.04上安裝與更新Docker
2.How to use Docker without sudo on Ubuntu
3.Play With Docker provides an Alpine Linux 3.10 environment with docker and git ready for use
     CPU: Intel(R) Xeon(R) CPU E5-2673 v4 @ 2.30GHz with 8 cores
     Memory: 32GB
     Drive: 64GB with 16GB used
     Limit: Use of up to 5 nodes for up to 4 hours per session

how to connect codex app to remote ollama backend through caddy relay

如何讓 Codex App 連接公司架設的 LLM 從 Caddy 閘道安裝、遠端 Ollama API 金鑰,到 Codex 的 config.toml 組態設定,一次整理成可直接照做的流程。 前言 OpenAI 提供免費下載...

總網頁瀏覽量