感觉标题的这个现象是因为对正则表达式过度神化了。如果你无法用正则语言描述你的数据(或你需要处理的子集),那么你的数据八成是没法通过正则表达式处理的,还是老老实实写字符串处理代码比较好。
比如「匹配 n 个 a 之后跟着 n 个 b 的字符串」,这个需求是根本不能用正则表达式做的。同理「匹配身份证是否有效」这个需求也是(除了枚举所有有效的身份证号)无法完整地用正则表达式实现的(只是匹配 18 位数字或者 17 位数字带一个 X 是不完整的)。1@1 是合法的邮箱么? 13600000000 是合法的手机号么?很多我们觉得「或许可以用正则处理」的问题实际上是在操作不正则的数据(比如测试邮箱是否合法),或者操作虽然因是有限语言而正则但是枚举所有句子根本不可行的数据(比如测试身份证号是否合法)。
当然,算上 Perl 给大家带来的那种 irregular 的正则,或许可以处理一点点上下文无关的数据。但还是,很怪。
因为在管道中传递的是对象而不是文本流,这点就让人感觉很不安。对于熟悉旧一套命令行(无论是 cmd 也好还是 *nix 下的 shell 也好)对文本流进行操作的人而言,这反而是增加了心智负担。
毕竟 shell 的核心用途就是粘东西。如果说 *nix 下的各种 shell 是各种品牌的强力胶;那么 PowerShell 就是量子粘合机(不)。后者或许确实比点胶水来得更快更牢固,但是它也带来了更复杂的概念和操作方式。或许确实有一些需求就是需要粘合机来搞定,但大多数场景下,点一点 502 足矣。
其实音乐,或者准确地说「流行音乐」确实是有同质化趋势的。这并不是因为普罗大众的审美水平在下降,而是因为流行音乐本身就是存在「最终目标」的——我们在愈发逼近这个目标,而且越来越成功。
我们应认识到,流行音乐是流行先于音乐。有些时候由于「流行」,我们可能会错误地将流行音乐的发展当作整个音乐行业的发展。有些时候不妨将目光移到更远的地方。
至于年轻人听什么——管他们听什么!我们终将不会理解新一代人的想法,就像我们不曾被旧一代人所理解一样。
Trilium. 也是开源软件,数据本地存储,支持自建云同步。内置各种魔改能力,可以认为是半个笔记工具半个 SDK 的东西。
唯独劝退的一点是它是用本地数据库的,对 markdown 不是一类支持。不过大多数时候都够用。
哦吼,没有人用 Trilium 么;如果不需要和其他任何人共同写作的话,Trilium 差不多算是笔记界的 Linux 了(
@
liuidetmks 我怀疑是小批量一点点地把数据漏干净的,不然也不会花 2 年的时间才爆出来这个问题。现在这个情况是只能怀疑所有人手头都有一份全国居民信息镜像了
答:没有。而且理论上这种游戏不存在。
这个答案可能有些煞风景,但是我个人认为是事实。
首先可以排除所有包含竞技成分的游戏,因为有竞技意味着有输赢,而如果你只是想放松玩玩的话,需要做好一直输的心理准备——更不要提一些游戏的社区氛围本身就非常的不友好,双亲的受伤从匹配队友开始,美好的一天从打开这款游戏结束。这意味着绝大多数网游都会落选。
那么,玩单机游戏吧。可单机游戏平静的表面下也暗流涌动。Galgame, FMV 需要你去精心雕琢前进的路线;分手厨房、平衡球,表面上的清新可爱或者淡雅高冷背后仍然隐藏着对高分的挑战、对精细操作的渴望、对每一帧都是完美输入的执着。猛男剪树枝则更是集大成之作,游戏里的你或许几天就还清了房贷,现实里的你,还有几十年才能达成目标?还是砍掉这种由分数驱动的游戏吧。
剩下的非常少的部分就是所谓的「艺术游戏」。但这些作品,与其说是游戏,不如说是一种有交互元素的艺术品。看山、风旅、快递开箱,它们会着重给你带来一种称得上是体验的东西。但是不少艺术游戏只在第一次游玩时会感到惊艳,再次打开的时候由于你已经知道了关于这款游戏的林林总总,效果便会大打折扣——除非你希望当游戏学家,每次打开游戏都认真钻研、从新的角度出发再次理解游戏的叙事;不过那样就偏离了「放松玩玩」的初衷了,而且还会打得非常累。是真的非常累:你会发现别人比你发文的速度更快,别人比你注意的细节更多。别人第一年都发了三四篇 SCI 了你读了两三年书甚至连个水刊都毫无进展,还有心情当游戏学家?
打游戏是一个很无聊甚至很痛苦的过程,因为你说实话只是在看着一个会发光的盒子按按钮而已,这个过程本身是毫无乐趣可言的:没有任何一个游戏本身是让人放松的——来之不易的成功才是让人放松的那个东西;那种「只要努力就会有回报」的机制才是让人放松的那个东西;那种「我可以掌控一切」的近乎狂妄的感觉才是让人放松的那个东西。
* * *
打游戏是一件严肃的事情,因为游戏的规则是严肃的;打游戏是一件不严肃的事情,因为游戏的追求不是功利的。
如果只是想放松,只是想快乐,可以打开短视频刷一整天。真的很放松,真的很快乐(至少在看的时候)。其实也不必为此而自责,我们只是想好好休息。但如果你仍然希望攀登高山,那么,只要打开游戏,玩下去,玩下去就可以了。
可以参考 Rare 的做法:写很多相互校验的逻辑,然后加壳混淆再加密,最后留一个一眼就能看出来的 `if`. 这个一眼就能看出来的 `if` 实际上是一个诱饵,破解之后可以被后面隐藏的校验逻辑所感知。当然做戏要做全套,验证出这个诱饵被破解之后,先不要着急弹没有授权的框框,而是让程序先能用一段时间;之后就开始莫名奇妙地崩溃、卡死、删存档。表面上是破解了,实际上完全没有破解,而且用户体验会特别特别差。尤其是生产力工具,卡死带删档基本上是绝杀。
大部分脚本小子和经验不足的破解者可能在干掉这个诱饵之后就打包发布了,殊不知发布的版本是完全没法用的。虽然说最终那些隐藏的相互校验的逻辑也会被大神破解掉,但是这个正版验证的目的已经达到了:让程序尽可能晚被破解。
目前如果我因各种原因 wipe 了一台机器需要重新装 linux 的话是这样操作的:
0. 重放系统安装脚本,除非要新安装特殊的东西或者目标硬件需要特殊配置
1. 根据目标机器的用途(和硬件配置),重放软件包管理器操作;这包括从 AUR 中下载的软件
2. 从最后一次使用的机器中对拷所有 dotfiles
3. 如果需要,从存储服务器上拉取那些不是从包管理器里安装的软件(比如各种 flatpak, 独立二进制等)
4. 如果需要,从各个其他机器上拉取需要的工作文件
但是吧,从 1 到 3 中间还可能包括无数的驱动调教过程、Xorg 调教过程、根据新机器的情况调整各种 dotfile 、不能重放这个操作,因为 [磁盘空间不足, 系统架构不兼容, 不满足依赖关系]. 所以基本上就是,除非你已经调教过这个机器,不然还是要花一堆时间的。
之前在大学里的时候高强度听网易云(没课的时候就在社团听歌写代码),然后我发现 FM 推的歌曲会逐渐出现环,基本上连着听三四个小时就会出现连续几首已经听过的歌曲。一旦今日出现过这种现象,这种现象在今天发生的概率会越来越高,直到今天过去。
基于这个现象,只能猜测 FM 推荐序列是一个加权随机游走,每天有一个不同的游走起点。
* * *
读题之后好像发现不太是关于推荐的。
在一个已知的列表内进行「符合人类想象」的随机,最朴素的方法是洗牌算法打乱这个列表,然后依次播放。不过这样的话,应该不会出现能预测下一首是什么这样的情况;那么必须怀疑网易云根据你的喜好为各个歌曲加权后打乱,权重高的更贴近列表顶部。或许通过一点小手段去对抗这种行为,比如从歌单靠近底部的位置点击开始播放,或者切换不同的歌单。
* * *
其实推荐算法何尝不是一种在一个巨大的列表之内的随机 ; )
个人理解:编码将信息转换成码元符号,但码元符号不一定是二进制数字,也可以是幅值、频率、相位等可以承载二进制数字的物理量(或者,如果解码器输出是模拟值,则也可以承载模拟值);而序列化是将在内存中的比特流——通常是程序对象转换成字节流,便于将比特流保存在持久存储介质上以及在不同的计算机系统之间传输。
序列化是编码的一个实例。
关于数字视频编码为什么不叫视频序列化,我个人认为这可能是从模拟设备时代继承的说法,视频的编码确实是通过电路编码并调制;另一方面可能是因为序列化这个词更强调对程序对象的操作,而视频不太像是一种程序的对象。
这个我懂,用洗衣粉(液)腌出来的。
当你洗衣服的时候往洗衣机或者盆子里面倒两三倍推荐用量的洗衣液时候,你的所有衣服就都会带着这股味道。挑对洗衣液,你的衣服就会散发持久的清香。
注意:这样做的话洗完衣服一定要及时晾干,如果一直晾不干的话反而会有一股磷腥味,那就得不偿失了。
「作」的 Unicode 是 0x4f5c; 而反斜杠的 Unicode 是 0x5c. 虽然按道理集合名称应该是用 UTF-8 之类编码的,但可能 mongodump 或者中间某个过程解码成字节流后就直接开始当 ASCII 处理了。在 Windows 环境下反斜杠是 path separator, 自然就会报错。
顺带一提,由于 Windows 诞生于 Unicode 之前,所以 Windows 下的编码相关问题层出不穷。尽可能只用 [a-zA-Z0-9] 做名字有益身心健康。
@
depress 我在桂林和洛阳都试过,都是这个问题;最后一次测试在 2020 下旬,目前情况可能会有变化。
当然可以怀疑,但由于只是孤立数据点所以很难说明什么问题。
我个人的经历倒是刚好相反,在滴滴打车的时候无论等多久都不会接单;但高德打车就秒接,价格甚至还更便宜。之前怀疑过是没有实名认证导致系统不愿意派单,后来换了个手机号做了实名认证也不行,我就纳闷得不得了。
这种类似服务器抽风但是又能稳定复现的问题特别奇怪,更奇怪的是周围其他人都没有这个问题。让人感觉是不是自己的手机会导致客户端静默地丢弃一些错误一样。
公司电脑上装了钉钉,开启了自动更新;但是没能复现出这个行为。火绒在用,没有弹窗拦截记录,也没遇到过钉钉弹广告的问题。感觉各位应该是遇到恶意下载器了。
感兴趣的话,就去学。不需要担心它是否能应用到你的工作当中去。
毕竟,知识是好的。
多元化的学习,尤其是学习与本职工作无关的知识和技能,有助于拓展视野。
至少可以帮你回答一个问题:如果有那么一天,我不再写(某个领域相关的)代码,那我做些什么好呢?
我认为是有的,这可能需要修改内核源码中关于 ctrl + alt + del 中断处理的部分。
不过可以换个思路,在 grub 层面,可以设置超级用户密码。这样即使重启,在不接触硬件的情况下(不能插入自己的启动盘的情况下)就不能编辑启动参数了,从而可以避免修改内核带来的各种不便。