標籤

2023年12月30日 星期六

有照後鏡視野的自行車眼鏡

 有照後鏡視野的自行車眼鏡

https://youtube.com/clip/Ugkx-HedLrLf9BMf_ao2UPkhtwRK7Xchuzx-?si=GPsNCj1qGP3RoKvb

四軸無人機,落地時可變成四個輪子在地面行走

 四軸在空中比較耗能,在駕駛時也比較怕碰撞

所以落地還能移動



2:27秒



2023年10月25日 星期三

在centos 7架設proxy server

安裝套件

編輯設定

測試

打開防火牆

設定router的虛擬server



在CentOS 7上安装Squid代理服务器非常简单。你可以使用Yum包管理器来安装Squid。以下是具体的步骤:



打开终端,以管理员权限登录到你的CentOS 7服务器。


更新你的包列表,以确保你获取最新的软件包信息:
Copy codesudo yum update



安装Squid。运行以下命令:Copy codesudo yum install squid



安装完成后,你可以启动Squid服务并设置它在系统启动时自动启动:
sudo systemctl start squid sudo systemctl enable squid


默认情况下,Squid的主要配置文件位于/etc/squid/squid.conf。你可以使用文本编辑器(如nano或vim)编辑这个文件以进行更多高级配置,根据你的需求。例如:允许特定网络访问代理:通过编辑squid.conf文件中的http_access部分来配置。
更改代理端口:默认端口为3128,你可以在http_port行中更改端口号。
配置缓存选项、身份验证等。


保存配置文件并重新加载Squid以应用更改:Copy codesudo systemctl reload squid



配置客户端应用程序以使用你的CentOS 7上安装的Squid代理服务器。通常,你需要指定代理服务器的IP地址和端口号。

Squid现在应该已经安装并运行在你的CentOS 7服务器上,准备接受代理请求。确保按照你的需求进行更多高级配置,例如身份验证、访问控制等,以确保代理服务器按照你的要求运行。

要配置Squid代理服务器以仅允许特定IP地址来使用,你可以编辑Squid的配置文件并添加适当的ACL(Access Control List)和http_access规则。以下是如何配置Squid以仅允许特定IP地址使用的示例:

  1. 打开Squid的配置文件/etc/squid/squid.conf

    bash
    sudo nano /etc/squid/squid.conf
  2. 在配置文件中找到并编辑http_access部分。通常,这部分包括一系列http_access allowhttp_access deny规则。

  3. http_access规则之前,添加一个新的ACL规则以定义你要允许的IP地址。例如,要允许IP地址为192.168.1.100的主机,可以添加以下行:

    css
    acl allow_ip src 192.168.1.100
  4. http_access规则中,添加一条规则以允许特定ACL。例如,要允许allow_ip ACL,可以添加以下行:

    http_access allow allow_ip

    这将允许ACL allow_ip 中列出的IP地址访问代理服务器。

  5. 在其他http_access规则之后,确保添加http_access deny all,以拒绝所有未明确允许的请求。

    css
    http_access deny all
  6. 保存配置文件并退出文本编辑器。

  7. 重新加载Squid以应用更改:

    sudo systemctl reload squid

现在,Squid代理服务器将仅允许192.168.1.100(或你添加的其他IP地址)的主机来使用。确保按照需要添加和配置更多的ACL和http_access规则,以满足你的具体访问控制需求。






在CentOS 7上检查代理服务是否正在运行,你可以使用以下方法:

使用命令行工具:

使用命令行工具来检查代理服务的状态。你可以使用systemctl命令来查看Squid代理服务器是否正在运行,假设你使用Squid作为代理服务器。运行以下命令来检查Squid服务状态:luaCopy code
systemctl status squid


如果Squid代理服务器正在运行,你将看到相关信息,包括Active字段显示为"active"或"running"。


查看Squid日志:

你可以查看Squid代理服务器的日志以获取更多信息。Squid的日志文件通常位于/var/log/squid/目录中。你可以使用cat或less等命令查看特定的Squid日志文件,例如:bashCopy code
cat /var/log/squid/access.log


这将显示访问日志文件的内容。如果代理服务器正在正常运行,你将看到相关的访问日志记录。


测试代理服务器:

你还可以使用curl或wget等命令来测试代理服务器的可用性,以确保它正在运行并可用。例如,你可以运行以下命令测试代理服务器的连接:arduinoCopy code
curl -x <代理服务器IP:端口> https://www.example.com


将<代理服务器IP:端口>替换为实际的代理服务器IP地址和端口号。如果请求成功,代理服务器应该是运行正常的。

请注意,代理服务器的日志文件、端口号和配置文件的路径可能会因安装的代理服务器软件和配置而不同。确保根据你的具体情况查找正确的文件和目录。在检查代理服务器时,确保你有权限进行操作,以避免违反任何法律或规定。


要在CentOS 7中添加防火墙规则以允许代理服务器流量通过3128端口(假设代理服务器使用端口3128),你可以使用`firewall-cmd`命令。以下是如何添加规则的示例:


1. **添加允许代理流量的规则**:


使用以下命令来添加一个规则,允许TCP流量通过3128端口:


```
sudo firewall-cmd --permanent --add-port=3128/tcp
```


- `--permanent` 表示将规则永久保存,以便在系统重启后仍然生效。
- `--add-port` 添加端口规则。


2. **重新加载防火墙**:


添加规则后,需要重新加载防火墙以应用更改:


```
sudo firewall-cmd --reload
```


3. **验证规则是否添加成功**:


你可以使用以下命令来查看已添加的端口规则:


```
sudo firewall-cmd --list-all
```


在输出中,你应该看到允许TCP流量通过端口3128的规则。


这样,防火墙将允许来自外部IP地址的流量通过3128端口访问代理服务器。确保你的代理服务器已在端口3128上正常运行,并且已按照上述步骤添加了防火墙规则。如果需要,可以根据实际情况更改端口号或协议(例如,如果代理服务器使用UDP流量)。



2023年10月11日 星期三

同步口譯app的開發過程

 同步口譯app的開發過程

iPhone

即時語音辨識用內建的就很強

    private let speechRecognizer = SFSpeechRecognizer(locale: Locale(identifier: "zh-TW"))!

//    private let speechRecognizer = SFSpeechRecognizer(locale: Locale(identifier: "ja-JP"))!

//    private let speechRecognizer = SFSpeechRecognizer(locale: Locale(identifier: "en-US"))!

//    private let speechRecognizer = SFSpeechRecognizer(locale: Locale(identifier: "th-TH"))!

//    private let speechRecognizer = SFSpeechRecognizer(locale: Locale(identifier: "vi-VN"))!

//    private let speechRecognizer = SFSpeechRecognizer(locale: Locale(identifier: "ko-KR"))!


    private var recognitionRequest: SFSpeechAudioBufferRecognitionRequest?

    

    private var recognitionTask: SFSpeechRecognitionTask?

    

    private let audioEngine = AVAudioEngine()

        speechRecognizer.delegate = self

        

        // Asynchronously make the authorization request.

        SFSpeechRecognizer.requestAuthorization

  

可以參考xcode中的範例 SpokenWord


然後,翻譯的部分,我先嚐試用 google mlkit的翻譯,但翻譯品質很差,我打算改用google 雲端付費的api來試試,每月有50萬字的免費額度



google mlkit translate的作法

要先引用套件

pod 'GoogleMLKit/Translate''4.0.0'

然後使用的方法是

var mytr: Translator?

        let options = TranslatorOptions(sourceLanguage: .chinese, targetLanguage: .japanese)

        mytr = Translator.translator(options: options)

        let conditions = ModelDownloadConditions(

            allowsCellularAccess: false,

            allowsBackgroundDownloading: true

        )

        mytr?.downloadModelIfNeeded(with: conditions) { error in

            guard error == nil else { return }

            print("model ok")

            // Model downloaded successfully. Okay to start translating.

        }

                self.mytr?.translate(self.tv_talk.text) { translatedText, error in

                    guard error == nil, let translatedText = translatedText else { return }

                        self.tv_my.text=translatedText

                }

同樣也有範例參考 TranslateExample

下載位置 https://github.com/googlesamples/mlkit

2023年5月1日 星期一

使用OpenAI chatGPT技術, 根據公司公開重大訊息的內容做出解讀,主要是看這訊息對公司股東的影響,進而會不會影響到股價

 

使用OpenAI chatGPT技術, 根據公司公開重大訊息的內容做出解讀,主要是看這訊息對公司股東的影響,進而會不會影響到股價





天地資訊 : http://www.tendy.net/


程式碼

import requests
from bs4 import BeautifulSoup
import openai

url = "https://mops.twse.com.tw/mops/web/ajax_t05st01?firstin=1&TYPEK=all&step=2&seq_no=2&spoke_time=175712&spoke_date=20230501&co_id=2402&skey=2402202305012"

resp = requests.get(url)
html = resp.content
soup = BeautifulSoup(html,'html.parser')
text = soup.get_text()
text = text.replace('\n','')

openai.api_key = '自己的api key'
q = f"解讀以下內容對股東的影響 用少於100字來說明: \n\n{text}"
res = openai.ChatCompletion.create( model="gpt-3.5-turbo",messages=[{"role":"user","content":q}])
ans = res['choices'][0]['message']['content']
print(ans)



2023年4月1日 星期六

用python寫一支可以取得5秒加權指數歷史資料的程式

用python寫一支可以取得5秒加權指數歷史資料的程式 


import requests

import pandas as pd

import os


# 這個函數用來判斷要不要跳過某一行

def skip_rows(row):

    return row.startswith("說明:") or row.startswith("民國")


def download_taiex_csv(date):

    print(date+"下載轉換中")

     url = f'https://www.twse.com.tw/exchangeReport/MI_5MINS_INDEX?response=csv&date={date}&type=csv'

    response = requests.get(url)

    tmpfilename = f'tmp{date}.csv'

    with open(tmpfilename, 'w') as f:

        f.write(response.text)


     try:

        df = pd.read_csv(tmpfilename, skiprows=1)

    except ValueError:

        print(f'No data available for {date}')

    else:

        

        df = df[['時間', '發行量加權股價指數']]

        df.rename(columns={'發行量加權股價指數': '加權指數'}, inplace=True)

        df['時間'] = df['時間'].apply(lambda x: x.replace('=', '').replace('"', ''))

        df['時間'] = pd.to_datetime(df['時間'], errors='coerce')

        df['時間'] = df['時間'].dt.strftime('%H:%M:%S')

        df['加權指數'] = df['加權指數'].str.replace(',', '').astype(float)

        df = df.dropna(subset=['時間'])

        print(df.head())

        # 儲存為CSV檔案

        df.to_csv('taiex_%s.csv' % date, index=False)

    

    os.remove(tmpfilename)


# 主程式

start_date = '20230329'

end_date = '20230401'


for date in pd.date_range(start_date, end_date):

    download_taiex_csv(date.strftime('%Y%m%d'))


2023年3月26日 星期日

2023年3月16日 星期四

android上架後,下載的app icon為何變成內建小綠人,解決方法

 android上架後,下載的app icon為何變成內建小綠人,解決方法

不知道從哪個版本開始,android studio 把app icon 區分debug/release

據說是有助於開發人員識別


解決方法就是在res , 新建 image asset時

選好圖片的下一步,左上角會有選項顯示debug

這時去把這選項改為main就好了


2023年3月8日 星期三

Soup your photo 's privacy policy

Soup your photo 's  privacy policy

Soup uses cameras and photo albums, which are only for the user's own operation and use, and will not do any collection and sharing, nor upload to the Internet.


Soup has tandem mobile ads using Google's admob

iOS app 上架新增時,未出現套件識別碼的解決方法

 有可能是app沒有用到特別權限,所以xcode 未幫你註冊套件識別碼

這時只需要在xcode project -> target-> signing&Capabilities

隨意先新增一項,等xcode幫你註冊完成,再把這項刪掉就可以了

2023年2月19日 星期日

將chatGPT及Google Vision API應用在天地股票投資機器人(line)

將chatGPT及Google Vision API應用在天地股票投資機器人(line)

主要是把圖片內的文字轉出來,再請openai,幫我做標題


2023年2月5日 星期日

AI神修復殘破老照片,連打馬賽克的照片都能解碼

模糊照片可以修復成清晰

古老殘破的舊照片翻新

連打馬賽克(薄碼)的人臉都能修補出無碼

https://huggingface.co/spaces/sczhou/CodeFormer