<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[2ker的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/sinat_14899485</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; sinat_14899485]]></copyright><item><title><![CDATA[Tauri之嵌入固定版本Webview2]]></title><link>https://blog.youkuaiyun.com/sinat_14899485/article/details/132729343</link><guid>https://blog.youkuaiyun.com/sinat_14899485/article/details/132729343</guid><author>sinat_14899485</author><pubDate>Thu, 07 Sep 2023 07:34:35 +0800</pubDate><description><![CDATA[编译后生成的exe会将Webview2路径设置为webviewInstallMode指定的路径，比如上面的例子就是在exe同路径下；Tauri在Windows运行时依赖Webview2，不过现阶段Webview2的坑还是不少，而且会偷偷自动更新，这里介绍直接嵌入固定版本Webview2到Tauri应用的方法。解压cab到src-tauri下，比如：Microsoft.WebView2.FixedVersionRuntime.115.0.1901.203.x64。下载对应版本的cab文件。]]></description><category></category></item><item><title><![CDATA[Tauri之单例+多窗口]]></title><link>https://blog.youkuaiyun.com/sinat_14899485/article/details/132729230</link><guid>https://blog.youkuaiyun.com/sinat_14899485/article/details/132729230</guid><author>sinat_14899485</author><pubDate>Thu, 07 Sep 2023 07:11:43 +0800</pubDate><description><![CDATA[单例可以通过tauri_plugin_single_instance实现，多窗口可以简单通过路由来实现。这里前端部分使用react 18 + react-router-dom 6，注意要使用。动态创建窗口的时候，记得清空tauri.config.json里的windows。通过唯一label区分窗口，动态创建新窗口或恢复旧窗口。]]></description><category></category></item><item><title><![CDATA[Electron之单例+多窗口]]></title><link>https://blog.youkuaiyun.com/sinat_14899485/article/details/132729213</link><guid>https://blog.youkuaiyun.com/sinat_14899485/article/details/132729213</guid><author>sinat_14899485</author><pubDate>Thu, 07 Sep 2023 07:09:03 +0800</pubDate><description><![CDATA[单例可以通过app.requestSingleInstanceLock实现，多窗口可以简单通过路由来实现。]]></description><category></category></item><item><title><![CDATA[React之IndexedDB之Dexie]]></title><link>https://blog.youkuaiyun.com/sinat_14899485/article/details/123026991</link><guid>https://blog.youkuaiyun.com/sinat_14899485/article/details/123026991</guid><author>sinat_14899485</author><pubDate>Sun, 20 Feb 2022 08:06:55 +0800</pubDate><description><![CDATA[React之IndexedDB之Dexie
一、概述

IndexedDB 是一个基于 JavaScript 的面向对象数据库，类似于基于 SQL 的 RDBMS，用于在客户端存储大量的结构化数据（也包括文件/二进制大型对象（blobs））。

我们这里使用Dexie.js来操作IndexedDB。
二、使用


官方文档：https://dexie.org/docs/Tutorial/React


示例


创建数据库
import Dexie, { Table } from 'dexie';

exp]]></description><category></category></item><item><title><![CDATA[React之PixiJS之渲染复杂SVG]]></title><link>https://blog.youkuaiyun.com/sinat_14899485/article/details/123026990</link><guid>https://blog.youkuaiyun.com/sinat_14899485/article/details/123026990</guid><author>sinat_14899485</author><pubDate>Sun, 20 Feb 2022 08:04:51 +0800</pubDate><description><![CDATA[React之PixiJS之渲染复杂SVG
一、概述
Pixi是一个超快的2D渲染引擎，这里主要使用PixiJS v6渲染复杂的SVG
二、总结


使用


@pixi-essentials/svg给我们转换SVG提供了基础，不过还是不够完善，我们可以基于它按需拓展


pixi-viewport给我们提供了动态可视区域，移动，缩放等功能可以高效实现




性能


动态刷新


如果渲染复杂的SVG，要将手动管理ticker，否则性能问题将带来灾难。对于渲染复杂SVG的需求来说，大多数情况下，可视区域都]]></description><category></category></item><item><title><![CDATA[VMWare之Windows硬盘扩容]]></title><link>https://blog.youkuaiyun.com/sinat_14899485/article/details/123015887</link><guid>https://blog.youkuaiyun.com/sinat_14899485/article/details/123015887</guid><author>sinat_14899485</author><pubDate>Sat, 19 Feb 2022 11:15:18 +0800</pubDate><description><![CDATA[VMWare之Windows硬盘扩容

关闭虚拟机
删除快照，不能有快照
编辑虚拟机设置-硬盘-扩展
打开虚拟机：计算机管理-扩展硬盘


]]></description><category></category></item><item><title><![CDATA[Python免安装环境（Windows）]]></title><link>https://blog.youkuaiyun.com/sinat_14899485/article/details/123015873</link><guid>https://blog.youkuaiyun.com/sinat_14899485/article/details/123015873</guid><author>sinat_14899485</author><pubDate>Sat, 19 Feb 2022 11:14:35 +0800</pubDate><description><![CDATA[Python免安装环境（Windows）

Python环境完全可以做到免安装，统一版本


到官网下载嵌入版python：这里下载python39
安装pip：下载脚本：https://bootstrap.pypa.io/get-pip.py，放到python根目录，执行： py get-pip.py
配置pip包： python39._pth： 去掉 “import site”前面的 # 号
安装依赖使用Scripts下的pip.exe
打包python目录，至此大多数Windows环境下可以免安装直接]]></description><category></category></item><item><title><![CDATA[使用frp和阿里云服务器实现内网穿透（sqlserver）]]></title><link>https://blog.youkuaiyun.com/sinat_14899485/article/details/123015843</link><guid>https://blog.youkuaiyun.com/sinat_14899485/article/details/123015843</guid><author>sinat_14899485</author><pubDate>Sat, 19 Feb 2022 11:13:31 +0800</pubDate><description><![CDATA[使用frp和阿里云服务器实现内网穿透（sqlserver）
一、概述
为了使用内网设备，我们可以在阿里云服务器上部署frp服务，经过消息转发，暴露内网设备。这里将内网win10上的sqlserver通过阿里云服务器暴露。
frp项目：https://github.com/fatedier/frp/releases

二、服务器配置

这里是阿里云服务器



安装frp：这里的版本是v0.39.1


安装包：直接下载：v0.39.1


docker：docker-compose.yml文件如下
vers]]></description><category></category></item><item><title><![CDATA[使用Verdaccio(docker)搭建私有npm仓库]]></title><link>https://blog.youkuaiyun.com/sinat_14899485/article/details/123015829</link><guid>https://blog.youkuaiyun.com/sinat_14899485/article/details/123015829</guid><author>sinat_14899485</author><pubDate>Sat, 19 Feb 2022 11:11:41 +0800</pubDate><description><![CDATA[使用Verdaccio(docker)搭建私有npm仓库
一、概述
Verdaccio可以帮我们搭建npm私有仓库，配合docker更加方便
二、安装


docker-compose
version: '3.5'

services:
  verdaccio:
    image: verdaccio/verdaccio
    container_name: "verdaccio"
    restart: always
    environment:
      - VERDACCIO_PORT=4]]></description><category></category></item><item><title><![CDATA[Nodejs之NestJS之pkg打包]]></title><link>https://blog.youkuaiyun.com/sinat_14899485/article/details/123015799</link><guid>https://blog.youkuaiyun.com/sinat_14899485/article/details/123015799</guid><author>sinat_14899485</author><pubDate>Sat, 19 Feb 2022 11:10:33 +0800</pubDate><description><![CDATA[Nodejs之NestJS之pkg打包
一、概述
pkg打包有两个优势：

打包node环境，不需要安装node，保证环境一致
相当于“加密”代码

二、使用


安装：npm i pkg -g


配置package.json
  "scripts": {
    "pkg:win": "pkg . -t node14-win-x64 -o app-win --debug",
    "pkg:mac": "pkg . -t node14-mac-x64 -o app-mac --debug",
    ]]></description><category></category></item><item><title><![CDATA[Nodejs之NestJS之TypeORM使用]]></title><link>https://blog.youkuaiyun.com/sinat_14899485/article/details/123015764</link><guid>https://blog.youkuaiyun.com/sinat_14899485/article/details/123015764</guid><author>sinat_14899485</author><pubDate>Sat, 19 Feb 2022 11:08:44 +0800</pubDate><description><![CDATA[Nodejs之NestJS之TypeORM使用

node下的TypeORM比上不足，比下有余，这里分享一些使用经验

一、入口
TypeORM提供的入口很多，connection，entityManager，repo，使用的时候难免纠结用什么，这里建议统一使用entityManager：
getManager()

二、事务
建议封装事务，动态传入entityManager，方便复用和测试：
import { EntityManager, getManager } from 'typeorm';
impo]]></description><category></category></item><item><title><![CDATA[Python之PDF提取表格数据]]></title><link>https://blog.youkuaiyun.com/sinat_14899485/article/details/117347583</link><guid>https://blog.youkuaiyun.com/sinat_14899485/article/details/117347583</guid><author>sinat_14899485</author><pubDate>Fri, 28 May 2021 06:11:04 +0800</pubDate><description><![CDATA[提取PDF文件中的表格数据是一个很常见的需求，为此我们经常付费，其实实现起来比较容易

这里使用camelot提取数据
import camelot
tables = camelot.read_pdf(pdf_filepath, pages='1-end')
for item in tables:
    df = item.df
    # item.to_csv('test.csv')
    # item.to_excel('test.xlsx')


pages使用’1-end’就可以读取pdf文.]]></description><category></category></item><item><title><![CDATA[CentOS7之部署.Net Core]]></title><link>https://blog.youkuaiyun.com/sinat_14899485/article/details/112756358</link><guid>https://blog.youkuaiyun.com/sinat_14899485/article/details/112756358</guid><author>sinat_14899485</author><pubDate>Mon, 18 Jan 2021 07:12:13 +0800</pubDate><description><![CDATA[CentOS7之部署.Net Core

.Net Core是跨平台的，这里记录centos7下安装.net core 3.1，详细教程官网已经给出



安装
sudo rpm -Uvh https://packages.microsoft.com/config/centos/7/packages-microsoft-prod.rpm
sudo yum update
sudo yum install dotnet-sdk-3.1



验证
 dotnet --version



部署服务


服务文件]]></description><category></category></item><item><title><![CDATA[CentOS7之VMware扩容]]></title><link>https://blog.youkuaiyun.com/sinat_14899485/article/details/112756325</link><guid>https://blog.youkuaiyun.com/sinat_14899485/article/details/112756325</guid><author>sinat_14899485</author><pubDate>Sun, 17 Jan 2021 19:31:15 +0800</pubDate><description><![CDATA[CentOS7之VMware扩容

centos下扩容还是有些步骤的，这里详细做个记录



在VMware上扩容20G


查看磁盘信息
df -lh

fdisk -l



用fdisk工具给sda磁盘分区
使用fdisk工具
fdisk /dev/sda

帮助
m

操作：增加一个新分区
n

默认
Select (default p):
Using default response p
Partition number (3,4, default 3):
First sector (419430]]></description><category></category></item><item><title><![CDATA[CentOS7之安装GNOME界面]]></title><link>https://blog.youkuaiyun.com/sinat_14899485/article/details/112756304</link><guid>https://blog.youkuaiyun.com/sinat_14899485/article/details/112756304</guid><author>sinat_14899485</author><pubDate>Sun, 17 Jan 2021 19:30:12 +0800</pubDate><description><![CDATA[CentOS7之安装GNOME界面

一般centos服务器都是命令行管理，但考虑到团队实力，有的情况下还是需要GNOME界面的



安装GNOME：yum -y groups install “GNOME Desktop”


启用GNOME：systemctl set-default graphical.target


启用命令行：systemctl set-default multi-user.target



...]]></description><category></category></item><item><title><![CDATA[docker之镜像导入导出]]></title><link>https://blog.youkuaiyun.com/sinat_14899485/article/details/112755653</link><guid>https://blog.youkuaiyun.com/sinat_14899485/article/details/112755653</guid><author>sinat_14899485</author><pubDate>Sun, 17 Jan 2021 18:36:54 +0800</pubDate><description><![CDATA[docker之镜像导入导出

一般情况下，景象都是云端的方案，但有的时候也需要离线的方案，这里要注意不要使用export、import方式，而要使用save、load方式



导出镜像：docker save imagename &gt; imagename.tar (不要用export)


导入镜像：docker load &lt; imagename.tar（不要用import）



...]]></description><category></category></item><item><title><![CDATA[docker之环境清理]]></title><link>https://blog.youkuaiyun.com/sinat_14899485/article/details/112755650</link><guid>https://blog.youkuaiyun.com/sinat_14899485/article/details/112755650</guid><author>sinat_14899485</author><pubDate>Sun, 17 Jan 2021 18:36:21 +0800</pubDate><description><![CDATA[docker之环境清理

docker环境带来极大便利的同时，我们也经常遇到垃圾文件的困扰，这里梳理一下常用的清理命令。


基础清理：docker system prune -f
容器清理：docker container prune -f
卷清理：docker volume prune -f
停止所有运行的容器: docker stop $(docker ps -aq)
删除所有关闭的容器: docker rm $(docker ps -aq)
删除所有dangling镜像(即无tag的镜像)： doc]]></description><category></category></item><item><title><![CDATA[docker之CentOS安装]]></title><link>https://blog.youkuaiyun.com/sinat_14899485/article/details/112755634</link><guid>https://blog.youkuaiyun.com/sinat_14899485/article/details/112755634</guid><author>sinat_14899485</author><pubDate>Sun, 17 Jan 2021 18:35:10 +0800</pubDate><description><![CDATA[docker之CentOS安装
国内网络环境问题，导致安装docker不稳定，这里使用DaoCloud

docker:
curl -sSL https://get.daocloud.io/docker | sh
docker-compose:


curl -L https://get.daocloud.io/docker/compose/releases/download/1.27.4/docker-compose-`uname -s`-`uname -m` &gt; /usr/local/bin/do]]></description><category></category></item><item><title><![CDATA[EF Core之批量操作（EFCore.BulkExtensions）]]></title><link>https://blog.youkuaiyun.com/sinat_14899485/article/details/112728302</link><guid>https://blog.youkuaiyun.com/sinat_14899485/article/details/112728302</guid><author>sinat_14899485</author><pubDate>Sun, 17 Jan 2021 09:34:39 +0800</pubDate><description><![CDATA[EF Core之批量操作（EFCore.BulkExtensions）

EFCore的批量操作性能也在不断完善当中，但还是不够优秀，数据量大的情况下还是要单独处理，这里我们使用EFCore.BulkExtensions（SqlServer）



查询

EFCore.BulkExtensions的批量查询还是不适合开箱即用，需要做一些基础封装，我们可以在Context里增加扩展方法

public async Task&lt;List&lt;T&gt;&gt; WhereInAsync&lt;T&gt;]]></description><category></category></item><item><title><![CDATA[.Net Core之OData]]></title><link>https://blog.youkuaiyun.com/sinat_14899485/article/details/112728140</link><guid>https://blog.youkuaiyun.com/sinat_14899485/article/details/112728140</guid><author>sinat_14899485</author><pubDate>Sun, 17 Jan 2021 09:07:50 +0800</pubDate><description><![CDATA[.Net Core之OData

OData可以说是轻量级的GraphQL，但又和GraphQL不同，配合Linq和EFCore，可以极大简化接口，提高开发效率。
但全套OData过重，坑也不少，所以我在项目里只使用了其Get部分的功能，同时重写了部分功能，配合EFCore实现高效开发



引入
services.AddOData();
services.AddODataQueryFilter();



启用
public static class ODataExtension
{
    public]]></description><category></category></item></channel></rss>