朝花夕拾

放牛娃的夏天@!@...

得益于欧盟的数字市场法案,windows11设备设置区域属于欧盟地区系统允许小组件以默认浏览器启动,同时允许用户卸载自带的edge浏览器。全新安装的windows11,直接选择欧盟区域即可。而对于已经安装好的windows11,需要重新触发OOBE,再选择欧盟区域。

本文讲述的是已经使用一段时间的windows系统利用系统自带的sysprep.exe触发OOBE修改设备设置区域

  1. 按下 “Windows + R” 打开运行窗口,输入 “%WINDIR%\system32\sysprep\sysprep.exe”

  2. 系统清理操作选择“进入系统全新体验(OOBE)”,不用勾选“通用”,关机选项选择“重新启动”,点击确定按钮。

  3. 电脑会重启,然后进入到OOBE界面。区域选择欧盟区域的国家。

  4. 用户账户页面通过”Shift + F10” 打开命令提示符,输入”start ms-cxh:localonly”,创建一个本地账户(该账户后面可删)

  5. 其它根据自己喜好,正常完成配置,进入桌面。

  6. 退出刚才创建的账户,登录原来的主账户。进入 设置——账户——其它账户,可以将第4步创建的账户删除。

  7. 根据自己喜好,配置 设置——时间和语言内的”语言和区域”与”日期和时间”

至此,edge浏览器已经可以删除,桌面小组件将以默认的浏览器被打开。

stm32f407对外高速传输的方法有usb、spi。但是usb通讯需要软件实现usb协议栈,太耗费计算资源了。而SPI是一个功能完整的硬件外设,使用DMA进行收发基本不占用cpu计算资源。

FT4222H是一款采用紧凑型32引脚QFN封装的高速/全速USB2.0至四路SPI/I2C器件控制器。四线SPI模式下传输速率高达53.8Mbps

f407虽然不支持4线spi,但是和ft4222h组合,最大40MHz SPI时钟频率,可以轻松实现和电脑之间高速数据传输。

阅读全文 »

前言

一直想用自己的域名做一个dns服务器。adguard dns的自定义域名需要企业版,cloudflare zero的dns也不支持自定义域名。网上虽然很多使用cloudflare worker搭建的dns服务器,也可以自定义域名。但这里有个问题,cfworker搭建的dns服务器,客户端发起dns查询,worker请求上游dns服务器,上游dns服务器会根据worker的ip地址返回最优ip。这样的结果对于客户端来说并不是最优解。后来了解到有些dns支持edns_client_subnet参数,doh请求的时候edns_client_subnet设置成客户端的ip地址,那么上游dns服务器就会根据这个地址来返回最优ip。原理有了,接下来就是实现!

阅读全文 »

MessagePack 是一种高效的二进制序列化格式。它允许你在像JSON这样的多种语言之间交换数据。但它更快,更小。小整数被编码成单个字节,典型的短字符串除了字符串本身外,只需要一个额外的字节。
MessagePack-CSharp是MessagePack的C#语言实现,它比MsgPack-Cli快10倍,支持LZ4压缩。本文将探索用MessagePack替代.net System.Text.Json,提高API效率。

阅读全文 »

起因

WinFormsApp1和WinFormsApp2都是Windows应用程序(WinExe),WinFormsApp2引用了WinFormsApp1。当发布WinFormsApp2时,会提示“未能找到元数据文件”xxxx\xxxx\WinFormsApp1.dll””。如果在项目属性中将WinFormsApp1输出类型改为类库(Library)则WinFormsApp2可以正确发布。缺点是每次发布或者调试WinFormsApp1都需要将输出类型改回WinExe。

阅读全文 »

思路一:创建新的窗口,在新窗口内生成div内容进行打印

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
<!DOCTYPE html>
<html lang="zh">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>打印指定区域</title>
</head>
<body>

<div>
<button onclick="printDiv()">打印指定内容</button>
</div>

<div id="printArea">
<h2>这是需要打印的内容</h2>
<p>这里的内容将会被打印。</p >
</div>

<div>
<p>这里是不会被打印的内容。</p >
</div>

<script>
function printDiv() {
var divContent = document.getElementById("printArea").innerHTML;
var newWindow = window.open('', '', 'width=800,height=600');
newWindow.document.write('<html><head><title>打印</title></head><body>');
newWindow.document.write(divContent);
newWindow.document.write('</body></html>');
newWindow.document.close();
newWindow.print();
}
</script>

</body>
</html>

思路二:隐藏非打印区域

阅读全文 »

创建脚本文件 /vmfs/volumes/datastore1/shutdown.sh

/vmfs/volumes/datastore1/shutdown.sh
1
2
#!/bin/sh
/sbin/shutdown.sh && /sbin/poweroff

设置执行权限

1
chmod +x /vmfs/volumes/datastore1/shutdown.sh

编辑 /var/spool/cron/crontabs/root 文件,添加定时任务

/var/spool/cron/crontabs/root
1
0 22 * * * /vmfs/volumes/datastore1/shutdown.sh

重启crond

1
kill $(cat /var/run/crond.pid); crond

rm 命令

rm 是Linux下最常用的删除文件/文件夹的命令。

  • -i删除前逐一询问确认
  • -f使原档案属性设为唯读,直接删除,无需逐一确认。
  • -r将目录及以下之档案亦逐一删除

删除一般文件:

1
rm test.txt

删除一个目录

1
rm -rf dirname
阅读全文 »

PDFSharp

简介

PDFsharp是一个免费开源的.net pdf库,使用它可以轻松创建pdf文件。下面是官方的介绍:

PDFsharp Library is a .NET library for processing PDF files. You create PDF pages using drawing routines known from GDI+ (WinForms). Almost anything that can be done with GDI+ will also work with PDFsharp. Only basic text layout is supported by PDFsharp, and page breaks are not created automatically. The same drawing routines can be used for screen, PDF, or meta files.

阅读全文 »

Brotli

Brotli 是一种通用的无损压缩算法。它结合使用 LZ77 算法的一个现代变体(Lempel-Ziv 编码)、霍夫曼编码和二阶上下文建模来压缩数据,提供了与当前最佳通用压缩方法相媲美的压缩比。

Brotli 提供比 gzip 更好的压缩率,压缩速率也与 deflate 相当。但 brotli 压缩速度比 gzip 慢,因此 gzip 可能更适合于压缩不可缓存的内容。

阅读全文 »
0%