《首尔之春》一点观后感

《首尔之春》是一部很久之前就加入待看片单的电影,终于在昨天晚上看完了。

影片简介

《首尔之春》是韩国 2023 年的票房冠军,也是韩国电影史上首部根据双十二政变事件改编的影片,由《阿修罗》导演金性洙执导,黄晸珉、郑雨盛、李圣旻、朴海俊、金成均主演,2023 年 11 月 22 日在韩国上映。

看完直接先说几点感想吧。

人物关系

导演能够将这么庞大复杂的人物关系梳理并展开清楚,这一点非常了不起,和《1987 黎明到来的那一天》不一样的是,1987 中故事是分段进行的,虽然人物关系也非常复杂,出场人物也非常多,但划分到具体段落中观众只需要记简单的几个就行了。而在《首尔之春》中所有出场的人物全部都是围绕着这一件事情发展而展开的,从安保部,到青瓦台,从总长家到陆军总部,从反叛军地堡到首尔警备司令部,出场的人物一个接一个,地点也一个接着一个更换,但我在观察的过程中竟然没有一丝感觉到混乱,只是事后回想起来才发现出现的人物数量之多。不过我回想起来,可能也是我看韩影比较多,里面的主角配角,甚至只出现一两分钟镜头的演员都是老面孔,看的时候也是不停地被这个超豪华的演员阵容惊讶到。

关于历史

对于这一段历史的,其实我没有很了解,虽然我看了一两本韩国近代史的书,读过一两篇关于光州民主化运动(518 事件)的维基百科和文章,但具体 12 月 12 日那一天发生了什么,其实我还是不了解的,但现实的历史发生了什么我还是大致知道的。所以在观看的过程中,我明明知道黄政民饰演的全斗光就是全斗焕,他会成为改变韩国历史进程的人,但在前半段看到他遇到这种各样问题的时候,还是会不断地想要了解他是怎么一步步完成夺权的,这又是一个吸引我继续看下去的点。另外就是我看过太多的影片,1979 年那个时间前后发生的其他「故事」,所以理解这部分历史相关的倒也还好,比如讲述 1979 年发生的刺杀事件《南山的部长们》,比如 1980 年的光州民主化运动的《出租车司机》《华丽的假期》,以及 1987 年的《1987:黎明到来的那一天》,还有倒序方式讲述那一整段历史的《薄荷糖》,更不用说很多以那个时代为背景的电影《普通人》《南营洞 1985》《五月的青春》等等。

程序正当

程序正当,看电影的过程中其实我有一点我还挺想拿出来说说的,虽然我知道这个就是事实上的军事政变,但黄政民从始至终都需要总统的签字,这一条线索贯穿了全篇,从开始谋划抓捕总长开始这个就是一个必要条件,虽然过程中一直没有拿到「授权」,但最终一幕总统在被迫之下还是签署了。我看到这一个地方的时候其实还感觉停有意思的。在片中能明显的看到黄政民只有两颗星,但是总长我没有记错的话应该是 4 颗星,也就是说一个权力明显不对等的两个人,却发生了一个中层将军直接绑架总长的事件,谁授予的权力呢?其实这个地方也能看到韩国的制度设置里面,虽然经过了朴正熙几十年的独裁统治,但这样一套权力等级制度虽然还在但却错综复杂,尤其是当朴正熙这样一位独裁者突然被枪杀之后产生了权力的极度不平衡。这也是我之前曾经和朋友说过的,一个独裁的体制并不一定会产生极恶的状况,但是一旦权力真空那么发生灾难是必然的。黄政民的权力,武装力量来自于自己,但他却需要一个正当的理由,一个由表面政府首脑签署的文件,才能完成他的整个计划。当我想到这里的时候,不经回想起,韩国民主化运动一路过来的不易,但是也能想到他们成功的必然,在电影里面也非常简短地有出现,1979 年就已经有了完整的媒体监督(虽然还在被压制),已经拥有了非常完整的权力监督体制(虽然还能被颠覆),已经拥有了政治,军事不能混为一体的思想。当看到这里的时候,其实就已经能够预想到最后只要唤醒大部分的民众自然而然就得到了民主。

独裁当道

在看到电影一半的时候我就已经开始为所谓的「正义」一派捏一把冷汗了,而整部电影也用事实告诉普罗大众,如果对于一个「权力」放任不管,那么接下来就是迎接被放出全力牢笼的猛兽的作恶,接下来 1987 中提到的严刑逼供,光州事件中的大规模镇压,已经长达近 10 年的军政府统治,让韩国的民主化运动再次蒙上了一层阴影。

电影到一半左右当黄政民开始策划政变开始,节奏逐渐加快,接下来的剧情发展非常快速,我也知道了为什么韩国年轻人有看这部电影的心率挑战,气愤值挑战,所谓正方的一切行为看起来都非常的懦弱,除了郑雨盛饰演的首尔警备司令官的角色还有一点气度,其他什么国防长官,一听到枪响就逃到了美军基地,还有陆军司令部反复变化的命令,更还有丝毫没有作用的总统,这一些人物的出现那故事的结局已经是必然。

缺点

说完了这么多,再来说一说我觉得这部片子的缺点吧。

首先有一个让我一下子出戏的特效镜头,就是有一个转场镜头,就是在光化门的李舜臣将军像那边,那个转场的画面特效实在太差了。

第二个缺点就是陆军总部,国防长官地刻画都太脸谱化了,虽然历史上的这些人物具体发生了什么很难去再现,但是电影中的表现都是太「简单」,当然可能也受限于篇幅,除了几个主角的刻画比较丰满之外,其他人都是非常潦草的一笔。

为什么叫《首尔之春》

大家可能会好奇为什么明明是发生在 12 月 12 号的事情,片名里面却带着「春」字,全斗焕凭借政变,登上政治最高位,武力镇压民主运动,迫害民主人士,推行军事独裁,结束了大家以为的朴正熙死亡可能带来的民主化春天。在电影的片尾有这样一行字幕。

찬란했던’서울의봄’은그렇게 끝났다 灿烂的「首尔之春」就这样结束了

reference


2024-02-09 south-korea , movie , korean-movie

FocuSee 屏幕录制工具使用体验

在 macOS 下录制屏幕的工具有很多,可以使用系统自带的,也可以使用自带的 QuickTime Player,但是这两个自带的工具,可能都有一些限制,比如不能录制系统自带的声音。

后来我找到了一款用来起来比较舒服的录屏工具,也能够录制系统声音,Screen Recorder by Omi,但 Omi 在导出高清视频的时候有限制,当然如果比较愿意折腾也可以尝试一下 [[Open Broadcaster Software(OBS)]],但今天我来介绍一款新的,操作和使用都比较简单的录屏工具 —- [[FocuSee]]。

FocoSee

FocuSee 是一款专注于屏幕录制的工具,之前有一款支持点击放大效果的录屏软件 [[ScreenFlow]],FocuSee 同样也能达到。

4kLX

特点:

  • 自定义缩放特效,根据点击自动进行画面缩放
  • 高亮内容,抓住用户的注意力
  • 不同的点击特效
  • 内置简易的视频剪辑以及速度编辑工具
  • 自定义摄像头相框和滤镜
  • 调整录制窗口的边距,圆角等
  • 支持根据不同的社交媒体,导出不同的格式

启用权限

42qi

当完成录制之后会出现一个视频编辑器,在这个编辑器中可以做简单的编辑,还可以定义鼠标样式。

4OP0

价格

FocuSee 的价格不低,但好在是买断制的。 u1Sl

相较于 [[Screen Studio]] 稍微便宜一点点。

more

FocuSee 是一款收费的软件,如果你可以折腾那么,OBS 也有一个插件可以实现视频的缩放,可以使用 Python 脚本。可以参考这个教程

  • [[Screen Studio]]
  • [[ScreenFlow]]
  • [[Open Broadcaster Software(OBS)]]

2024-02-05 focusee , screen-recorder , video-cut , video-editor

MVP 最小可实行产品思想

[[MVP]],全称是 Minimum Viable Product ,最小化可实行产品。这个概念是 Eric Ries 在 [[精益创业]] 一书中关于精益创业(Lean Startup)的核心思想,意思是用最快、最简明的方式建立一个可用的产品原型,通过这个最简单的原型来测试产品是否符合市场预期,通过不断的快速迭代来修正产品,适应市场需求。

简单地说,就是在做一个新产品时,不要一下子做一个尽善尽美的产品,而是先花费最小代价做一个「可用」的产品原型,验证这个产品是否有价值,是否可行。通过迭代来完善细节。

那如何来定义「可用」呢?可以问自己如下的问题

  • 这个产品是为谁解决什么问题,满足了这部分用户什么需求
    • 产品要解决的解决的核心问题是什么
  • 分析市场上的竞品,这些竞品哪些地方没有满足拥护的需求
    • 分析这些产品主要流程,是否有可以优化的地方
  • 列出必要功能,排出优先级
    • 希望用户完成什么操作,用户能做什么
    • 产品或者服务为用户提供什么
    • 必须要的功能,有的话最好的功能,有没有都行的功能
    • 严格划分资源和时间,来划定第一个版本
  • 验证和迭代,用市场来验证项目,接收用户反馈

从需求推导出核心功能

发现用户的需求,然后根据这些需求从而确定出产品的核心功能,关键特性,这些功能是产品成功的基础。集中资源和时间来开发这些功能,而不是试图一次性实现所有的功能。

核心思想在于快

MVP 核心思想在于快,通过设定精确的目标,构建最小版本,快速发布,快速验证来构建产品。

这一步可以通过 [[Excalidraw]] Azure Figma 等等工具来快速构建自己的想法,交互流程,通过流程图,思维导图等等工具来构建用户交互界面。

如何验证

将产品推到市场获取潜在的客户之后,需要积极地手机用户反馈的数据,了解用户对产品的喜好,需求和问题。可以通过如下的方式来收集验证。

  • 用户访谈,和真实用户沟通,这也是为什么欧美新创公司在产品测试阶段都喜欢直接和用户面对面聊天之后才开放试用权限
  • 数据验证,埋点,转换率,观察用户是如何使用这个产品的,流程是否有优化的空间
  • 使用 AB 测试

迭代

持续迭代是 MVP 思想另外一个重要的部分,持续改进和发展产品,逐步添加新功能和特性,来满足变化的用户需求。

我们从笔记软件的发展历程来看就能知道为什么迭代是如此重要。过去 10 年里面有一家成长为独角兽的公司 Evernote,但是随着互联网发的发展,协同编辑,以及 Markdown,双向链接的出现,即使是一款过去非常主流的笔记软件也会面临用户流失的问题。

MMF

与 MVP 类似的还有一个概念叫做 MMF,Minimum Marketable Feature,最小可销售特性。这个也是产品开发非常重要的一个概念,它强调的是在产品中添加最小限度可以被销售或交付的功能。与 MVP 不同,MMF 更侧重于产品的营销和销售能力,而不仅仅是验证产品概念和核心功能。

总结

最后使用 [[Marc Lou]] 的话来做一个总结,「忘记 SaaS,Passive income,The perfect co-founder,从一个 Feature,One-time Payment,Repeated small wins 开始」。1这句话恰好印证了 MVP 思想,核心功能,收费,然后不断验证并迭代更新。

  • [[MMF]]

2024-01-29 创业 , product , service , business , sell-product , payment

我购买了一台 Apple TV

在家里面我一直使用我的斐讯 T1 电视盒子,自己刷了系统之后,不需要更新,也没有烦人的软件升级,而且整个系统没有广告,在这样的情况下,我使用了近 5 年,对于一个不到 100 元的电视盒子来说实在是太值了,并且用到如今并没有出现任何较大的问题,正常情况下我使用 Kodi 观看本地网络磁盘中的 10 GB 左右的 1080p H264 视频也完全没有问题,并且 Android 生态的丰富程度,让我可以直接在 T1 上安装 Bilibili 客户端,也可以安装 YouTube,自建的 Plex,更不用说还有国内非常多的视频网站,以及丰富的直播应用,但一般情况下我使用最多的还是 Kodi,Bilibili,YouTube 和 Plex,然后还会进行一些 [[DLNA]] 投屏和串流,基本满足了我 99% 的需求。

但为什么我又要买一台 Apple TV 呢?原因主要有这么几点。

  • 编解码,以及对 HDR,H265 的支持,我的 T1 无法解码 H265 视频并播放,所以一旦遇到 H265 编码的时候就只能放弃或者下载 H264 编码的视频
  • Kodi 崩溃,Kodi 是一个非常强大的播放器和本地音视频管理,但是不清楚是 Kodi 自身的问题还是我通过网络磁盘播放视频的问题,极少数的情况下会让 Kodi 闪退,虽然遇到的情况不多,但是也非常影响使用体验

我的选择

所以我决定更新一下 T1,我有几个选项

  • Nvidia Shield TV
  • Amazon Fire TV Stick 4K 7480 JPY
  • Google Chromecast with Google TV 7450 JPY
  • Apple TV

因为很早就开始关注 Nvidia Shield TV,但是当时 T1 一直非常棒,所以没有淘汰的理由,从 2017 年关注到 2024 年,竟然只在 19 年更新了一次,之后 4 年该产品没有任何更新,所以肯定第一时间放弃了,我还在 Reddit 上的发帖问 Nvidia 还会更新吗,得到的网友回答是没有任何消息。

而 Amazon 的 Fire TV 和 Google 的 Chromecast 也是很早就开始关注,因为同是 Android 系统,所以很多 APK 可以直接安装,但是当时人在大陆,所以用起来肯定有一些水土不服,需要网络代理,很多应用还无法使用,所以非常干脆的不考虑,但是去年到东京居住那么这两个选项又放到了考虑选项,我在 Yodibashi 线下曾经尝试了一下 Chromecast,说实话没有我想象的那么流畅,所以当时就放弃了。而 FireTV, Amazon 经常做五折促销,一度想要下单,但也是忍住了,在 YouTube 上看了几个测评之后感觉还是一台不错的电视盒子。

而最后一个 Apple TV 本来是没有在考虑范围的,生态不丰富,没有 Kodi(安装起来非常麻烦),没有 Bilibili 客户端,我 90% 时间用的应用都没有,并且投屏似乎还不支持 [[DLNA]],Apple 有自己的一套自己的协议 AirPlay。但看了几个测评视频之后发现这些问题似乎目前都还都有解,Kodi 可以用 Infuse,VidHub 等播放器,Bilibili 客户端也有几个三方的客户端 Miao Project,Cheers,也可以选择投屏。而投屏和苹果的生态协作使用体验比较良好。

选择哪一款

确定好 Apple TV 之后,就开始调查 Apple TV 的具体型号。

历史型号对比

型号 Model 日版制品番号 发布年份 颜色 容量 视频输出 无线网络 蓝牙 发售价格 (¥)
Apple TV (第 1 代) A1218 MA711J/A(40GB) MB189J/A(160GB) 2007 年 3 月 铝色 40GB 720p 802.11b/g -
Apple TV(第 2 世代) A1378 MC572J/A 2010 年 9 月 黑色 8GB 1080p 802.11n 8,200 円+税
Apple TV (第 3 代) A1427
A1469(Rev A)
MD199J/A 2012 年 3 月 黑色 8GB 1080p 802.11a/b/g/n 8,200 円+税
Apple TV HD (第 4 世代) A1625 MHY93J/A 32 GB
MGY52J/A(32GB)
MLNC2J/A(64GB)
2015 年 10 月 黑色 32GB 或 64GB 1080p 802.11ac 32GB:18,400 円+税
64GB:24,800 円+税
Apple TV 4K (第 1 代) A1842 MQD22J/A(32GB)MP7P2J/A (64GB) 2017 年 9 月 黑色 32GB 或 64GB 2160p (4K) 802.11ac 32GB:21,780 円(税込)
64GB:23,980 円(税込)
Apple TV 4K (第 2 代,MQD22J/A 32GB MXH02J/A 64GB) A2169 MXGY2J/A(32GB)
MXH02J/A(64GB)
2021 年 4 月 黑色 32GB 或 64GB 2160p (4K) 802.11ax (Wi-Fi 6) 32GB:21,800 円(税込)
64GB:23,800 円(税込)
Apple TV 4K (第 3 代 ) A2737(64GB)
A2843(128GB)
MN873J/A(64GB)
MN893J/A(128GB)
MN893X/A 64 澳洲版本
2022 年 4 月 黑色 64GB 或 128GB 2160p (4K) 802.11ax (Wi-Fi 6) 64GB:19,800 円(税込)
128GB:23,800 円(税込)

在简单的了解一下之后 Apple TV 4K 目前推出到了第三代(2022 年版本)

Apple TV 4K 第 2 代 -> 第 3 代升级

  • CPU:A12 Bionic -> A15 Bionic
  • 重量更轻 425g -> 208g/214g
  • 遥控器接口 Lighting -> USB Type-C
  • 最大容量 64GB -> 128 GB
  • 增加了 HDR10+ 支持

uJZ8

综合上面的所有的升级内容,我个人判断这些升级对我目前的使用影响不大,所以就开始在 Mercari 订阅了关键字,正好这两天看到第二代 Apple TV(64GB) 13410 JPY,看上去价格也合适就下单了。

使用

开机设置非常简单,直接按照指示手机靠近 Apple TV 就能关联上自动通过手机来进行初始化,这一点 Apple 的一贯性还是做的不错的。

应用

进入系统之后就是开始安装必要的初始化应用,来先满足我的基本需要,但是让我感到惊讶的是因为我已经通过 iOS 下载过 VidHub 所以 Apple TV 里面通过 iCloud 同步将我的配置都同步过去了,这一点还是非常舒服的。

  • 本地播放器
    • [[Infuse]] Infuse 是一款非常强大的 iOS 和 tvOS 视频播放器应用程序,它可以播放多种格式的视频文件,并从网络资源中流式传输视频内容。它还集成了 Trakt.tv 支持来跟踪你的观看历史记录,并具有美丽而简单的用户界面。
    • [[VidHub]] 新晋本地播放器,缺点不支持杜比
    • [[Fileball]],本地播放器,可以连接网络共享,支持 SMB,FTP,SFTP,Synology,NFS,WebDAV 等,支持 Emby Jellyfin 等,还可以连接百度网盘,Box,Dropbox,Google Drive,OneDrive,pCloud 等,可以作为 Infuse 平替,高级版本价格也比较合适
    • IIVA TestFlight 播放器
    • Conflux
    • Yunbox 点击下载,是一款支持阿里云盘、夸克网盘、WebDAV 等协议的多媒体播放器,支持多种云盘订阅管理,以原画质量播放媒体文件,支持各种高清视频格式如 MP4、MKV、AVI、FLV 等,支持 ass、ssa、sup 等多种格式字幕等。
  • 在线影音库
    • [[Plex]] / [[Emby]]
  • 流媒体
    • YouTube
    • Netflix
    • Disney+
    • Amazon Prime Video
  • VOD
    • XPTV,TestFlight 已满
    • CMSPlayer,UI 比较简陋的 VOD 播放器
    • SyncNext,VOD 播放器
    • VidPlay,支持 WebDAV,Alist,VOD 等协议
  • 音乐播放器
    • Musify,Yunbox 作者开发的音乐播放器,售价 3.99 USD,限免过,可以在 tvOS 上通过 WebDAV 播放音乐
    • Vibefy TestFlight ,一款网易云播放器。
  • 直播
  • Bilibili
    • 弹幕播放器 点击下载 Apple TV 上的 B 站客户端,限免过
    • Miao Project,一款 Bilibili 第三方客户端,收费
    • Cheers,Bilibili 客户端
  • m3u
    • BestTV 下载 Live Stream Player,售价 4.99 USD,限免过
    • APTV,一款用于观看 IPTV 的应用,需要自行配置直播源
  • 投屏,支持在 Android 设备上投屏
    • UnPlay,支持 [[DLNA]] 协议
    • DLPlay,支持 DLNA 投屏协议,1.99 USD/ 300JPY
  • 工具
    • SpeedTest 测试外网速度
    • iPerf 测试内网速度
    • TOP 查看当前 Apple TV 资源占用情况
  • 网络
    • [[Tailscale]]
    • Shadowrocket
    • Quantumult
    • Surge
    • sing-box
    • Stash
    • Loon
    • Puff Glide
    • Maomi

列举了上面这么多的应用,我实际使用最多,比较推荐的几个应用

  • 本地视频播放 VidHub ,Fileball,Conflux
  • 在线视频,YouTube,弹幕播放器
  • 在线媒体库,Plex
  • 投屏,DLPlay

VidPlay

VidPlay 一款 可高级玩法的 VOD 播放器

功能简介

  • 支持 WebDAV 播放
  • 支持 VOD 播放
  • 支持 TVBOX json
  • 支持 Alist
  • 支持 小雅 玩偶 小纸条 JOJO 等高级玩法

▎ 目前 iOS 端正在开发适配中

  • AppStore (https://apps.apple.com/us/app/vidplay/id6467240929)
  • TestFlight (https://testflight.apple.com/join/EMf4MhpG)

VidPlay 交流群 (https://t.me/CubePlayer) VidPlay 高级玩法交流群 (https://t.me/+XHhN9aAZ8j5hZGY5)

UnPlay

UnPlay 是一款创新的时钟/投屏应用,为用户提供多样化的场景体验。不仅可以作为时钟, 还能使用 DLNA 协议推送流媒体到 Apple TV 上增加大屏体验

使用

Bilibili 投屏 Apple TV

  • 确保您的 Apple TV 和手机/平板电脑(苹果设备)连接在同一个 Wi-Fi 网络下
  • 在您的 iOS 设备上,下载并安装 Bilibili 客户端
  • 打开 Bilibili 客户端,并找到您想要投屏的视频
  • 下拉菜单,选择屏幕镜像(Mirror)
  • 在弹出的菜单中,选择您的 Apple TV 设备,然后等待连接
  • 连接成功后,您的视频将会自动开始在 Apple TV 上投屏播放

需要注意的是,如果您的 Apple TV 和苹果设备没有连接在同一个 Wi-Fi 网络下,投屏可能会失败。

其他未研究


2024-01-26 apple-tv , apple , tv-box , android-box , android-tv , projector , 电视 , tvos , vidhub , tvos

Datadog 日志搜索语法总结

Datadog 成立于 2010 年,是一家面向开发者、IT 运维团队及业务人员的云监控平台公司,致力于为企业客户提供底层系统和上层应用的实时监控、分析能力。

日志管理产品,可观测数据 log, metric, trace 集一身的方案。Datadog 的日志查询有一套自己的语法,但是都比较好了解,所以这里也整理一下。

概述 Overview

查询过滤器由两部分组成 terms (术语) 和 operators(运算符)。

两种类型的术语:

  • single term 是一个单词,比如 test
  • sequence 是一组通过双引号包围的短语,比如 hello world

将多个术语通过如下的操作符组成形成复杂的查询语句。

  • AND,满足所有条件
  • OR,任意术语包含
  • -,术语不包含

Escape special characters and spaces

下面这一些是特殊字符

+ - = && || > < ! ( ) { } [ ] ^ " “ ” ~ * ? : \

如果要查询这些特殊字符需要使用 \ 来转义。

属性搜索

按照特定的属性进行搜索,可以使用 @ 指定。

比如想要查询 url 是 example.com 的记录

@url:example.com

更多例子

  • @http.url_details.path:"/api/v1/test" 搜索 http.url_details.path 中与 /api/v1/test 匹配的所有日志
  • @http.url:\/api\/v1\/* 搜索包含以 /api/v1 开头的 http.url 属性中的值的所有日志
  • @http.status_code:[200 TO 299] @http.url_details.path:\/api\/v1\/* 包含范围 code 和以 /api/v1 开头的属性的日志
  • -@http.status_code:* 搜索不包含属性的日志

通配符

  • ? 匹配单个字符
  • * 通配

数值

比如所有的接口请求都有延迟

@http.response_time:>1000

或者搜索特定的范围

@http.status_code:[400 TO 499]

标签 Tags

匹配带有标签 env:prod 或标签 env:test 的所有日志

env:(prod OR test)

匹配包含标签 env:prod 且不包含标签 version:beta 的日志

(env:prod AND -version:beta)

2024-01-21 datadog , log , logstash , saas , logback

AdGuard Home 53 端口占用问题解决

之前写过一篇文章如何搭建自己的 AdGuard Home 去广告,过去很久了,现在在一台新的 Ubuntu 设备上再次安装 [[AdGuard Home]],再次记录一下如何解决 53 端口被占用的问题。

53 端口的服务

因为 AdGuard Home 要通过 53 端口提供 DNS 解析的功能,但是默认情况下 Ubuntu 的 systemd-resolved 会占用 53 端口来提供本地的 DNS 解析缓存服务。

使用 sudo lsof -i :53 或者 netstat 命令查看

4ZBQ

编辑配置文件

sudo vim /etc/systemd/resolved.conf

修改文件

[Resolve]
DNS=1.1.1.1
#FallbackDNS=
#Domains=
#LLMNR=no
#MulticastDNS=no
#DNSSEC=no
#DNSOverTLS=no
#Cache=yes
DNSStubListener=no
#ReadEtcHosts=yes

将其中的 DNS 和 DNSStubListener 字段做如上修改。

然后重启服务

sudo systemctl restart systemd-resolved.service

再次查看 53 端口,没有被占用,之后就可以启动 AdGuard Home 了。

/etc/resolv.conf 文件和 systemd-resolved 进程的关系

systemd-resolved 是 systemd 中提供的一个 DNS 解析器服务。它可以自动管理 /etc/resolv.conf 文件,并提供一些额外的功能,例如:

  • DNS 缓存: 缓存 DNS 查询结果,以提高解析速度。
  • DNSSEC 支持: 支持 DNSSEC 安全扩展,以提高 DNS 解析的安全性。
  • 多 DNS 服务器: 支持同时使用多个 DNS 服务器,以提高可靠性。

systemd-resolved 默认情况下是启用的。如果启用了 systemd-resolved,它会将 /etc/resolv.conf 文件配置为指向一个符号链接,该符号链接指向 systemd-resolved 管理的 stub-resolv.conf 文件。stub-resolv.conf 文件包含了 systemd-resolved 提供的 DNS 服务器信息。

如果您想要手动配置 /etc/resolv.conf 文件,需要先禁用 systemd-resolved 服务。您可以通过以下命令禁用 systemd-resolved 服务:

sudo systemctl disable systemd-resolved

禁用 systemd-resolved 服务后,/etc/resolv.conf 文件将不再被自动管理。您可以直接编辑 /etc/resolv.conf 文件,并重启网络服务使更改生效。


2024-01-20 adguard , adguard-home , dns , adblock , youtube , systemd

Hono 一个快速轻量的运行在边缘节点的 Web 框架

Hono 是一个运行在边缘节点的 JavaScript Edges Web 框架,可以在任何支持 JavaScript 运行的服务上,包括 Cloudflare Workers,Fastly Compute@Edge,Deno,Bun,Vercel,Netlify,Lagon,AWS Lambda,Lambda@Edge 和 Node.js。

Hono 的特点就是简单,轻量,快。

  • 快,RegExpRouter 快
  • 轻,hono/tiny 只有 14kB,零依赖
  • Multi-runtime,支持非常多的 JavaScript 运行时
  • 完整,自带中间件,可以自定义中间件
  • 验证,缓存,Cookie,CORS,ETag 等等

使用场景

  • 构建 Web API
  • 后端服务代理
  • CDN
  • Edge 应用
  • 基础服务
  • 全栈应用

下面是一些具体的使用 Hono 的产品

  • drivly 通过数据驱动的电商平台构建工具
  • repeat.dev 定时触发调用 webhook 的服务

使用

创建项目

pnpm create hono my-app

我创建了一个项目,接受上传图片,并生成一个随机的图片名称,然后上传到 Cloudflare R2。代码见GitHub

然后配套 uPic 直接上传到 R2,然后获取 R2 的直接链接。

Head

Content_Type: multipart/form-data
Authorization: Bearer my-secret-token

采用 form-data 上传,文件 key 是 file。

2PiP904C8H


2024-01-09 web , web-framework , edge , cloudflare , cloudfare-worker , deno , vercel

我买了一台打印机 TS3330

因为时不时需要有打印和复印的需求(日本政府总有一些奇怪的手续需要提供纸质的材料),之前看到有人出家用打印机就用 3000 JPY 买了一台,这是一台 Canon TS3330。下面记录一下我自己的初始化过程以及更换墨盒的过程,以备自己后续查看。

产品介绍

佳能打印机 A4 喷墨多功能 PIXUS TS3330 白色 Wi-Fi 兼容。

u8N9

墨盒

  • BC-345XL 黑
  • BC-346XL 彩色

说明书

canon ts3330 説明書

或者访问 https://ij.start.canon 访问,然后查询型号,查看交互式教程。

或者直接访问 TS3330 的手册。

以防万一,我也做了一个备份

安装墨盒

首先将打印机连接电源,然后按下电源键启动。等待启动完成,将打印机前部分的往下拉开。

UgxBqxXkrN

然后就能看到墨盒的位置

YYHTclROSX

左边是彩色的,右边是黑白的。

安装的时候有一定的倾角。

t4VWBYm5Q_

安装的时候需要有一个向上的按压操作。

vw0A83XezT

直至两边对齐

igvITLPQeI

连接 WiFi 通过网络打印

使用 macOS/Windows 完成初始化

访问 https://ij.start.canon 下载桌面版的应用,根据应用上的提示完成 WiFi 初始化。

使用 iPhone 手机初始化连接

  • 首先到应用市场中下载 Canon 打印
  • 然后长按打印机上手机样子的按钮,直到屏幕中出现闪烁的 WiFi 图标

xfEiARCT73

  • 等待出现 Canon 字样的 WiFi 热点,然后使用手机连接
  • 打开 Canon 打印,根据提示完成 WiFi 密码的输入,完成设置

使用

当完成 WiFi 连接之后,打印机在本地网络中就会存在一个 IP 地址,直接通过浏览器访问这个 IP 地址,可以对打印机进行一些管理。比如

  • 设置打印机名字
  • 查看墨水的剩余量
  • 清理
  • 升级固件
  • 设置语言

2023-12-30 printer , hardware , office

语言能力分级系统 CEFR

今天在浏览 LinkedIn 的时候,突然看到日本公司的 JD 中对语言的要求其中出现了一个关键字 CEFR C1 / B2 。好奇心使然,让我想了解一下这个我没有见到过的英语能力等级是什么。

在中文的语境中经常会看到 CET-4,CET-6,或者 TOEFL,ITLTS,甚至前不久还看到了 [[Duolingo]] 推出的英语能力测试,Duolingo 的英语能力测试因为能通过在线获取,所以在疫情期间还得到了很大的发展。

CEFR

CEFR 是 Common European Framework of Reference for Languages 的缩写,即欧洲语言共同参考框架。它是一个由欧洲委员会制定的语言能力分级系统,用于描述语言学习者在不同水平上的语言能力。

CEFR 将语言能力分为六个级别:A1、A2、B1、B2、C1 和 C2。C1 是第五个级别,属于高级水平。

CEFR C1 水平的语言学习者能够:

  • 理解复杂的长篇文章和讲话,即使它们涉及抽象或技术主题。
  • 在各种情况下流利地表达自己的观点,即使是复杂或有争议的问题。
  • 有效地使用语言在社会、学术和职业环境中。

CEFR C1 水平的语言学习者可以胜任以下任务:

  • 在一个使用英语的国家生活和工作。
  • 阅读和理解复杂的技术文档。
  • 在学术会议上发表演讲。
  • 与母语为英语的人进行流利的对话。

在我调查的过程中发现了一个网站 EF SET 这个网站也有对于 C1 的具体介绍,这个阶段,是能够熟练应用英文进行交流,对大部分的事物都可以给出具体准确的描述而不需要提前准备。

uScI

最后分享一下我进行的 15 分钟的测验,希望明年能上到 90% 以上吧。

u4ZR


2023-12-25 mercari , english-test , english-learning

React 学习笔记之了解 React

这一期的 21 天计划中,我将了解和学习 React 并使用 React 制作一个简单的网站列入了计划,和之前学习了解 [[Lavarvel]] 一样,我在笔记里面制作了一个短期的学习计划,并看了一些官网的教程和书籍的目录,制定了几大块的知识点。这是这个系列的第一篇文章。

React 是什么

[[React]] 是一个用来构建用户界面的 JavaScript 库,用于构建 UI 界面,起源于 Facebook 的内部项目,用来构建 Instagram 的网站,于 2013 年 5 月开源。React 拥有较好的性能,代码逻辑简单,现在已经有很多项目使用 React 来实现,并且占据了当前前端开发的市场,另外一大山脉 [[Vue]] 等有时间再看看吧。

学习 React 的目的

和之前 [[Laravel]] 一样,主要的目的是为了可以快速实现一些小的想法,之前有很多想法都停留在 Todo-List 里面,如果有一个顺手的工具,就可以快速实现。另外一个目的就是为了看懂现在的开源代码,以及一些感兴趣的项目。初步的目的只是为了能看懂,并且能在此基础上做一些小的改动吧。

为什么要学 React

  • 为了看懂一些开源代码
  • 用来快速实现一些小想法,验证想法

React 的优势是什么

  • 声明式设计,React 的状态和行为是通过声明的方式来定义的,React 负责将其渲染到 UI 上。
    • 声明式的设计提升了可读性,可维护性
  • 组件,复用代码,React 使用组件来构建 UI,而组件是独立,可重用的代码块,用于渲染 UI 元素
  • 高效,模拟 DOM,最大限度减少直接和 DOM 交互,提升了 UI 渲染速度
  • 灵活,可以于已知的库配合
  • JSX 扩展语法
  • 单向响应数据流,可维护,更容易理解

React 是如何工作的?

React 会在内存中创建 Virtual DOM,React 会首先将修改应用到内存的 Virtual DOM 中,然后再将修改反应到浏览器的 DOM 中。React 只会去渲染需要修改的内容。

React 基本概念

每一次学习新的东西,最开始就是要了解概念,React 中有一些非常核心的概念,这里先列举一下,之后还会展开。

  • JSX,JSX 是 JavaScript 的扩展集,可以让开发者在 JavaScript 中直接编辑 HTML 代码
  • 组件,React 程序的基本组成单位,独立,可复用,用于渲染 UI
    • 组件的生命周期,组件在其生命周期中不同阶段调用的函数
  • props,从父组件传递给子组件的数据,可以是任何类型的数据
  • 状态(State),组件的内部状态,控制组件的行为

理解基于组件的结构

下面的方法定义了一个最基本的组件,包括了一个叫 name 的状态。

function MyComponent() {
  const [name, setName] = useState("John Doe");

  return (
    <div>
      <h1>Hello, {name}</h1>
      <button onClick={() => setName("Jane")}>Click here to set name</button>
    </div>
  );
}

设置开发环境

Node.js

因为我使用 asdf ,所以直接安装 Node.js 即可。

asdf install nodejs 20.10.0

TypeScript

TypeScript 是一种向 JavaScript 代码添加类型定义的常用方法。TypeScript 天然支持 JSX——只需在项目中添加 @types/react@types/react-dom 即可获得完整的 React Web 支持。

安装 React

要使用 React,首先需要 npm 和 Node.js 环境。

通过 npm 安装, 使用 create-react-app 构建一个 React 开发环境,这个环境包括了常用的工具比如 [[Webpack]],ESLint 等。

npx create-react-app my-react-app

运行代码

npm start

JSX 语法

JSX 是一种 JavaScript 语法扩展,用于将 HTML、JavaScript 和 CSS 代码混合在一起。JSX 使 React 开发人员能够以更简洁的方式编写代码。

JSX 语法简化了 React 的开发,在编译时会自动转化为 JavaScript 代码,并编译成输出 HTML。

可以来看一个简单的例子

const MyComponent = () => {
  return (
    <div>
      <h1>Hello, world!</h1>
      <button onClick={() => console.log("Hello, world!")}>Click me</button>
    </div>
  );
};

6 条 JSX 原则

  • 永远只 return 一个根元素
return (
  <div>
    <h1>Hello World!</h1>
    <p>This is my first React component.</p>
  </div>
)
  • 使用 className 而不是 class
<div className="my-class">This element has a CSS class.</div>
  • 使用花括号(Curly Braces) 来使用 JavaScript
<div>{myVariable}</div>
  • 使用 camelCase
<button onClick={handleClick} className="btn">Click me!</button>
  • 永远要记得关闭
<div></div>
  • 空元素,使用 Self-Closing 标签关闭
<img src="my-image.jpg" alt="My Image"/>


2023-12-15 react , javascript , typescript

电子书

本站提供服务

最近文章

  • Voicenotes 一款 AI 语音笔记应用 前两天偶然间收到一个推送,说有一款 AI 语音的笔记应用叫做 Voicenotes,今天终于有时间试用了一下,我的简单使用体验来说,这是一款通过语音来记录想法,备忘录的工具,它与其他笔记,备忘录的区别就在于 AI 的加持,Voicenotes 只允许通过语音输入,录音会通过识别转录成文字(AI),然后记录的所有内容都可以通过和 AI 提问的方式进行回顾,总结,或者进行 brainstorm。
  • Apple silicon M 系列芯片区别及购买推荐 虽然日常一直在用 MacBook,但是说实话我是没有去了解 M 系列芯片的具体性能的,虽然之前从 Intel 转向 M 系列芯片的时候有看过几个视频,说 M 系列的芯片确实在散热,省电和性能上碾压了 Intel,但是之后也没有继续再关注,直到前段时间在小红书上看到有闲着没事干的人分享了一个图片,图片内容是历年了 Apple 在 WWDC 上说的和前一代相比 CPU 性能又提升了多少,于是他把 M1 芯片作为基数 1 ,然后依次给不同系列的芯片乘以倍数,得出了一个非常有意思的图。
  • Felo 一款实时同声传译应用 很早就在 Twitter 上知道了 Felo 这样一款同声传译的工具,这个工具让我在刚来日本,拨打日语客服的时候起到了非常重要的作用,我用一个手机拨打客服电话,然后用另外一个手机实施翻译客服说的内容,最近也为我解决了乐天银行无法登录的问题。
  • 期权策略:Bull Call Spread Bull Call Spread,可以翻译成牛市看涨价差策略,这是一个期权交易策略。
  • 使用 Quartz 发布 Obsidian 笔记库 自从使用 [[Obsidian]] 以来就一直想要有一个开源版本的 [[Obsidian Publish]] 代替,过去这几年也尝试了不少方案,比如 Jekyll 静态网站生成,比如使用 [[Logseq]] 生成网站, 然后还想过从 Obsidian 同步到 Notion 里面,然后再使用 [[NotionNext]] 来生成网站。