The Merry Farmer, Op. 68, No. 10, by Robert Schumann
不过我这个不是完整版,简化过,反正能力有限,不丢人(
这首曲子不难,但是很奇怪的是让人觉得很快乐(正如其名),就录了一段视频,平时我只录音的 _(:з」∠)_ (毕竟三脚架相机声卡啥的全都要摆起来还要调试)
虽然说刚开始挺快乐的,但是录的过程中经常出小错误反复重试到最后也不快乐了(死
The Merry Farmer, Op. 68, No. 10, by Robert Schumann
不过我这个不是完整版,简化过,反正能力有限,不丢人(
这首曲子不难,但是很奇怪的是让人觉得很快乐(正如其名),就录了一段视频,平时我只录音的 _(:з」∠)_ (毕竟三脚架相机声卡啥的全都要摆起来还要调试)
虽然说刚开始挺快乐的,但是录的过程中经常出小错误反复重试到最后也不快乐了(死
就比如遇到这种想找黑历史的时候,搜索功能摆在这里却用不了,只能原地感叹一句要你何用。忍忍总也有个限度,当我第 n 次想找历史记录但是无论如何也找不到的时候,一拍脑袋:
Four months ago I brought an HP Z620 workstation to run virtual machines at home with Hyper-V Server. Some days later I planned to replace the SSD in the workstation from Samsung 860EVO 500G to Intel DC P4510 2TB for more capacity and better performance. But after hardware upgrade I found that P4510 just didn't get recognize by the boot loader. It seemed that I need to do some more work to boot ESXi from this NVMe SSD.
The simplest solution is using Clover Boot Loader as secondary boot loader. But the automatic OS scans provided by Clover does not support VMware ESXi, meanwhile creating a custom entry is quite bother job as writing XML manually by human is just another disaster.
After some simple research I reached out that unified extensible firmware interface itself dose support load driver before OS boot, so EFI Shell with a customized startup script may solve this problem for me. Firstly create a ESP partition on one disk with GUID partition table which is recognizable by the stock firmware, copy UEFI Shell binary as well as the NVMe driver binary to that partition, then create startup.nsh
in that partition with following script:
load -nc fs0:\NvmExpressDxe-64.efi connect -r map -u fs1:\EFI\BOOT\BOOTX64.EFI
The script is quite easy to understand. But remember to change the locations and names of these binaries to your own.
After that, use efibootmgr
under Linux or some utilities under Windows PE to create a new EFI boot entry with EFI shell as the loader, and then set it to default entry. Note that the disk alias may be different on each machine, to find out your own aliases just boot into the efi shell, load the NVMe driver and use the map
command to show partition aliases.
May be the simplest solution is just install ESXi to one HDD and place all virtual disks in the NVMe SSD?
其实这个叫 GitHub Actions 的持续集成已经上线很久了,在刚刚公开测试时我就尝试去使用,结果翻来翻去没找到 MongoDB 数据库的项目应该如何配置基础环境 不要问我当时为什么用了 MongoDB,我现在非常后悔(雾)。今天摸鱼的时候突然想到 Actions 支持 Docker,Docker 又能快速的启动一个 MongoDB 官方提供的容器,那么这就好办了,直接对着自己的博客下手,来试一试这个工具。
在仓库首页里点击 Actions 标签进入配置页面,并直接创建一个新的 Node CI
类型的 Workflow,这样就能获得一个适用于 node.js 项目的配置模版。和 Travis 一样,Actions 的模版配置也是使用 YAML 格式,写起来比 JSON 舒服多了。之后只需要在 steps
中添加以下内容即可启动一个 MongoDB 容器:
- name: Launch MongoDB
run: |
sudo docker container run --name mongo -v $PWD:/src -p 27017:27017 -d mongo
sleep 4s
- name: Import initial database
run: |
sudo docker container ls --all
sudo docker container exec mongo mongo localhost/newBlog /src/db.default.js
The house I rented in Shanghai only provides wireless network (802.11n) to access the Internet, but I personally hope that I can get a faster wireless intranet and hide my network device from the outside, so I purchased a NETGEAR A6210 wireless network card featuring 802.11AC support and USB 3.0 interface, ready to make such a network connection:
+--------------------+ +-----------------------+ | LAN(802.11AC + GbE)| CAT5E | HP ProLiant MS Gen8 | | (PS4, Kindle, etc) +-------+ eth0: 192.168.137.1 | | 192.168.137.0/24 | | wlan0: 192.168.0.x/24 | +--------------------+ +---+-------------------+ | 802.11n +---+------------+ | TP-LINK Router | +----------------+
Implenemting this kind of structure is quiet simple for Linux PCs. You only need to enable ip_forward and execute iptables -t nat -A POSTROUTING -j MASQUERADE
with root privilege. But unfortunately this USB3.0 wireless NIC has no driver in the mainline kernel. The open source driver
provided by MTK has very bad performance under OpenWrt. In conclusion, it seems that the only choice of operating system is Windows.
Configuring such a network for Windows is very simple too. Right-clicking on the adapter of the wireless network card. Then select the Sharing tab, check Allow other network users to connect etc. Then choose the Ethernet Network Connection option from the dropdown. However, Microsoft has buried a bug in the implementation of network sharing in Windows 10: the network sharing will be broken after restarting the computer. Shared interface still providing DHCP service, but IP Forward is completely unavailable. After reactivate the network connection shareing, the problem can be solved.
So, we only need to prepare a scheduled task running the following PowerShell script to make the OS repeat this operation every time when it is booted:
$NetShare = New-Object -ComObject HNetCfg.HNetShare
$wlan = $null
$ethernet = $null
foreach ($int in $NetShare.EnumEveryConnection) {
$props = $NetShare.NetConnectionProps.Invoke($int)
if ($props.Name -eq "WLAN") {
$wlan = $int;
}
if ($props.Name -eq "网桥") {
$ethernet = $int;
}
}
$wlanConfig = $NetShare.INetSharingConfigurationForINetConnection.Invoke($wlan);
$ethernetConfig = $NetShare.INetSharingConfigurationForINetConnection.Invoke($ethernet);
$wlanConfig.DisableSharing();
$ethernetConfig.DisableSharing();
$wlanConfig.EnableSharing(0);
$ethernetConfig.EnableSharing(1);