Gcc on Macos 12.6

今天尝试在MacOS上使用GCC,用homebrew安装gcc@11之后在CLion里Build一个程序,但是在链接阶段报错,错误信息里有类似于ld: Assertion failed: (_file->_atomsArrayCount == computedAtomCount && "more atoms allocated than expected"), function parse, file macho_relocatable_file.cpp, line 2061.的一行。

根据stackoverflow的一个回答,问题是出在了Xcode 14.0的链接器有Bug,目前来说需要降级到Xcode 13.4才行。所以解决方法就是:

下载Xcode 13.4的Command Line Tools并安装;执行sudo xcode-select --switch /Library/Developer/CommandLineTools来切换版本。然后GCC就可以用了。

相关github issue:gcc-12的issuehomebrew的discussion

Read More

破解OfficeForMac

来源:Activate Office 2019 for macOS VoL.md

这里用的是Office 2019,需要做的是:

  1. macadmins.software下载微软官方安装器(名字是Office 365/2021/2019 Suite Installer *(Word / Excel / PowerPoint / Outlook / OneNote / OneDrive / MAU)*的那一栏,或者是下面History里面的Suite Download那一列)
  2. 双击安装器安装,但是在最后一步不要点击启动Office
  3. 下载Office 2019 Volume License Serializer,并运行它来激活Office
  4. 现在可以启动Office了

原文备份:备份

激活器备份:备份

Read More

韶关游记-丹霞山

今天是来韶关的第二天,主要去了丹霞山玩。市区去丹霞山走了南韶高速,用了大概四十多分钟到达。丹霞山外山门到中山门是可以开车进去的,但是由于入口需要查看健康码,所以非常堵。我们在旁边某个忘记了名字的“驿站”停了车(免费的),然后走过去外山门,路上经过美宜佳买了一瓶冷水。虽然已经是十月份了,但是今天的阳光是很毒辣,晒到身上升温很快,让人烦躁。

不知道怎么回事,进去景区不需要门票,提前买的40块门票只能当成做慈善了。进了外山门旁边就有一个公交站,丹霞山所有的公交车都是不要钱的,但是我们一开始不知道,所以走了步道从外山门走到了中山门。如果是自己开车进去的话,停车就是在中山门的两片大草坪上了。过了停车场就到了丹霞山地质博物馆,我们没有进去;再过去就有公交车坐一站就可以去到索道站。索道很多人,而且要取号等叫号,所以为了加快速度,建议如果决定了索道上下山的话,就在丹霞山地质博物馆那边坐公交车前就扫码买好票(70一个人往返票),去到索道那边立刻去取号处出示购票成功的二维码拿票。(购票成功之后是发短信过来的,在短信里点开链接就有二维码了,建议截图,索道那边信号极差)

等了一个多小时之后终于可以坐索道了,是一个只有两套轿厢、4个仓一组、6人一个仓的……低等级索道?坐的过程只有三分钟左右。下了索道有两条路,一边是去舵石的,另一边是步行上下山的路,路上也有一些景点。唯一的小卖部也是在索道站旁边,有烤肠和一些饮料,不过价格比较厉害(5元一个烤肠,宝矿力15)。主要都是台阶路,有上有下,跟皂幕山的一路登天不一样。总的来说景点都有点牵强附会,比起三清山的“人造景点”更加不如。当成普通的走山可能会比较好(衣服都湿透了)。

下山的时候也是等了比较久才坐到索道。由于比较累,阳元峰(唧唧山)就没有去了。走回外山门的路上心率都到了150,真的累到爆。

晚上回到市区之后,去了泰空仓Thai吃饭,分量好大,把中午没吃的都给补够了。走河边河堤一路就回到了酒店。

Read More

shadowsocks-rust多端口防封

snap装一个shadowsocks-rust,然后比如端口是8118,那用firewalld来添加这个映射:

1
2
firewall-cmd --zone=public --add-forward-port=port=40021-40030:proto=udp:toport=8118 --permanent
firewall-cmd --zone=public --add-forward-port=port=40021-40030:proto=tcp:toport=8118 --permanent

一行转发TCP,一行转发UDP。

Read More

Hyper-V NAT映射端口到Host

起因是想把一些服务搬到虚拟机里,因为Windows的"服务"体验比较差。为了开机可用,不想使用VBox,所以选择Hyper-V。Hyper-V的桥接网络有限问题,会导致Windows自己上不了网。因此,使用NAT+映射端口的方式来完成。

首先参照这篇文章新建一个NAT虚拟交换机。原文是英文系统的名称,本文使用中文系统环境,所以有些内容会对应更改。命令都是用管理员权限的Powershell运行的。名字是NATSwitch,类型是内部:

1
New-VMSwitch -SwitchName "NATSwitch" -SwitchType Internal

原文Windows(下文统一称为主机)的地址是192.168.0.1,但是我的物理LAN网段和它冲突了,所以主机的IP地址设置为192.168.2.1,网络段用192.168.2.0/24,虚拟交换机的名称vEthernet (NATSwitch)。先配置主机的网络:

1
New-NetIPAddress -IPAddress 192.168.2.1 -PrefixLength 24 -InterfaceAlias "vEthernet (NATSwitch)"

然后配置虚拟交换机的网络,注意Name要跟上面的匹配:

1
New-NetNAT -Name "NATNetwork" -InternalIPInterfaceAddressPrefix 192.168.2.0/24

虚拟机使用的是Archlinux,启动之前在设置里把网络适配器更改为NATSwitch

在主机上配置NATSwitch,先给这个名字是"arch"的虚拟机设置一个静态IP(因为DHCP没法用)。虚拟机的IP是192.168.2.2。下面这个要保存到一个.ps1文件里,然后在管理员权限的Powershell里运行。

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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
Function Set-VMNetworkConfiguration {
[CmdletBinding()]
Param (
[Parameter(Mandatory=$true,
Position=1,
ParameterSetName='DHCP',
ValueFromPipeline=$true)]
[Parameter(Mandatory=$true,
Position=0,
ParameterSetName='Static',
ValueFromPipeline=$true)]
[Microsoft.HyperV.PowerShell.VMNetworkAdapter]$NetworkAdapter,

[Parameter(Mandatory=$true,
Position=1,
ParameterSetName='Static')]
[String[]]$IPAddress=@(),

[Parameter(Mandatory=$false,
Position=2,
ParameterSetName='Static')]
[String[]]$Subnet=@(),

[Parameter(Mandatory=$false,
Position=3,
ParameterSetName='Static')]
[String[]]$DefaultGateway = @(),

[Parameter(Mandatory=$false,
Position=4,
ParameterSetName='Static')]
[String[]]$DNSServer = @(),

[Parameter(Mandatory=$false,
Position=0,
ParameterSetName='DHCP')]
[Switch]$Dhcp
)

$VM = Get-WmiObject -Namespace 'root\\virtualization\\v2' -Class 'Msvm_ComputerSystem' | Where-Object { $_.ElementName -eq $NetworkAdapter.VMName }
$VMSettings = $vm.GetRelated('Msvm_VirtualSystemSettingData') | Where-Object { $_.VirtualSystemType -eq 'Microsoft:Hyper-V:System:Realized' }
$VMNetAdapters = $VMSettings.GetRelated('Msvm_SyntheticEthernetPortSettingData')

$NetworkSettings = @()
foreach ($NetAdapter in $VMNetAdapters) {
if ($NetAdapter.Address -eq $NetworkAdapter.MacAddress) {
$NetworkSettings = $NetworkSettings + $NetAdapter.GetRelated("Msvm_GuestNetworkAdapterConfiguration")
}
}

$NetworkSettings[0].IPAddresses = $IPAddress
$NetworkSettings[0].Subnets = $Subnet
$NetworkSettings[0].DefaultGateways = $DefaultGateway
$NetworkSettings[0].DNSServers = $DNSServer
$NetworkSettings[0].ProtocolIFType = 4096

if ($dhcp) {
$NetworkSettings[0].DHCPEnabled = $true
} else {
$NetworkSettings[0].DHCPEnabled = $false
}

$Service = Get-WmiObject -Class "Msvm_VirtualSystemManagementService" -Namespace "root\\virtualization\\v2"
$setIP = $Service.SetGuestNetworkAdapterConfiguration($VM, $NetworkSettings[0].GetText(1))

if ($setip.ReturnValue -eq 4096) {
$job=[WMI]$setip.job

while ($job.JobState -eq 3 -or $job.JobState -eq 4) {
start-sleep 1
$job=[WMI]$setip.job
}

if ($job.JobState -eq 7) {
write-host "Success"
}
else {
$job.GetError()
}
} elseif($setip.ReturnValue -eq 0) {
Write-Host "Success"
}
}

Get-VMNetworkAdapter -VMName arch -Name "网络适配器" | Set-VMNetworkConfiguration -IPAddress 192.168.2.2 -Subnet 255.255.255.0 -DNSServer 114.114.114.114 -DefaultGateway 192.168.2.1

Read More

碎碎念|2022年6月2日

五月开头和小黎去了一趟汕头,然后就开始了一个人住在旧屋的生活。开头几天把屋子收拾了一下,把一些陈年老物给卖掉了。有时候必须要跟旧物件说再见,才能让屋子得到更多的空间放新东西。阳台清空了之后,感觉蚊子也没那么多了,也有地方放我的单车了。厨房多得小黎的帮助,把盆盆罐罐都清洗了一遍,不要的也扔掉了,有空间做饭了。一个月来学会的饭菜主角永远是猪肉,猪肉薯仔丝,猪肉青菜,猪肉菜心,猪肉……离了猪肉啥都不会做了属于是。前几天试了一下微波炉烤土豆,别说还挺好吃的。一个人住最好的就是时间比较自由,也不用回到家还要跟家里人搞关系。但是一个星期基本上还是会回去中海一趟,见见奶奶和爸妈。

月初的时候去汕头是一笔大花销,整个月下来收拾旧屋、添家具又是一笔支出,到月底618优惠买了一台PS5+电视机又是大支出,六月份差不多花了七八千,都快没钱了。还好月底最后一天发了第一季度奖励,有3800左右,6月1号又存款冲刺奖励又发了钱,手头也没那么紧张了。果然出来工作之后啥都单纯了,就是看着钱,要赚更多的玛尼。

Read More

通关老头环之后的一些感想

上一次可以称得上通关的游戏还是宫崎老贼的黑暗之魂3,只通了一周目,二周目就没心情打了。老头环出了之后,随着王老菊的视频更新,之前口口声声说打折就买的我也真香了一把。这篇文章不会说什么具体的内容,但是也会有剧透。总的来说,老头环更像是一部探索作品,类似于魂2之于魂系列三部曲的意义,也类似于只狼对于魂系列结束之后FS社的方向探索的意义。

634010261a1f1

相比以前的作品,得益于现在的PC和主机的强大性能,老头环的画面无疑是魂系列里最出众的。历代最漂亮的防火女、庞大的黄金树、炫酷的boss招式特效,无论对于老玩家(老ass)还是新入坑的new ass都非常有吸引力。这一作还把魂3没做完的韧性系统给做了出来,穿重甲拿重武器的力量猛男简直感动到落泪;而对于新玩家,历代最强的法师流派更是大大降低了入坑难度。可以说,在前期,老头环是一部乐趣十足的游戏。

634011d02742b

但是这种探索性质的作品,初见时会让玩家觉得很有趣,到后期却会因为开发团队对新元素的把控未成熟所带来的缺陷而让玩家觉得逐渐失去乐趣,甚至使玩家非常痛苦。对于我来说,老头环有两个巨大的缺点:开放世界后期的无聊与离谱;玩家性能与boss性能的不匹配。

首先是FS社第一次开发魂系列但是开放世界的游戏,在后期地图的设计上存在很大的问题。在后期的圣树地图里,设计者在路上放了一万个强度堪比boss的小兵,路的尽头却是一些玩家根本不会用到的制作材料,什么蜕生蝶、“火星爹”——这些一周目下来根本没用过的合成材料却是紫色拉丝,拿到它们的代价却是几万甚至十几万魂,谁看了不拍桌——这种奖励与付出的不匹配大大打击了玩家在前期培养起来的对于探索的热情。看老菊的EP21就可以体会到这种无聊和离谱。

此外,老头环随着剧情的推进,身边的NPC会一个一个离开,圆桌厅堂里逐渐变得冷清、死寂,偌大的世界里朋友没几个,全世界都是追着你打的野怪和等着被你打的boss,虽然很好地反映了成王之路是孤独的这个道理,却也让玩家真的越来越悲伤。魂3自始至终都有防火女陪着我们,即使到了初始火炉她也陪着我重新走进黑暗时代;老头环的防环女出场次数屈指可数,还是个木头,在巨人火锅无论是献祭自己还是献祭她,她就不再出场了——甚至女主角都不会陪我们走完全部剧情,让我真的好伤心。

634011e520387

其次是玩家性能与boss设计的错位。简单一句比喻,怪猎的龙跟魂系列的灰烬进行一个pk,是游戏在玩我。但凡褪色者有只狼的性能,我都不至于被荷莱露无限踏地打破防,洗点成版本之子玩出血流。老老实实跟玩家打架的还好,黑暗弃子、艾尔登之兽这种打两下就闪现跑远的boss,只能看着它炫酷出招却打不到它,真的让人心态崩了。而前面提到的历代最漂亮的画面在boss战里带来了另一个很影响打架的问题:boss出招太炫酷,我都不知道自己在哪……

634011ed2e498

Read More