作者归档:c君不在

RMBP维修记

在 3 月的时候,发现一直盒盖接外置显示器使用的 RMBP 平放时不稳,会翘动,仔细看后应是电池鼓包导致的。

因为是 2015 年款的,早就过了保修期,想着去官方维修可能花费比较大,于是考虑自己买块电池回来替换。

网上着了下,下了单,结果由于那时新冠疫情再起,导致快递受限,过了一两周后换了另一家近点的下单。

收到后,按照视频教程电吹风软化电池、再加上酒精等来替代溶胶机,好不容易才把用双面胶粘着的电池拆了下来。

但中间,一颗螺丝拧花了,最后甚至导致主板上一个扣子脱了。

重新装好电池后开机使用。

但,第二天发现怎么也开不了机。接上电源,最多也就进到登录界面,输密码后无限重启。尝试重置电源管理、维护模式、重装系统,始终还是不行。

因为也不急着用,所以一直放着。到了五一假期,拿去 Apple 天才吧,结论是主板出现问题了。因为官方的策略不是小粒度上的维修,而是直接替换零件。主板再加上第三方的电池,整个更换下来得 8 千多。

想着,估计得放闲鱼卖尸体了,不知道能不能卖个几百块。

请苹果员工帮忙把硬盘拆出来考虑买个硬盘盒当外置键盘用,坐车回家的路上,突然想起找个维修店看看能不能维修,维修费用多少。

搜索了下,去到电脑城一家店,说明了下,留下电脑等检测后回家。第二天,反馈是主板电源控制相关的模块烧掉了,那块电池可能质量也不行。维修加换电池,680 块。相比之前的 8 千多,我爽快地答应了。

晚上过去,在维修店的外置硬盘系统中,电脑正常运行起来。换为我自己的硬盘,发现由于之前重装系统,但最后阶段由于主板问题没安装成功的原因,原系统破坏了没法直接进入。还好,使用在线安装的方式修复后,数据都在。目前来看,应该可以正常使用了。

总的来说,除非对自己的技术非常自信,否则优先使用官方的服务。如果一开始直接去官方处理电池膨胀问题,按照苹果授权店的说法,这种情况应该是键盘和电池一起换,费用在一千左右。如果官方维修费用太高接近重新买一台后,可以考虑去电脑城等地方找线下维修店。虽然这十几年,电脑城之类的生意大不如前,但从这两天的观察来看,维修生意还不错。

对于 Apple 来说,因为高度集成的设计方案,官方提供的维修服务,可能都是整个整个模块的替换,而不会做小器件之类的维修,这样对他们来说更易于管理,并且维修也不是他们的重点。而三方维修,则可以作为有效补充,解决钱还是重要问题的人的问题。

c君不在

2022/04/28

发现 repository 一直发错音了,之前没查过音标,凭直觉以为是/rɪˈpɔzətəri/,但实际是 /rɪˈpɑːzətɔːri/参考)。

Java 多行字符串字面量——Text Blocks

JDK 15 引入了多行字符串字面量(Text Blocks)特性,不再需要采用字符串拼接的方式来在 Java 代码中定义多行字符串,同时也不需要对字符串内部的双引号做转义,让代码有更好的可读性和可维护性。

使用

定义一个 Text Block 很简单,采用三个双引号 """ (开始分隔符)来开头,后面可跟空白符,然后换行开始输入内容,可以换行或输入直接输入双引号,最后用三个双引号""" (结束分隔符)结束。

Text Block 的内容从开始分隔符后第一个换行符的下一个字符串开始,到结束分隔符前一个字符结束。

var s = """
        <html>
            <body>
                <p>Hello, world!</p>
            </body>
        </html>
        """;

最后将得到,其中用.来代表空格,可以看到保持了多行,并且保持了缩进(注意,最后有一个空行)。

<html>
....<body>
........<p>Hello,.world!</p>
....</body>
</html>

继续阅读

《凪的新生活》

凪的新生活

凪,zhǐ,和制汉字,汉文典籍不录,而国家亦未作相关规定,故从严而论,不存在标准汉语读音。(百度百科解释

日语作ナギ(音调②,日语读法是低高型)na gi,寓意风平浪静。

该剧讲述了日本社会中,可能有很多人为了不被孤立而无法说出不,需要察言观色地生活,称为阅读空气。从女主开始,到她的原男友、原男友的新女友、曾经“戏耍”女主的女同事、女主的母亲。

女主因为男友察言观色不承认双方男女朋友关系,乃至最后称只是性伴侣而最终崩溃,选择逃避离开原工作环境,开启了剧情。

在新的环境中,遇到新的人物,但到底只是短距离搬离,并且由于原男友其实是有所感情的原因而依然和原环境的人物有交集。在这个过程中,慢慢看清自己的不自觉带上的面具,慢慢去体会理解自己要的是什么,自己原来到底都是如何生活的,自己未来又该如何走下去。

就个人而言,看这句,最有感触的地方有两个:

一,女主自认为自己是一个很会倾听的人,所以尝试了解多些东西,然后好在别人发起话题时能够接住,让话题延续下去,而不是嘎然而止。但却被指出,她根本不是一个会倾听的人,自己无法发起话题而只能等别人发起话题,那是别人在照顾她而找一些话题。她对别人无任何的兴趣,所以没法发起任何的话题,而附和别人的话题时,也轻易地被看穿而导致话题难以继续下去。

二,曾经和别的同事一起暗地里笑话女主的女同事,最终也落入被别人暗地里笑话的地步。我忍不住感慨,一个个活着都那么累吗?

除此之外,最开始有个不太明白的地方,前男友找上门来时,向直接扑倒发生性关系时,女主居然没有任何的抵抗。后来,大概能理解过来,女主童年时期,受到过不少母亲通过各种行为来”恐吓“她让他妥协,最终让女主养成了无法说不乃至不自觉察言观色的性格。

而她母亲,则由于没有了丈夫的原因,农村生活一个人拉扯孩子太难,所以需要接住乡里的帮助,也无法轻易拒绝别人的好意,于是心理压力越来越大,只能望女成凤。

剧的最后,通过男主的哥哥,一向优等生的他一次考试失利后,开始了自由“放荡”的生活后,在奶奶寿宴上,彻底撕开了家庭里的各种面具。女主也彻底释怀,对母亲说了不,也对前男友的复合请求说了不,结束了这个暑假,重新迈向了新生活。其他人员也都开展了各自的新阶段。

京东京造 K2 键盘 F5/F6 按键问题

默认情况下 F5F6 是调节键盘背光,即便在 mac 系统设置中设置了「将F1、F2等键用做标准功能键」也不生效,必须搭配 fn 来使用才会是标准按键效果。

对于在 JetBrains 系列软件中,习惯了用 ⇧ + F6 来重命名来说,这两个按键不工作就是灾难。

一度认为是硬件 bug,想退货。

因为该品牌实际是 Keychron K2 的贴牌,连在系统蓝牙连接中都是 Keychron K2。于是在网上搜了下,在 reddit 中找到其官网 V2.6 版本固件中有对这个问题的解决方案

长按 fn + K + C(windows 下是 fn + X + L 3s,等键盘背光闪动 3 次后,即可把 F5 和 F6 都切换为标准功能。再次操作,将切换为默认的多媒体功能。

后来后知后觉看了下包装盒中除说明书外的另外一张纸板,才发现里面有附带这个问题的说明。我看了说明书,但以为那纸板只是普通的键位,没看背面……

学习复习下法律知识——其一

违规,指违反某些规定,比如行政规定、合同规定或者学校、企业等组织的规定,和法律没直接关联。

违法行为,达到法定的责任年龄、具有责任能力的人实施的违背法律规范规定的、有过错的、对社会有危险性或有害的行为。可分为行政违法行为、民事违法行为和行政违法行为。

犯罪行为,一切危害国家主权、领土完整和安全,分裂国家、颠覆人民民主专政的政权和推翻社会主义制度,破坏社会秩序和经济秩序,侵犯国有财产或者劳动群众集体所有的财产,侵犯公民私人所有的财产,侵犯公民的人身权利、民主权利和其他权利,以及其他危害社会的行为,依照法律应当受刑罚处罚的。

已满十六周岁的人犯罪,应当负刑事责任。 已满十四周岁不满十六周岁的人,犯故意杀人、故意伤害致人重伤或者死亡、强奸、抢劫、贩卖毒品、放火、爆炸、投放危险物质罪的,应当负刑事责任。 已满十四周岁不满十八周岁的人犯罪,应当从轻或者减轻处罚。 因不满十六周岁不予刑事处罚的,责令他的家长或者监护人加以管教;在必要的时候,也可以由政府收容教养。

参考

少数与多数

如果说封建王朝是少数人的暴力统治,那么民主制度则是多数人的暴力统治。

随想

进入一辆在烈日下暴晒了几个小时的大巴几秒后——马上体会到父母把孩子留在封闭的小车中到底有多危险了——差点当场烤熟了。

使用免费产品时,等价交换的筹码就是用户自己。歌手、演员等价交换付出的是自己的作品,而偶像的作品则是自己,这里包含了个人外在形象,表现出来的才艺;前者可以说是卖艺不卖身,后者则是“卖身”。

年少轻狂只想构建理想乡,却发现一文钱难倒英雄,毕竟未经历战争的人会发起战争来实现“理想”,而经历过战争的人则稳定压倒一切。

EventSource

EventSource 是浏览器端配合服务端事件(Server-Sent Events)使用的技术。和 WebSocket 相比,服务端事件是单向推送,而 WebSocket 是双向通信。

浏览器端

// 第二个参数是可选的,withCredentials 目前用于跨域 cookie,默认 false
const es = new EventSource(url, { withCredentials: true });
es.addEventListener('error', err => console.error(err));
// 监听 message 事件
es.addEventListener('message', evt => console.log(evt.data));
// 监听 type/custom 事件
es.addEventListener('type/custom', evt => console.log(evt.data));

EventSource 要求的是持续不断的输出,如果请求正常地结束终止了,那么客户端会再次自动发起连接,除非显式地调用 close() 方法来结束连接。

服务端

服务端的实现是返回标记为 Content-Type: text/event-stream 的持续内容,其内容的基本格式是:

event: evt-type
data: any message

其中,event 对应 EventSource 监听的事件类型,但该内容是可选的,如果没指定 event,那么则被 message 事件监听(可简化为 es.onmessage)。

紧邻的 data 字段会把内容合并起来,连接内容是一个空行。

直接以 : 开头的内容则是注释,不被解析使用。

继续阅读