GSock2 现已支持 Windows IOCP 与 Linux epoll. 目前iocp的实现尚在开发中, 会有一些bug存在, 并不建议在生产环境中使用.

参考

I/O Completion Ports MSDN上的一篇概述文章

CreateIoCompletionPort function , GetQueuedCompletionStatus function (ioapiset.h) 两个重要的IOCP方法

IOCP完整例子 这篇文章比较好理解一些

microsoft/Windows-classic-samples/IocpServerex.Cpp 官方IOCP服务器样例 虽然看起来非常头皮发麻

Windows下IOCP踩过的一些坑 这个看着也很头皮发麻…

WINDOWS下两种IOCP实现的差距 但是, 众所周知, IOCP的意思就是多个线程等待在IOCP handle上, 所以所谓的“经典”实现不过是简单版实现而已.

iocp网络通信之如何判断客户端连接断开

How close a socket (with IOCP) properly after sending?

IOCP socket termination

The difference between Socket and WSASocket

The I/O Completion Port IPv4/IPv6 Server Program Example

TCP and UDP discovery methods

How to use FormatMessage c++ for getting english only messages

Some latency measurement pitfalls

Through the Years (2018) - S3RL & Zero-2 ft Yurino

Alfons, B3nte, Jessica Chertock - Puppeteer (with B3VA) [Official Audio]

Mashup of absolutely every TheFatRat song ever (Super Extended)

Ravers MashUp - S3RL

Dead Or Alive - You Spin Me Round (Like a Record) (Official Video)

S3RL Always Presents…

S3RL Presently Presents…

TheFatRat 1 Million Subscriber Mega Mix

TheFatRat - End Of The Decade (Mixtape)

カッコイイ曲メドレー ☆BESTⅡ+Ⅲ☆ 東方Vocal神曲 Ver2017 【ZETA】

BFF - S3RL

Earth B♭ - S3RL ft Lexi

75 Minutes of Calming Minecraft Music

我想把世界上所有全明星都杀了

我喜提生日

只会摇头晃脑的小初音也想跳宅舞那咋办嘛 · 1/6

【初音ミク】跟笨蛋一樣(da me da ne)

【初音ミク交响乐2019】1/6 -out of the gravity- feat. 初音ミク 【オーケストラ ライブCD】

【初音ミク】太阳系迪斯可【ナユタン星人】[ 转载中文字幕 ]

初音未来——太阳系迪斯科 现场版

初音未来 千本樱【60帧演唱会版】 现场版

【GUMI】KING【Kanaria】

你在看别的女人吗? 【男配音】 VRChat

《 你 在 看 别 的 女 人 吗?》

哥 谭 厨 师

电棍、七海专区

因为纯度太高所以单独开个专区记录

🦈有有有…..有起了病吧🐒

🦈Ring Ring Ring🐒

🦈不该🐒

🐒shape of ybb🦈

🦈寄明月🦈

🦈怪物🐒

电棍:国玉的战争 电棍:国玉的战争(不跑调版)

电棍:向♿奔去(修复版)

电棍:大耳朵获嘉

【电棍】“再见了妈妈,今晚我猪鼻巴巴”

往期优秀作品推荐

2021年8月

Windows默认远程桌面的帧率限制是30fps, 可通过以下方法提升远程桌面的体验:

注: 以下改动均需要再远程目标机上修改, 重启后生效

  1. 调整fps限制到60

编辑注册表 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations, 新增DWORD32键: DWMFRAMEINTERVAL, 修改值为 15 (十进制)

  1. 优化远程桌面编码

打开组策略管理器, 点击: 计算机配置-管理模板-Windows组件-远程桌面服务-远程桌面会话主机-远程会话环境,在右侧找到 为远程桌面连接设置 H.264/AVC 444 图形模式的优先级, 双击打开改为已启用

  1. 远程主机有显卡硬件的时候的进一步优化

在刚刚的组策略中启用 将硬件图形适配器应用于所有远程桌面服务会话配置远程桌面链接的 H.264/AVC 444 硬件编码

测试

可以在远程桌面上打开 TestUFO 查看当前远程会话的最高刷新率并评估体验.

参考

Improve Microsoft Remote Desktop RDP frame rate up to 60fps!

Frame rate is limited to 30 FPS in Windows 8 and Windows Server 2012 remote sessions

RDP 优化操作 微软远程桌面 开启显卡加速、60FPS、USB设备重定向

Windows远程桌面开启60帧,打造云游戏主机,随时随地畅玩大作

批量向MySQL插入数据时, 自增ID的变化根据策略的不同可能会体现出不同的反应.

有三种innodb_autoinc_lock_mode设置,

  1. traditional (0)

  2. consecutive (1)

  3. Interleaved (2)

当配置为interleaved会出现并发插入的时候, 自增ID出现一定长度的断层.

参考

When I INSERT multiple rows into a MySQL table, will the ids be increment by 1 everytime?

MySQL 14.6.1.6 AUTO_INCREMENT Handling in InnoDB

原文地址: 从软件历史看架构的未来:编程不再是精英们的游戏 - InfoQ

站内备份地址

看法

看完这篇文章之后,不得不称赞是一篇极具有前瞻性的好文,同时我开始担忧起自己的职业生涯了😢

不过,这篇文章里提到的云不可知是我认为最具琢磨的一点。如果所有服务,RDB,KV,Cache等都能通过某种语言无关的方式,比如基于http通信,使用标准化的OpenAPI等进行交互,或者类似于sidecar的方式注入到service mesh部署的服务森林中,这无疑降低了程序员的入门门槛,降低了成本和出错的概率,缩小了错误扩散的面积,对产业前进是好处。但同时也让程序员的定义发生了变化。程序员不再需要长期的高等教育培训,也不需要再掌握多门语言多种技术,更不需要所使用技术的原理,这仿佛确实变成了切切实实的CURD boy或者更进一步,脚本小子。如果人人都会这种东西,那是什么让每个人在行业中具有不可替代性呢?

命令替换

ifconfig, netstat 默认不再安装, 需要手动安装net-tools包. 官方建议的替代命令是ipss.

ifconfig的直观替代命令是ip -s -h addr, 其中-s展示接口流量统计信息, -h展示为人类可读形式.

ping命令在inetutils-ping包中.

ip命令在iproute2包中.

腾讯云新购云主机常用初始化方式:

1
2
sudo apt update && sudo apt autoremove -y && \
sudo apt upgrade -y -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold"

安装 Podman

1
2
3
4
5
6
. /etc/os-release
echo "deb https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/xUbuntu_${VERSION_ID}/ /" | sudo tee /etc/apt/sources.list.d/devel:kubic:libcontainers:stable.list
curl -L "https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/xUbuntu_${VERSION_ID}/Release.key" | sudo apt-key add -
sudo apt-get update
sudo apt-get -y upgrade
sudo apt-get -y install podman

安装 podman-docker, 并启动podman服务.

注: 随着podman-docker版本的不断更新, 此处的链接可能会发生变化. 若404请访问Index of /ubuntu/pool/universe/libp/libpod/获取最新的deb包列表.

1
2
3
curl -vL http://mirrors.cloud.tencent.com/ubuntu/pool/universe/libp/libpod/podman-docker_3.2.1+ds1-2ubuntu3_amd64.deb -o podman-docker.deb
sudo dpkg -i podman-docker.deb
sudo systemctl enable --now podman

安装 docker-compose.

pip版本一般要比apt版本更新.

1
2
sudo apt install -y python3-pip
sudo pip install docker-compose

修改默认启用cgroups版本为v2

vim /etc/default/grub

systemd.unified_cgroup_hierarchy=1 添加到 GRUB_CMDLINE_LINUX 或者 GRUB_CMDLINE_LINUX_DEFAULT 中.

sudo update-grub && sudo reboot 必须重启才能生效.

Rootless容器无法添加资源限制

查看是否为用户启用了控制器代管:

cat "/sys/fs/cgroup/user.slice/user-$(id -u).slice/user@$(id -u).service/cgroup.controllers"

若输出中缺乏对应的控制器, 创建文件/etc/systemd/system/user@.service.d/delegate.conf

1
2
[Service]
Delegate=memory pids cpu io

参考

[Optional] cgroup v2

containers/podman: troubleshooting.md

ss(8) — Linux manual page

ip(8) — Linux manual page

修订记录

创建日期: 2021-08-12 15:45:00 (UTC+0)

使用多个显示器

在远程桌面,【显示】中选中【将我的所有监视器用于远程会话】

使用多个但不是全部显示器

保存远程桌面配置到一个rdp文件, 用文本编辑器打开, 添加如下配置:

1
2
use multimon:i:1
selectedmonitors:s:0,1

其中use multimon:i:1表示是否启用多显示器功能, selectedmonitors:s:0,1表示选中显示器0和显示器1作为远程桌面使用. 可以通过mstsc /l命令查看显示器ID.

要注意的是选中的显示器必须是在mstsc列表中相邻的, 不然会报错.

参考

Remote desktop use two out of four monitors

How to remote desktop fullscreen RDP with just SOME of your multiple monitors

Podman版本: 3.0.1

Linux版本: Ubuntu 18.04.6 LTS

内核版本: 4.15.0-161-generic

运行 podman ps -apodman images 都会失败无法执行, 报错: Error: failed to mount overlay for metacopy check with "nodev,metacopy=on" options: invalid argument

原因: 内核版本太低, 不支持metacopy选项. 但是该机器目前不能下线所以转而通过调整配置解决.

解决方案: vim /etc/containers/storage.conf

修改mountopt选项, 删除metacopy.

参考

containers/podman #8118: Error: failed to mount overlay for metacopy check with “nodev,metacopy=on” options: invalid argument

系统 Ubuntu 20.04.3 LTS

安装cockpit后, 软件列表刷新一直报错, 提示cannot refresh cache whilst offline.

解决方法: 在netplan中调整渲染器(renderer)为NetworkManager, ubuntu默认的渲染器为networkd. 配置类似如下:

1
2
3
4
5
6
network:
ethernets:
ens18:
dhcp4: true
version: 2
renderer: NetworkManager

参考

Cockpit – “cannot refresh cache whilst offline”

ubuntu:latest镜像终端无法显示中文字符, 有以下两种方法可以尝试:

  1. 直接修改LANG环境变量为C.UTF-8
  2. 若第一种方法无效, 需要安装中文字符包并生成中文字符缓存后再设置LANG.
1
2
apt update && apt install -y language-pack-zh-hans
locale-gen zh_CN.UTF-8

再设置LANGzh_CN.UTF-8即可.

参考

docker 学习 - 解决ubuntu镜像中文乱码问题

解决docker容器中文乱码,修改docker容器编码格式