2025年2月7日 星期五

VScode安裝及中文化

1. 安裝VSCodeSetup-x64-1.52.1.exe

2. 安裝ndp48-x86-x64-allos-enu.exe

3. 畫面的左方功能列表中,可以找到 Extensions,點選後輸入 “Chinese” 即可搜尋到中文的相關語系,選擇中文(繁體)後頁面的右方即會出現相關介紹,此時按下 “Install” 就會安裝中文語系套件。

如果要玩Pyhton

4. 安裝最新版本 https://www.python.org/downloads/

5.

2025年1月29日 星期三

使用 Calibre 外掛將ePub 電子書簡轉繁

  1. 開啟 Calibre 軟體主視窗,點一下「偏好設定」按鈕再按「外掛」。
  2. 開啟外掛設定頁面後,按一下「取得新外掛」按鈕。
  3. 在「以名稱篩選」方框中輸入「chinese」再按鍵盤的「Enter」鍵,找到「Traditional <-> Simplified Chinese Converter」後按「安裝」。


  4. 安裝好外掛程式後,選取你要轉換的 ePub 文件再按「編輯書本」按鈕,開啟編輯書本視窗後執行「外掛」裡面的「Convert Chinese Text Simplified/Traditional」功能。





  5. 在「Chinese Conversion」視窗中,如果要將簡體中文轉換成繁體字的話,請選「Simplified to Traditional」,「Language Styles」裡面選「Taiwan」,按下「確定」按鈕後,即可開始轉換。

  6. 完成後請先檢查一下是不是都正常,沒問題的話按「儲存」按鈕即可完成。



2024年11月21日 星期四

FreeBSD 14.1架站紀錄

 使用檔案:FreeBSD-14.1-RELEASE-amd64-dvd1.iso

1.設定SSH

修改方式:

# vi /etc/ssh/sshd_config
PermitRootLogin yes
PermitEmptyPasswords no
PasswordAuthentication yes
Port 22(修改Port的Num)

開機啟動:

# vi /etc/rc.conf加入
sshd_enable="yes"

重新啟動服務:

# /etc/rc.d/sshd restart
AllowUsers UserName(允許特定IP或User)

2.putty字型大小調整

3.安裝Appache

(1) pkg info 第一次安裝pkg / 之後可看裝了那些套件
(2) pkg update 更新pkg
    [1] pkg search 
    [2] pkg install
    [3] pkg delete
    [4] pkg info -a   
(3) 安裝Appache
    [1] pkg search apache
    [2] pkg install apache24-2.4.62
    [3] ee /etc/rc.conf 寫入 apache24_enable="YES"
    [4] service apache24 restart
    [5] /usr/local/etc/apache24/httpd.conf    (編輯設定) 
    [6] Options Indexes FollowSymLinks >> Options FollowSymLinks    (取消觀看目錄)
    [7] DirectoryIndex index.html index.htm index.php    (預設首頁格式)
(4) 安裝Mysql
    [1] pkg search mysql
    [2] pkg install mysql84-server
    [3] ee /etc/rc.conf 寫入 mysql_enable="YES"
    [4] service mysql-server restart
    [5] service mysql-server status    //測試mysql有沒有啟動
    [6] mysql_secure_installation        //設定Mysql的root密碼和一些安全性設定
    [7] 登入Mysql : mysql -u root -p
    [8] 離開 mysql> \q
    [9] /usr/local/etc/my.cnf    (my.cnf位置)
    [10] find / -name mysql.sock           (搜尋)
    [11] ee /etc/passwd        (觀看目前帳號狀況)
    [12] mysql指令
            show databases;
            use mysql
            show tables;
            select host, user, plugin from mysql.user;    (查詢密碼的編碼)
            alter user 'root' identified with mysql_native_password by 'passwd';    (修改密碼編碼)
                (因為mysql84預設值會把mysql_native_password關閉,所以需要做以下修改)
                ee  /usr/local/etc/my.cnf                        編輯my.cnf
                mysql_native_password           = ON    加入這行
                bind-address                    = 0.0.0.0        把127.0.0.1改成0.0.0.0
            alter user 'root' IDENTIFIED BY 'passwd';    (修改密碼)
            update mysql.user set host = '%' where user = 'root';    (開放所有IP連線)
            如有失敗,先設定密碼安全程度
            {1} SHOW VARIABLES LIKE 'validate_password%';    (查詢密碼策略)
            {2} set global validate_password.policy=0;                    (修改策略)
            {3} set global validate_password.length=1;                    (修改長度)
            {4} flush privileges;    (刷新權限表)
            {5} 參考資料 https://www.cnblogs.com/baby123/p/12221405.html

(5) 啟用防火牆
    sysrc firewall_enable=YES
    sysrc firewall_quiet=YES
    sysrc firewall_type="workstation"
    sysrc firewall_myservices="22/tcp 443/tcp"
    sysrc firewall_logdeny=YES
    service ipfw start
    service ipfw status
    查看目前的防火牆設定的指令: ipfw list

4.安裝PHP
    [1] pkg install php84
    [2] pkg install mod_php84
    [3] pkg install php84-session-8.4.0.r1    (安裝session)
    [4] pkg install php84-mysqli-8.4.0.r1    (安裝Mysqli延伸套件)
    [5] pkg install php84-mbstring-8.4.0.r1    (mbstring套件)
    [6] php.ini    ( /usr/local/etc/php.ini )
        (1) ;extension=mysqli    (更改為啟用)
        (2) ;session.save_path = "/var/lib/php/session"
        (3) ;date.timezone = Asia/Taipei    (改為啟動並設定台北時間)

    [8] https://files.phpmyadmin.net/snapshots/phpMyAdmin-6.0%2bsnapshot-all-languages.zip.sha256
        (下載最新版的phpmyadmin)
        To make phpMyAdmin available through your web site, I suggest        
        that you add something like the following to httpd.conf:                        
        Alias /phpmyadmin/ "/usr/local/www/phpMyAdmin/"                            
        <Directory "/usr/local/www/phpMyAdmin/">                                        
                Options None                                                                                    
                AllowOverride Limit                                                                        
                Require local                                                                                    
                Require host .example.com                                                                
        </Directory>                                                                                            
    [9] /var/lib/php/session    (session儲存的地方)    
    [10] pkg install php84-sodium-8.4.0.r1     (phpmyadmin會用到的套件)
    [11] ;extension=sodium    (啟用)

5.掛載新的磁碟機
    [1] gpart create -s GPT ada1
    [2] gpart add -t freebsd-ufs -a 1M ada1
    [3] newfs -U /dev/ada1p1
    [4] mkdir /newdisk            (可以修改成自己想要的資料夾名稱)
    [5] 將磁碟項目加入到 /etc/fstab,讓啟動時會自動掛載新的磁碟:
            /dev/ada1p1 /newdisk ufs rw 2 2
    [6] mount /newdisk            (手動掛載 )

6.啟用FTP
    [1] 使用 inetd
            編輯 /etc/inetd.conf,將 ftp 設定開頭的 # 移除
            ftp     stream  tcp     nowait  root    /usr/libexec/ftpd       ftpd -l
            ftp     stream  tcp6    nowait  root    /usr/libexec/ftpd       ftpd -l
    [2]  vi /etc/rc.conf               //修改 rc.conf 設定檔
             inetd_enable="YES"             //加入此行
    [3] /etc/rc.d/inetd start               //啟動 inetd 服務
    [4] telnet localhost 21                 //測試 ftp 服務是否啟動
            quit                                 //輸入 quit 離開
    [5] 修改 /etc/ftpchroot    
        ※加入使用者名稱,讓該使用者不能離開他的家目錄

7.安裝Samba
    [1] pkg install samba419
    [2] ee /etc/rc.conf
            nmbd_enable="YES"
            winbindd_enable="YES"
            samba_enable="YES"
            samba_server_enable="YES"
    [3] ee /usr/local/etc/smb4.conf    (創立設定檔,原本為空的)
    [root]
        comment = root's stuff
        path = /root
        public = no
        browseable = yes
        writable = yes
        printable = no
        create mask = 0755
    [4] smbpasswd -a root  (建立用戶)
    [5] cd /usr/local/etc
    [6] service samba_server start
    [7] service samba_server status

8.帳號設定
    [1] 帳號相關檔案: /etc/passwd    、    /etc/shadow
    [2] 群組(group)相關檔案: /etc/group

9.修改系統時間
    [1]  tzsetup /usr/share/zoneinfo/Asia/Taipei    (更改時區為台灣)
    [2]  ntpdate -u pool.ntp.org    (線上同步對時)


2023年12月29日 星期五

中打大富翁對話邏輯備份

typegame_speech
> mode 0
>> after=0 對話直接結束
>> after>0 出現下一個選單 (通常最後會到一個 mode 1 的對話)

> mode 1
>> 出現問題選單 選單內容:
>> qus_sp 的 part
>> 正確回答問題 r_mission
>> 錯誤回答問題 w_mission
>>> 導引至任務資料庫 typegame_speech_misson
>>> mode 0
>>>> 傳送、製作、消耗物品等
>>> mode 1
>>>> 特殊任務

2023年8月28日 星期一

採購法筆記

法規名稱: 機關委託技術服務廠商評選及計費辦法

【服務費用採服務成本加公費法】

 1.全部管理費用不得超過直接薪資扣除非經常性給與之獎金後之百分之一百。

2.工作人員不扣薪假與特別休假之薪資費用,免檢據核銷。但不得超過實際薪資之百分之十六。

3.非經常性給與之獎金為實際薪資之一定比率及給付條件,檢據核銷。但不得超過實際薪資之百分之三十。

4.公費,應為定額,全部公費不得超過直接薪資扣除非經常性給與之獎金後與管理費用合計金額之百分之二十五。


採購爭議

1.廠商對於機關依前條所為之通知,認為違反本法或不實者,得於接獲通知之次日起二十日內,以書面向該機關提出異議


應刊登採購公報的情況

下列政府採購資訊應刊登採購公報一日,並公開於主管機關之政府採購資訊網站(以下簡稱採購網站):

一、本法第二十二條第一項第九款至第十一款、第十四款規定之公開評選、公開徵求或審查之公告。

二、本法第二十七條第一項規定之招標公告及辦理資格審查之公告。

三、本法第四十一條第二項規定之變更或補充招標文件內容之公告及必要之釋疑公告。

四、本法第六十一條規定之決標結果或無法決標之公告。

五、本法第七十五條第二項規定應另行辦理之變更或補充招標文件內容之公告。

六、本法第一百零二條第三項規定之廠商名稱與相關情形。

七、本法第一百零三條第一項規定之註銷公告。


機關辦理特殊或巨額採購,可就下列事項擇定投標廠商之特定資格

1.截止投標日前五年內,完成與招標標的同性質或相當之工程、財物或勞務契約,其單次契約金額或數量不低於招標標的預算金額或數量之五分之二,或累計金額或數量不低於招標標的預算金額或數量

2.具有相當財力者。其範圍得包括實收資本額不低於招標標的預算金額之十分之一

3.權益不低於招標標的預算金額十二分之一

4.流動資產不低於流動負債

5.總負債金額不超過權益四倍。但配合民營化政策之公營事業參加投標者,不在此限


2023年7月8日 星期六

[python]使用滑鼠指定範圍螢幕截圖,儲存截圖+將截圖寫入剪貼簿

 1.安裝元件

pip install opencv-python

2.參考程式碼
import cv2
import time,PIL,os
from PIL import ImageGrab
import numpy as np
import tkinter as tk
from tkinter import *
import win32clipboard as clip
from ctypes import *
import win32con

window = tk.Tk()
window.wm_attributes('-topmost',1)  #固定最上層
window.wm_attributes('-toolwindow',1)  #去除最大最小化按鈕
window.resizable(0,0)  #禁止改變大小
window.title('螢幕截圖')
window.geometry("270x170+1370+250")
window.focus_set()
#截图
def cut():
    global img
    scrren_cut()
    img = cv2.imread('screen.jpg')
    cv2.namedWindow('image')
    cv2.setMouseCallback('image', on_mouse)
    cv2.imshow('image', img)
    cv2.waitKey(0)
    os.remove('screen.jpg')
def scrren_cut():
    beg = time.time()
    debug = False
    # img = ImageGrab.grab(bbox=(250, 161, 1141, 610))
    image = ImageGrab.grab()
    image.save("screen.jpg")
    # PIL image to OpenCV image
def on_mouse(event, x, y, flags, param):
    global img, point1, point2
    img2 = img.copy()
    if event == cv2.EVENT_LBUTTONDOWN:         #左鍵點擊
        point1 = (x,y)
        cv2.circle(img2, point1, 10, (0,255,0), 5)
        cv2.imshow('image', img2)
    elif event == cv2.EVENT_MOUSEMOVE and (flags & cv2.EVENT_FLAG_LBUTTON):               #按住左鍵拖曳
        cv2.rectangle(img2, point1, (x,y), (255,0,0), 5)
        cv2.imshow('image', img2)
    elif event == cv2.EVENT_LBUTTONUP:         #左鍵放開
        point2 = (x,y)
        cv2.rectangle(img2, point1, point2, (0,0,255), 5)
        cv2.imshow('image', img2)
        min_x = min(point1[0],point2[0])    
        min_y = min(point1[1],point2[1])
        width = abs(point1[0] - point2[0])
        height = abs(point1[1] -point2[1])
        cut_img = img[min_y:min_y+height, min_x:min_x+width]
        cv2.imwrite('cut.bmp', cut_img)

        aString=windll.user32.LoadImageW(0,"cut.bmp",win32con.IMAGE_BITMAP,0,0,win32con.LR_LOADFROMFILE)
        print(aString)
        if aString !=0: ## 寫入剪貼簿並關閉CV視窗
            clip.OpenClipboard()
            clip.EmptyClipboard()
            clip.SetClipboardData(win32con.CF_BITMAP, aString)
            clip.CloseClipboard()
            cv2.destroyAllWindows()

window.bind("<F11>",lambda event:cut()) #F11截圖

window.mainloop()

2023年7月4日 星期二

python排版

 https://pythonhi.pixnet.net/blog/post/322521486