一个克制的、理性的关注互联网科技和人文的频道,也谈谈美食和电影,发现和分享一切有趣有价值的内容。
面试官:我看你简历上写熟悉 Linux,大概有多熟悉?看过源码吗?
我:看过一些。
面试官:那说说有什么优秀设计,或者让你印象比较深的地方。
我:那就要说到华硕的 HID 驱动了。
面试官:?
我:华硕有些键盘会在某些特定情况下往 host 发送电源相关的键值,导致 host 关机,所以内核驱动里专门把那个键值屏蔽了。
面试官:nmd,现在也是我印象最深的地方了。
source

#互联网拾遗
旅行青蛙 | 2018年上线,在8年后的今天宣布停服,小青蛙将与玩家告别,账号数据12月后清空

👺《旅行青蛙·中国之旅》官方发布停运公告,由于 IP 授权合作到期,游戏将于 2026 年 12 月 8 日 18:00 正式停止运营。
届时服务器关闭,玩家将无法继续登录游戏,所有账号数据、角色资料等信息也将被全部清空

游戏将于 9 月 8 日 14:00 关闭下载入口,同时停止充值和新用户注册,符合条件的用户可在规定时间内提交申请退款
 
2018 年,《旅行青蛙》曾凭借佛系玩法火遍国内。玩家每天收割三叶草、准备食物和旅行道具,等待小青蛙出门旅行,再收到它寄回的明信片。没有排名、没有竞争,这只不会说话的小青蛙,也成为许多玩家记忆里一段特殊的陪伴


#互联网拾遗
怎么最近不少人提到Omarchy 这个 Linux 发行版,有啥特别之处吗

搜了下,他的创始人是 David Heinemeier Hansson (DHH) ,也是 Ruby On Rails 框架的作者


omarchy 是我见过最神的第三方打包,素质甚至低于 manjaro,什么叫内置提权功能,装软件不用软件包用 root 跑 bash 脚本,仓库直接我他妈 trustall,作者每天跟几个 ai 升级人在那烂炒


#互联网拾遗
中国人即黑客,代码即规则


8月12日晚上,keet,一个号称p2p的隐私聊天软件,中文官方群发生了一件值得琢磨的事。

大致原因是中文群进了一名爱国华人,连续几天鼓吹隐私聊天要接入中国的银行卡支付,遭到群内成员的反感,互相辱骂起来。

然后,后续群里所有人发言均被不明人物举报而被自动模糊发言。keet有个机制,只要有1-2人举报,发言就会自动模糊,只有管理员可以决定是否撤回举报。

问题出来了,管理员不知道是谁举报的。也就是说,只要有一个恶意份子,举报谁谁就被在当前群被自动封号,而且谁也不能把恶意举报者揪出来,毫无疑问,这个群完蛋了。

举报本身是正常的,去中心化从来没有否认审核,也必须审核。

但是一个很关键的问题是如何平衡隐私和滥用。人性的恶,必须用代码来处理,从机制和规则上约束,而不是指望人人按照共识行事。

去中心设计,需要隐私,但是设计者没有搞懂什么叫隐私。

隐私聊天,没有实名注册,但必须实用户名参与。

一个账号匿名举报就能让所有人发言被ban,是不可想象,不能理解的,严重的安全缺陷。

keet的匿名举报规则,明显有严重的缺陷。

nostr 当初设计的时候,没有考虑spam,Daums和Amethyst上线仅仅三天就被中国人污染成公厕,全是广告和黑产垃圾信息。最后nostr中继只能清库,删除某个时间段的所有历史记录。

Apple产品的换货规则同样遭到中国人的滥用,苹果公司最后只能修改规则。

这些都是设计之初对人性的不了解导致。

一个软件和生态,没有经历中国人的铁拳,就不能算一个健全的软件。

很多人讨厌黑客,认为黑客不讲武德,散布cve和威胁,让软件厂商和用户被迫忙碌和认真起来。但是,没有黑客的公开漏洞,这个软件就安全吗?

看起来是安全了,但是地下黑产和灰产并不会放过这个软件,别有用心的少数人也不会放过。

发现代码漏洞的叫黑客,发现规则漏洞的中国人被称为黑客也未尝不可。

利用漏洞的人很讨厌,但是如果你不能在设计初从规则上阻止,那么只能眼看着崩溃而束手无策。

期望用户遵守道德是最无能的梦呓,代码上的严防死守才是唯一可靠的规则。

#互联网拾遗
PHP的江湖往事与时代挽歌

“独领风骚十数年”,这句话用在PHP身上,再合适不过。

初识PHP是在2004年。那时候的中国互联网野蛮生长,ASP/JSP/PHP,风头日盛,CGI渐落西山。ofstar和CTB这些纯文本数据库产品昙花一现,随着MySQL的普及,取而代之的是PHPWind、Discuz和WordPress等产品的强势崛起。

同一时期,PHP 5引入了完整的面向对象编程(OOP)支持和 PDO。正是 PHP 5 的成熟,才为后来 Symfony、Yii 现代框架的诞生铺平了道路,但也撕裂了PHP 。10年间,不乏有人反复争论面向对象和面向过程谁更优,有人比拼MVC框架与面条代码谁性能更高,有人咒骂PHP向Java学习增加了复杂度。

2010年后,PHP迎来最鼎盛的黄金十年。LAMP组合声名赫赫,圈内号称中国有150万PHP程序员,而当时全中国互联网从业人员据称不过900万。早高峰的北京,一抓一把PHP信徒。博客+论坛+CMS+小电商,PHP统治了中国80%的网站数量。甚至不少大型互联网公司,如淘宝、京东早期都有过PHP的影子,facebook更是PHP人心中的圣地。

因为入门门槛低,草台班子盛行,PHP程序员在当时常被蔑称为“脚本小子”,PHP圈与前端圈后被戏称为“互联网娱乐圈”。但这丝毫不影响大家大赚特赚,无数PHP朋友早早开上了宝马,娶了小娇妻。2015年的北京,哪怕只会打字,在培训班待三个月,开口要18K也是洒洒水小意思;要是真懂编程,3万、5万甚至10万,你敢开口我就敢给。财富自由,在这个圈子成了家常便饭。2026年毕业的大学生若得知此文,第一反应是纯属谣言,第二反应是气到吐血。

提到PHP,绕不开PHPChina(PPC)这个社区。在2008到2013年间,它风头无两,集结了国内半数PHP大牛。PHP历史上的风云人物,莫不在这里留下过身影。

首当其冲的便是人称“鸟哥”的惠新宸(Laruence)。这位西交大的造反派之一,先后在雅虎、百度、新浪和贝壳任职,后来成为PHP开发组的第一位中国人,更是“拯救了PHP7的男人”。由于圈子基数大、造神动力强,他成了2010至2020年间全中国最炙手可热、粉丝最多的程序员,没有之一。2020年后,鸟哥功成身退淡出技术一线,携数亿身家过上了令人艳羡的财富自由生活。

第二位是韩天峰,Swoole和phpy的创始人。他是PHP技术圈数一数二的人物,也是至今仍死磕PHP的一号人物。尽管因其种种奇葩言行,圈内对他微辞颇多,但即使面对PHP的日渐衰落,仍怀“虽千万人吾往矣”的勇气,堪称“PHP圈的擎天柱”,成为了2020年后末世几十万PHP遗老遗少的救命稻草。

除此以外,PPC还涌现了一众风云人物:号称要开发最好CMS的“冯疯子”;凭一己之力整合PHP和GTK要做桌面开发的“狗头哥”;后来写了《PHP核心技术》的白面小生“松爷”;天天嚷着要和Laruence掰手腕的暴躁Moxie;公开自己是蕾丝的panda姐;以及在PHP内核和C语言领域有较深造诣的红眼lajabs、滴滴乐天等高手。

然而,国内开发水平的参差不齐让社区充斥着灌水现象,加上PHP长期缺乏突破、问题同质化严重,高端人才脱圈,PPC最终走向了关站。

在框架与作品方面,PHP的历史是一部模仿与超越的进化史。极力模仿Struts的Zend Framework显得过于晦涩难懂;偷师Spring与Rails的Symfony让人又爱又恨;CodeIgniter和Kohana曾让中国PHP眼前一亮;刘晨携漏洞王ThinkPHP霸场中国;Yii以优雅著称;Laravel优秀却略显笨重;Drupal血统高贵;还有C扩展驱动的Phalcon和鸟哥的Yaf。当然,市面上更多的是草台班子手撸的框架。

在产品线上,PHPWind与Discuz相爱相杀,ShopEx与Ecshop暗中较劲,Workerman与Swoole你争我吵。据估算,仅WordPress、Ecshop、Discuz和DeDeCMS这四款产品,就养活了中国40万PHP程序员,也造就了无数灰色产业链,据不权威统计,每10个灰色网站,就有10个是PHP开发。除此外,Magento,phpBB,Typecho也都名噪一时。


Java强大的生态,曾让不少PHP人感到如芒在背。但在模仿与追赶中,PHP也曾有过绝地反击的高光时刻。当所有人都以为PHP要进ICU时,鸟哥等人主导的phpng项目横空出世,硬是把PHP 7的性能拉高了一倍,一度逼近老迈的Java。那一刻,PHP在ICU里直接做了一个后空翻。

然而,随着Golang的异军突起和Java微服务的燎原之火,PHP最终还是走向了衰落。

PHP赢就赢在Web开发最快最简单,输就输在基因就是做Web开发。

在高光时候,有人向PHP靠近,比如Delphi For PHP,Resin等产品;为了突破基因限制,PHP人也主动出击在生态上做过不少努力,推出了PSR标准化,以及PHP For Android、PHP For 大数据、 PHP For AI等“胶水产品”。但最终,这些尝试都因基因缺乏、加之社区热衷于赚快钱,纷纷折戟于时代浪潮。

也有人认为,移动互联网与前后端分离的兴起,让前端胶水PHP失去光彩;还有人认为,高并发、常驻内存让PHP捉襟见肘。

回望这段历史,PHP最大的贡献是撑起了百万就业大军,让数以万计的草根得以财富自由。但豪不客气的说,在技术理念和创新上,PHP鲜有建树。它的基因里刻满了实用主义的妥协,为了追求极致的开发效率,它牺牲了严谨的类型系统和工程规范,进而吸引了追求实用的社区,然后不断被反噬。其实,性能一直都不是PHP衰败是主要原因,只是属于PHP的时代已经落幕。基因不允许,社区不允许,时代不允许。

#互联网拾遗
Gmail动不动就强制绑定设备和手机号,我20多年的账号换手机就无法登录使用了。
Outlook一个德行,对安卓用户最多允许三次使用密码登录,超过就强制密钥登录,关键这个政策在他们官网就找不出明确声明,但又确确实实存在,我的一个号又噶了,在安卓上无法登录使用,除非使用他们的官方app。
mail/gmx 则是全方位限制中国用户注册,即使使用VPN和国外手机号也不行,哪怕幸运注册成功了,后期使用依然可能各种封禁。
protonMail和Tuta倒是友好,但是不支持IMAP协议,只能网页或APP使用。

至于中国国内邮箱,可以不提。

互联网看似发展的如火如荼,但基础设施正在高度集中,而巨头们正在用“安全”的借口,行“生态垄断”和“数据控制”之实。

Oh,shit!

#互联网拾遗
野蛮生长的互联网旧事

2009-2010年的时候,javaeye有个叫ZHH2009的自考大专生,发布了一个叫Douyu的框架

作者基于OpenJDK的javac编译器进行了深度定制和扩充。把它和内置的 HTTP 服务器结合后,开发者直接修改 Java 源文件,刷新浏览器就能看到运行结果,完全不需要手动编译,也不需要重启服务器。

Douyu 彻底甩开了JSP/Servlet那套繁琐的规范和臃肿的容器,作者自己大刀阔斧地改造出了一个基于NIO技术的精简版 HTTP 服务器,整个服务器只有 60 个左右的源文件,极度轻量。

这个框架主要就是模仿当年爆火的Rails框架,包括注解、ORM,在SSH如日中天,webwork苟延残喘的那个年代,整体给人感觉惊艳,吸引了400多层楼的回复。

然而,随着SpringMVC的兴起,这个小众框架只发布了0.1版本,但是在2010-2013期间,陆续出现了一堆脱离Servlet体系的JavaWeb框架以及Vert.x开始引起关注,然最终又被SpringBoot带回了Servlet体系。

后来这个大专生去了阿里,不到两年后离职,创业去做大数据与分布式去了,在知乎和微博掀起了一场腥风血雨,引来了学院派和工程派的大型互殴。

同一时期,温少的fastjson框架也横空出世,以其极致的性能引起了几百层楼的讨论,后来fastjson也成了漏洞的代名词。

仍然是同一时期,Javaeye也出现了莫枢(RednaxelaFX)这样的JVM大佬,国内权威,没有之一,后来去了阿里,再后来出国去搞大数据,直到籍籍无名。

奈何,javaeye在2020年时寿终正寝,技术大讨论的时代一去不复返。

更久一点,51Js在2003-2015年那个时代,也是中国JavaScript的权威论坛,没有之一,孵化了后来一大批后来风头无俩的前端大佬以及前端大佬的大佬。

往后,2013-2019,这七年间,是PHP的舞台,炙手可热,造就了一堆百万、千万,亿万富翁程序员,程序员炫富斗富横行,引爆了“想致富,学PHP”说法。

#互联网拾遗
禁书图书馆

作者 Rick Osgood受科幻小说启发,希望在极权或审查环境下,通过物理设备保存和传播重要书籍。于是通过技术手段,将普通的 Wi-Fi 智能灯泡改造成一个无法被审查的离线图书馆,用于在物理空间中秘密传播被禁锢的信息。

其外形与普通灯泡无异,通电即服务,难以被察觉,并且成本低,适合大规模部署。灯泡开启后,会创建一个开放的 Wi-Fi 热点和 Web 服务器。附近的用户只需连接该热点,即可通过浏览器访问内置的“禁书”列表并下载阅读。

作者最初选用的是预装 Tasmota 固件的灯泡,因因Tasmota 功能臃肿且占用空间大,作者决定使用 Arduino 和 ESP-IDF 框架编写自定义固件。通过动态修改闪存中的分区表,大幅压缩主程序空间,将可用数据空间从320KB扩展至 2MB,从而能存储约 5-6 本电子书.

网络层面则使用强制门户(Captive Portal),配置了 DNS 服务器和 HTTP 重定向,无论用户在浏览器输入什么地址,都会自动跳转到图书馆首页。

作者提到了未来的改进方向,包括增加 RGB 颜色调节的精细度,以及利用去中心化哈希表(DHT)技术让多个灯泡组成 Mesh 网络,共享书籍资源。

https://www.richardosgood.com/posts/banned-book-library/

#互联网拾遗
数据库版本管理migration在有些场景下就是垃圾,是一坨屎。
直接上场景
1.keycloak这个开源的SSO组件,有10多年历史,有上千个migration迁移历史,很多表删了建,建了又删,然后10年前加了个字段,7年前又删了,索引增减,任何SQL操作都会记录历史做版本管理。本来只有几十个表的一个组件,有上千条DDL。
当 Liquibase(Keycloak 底层用的迁移工具)以极快的速度连续抛出成百上千个 DDL 时,数据库的元数据锁(Metadata Lock)竞争会瞬间飙升,导致死锁或超时。

我在很多场景遇到这种错,毫无办法,因为上千条DDL如洪水般涌来,性能稍差的服务器立马崩溃。
更大的问题是这种migration,量大,而且是代码级别,部署时遇到错误很难修改。我的做法是找一台高性能服务器,导出最后的全部数据和结构到一个SQL文件,原本需要5分钟的初始化,现在只需要30S,而且对服务器性能没有任何要求。

2.
Django 的 Migration 是基于有向无环图(DAG)的。
一旦多模块多人协作,加上持续开发升级,DAG就非常容易崩溃,报各种多个叶子节点或者顺序错误问题,然而实际上没有错误的,这个时候自带的makemigrations 也解决不了。也就是“依赖图(DAG)断裂”或“幽灵依赖”问题。
这种错误,干净环境是遇不到的,但是对于一个生产服务器升级,就非常容易遇上,极其难于解决。
最快最有效解决办法就是清空整个数据库,重新初始化应用,或者想尽办法骗过框架,或者就只能想办法妥协。

不是说migration一无是处,而是坑真的很恶心。

#互联网拾遗
苹果应网信办要求在中国区 App Store 下架去中心化社交应用 Bitchat

苹果公司已根据网信办(CAC)的要求,从中国区 App Store 下架了由 Twitter 联合创始人 Jack Dorsey 开发的去中心化通讯应用 Bitchat。网信办指出,该应用违反了《具有舆论属性或社会动员能力的互联网信息服务安全评估规定》第三条,即具有影响公众舆论或动员用户能力的应用在上线或更新前需通过安全评估。

目前,Jack Dorsey 已在 X 平台确认该应用已在中国区 App Store 下架。

编辑补充:Bitchat 采用基于蓝牙的对等网络(P2P)技术,无需服务器或账户即可实现匿名通信,因此在网络受限地区受到关注。

中国苹果用户切勿因好奇而安装,否则等待自己的只有96110的严厉警告🤐


#互联网拾遗 #苹果到底有多垃圾
 
 
Back to Top