Normal view

There are new articles available, click to refresh the page.
Before yesterdayPersonal Blogs

被时间拉长的人

By: Steven
31 August 2025 at 18:05

丢了一批人物标签给 AI 写人物小传,让它模仿某位小说家的笔法,来给演员交代角色。

你觉得这像谁的手笔?

————

南方的空气里常常有潮湿的味道,像是雨下过以后残留的影子,久久不散。城市白天拥挤喧嚣,夜晚却显得空旷,好像光亮突然被抽走,留下无数未完的句子。在这样的环境里,一个男人行走。他的脚步从不急躁,像对时间有着自己的节奏感,和别人不太一样。

年少的时候,他把自己交给了工业设计。形状、光影、比例,这些东西比人群更让他安心。六年在公司,十年在创业,那些日子像一张张被翻阅过的旧画册,色彩褪去了,但线条还在。产品的生与死,像车站里人群的来去。大多数人只看见成功或失败,他却更在意其中被忽略的细节。

别人眼中的他冷静得过分,总是习惯提前几步想好方向,就像棋局上的布局。但在那层冷静的外壳下,常常闪现一些不合逻辑的柔软时刻。比如一段旋律,随便一盏灯的影子,甚至一个不经意的眼神,足以让他停下手里的笔。理性和浪漫在心里不停打架,谁也没有赢过谁。

他知道自己带着黑暗生活。抑郁的日子像一条看不见的走廊,没有尽头。他学会了靠药物维持稳定,像有人随身带着一块怀表,偶尔瞥一眼,提醒自己仍然存在。那段经历让他对痛苦格外敏感,也让他在与人相处时多了一层隐秘的温柔。他不会轻易表现出来,但在内心深处,对别人的脆弱始终心知肚明。

夜晚经常独自坐在桌前,电脑屏幕的光照在脸上,桌上散落着草图和未完成的文字。那些想法有时像城市里的霓虹一样闪烁不定,无法全部抓住。他清楚其中大部分不会被记住,就像梦醒时遗落的片段。但仍旧一遍一遍画下去,像一种执念,也像是一种呼吸。

在喧闹的城市里,他习惯保持慢半拍的步伐。人群汹涌,他的节奏却像潜水时的心跳,缓慢、克制,不慌不忙。他看似与周围保持着距离,其实心里始终怀有一种模糊的渴望——不是要成为谁,也不是要得到什么,而是想在梦与现实之间找到某种入口。梦与梦之间,总有裂缝。裂缝里偶尔透进光。

对很多人来说,他是个不好接近的人。但真正靠近以后会发现,那些冷漠与安静只是表层,像水面下覆盖着的冰。深处的水仍然温热,流动着。理性、浪漫、痛苦和温柔同时存在,没有谁能完全把它们分开。

这样的人物,像一个在现实里造梦的旅人。他的路从不喧哗,却留下清晰的痕迹。

(*正文及标题均由 AI 完成)

我用 ChatGPT 和 Midjourney 剪掉了蓄满四年的长发

By: Steven
1 November 2024 at 17:26

这是我蓄满了四年的长发,原本是打算捐给金丝带的,但我决定放弃了。

一来,捐赠的人太多了,不缺我这一个,它不需要我;

二是,这个活动太热门了,报不上名,我不喜欢凑热闹;

于是,我心里很快就决定了:剪掉,并且要烫卷、染发!

在音乐教室里,筱烨、阿吉和秋秋在上课,我就在旁边用 ChatGPT 写 Prompt,写完之后就丢给 Midjourney 去生成效果图。遇到不满意的,就丢两张我以前的半长发的照片上去,再调整 Prompt 的细节,接着画。

最后,我把这张效果图发给发型师:

虽然这脸型偏硬了,不怎么像我,但这个头发感觉是我想要的。

曲线、松软、紫色挂耳

确定方案之后就直接约时间,一方面要约发型师的时间,他很好约,就在楼下,我随时过去随时可以做;但另一方面,要约收头发的师傅过来,需要由他根据长度把我的头发抽出来。这也是我第一次卖头发,挺新鲜的体验。

首先,我要跟发型师和收头发的师傅一起商量,怎么剪、剪多少、剪到哪里、用什么方法剪。我原本以为就是咔嚓一刀剪了,但其实不是。整个过程里,这位师傅需要非常仔细地把我头发中最长的部份找出来,每次只挑选一小撮,然后用剃刀在距离头皮大约 8-10cm 的位置一点点把头发切断。这样做的目的是,即确保剪下来的头发是满足他收头发的需求,也能确保给发型师留有后续足够的操作空间,还得让头发之间的层次能自然地衔接上。

每次剪下一小撮头发后,他都会仔仔细细地把头发梳几遍,确保没有任何打结,然后放在准备好的毛巾上,平放着。剪之前还特意要把周围的风扇都关掉,万一吹乱了,这些头发都全都没用了。他就这么一遍一遍地重复捏一小撮、切下来、梳顺、平放,如此反复了半个多小时,才终于从我头上抽出来两把共 59g 的长发。

然后就是烫卷和染发。

之所以想这样折腾一下,多少有一点破罐子破摔的心态在,觉得既然这头长发不被需要了,那也就放过自己,不要再被「这件事」困住了,索性趁着这个机会来尝试一下之前没折腾过的事情!

其实我 17 年前也染过一次发,但那时候是因为演《暗恋桃花源》的老导演,为了贴近角色的年龄感,我就去染了一头白发。只不过那个白发染得不成功,黄黄的,加上那会儿我比较消瘦,自己觉得不好看,所以演出结束的第二天我就去剃光头了。所以那次严格来说我不觉得是一次正经的染发体验,毕竟没有顶着这头黄毛生活,勉强能算一次临时的体验。

我当然知道它会掉色,会变成黄毛,会干、会毛躁。

但这不重要,因为我就想试一试。

我紧绷了三十多年,现在崩断了,还不能讨好一下自己,玩一玩吗?玩!

不仅要玩,还要玩得不一样,用 AI 一起玩!

为什么是紫色?因为我喜欢!

虽然我也喜欢绿色,但我也不想染成绿色 😂

朋友说像杨千嬅,像极速拍档的小乔,那也挺好。

最近两周我忽然意识到,我是会因为自己感觉到快乐而感到羞耻的。这是从小根深蒂固的想法。过去我知道,如果我遇到一件好事,一件开心的事,就会有一个声音在警告自己不要乐,不要得意,不要喜形于色,要收起来,不然马上就会招来不幸和倒霉。但我一直认为这是克制和谨慎,是对于能量守恒定律的迷信式的执念,觉得这会儿开心了以后就没有了。

可是,为什么要把开心攒到以后呢?有没有以后都不知道。

筱烨说我的动力来自恐惧,确实,我总有各种恐惧在周围,挥之不去。

但现在我看见它了!我要让我的快乐活过来!我不要快乐羞耻!

尽管我现在还没有什么活力,但起码这个紫色能令我舒服好一阵子!

最后再看一眼,这头蓄了四年的长发和发髻。

我很喜欢这根石纹簪,但我感觉我应该不会再束成这个样子了。

这天色真好。

ChatGPT on macOS客户端app正式面向所有用户开放

By: Justin
27 June 2024 at 09:21

OpenAI宣布了适用于 macOS 的 ChatGPT 客户端app正式面向所有用户开放。该应用专为 macOS 系统设计,支持快捷键呼出和多种内容形式的交互。目前仅适用于配备 Apple Silicon(M1 或更高版本)的 macOS 14+,但计划在今年晚些时候登陆 Windows。

ChatGPT on macOS客户端app正式面向所有用户开放最先出现在Justin写字的地方

ChatGPT on macOS客户端app正式面向所有用户开放

By: Justin
27 June 2024 at 09:21
OpenAI宣布了适用于 macOS 的 ChatGPT 客户端app正式面向所有用户开放。该应用专为 macOS 系统设计,支持快捷键呼出和多种内容形式的交互。目前仅适用于配备 Apple Silicon(M1 或更高版本)的 macOS 14+,但计划在今年晚些时候登陆 Windows。

如何使用 Proxifier 来进行流量代理控制

30 March 2023 at 22:33

Proxifier 是一款网络工具软件,可以帮助用户通过代理服务器进行网络访问,实现匿名化、翻墙、加速等功能。支持多种代理协议,规则管理,流量监控和日志记录等功能,提高网络连接的灵活性和智能化。注意 Proxifier 本身并不是一个代理软件,也不是一个 VPN 软件,其作用是控制其他其他软件访问代理的方式。

上一篇文章我提到了可以试用 Proxifier 来解决通过 Shadowsocks 代理访问呢 ChatGPT 频繁出现 Something Went Wrong 的问题,在本文中我们来展开讲一下具体的做法。

1 准备工作

1.1 软件下载

Proxifier 的官方网站是 https://www.proxifier.com/,其正版价格较贵,约 40 美元。不过,较早的 2.x 版本存在破解版。读者可以根据自己的经济状况来选择。

1.2 代理准备

如同开头提到,Proxifer 本身不是一个代理程序,读者应该自己提前准备好代理。这些代理中,无论是 Shadowsocks、V2Ray 还是其他常见的代理程序,都会在客户端本地重建一个 Socks5 代理,这一般都可以在代理客户端程序的配置或者服务器设置中看到。下图给出的是 Shadowsocks-NG 客户端在 macOS 中的系统配置,可以看到程序在本地 (localhost) 的 1086 端口创建了一个 Socks5 代理。

这个代理会被进一步转成 http 代理,从而被浏览器使用,这个转换过程是导致 ChatGPT 链接不稳定的元凶。接下来我们要使用 Proxifier 让 ChatGPT 直接使用 Socks5 代理。

2 设置 Proxifier

2.1 添加代理

我们以知乎上这篇文章为范本简要讲一下设置过程。首先我们需要将现有代理软件提供的 Socks5 服务告知 Proxifier,这通过添加代理服务器实现。

注意一般各种代理软件在本地创建的代理都是无需验证的,我们可以取消验证启用。输入设置之后,可以点击检查确认设置是否正确。

3 设置规则

为了让 ChatGPT 的访问能够通过 Proxifier 访问代理,我们需要配置 Proxifier 的代理规则。

添加代理规则的页面如下:

我们有两种方法引导 ChatGPT 的网络访问:

  1. 我们可以选择下载 ChatGPT Desktop 客户端,然后通过代理规则中应用程序过滤规则找到 ChatGPT 程序,然后让目标主机为空(这意味着所有的目标主机都会服从本规则);
  2. 将应用程序部分置空,然后在目标主机中填入 ChatGPT 访问的域名。经过我的试验发现,填入 chat.openai.com; challenges.cloudflare.com; *.openai.com; 即可。

事实上,因为 Proxifier 能够全局性地处理所有网络访问,因此,第二种方法对于使用 ChatGPT Desktop 的用户来说同样有效。下图是完整代理规则。

至此我们就完成了设置,你可能需要重启浏览器才能能让 Proxifier 成功地引导 ChatGPT 的流量。

使用 Shadowsocks 访问 ChatGPT 频繁出现 Something Went Wrong 问题的解决方法

28 March 2023 at 18:16

update at 2023.4.27:

Github 上有人做了一个开源的油猴脚本 KeepChatGPT 可以解决这个问题。在浏览器上这个脚本可以正常使用,但是注入到客户端时(尽管内部仍然是一个浏览器)会出现错误。

update at 2023.4.12:

在 Windows 上这套方法存在一定的问题。可能的原因是 Proxifier 的代理权限有时候会被 Shadowsocks 客户端,也就是 Privoxy 争抢。

由于国情原因我们使用使用 ChatGPT 需要使用各种形式的代理,这时我们肯能会发现在与 ChatGPT 对话的过程中可能会出现下面的错误:

Something went wrong. If this issue presists please contact us through our help center at help.openai.com

这种错误一般在我们再让网页空闲一段时间(通常是一分钟)后再次提问时出现。当然,去 OpenAI 的帮助中心是不会搜到什么有用的信息的。如果你去检索这个问题,你能得到的最好答案是在出现这个页面之后刷新页面,然后回到对话窗口继续对话即可。但是刷新后如果再次出现空闲窗口的情况,这个问题会反复出现,因此你在对话中就不得不反复地刷新页面,再加上每次页面重载你都需要去勾选 Cloudflare 的机器人验证框,这就会极大程度上拖慢我们的速度,影响产品体验。

这个问题是否可能是由于我翻墙访问导致的呢?我使用的翻墙软件是 Shadowsocks,经过一番搜索,一个 Github Issue 的讨论给了我灵感。

讨论地址:https://github.com/shadowsocks/shadowsocks-libev/issues/2149

尽管讨论的题目和 ChatGPT 没有直接关系,但是这个回复提到,Shadowsocks 在构建代理管道时,会在客户端使用 Privoxy 来讲 Socks5 代理转换成 http 代理,进而被浏览器使用。Privoxy 的配置中包含了 Socket 连接时长方面的控制。于是我查看了我本地的 Shadowsocks 使用的 Privoxy 的配置文件,这个文件在 MacOS 中位于 /Users/lena/Library/Application Support/ShadowsocksX-NG/privoxy.config 文件。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
toggle  1
enable-remote-toggle 1
enable-remote-http-toggle 1
enable-edit-actions 0
enforce-blocks 0
buffer-limit 4096
forwarded-connect-retries 0
accept-intercepted-requests 0
allow-cgi-request-crunching 0
split-large-forms 0
keep-alive-timeout 5
socket-timeout 60

forward 192.168.*.*/ .
forward 10.*.*.*/ .
forward 127.*.*.*/ .
forward [FE80::/64] .
forward [::1] .
forward [FD00::/8] .
forward-socks5 / 127.0.0.1:1086 .

# Put user privoxy config line in this file.
# Ref: https://www.privoxy.org/user-manual/index.html

可以看到 keep-alive-timeoutsocket-timeout 这两个选项设定的超时时间都比较低。我做了下面两个尝试:

  1. 将这两个设置调高,并重启 Shadowsocks,但随后发现 Privoxy 重置了设置文件;
  2. 我手动 kill 掉正在运行的 Privoxy 并且手动使用更新后的 config 文件调起一个新的进程,但是仍然没有解决 Something went wrong 的问题;

至此,我也不想和 Privoxy 纠缠下去,既然问题出在 Socks5 代理转 Http 代理的环节,我们可以使用 Proxifier 这个软件直接使用 Shadowsocks 提供的 Socks5 代理,就可以很好地解决这个问题。

Proxifier 的教程网上非常多,我就不在这篇文章里赘述了。

Proxifier 的使用参加我的文章:如何使用 Proxifier 来进行流量代理控制

❌
❌