首页
友情链接
关于
推荐
工具
Linux
Search
1
欢迎使用 Typecho
20,820 阅读
2
(Windows)以一种访问权限不允许的方式做了一个访问套接字的尝试处理
3,714 阅读
3
Playwright使用记录
3,550 阅读
4
Unity独立安装后添加IL2CPP等编译组件
2,777 阅读
5
Windows上GCC安装
2,517 阅读
全部博文
游戏开发
Unity
Godot Engine
GDScript
编程代码
C#编程
GoLang编程
PowerShell
开发工具
Git
笔记备忘
登录
Search
标签搜索
docker
Godot
GCC
CMS
Proto.Actor
Actor模型
winpty
msys2
Unity
IL2CPP
package
golang
ssh
proxy
proxychains
minikube
k8s
n2n
PowerShell
ChatGPT
玖亖伍
累计撰写
33
篇文章
累计收到
221
条评论
首页
栏目
全部博文
游戏开发
Unity
Godot Engine
GDScript
编程代码
C#编程
GoLang编程
PowerShell
开发工具
Git
笔记备忘
页面
友情链接
关于
推荐
工具
Linux
搜索到
17
篇与
的结果
2024-08-23
Blazor CSS 隔离要点
ASP.NET Core Blazor CSS 隔离起因在 Blazor 组件(Components)/页面(Pages)中, 难免有自定义的样式需要设置,查询 ASP.NET Core Blazor 文档后,发现了 CSS 隔离,但是反复尝试终不生效。解决经过多方搜索后,找到了解决方案,发现是使用方式不对,Blazor CSS 隔离 要求 使用 css class 的组件必须在 HTML 原生 Tag 内,所以需要将 Blazor 放到原生 HTML Tag 中。完整步骤如下:以基于 MudBlazor 的项目为例, 假设项目名为 WebUI创建 Page (例: Components/Pages/Demo.razor)@page "/demo" <PageTitle>Demo</PageTitle> <MudText Typo="Typo.body2" class="custom-text">Vector</MudText>创建 隔离 CSS 文件 (例: Components/Pages/Demo.razor.css)::deep .custom-text { color: #fa1; font-size: 1.5rem; }在 Components/App.razor 中 <head> </head> 之间添加如下代码, 引用 CSS 隔离 bundle 文件:<link href="@(nameof(WebUI)).styles.css" rel="stylesheet" />这是发现是无效的,需要将 Page 中的 <MudText class="custom-text" ... 放到 HTML Tag 中(比如 div`), 修改后如下:@page "/demo" <PageTitle>Demo</PageTitle> <div> <MudText Typo="Typo.body2" class="custom-text">Vector</MudText> <div>再次运行即可生效。注意: 编辑 css 文件后若重新运行未生效,可以尝试 Ctrl + F5 刷新缓存。参考 MudAutoComplete - CSS Isolation of .mudpopover #1606As I told you, you need to wrap the component in an html element, for example, in a div<div> <MudPaper> <MudAutocomplete/> </MudPaper> </div>And then in your MyComponent.razor.css file, put your css code with deep::deep .mud-popover { width: 600px !important; background-color: aliceblue !important; }
2024年08月23日
19 阅读
0 评论
1 点赞
2024-07-27
AI-折腾记-02-(wsl2环境下运行docker+open-webui)
注意:承接前文 AI-折腾记-01-(wsl2环境下运行docker+cuda:pytorch/onnxruntime)以下过程无难度,故省略:Windows 上 Ollam 安装Ollam 添加模型 qwen2:1.5Ollam 命令行使用上述可参考:Ollama - CLI ReferenceOllama - Models - qwen2:1.5准备就绪后的表现为:可以在 Web 浏览器中访问 http://127.0.0.1:11434/, 能得到如下输出Ollama is running可以在 终端(cmd等) 中执行ollama run qwen2:1.5b, 能进行对话WSL2 中使用 docker 运行 open-webuihttps://github.com/open-webui/open-webuiDocker 镜像加速参考:https://github.com/dongyubin/DockerHubhttps://github.com/kubesre/docker-registry-mirrorshttps://dockerimage.gbfeng.com/image/ghcr.io/open-webui/open-webui:mainDocker公益镜像huggingface 模型加速参考: HF-Mirror运行 open-webui启用 CUDA 方式使用镜像 open-webui/open-webui:cuda, 如果不启用 CUDA 则使用镜像 open-webui/open-webui:main# 拉取 open-webui 镜像 sudo docker pull swr.cn-east-3.myhuaweicloud.com/kubesre/ghcr.io/open-webui/open-webui:cuda sudo docker tag swr.cn-east-3.myhuaweicloud.com/kubesre/ghcr.io/open-webui/open-webui:cuda ghcr.io/open-webui/open-webui:cuda# 运行 open-webui 容器 sudo docker run --gpus all -it --rm -p 18080:8080 -v ./open-webui:/app/backend/data --add-host=host.docker.internal:host-gateway -e OLLAMA_BASE_URL=http://host.docker.internal:11434 -e HF_ENDPOINT=https://hf-mirror.com -e PIP_INDEX_URL=https://pypi.tuna.tsinghua.edu.cn/simple -e USE_CUDA_DOCKER=true --name open-webui --restart no ghcr.io/open-webui/open-webui:cuda上述 docker run 命令关键参数说明--gpus all 使用 Docker CudaToolkit--add-host=host.docker.internal:host-gateway 主机名映射-e OLLAMA_BASE_URL=http://host.docker.internal:11434 指定使用宿主机的 Ollama, 如果有报错提示连接失败,可以考虑使用宿主机的局域网IP(举例: -e OLLAMA_BASE_URL=http://192.168.1.2:11434)-e HF_ENDPOINT=https://hf-mirror.com huggingface 模型加速-e PIP_INDEX_URL=https://pypi.tuna.tsinghua.edu.cn/simple pip 加速-e USE_CUDA_DOCKER=true 启用 CUDA访问 http://127.0.0.1:18080/ 即可注意: 如果 Open WebUI 界面模型下拉列表没有模型,但是终端执行 ollama list 的结果有模型,请设置环境变量 OLLAMA_HOST 为 0.0.0.0:11434, 然后重启 Ollama 即可。
2024年07月27日
100 阅读
0 评论
0 点赞
2024-06-15
AI-折腾记-01-(wsl2环境下运行docker+cuda:pytorch/onnxruntime)
注意:以下过程无难度,故省略:安装 Nvidia 驱动启用 WSL配置使用 WSL2 版本WSL 安装 Ubuntu上述可参考:如何使用 WSL 在 Windows 上安装 LinuxStep by Step Procedure to Install WSL2 on Windows And Run Ubuntu on Windows Using WSL2How to install Linux WSL2 on Windows 10 and Windows 11How To Install Windows Subsystem For Linux (WSL2) On Windows 11准备就绪后的表现为:可以在 WSL 的 Ubuntu 中执行 which nvidia-smi, 能得到如下输出/usr/lib/wsl/lib/nvidia-smi可以在 WSL 的 Ubuntu 中执行 nvidia-smi, 能正常输出以下所有操作均在上述过程就绪之后环境系统: Windows 11 + WSL2 + Ubuntu 22.04GPU:NVIDIA GeForce RTX 3070Driver Version: 555.99 (Windows 11 安装 Geforce Game Ready 驱动 555.99)NVIDIA-SMI: 555.99CUDA Version: 12.5Docker CUDA 配置参考: Installing Docker and The Docker Utility Engine for NVIDIA GPUsInstall Docker Engine on Ubuntu | Docker DocumentationSet up Docker's apt repository.# Add Docker's official GPG key: sudo apt-get update sudo apt-get install ca-certificates curl sudo install -m 0755 -d /etc/apt/keyrings sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc sudo chmod a+r /etc/apt/keyrings/docker.asc # Add the repository to Apt sources: echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \ $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \ sudo tee /etc/apt/sources.list.d/docker.list > /dev/null sudo apt-get updateInstall the Latest Docker packages.sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-pluginVerify that the Docker Engine installation is successfulsudo docker run -it --rm hello-worldInstalling the NVIDIA Container Toolkit | NVIDIA DocumentationConfigure the apt production repositorycurl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \ && curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \ sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \ sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.listInstall the NVIDIA Container Toolkit packages:sudo apt-get update sudo apt-get install -y nvidia-container-toolkitConfigure the container runtime by using the nvidia-ctk command:sudo nvidia-ctk runtime configure --runtime=docker sudo systemctl restart dockerTesting Docker and NVIDIA Container Runtime: Running a Sample Workload | NVIDIA Documentationsudo docker run -it --rm --runtime=nvidia --gpus all ubuntu nvidia-smiPyTorch-CUDA 测试参考: https://hub.docker.com/r/pytorch/pytorch/tags?page=&page_size=&name=cuda12&ordering=last_updated参考: How to Install PyTorch on the GPU with Docker# 运行 pytorch-cuda 容器 sudo docker pull pytorch/pytorch:2.3.1-cuda12.1-cudnn8-runtime sudo docker run -it --rm --runtime=nvidia --gpus all pytorch/pytorch:2.3.1-cuda12.1-cudnn8-runtime python# python 测试代码 import torch print(torch.cuda.is_available()) print(torch.cuda._is_compiled()) print(torch.__config__.show())Docker 构建 ONNX Runtime CUDA 镜像参考: https://github.com/microsoft/onnxruntime/blob/main/dockerfiles/README.md#cuda# Build the docker image git clone https://github.com/microsoft/onnxruntime cd onnxruntime/dockerfiles/ sudo docker build -t onnxruntime-cuda -f Dockerfile.cuda .. # Run the Docker image sudo docker run -it --rm --runtime=nvidia --gpus all onnxruntime-cuda # or sudo nvidia-docker run -it --rm onnxruntime-cuda
2024年06月15日
112 阅读
0 评论
0 点赞
2024-04-07
Windows上非安装方式配置MySQL
MySQL官方下载MySQL压缩包文件https://dev.mysql.com/downloads/mysql/下载后得到的zip文件(比如 mysql-8.3.0-winx64.zip)解压到电脑上(比如 D:\portable\mysql-8.3.0-winx64),得到如下目录内容:初始化, 终端(比如 cmd.exe) 中,进入上图的 bin 目录,执行如下初始化命令mysqld --initialize等待上一步执行完成后,创建一个文件(比如 mysql-init.txt)用来设置 root 用户的密码,内容如下:ALTER USER 'root'@'localhost' IDENTIFIED BY 'root666';将root用户的密码设置为root666启动 MySQL服务器,并加载初始化文件:mysqld --init-file=D:\portable\mysql-8.3.0-winx64\bin\mysql-init.txt --console等待上一步启动后,停止 MySQL 服务器,同时验证上一步执行的修改操作是否成功:mysqladmin -u root -p shutdown至此,MySQL配置已完成,可以正常启动 MySQL了:mysqld --console--console 参数指示将日志输出到控制台, 不加则会将日志输出到文件MySQL 正式启动后,可以连接验证:mysql -uroot -p
2024年04月07日
70 阅读
1 评论
0 点赞
2023-10-26
自定义 node.js Docker 镜像
Dockerfile:FROM ghcr.io/linuxserver/baseimage-alpine:3.18 SHELL ["/bin/bash", "-c"] RUN echo $'#!/bin/bash \n\ set -e \n\ \n\ # Run command with node if the first argument contains a "-" or is not a system command. The last \n\ # part inside the "{}" is a workaround for the following bug in ash/dash: \n\ # https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=874264 \n\ if [ "${1#-}" != "${1}" ] || [ -z "$(command -v "${1}")" ] || { [ -f "${1}" ] && ! [ -x "${1}" ]; }; then \n\ set -- node "$@" \n\ fi \n\ \n\ exec "$@"' > /usr/local/bin/docker-entrypoint.sh RUN chmod a+x /usr/local/bin/docker-entrypoint.sh RUN groups RUN users RUN whoami RUN groupadd --non-unique --gid 1000 node RUN useradd --non-unique --uid 1000 --gid node --shell /bin/bash --create-home node ENV NODE_VERSION 21.1.0 ENV ARCH x64 RUN curl -fsSLO --compressed "https://unofficial-builds.nodejs.org/download/release/v$NODE_VERSION/node-v$NODE_VERSION-linux-$ARCH-musl.tar.xz" RUN ls -lha RUN tar -xJf "node-v$NODE_VERSION-linux-$ARCH-musl.tar.xz" -C /usr/local --strip-components=1 --no-same-owner RUN rm -f "node-v$NODE_VERSION-linux-$ARCH-musl.tar.xz" RUN ln -s /usr/local/bin/node /usr/local/bin/nodejs RUN apk add --no-cache libstdc++ RUN node --version RUN npm --version # RUN wget -qO- https://get.pnpm.io/install.sh | ENV="$HOME/.bashrc" SHELL="$(which bash)" bash - RUN npm config set registry https://registry.npmmirror.com RUN npm install -g pm2 RUN npm install -g pnpm RUN pnpm --version RUN rm -rf /tmp/* $HOME/.cache ENTRYPOINT ["docker-entrypoint.sh"] CMD [ "node" ]build:docker build --progress plain --rm --tag gsw945/node:v0.0.1 .参考安装 | pnpm - 使用 npm 安装https://github.com/nodejs/docker-node/blob/main/21/alpine3.18/Dockerfilehttps://github.com/linuxserver/docker-baseimage-alpine/pkgs/container/baseimage-alpine/137430303?tag=3.18How to write commands with multiple lines in Dockerfile while preserving the new lines?Dockerfile replicate the host user UID and GID to the image
2023年10月26日
262 阅读
0 评论
0 点赞
2023-10-09
有用的几条Git命令
git fsckgit fsck 命令用于检查 Git 数据库内部的完整性,找出问题对象。这3个选项具体用法如下:git fsck --dangling:显示悬空对象(dangling object),即孤立的提交/树/blobs,不被任何其他对象引用。git fsck --unreachable:显示不可达对象(unreachable object),即不可到达的对象,不被任何一个分支或标签引用。git fsck --lost-found:显示遗失的对象(lost found), 位于 .git/lost-found/ 其他 commit 引用了的对象。总结:dangling 对象不被任何对象引用,但仍在数据库中。unreachable 对象不被任何分支或标签引用,可能在重写历史后出现。lost-found 对象被其他 commit 引用,但不在当前分支或标签中。这3个选项可以帮助我们发现和恢复在重写历史时“丢失”的对象,修复问题。git log示例命令: git log --format="hash: %H%nauthor: %an%ndate: %aI%n%n%B"--fromat参数解释:%H - commit hash (hash 值)%an - author name (作者用户名)%aI - author date, ISO 8601 格式 (提交时间)%B - commit message body (提交信息)%n - 换行符实际应用显示不可达的Commit信息git fsck --unreachable | grep commit | cut -d' ' -f3 | xargs -I {} git log --format="hash: %H%nauthor: %an%ndate: %aI%n%n%B" -n 1 {}参考Look up commit log for commit ID in GitHow can I view a git log of just one user's commits?git fsck: how --dangling vs. --unreachable vs. --lost-found differ?How can I find an unreachable commit hash in a GIT repository by keywords?
2023年10月09日
181 阅读
0 评论
0 点赞
2023-03-27
Ubuntu配置clang环境并编译示例程序
操作步骤添加 gpg 秘钥:wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add -添加源 vim /etc/apt/sources.list.d/llvm.list# Focal (20.04) LTS deb http://apt.llvm.org/focal/ llvm-toolchain-focal main deb-src http://apt.llvm.org/focal/ llvm-toolchain-focal main更新 apt 包信息: sudo apt update安装 clang、lld 和 libc++:sudo apt install install clang-17 clang-tools-17 clang-17-doc libclang-common-17-dev libclang-17-dev libclang1-17 clang-format-17 python3-clang-17 clangd-17 clang-tidy-17 sudo apt install lld-17 sudo apt install libc++-17-dev libc++abi-17-devLinux 程序编译:clang++ --std=c++17 -o main main.cppWindows 程序(交叉)编译:clang++ --std=c++17 -target x86_64-pc-windows-gnu -mconsole -o main.exe main.cpp示例程序目录结构:. ├── main.cpp └── pocketpy.hmain.cpp内容:#include <iostream> #include "pocketpy.h" using namespace pkpy; using namespace std; int main(int argc, char** argv) { cout << "C++: hello world!" << endl; VM* vm = new VM(true); // Hello world! vm->exec("print('Python: Hello world!')", "main.py", EXEC_MODE); // Create a list vm->exec("a = [1, 2, 3]", "main.py", EXEC_MODE); // Eval the sum of the list PyVar result = vm->exec("sum(a)", "<eval>", EVAL_MODE); std::cout << py_cast<i64>(vm, result) << endl; // 6 pkpy_delete(vm); return 0; }pocketpy.h 来自项目 blueloveTH/pocketpy:PocketPy is a lightweight(~6000 LOC) Python interpreter for game engines.PocketPy是一个轻量级的Python解释器,为嵌入至游戏引擎而设计。参考LLVM Debian/Ubuntu nightly packagesWelcome to PocketPyPocketPy issues | c example #41
2023年03月27日
653 阅读
1 评论
1 点赞
2023-03-14
windows上docker运行nextcloud
端口映射: 58080 --> 80挂载路径: D:\nextcloud-data --> :/var/www/html环境变量:使用的数据库: SQLITE_DATABASE: nextcloud默认管理员账户: NEXTCLOUD_ADMIN_USER: admin默认管理员密码: NEXTCLOUD_ADMIN_PASSWORD: admin完整命令docker run -d -p 58080:80 -v //d/nextcloud-data:/var/www/html -e SQLITE_DATABASE=nextcloud -e NEXTCLOUD_ADMIN_USER=admin -e NEXTCLOUD_ADMIN_PASSWORD=admin nextcloud:production运行成功后,浏览器打开 http://localhost:58080/ 等待一会儿就会看到如下的页面:<!--参考:https://app.pluralsight.com/library/courses/docker-web-development/table-of-contentshttps://hub.docker.com/_/nextcloud-->
2023年03月14日
349 阅读
0 评论
0 点赞
2023-03-06
文件检索相关命令行工具
BATA cat(1) clone with wings.特性:语法高亮Git 集成不可打印(non-printable)字符可视化自动分页fzfA command-line fuzzy finderfdA simple, fast and user-friendly alternative to 'find'ripgrep((rg))ripgrep recursively searches directories for a regex pattern while respecting your gitignoreripgrep 常用命令示例:# 查看支持的类型(type)列表 rg --type-list # 添加一个自定义的类型 mmkkdd, 后缀名为 *.md, 排除.git、bin、obj、node_modules文件夹,搜索 babel rg --type-add "mmkkdd:*.md" -g "!**/.git" -g "!**/bin" -g "!**/obj" -g "!**/node_modules" --type mmkkdd -- babel # 添加一个自定义的类型 myscript, 后缀名包含 *.ps1,*.cmd,*.bat, 排除.git、bin、obj、node_modules文件夹,搜索 dotnet rg --type-add "myscript:*.{ps1,cmd,bat}" -g "!**/.git" -g "!**/bin" -g "!**/obj" -g "!**/node_modules" --type myscript -- dotnet注意: 参数用引号包裹时,windows上用双引号 ", 类Unix 上用单引号 '。
2023年03月06日
290 阅读
0 评论
0 点赞
2023-01-18
PowerShell片段
简单片段查找命令(示例: 包含Module的命令)Get-Command | Out-String -Stream | Select-String -Pattern "Module" -SimpleMatch -CaseSensitive查看帮助(示例: 查看命令Get-InstalledModule的帮助)Get-Help -Name Get-InstalledModule在线查找模块(示例: 搜索模块Pode)Find-Module -Filter Pode信任仓库PSGallery# 查看仓库 Get-PSRepository # 信任仓库 Set-PSRepository -Name 'PSGallery' -InstallationPolicy Trusted安装包(示例: 安装模块Pode)Install-Module -Name Pode -AllowClobber -Force自定义对象(类似于 C# 的 匿名类型)[PSCustomObject]@{ 'Command' = [string]'git' }查看对象成员# 实例化对象 $obj = [PSCustomObject]@{ 'Command' = [string]'git' } # 查看全部对象 $obj | Get-Member # 仅查看属性 $obj | Get-Member -MemberType NoteProperty定义类并使用# 定义类 ClassDemo class ClassDemo { [int]$One [string]$Two ClassDemo() {} ClassDemo([int]$one, [string]$two) { $this.One = $one $this.Two = $two } [string]ToString(){ return ("ClassDemo(One={0},Two={1})" -f $this.One, $this.Two) } } # 3种方式实例化 ClassDemo # 1. 使用 ::new() $object1 = [ClassDemo]::new(1,"2") # 2. 使用 New-Object $object2 = New-Object ClassDemo -Property @{ One = 1; Two = "2" } # 3. 使用类型转换 $object3 = [ClassDemo]@{ One = 1; Two = "2" }功能封装判断命令行命令是否存在function IsCommandExists { <# .SYNOPSIS 判断命令行命令是否存在 .DESCRIPTION 判断命令行命令是否存在 .PARAMETER Command 命令 .EXAMPLE PS> IsCommandExists -Command git .EXAMPLE PS> 'git' | IsCommandExists .EXAMPLE PS> [PSCustomObject]@{ 'Command' = [string]'git' } | IsCommandExists .LINK https://learn.microsoft.com/zh-cn/powershell/module/microsoft.powershell.core/about/about_automatic_variables #> [OutputType([bool])] param( [Parameter(Mandatory=$true, ValueFromPipeline=$True, ValueFromPipelineByPropertyName=$True)] [string] $Command ) Get-Command -ErrorAction SilentlyContinue "$Command" | Out-Null if ($?) { return $True } return $False }外部命令行调用# 命令行调用 pwsh 执行 PowerShell 命令 Get-InstalledModule pwsh -NoLogo -Command "& {Get-InstalledModule}"参考PowerShell 文档The PowerShell Best Practices and Style Guide关于基于注释的帮助Strongly type PS custom object propertiesIncorporating Pipelined Input into PowerShell Functions关于类
2023年01月18日
293 阅读
0 评论
0 点赞
1
2