作者: AI最严厉的父亲

  • Windows 和 Terminal下配置 Gemini API 环境变量教程(含一键启动命令)

    Google Gemini CLI 是一款强大的AI编程工具,使用时通常需要配置模型名称、API 地址和密钥。Linux/macOS 用户常用 export 命令设置环境变量,而在 Windows 下则需使用 PowerShell 或 CMD 的方式。

    file


    ✅ 一、环境变量说明

    变量名 作用
    GEMINI_MODEL 指定使用的 Gemini 模型版本,如 gemini-2.5-pro
    GOOGLE_GEMINI_BASE_URL API 基础地址,若使用代理或本地转发服务可自定义
    GEMINI_API_KEY API 密钥,用于身份验证,通常以 sk- 开头

    🖥️ 二、在 Windows 中设置环境变量

    方法一:临时设置(当前 PowerShell 会话有效)

    $env:GEMINI_MODEL="gemini-2.5-pro"
    $env:GOOGLE_GEMINI_BASE_URL="http://192.168.100.1:8000"
    $env:GEMINI_API_KEY="sk-123456"

    方法二:永久设置(写入系统环境变量)

    setx GEMINI_MODEL "gemini-2.5-pro"
    setx GOOGLE_GEMINI_BASE_URL "http://192.168.100.1:8000"
    setx GEMINI_API_KEY "sk-123456"

    ⚠️ 注意:setx 设置后需重新打开终端才生效。

    方法三:图形界面设置

    1. 打开「系统设置 → 系统 → 关于 → 高级系统设置」
    2. 点击「环境变量」
    3. 在“用户变量”中新增上述三个变量

    🚀 三、一键启动 PowerShell 并设置环境变量

    你可以使用以下命令快速启动 PowerShell 并自动设置 Gemini 环境变量:

    powershell.exe -NoExit -Command `
    "$env:GEMINI_MODEL='gemini-2.5-pro'; `
    $env:GOOGLE_GEMINI_BASE_URL='http://testapi.com'; `
    $env:GEMINI_API_KEY='sk-123456'; `
    Write-Host '✅ Gemini 环境变量已设置,可以直接使用 gemini-cli 或相关命令' -ForegroundColor Green"

    file

    ✅ 如果你还需要设置代理(如 HTTP/SOCKS5),可以在命令中加入:

    $env:HTTP_PROXY='http://127.0.0.1:10808'; `
    $env:HTTPS_PROXY='http://127.0.0.1:10808'; `
    $env:ALL_PROXY='socks5://127.0.0.1:10808';

    📂 四、可选:保存为启动脚本(.bat 文件)

    将以下内容保存为 start-gemini.bat,双击即可启动:

    @echo off
    powershell.exe -NoExit -Command ^
    "$env:GEMINI_MODEL='gemini-2.5-pro'; ^
    $env:GOOGLE_GEMINI_BASE_URL='http://testapi.com'; ^
    $env:GEMINI_API_KEY='sk-123456'; ^
    Write-Host '✅ Gemini 环境变量已设置,可以直接使用 gemini-cli 或相关命令' -ForegroundColor Green"

    🧩 五、常见问题

    问题 解决方案
    环境变量设置后无效 确保使用的是当前终端会话或重启终端
    API 无响应 检查 GOOGLE_GEMINI_BASE_URL 是否正确,是否需要代理
    密钥无效 登录 Google AI Studio 获取有效的 API Key
    运行 gemini 命令时跳转登录失败 第一次运行时可能会提示登录失败,此时请选择「API 模式」继续使用
  • 从芬兰青年到开源传奇:Linus Torvalds与Linux的非凡旅程

    我一直觉得,这世界上有那么些人,生来就是为了折腾点什么。他们可能不是最聪明的,也不是最具煽动性的,但他们就是有股劲儿,非得把心里的那点念想,变成能让世界颤抖的现实。我,一个曾经在代码海洋里挣扎过几年的老油条,也算是见过一些“英雄”了。但要说谁最能让我拍案叫绝,那还得是那个芬兰来的小胡子——Linus Torvalds。他就像个不小心闯入庙堂的野孩子,手上的玩意儿,却成了整个数字世界的基石。我记得很久以前,第一次接触Linux时,那命令行里跳动的字符,对我而言,如同天书,但又隐隐透着一股魔力。后来,当我深入了解它的缔造者,才明白,有些革命,从来不是计划出来的,而是被某个不安分的灵魂,一点点焊上去的。而这个故事,就是关于那个不安分的灵魂。

    file

    一、21岁的“无聊”与颠覆世界的种子 🌱

    有时候,伟大就诞生在无聊之中。1991年,一个名叫Linus Torvalds的芬兰年轻人,正在赫尔辛基大学读书。彼时,个人电脑已经开始走进寻常百姓家,但操作系统这玩意儿,就像被几家巨头垄断的圣殿,普通人想进去看看,要么得花大价钱,要么就得忍受各种限制。Linus当时的心情,大概跟很多年轻人一样——有点不爽,又有点无所事事。他手里有一台Intel 80386处理器的新电脑,这在当年可是个宝贝。但他用着MINIX,一款由荷兰教授Andrew S. Tanenbaum开发的,用于教学的小型类Unix操作系统,却总觉得缺点什么。

    "I’m doing a (free) operating system (just a hobby, won’t be big and professional like gnu) for 386(486) AT clones."

    — Linus Torvalds, 1991年8月25日,在Comp.os.minix新闻组上的著名帖子

    瞧他这口气,谦虚地不像话,还带着点芬兰人特有的闷骚。谁能想到,这句“小爱好,不会很大很专业”的话,日后会成为软件史上最著名的“凡尔赛”宣言?🤔

    Linus最初的想法,并非是要颠覆什么,只是想为自己的硬件写一个更好的终端仿真器。他觉得MINIX的一些限制让他很不爽,比如它不够开放,不能充分利用他那台386电脑的强大功能。于是,他决定自己动手。没有人逼他,也没有什么商业计划书,纯粹就是少年人的一腔热血和对技术的好奇心。他从头开始,一点一点写起了代码。最开始,他只写了一个简单的任务切换器和文件系统驱动,能够在没有MINIX的情况下运行。这在当时,算是一个小小的胜利。

    他将他的项目命名为“Linux”。这个名字最初是他的同事Ari Lemmke给他的FTP服务器目录起的名字,Linus本人更倾向于“Freax”(Free + Unix + Freak),但他最终还是接受了“Linux”,一个由“Linus”和“Unix”组合而成的名字。有时候,名字就是这样,不经意间就被赋予了历史的重量。

    早期的Linux版本,就像一个刚刚学会走路的孩子,磕磕绊绊,但充满潜力。Linus的工作效率惊人,他几乎是夜以继日地编程。他每天花大量时间坐在电脑前,沉浸在二进制的世界里。他不是那种喜欢长篇大论的人,他的表达方式就是代码。一行行、一段段,从无到有,勾勒出操作系统的骨架。

    更令人惊叹的是,他选择了开源。这意味着,任何人都可以查看他的代码,可以修改,可以分发。这在当时还不是主流。那时候,软件公司将代码视为最核心的商业机密。而Linus,却把自己的“孩子”赤裸裸地摆在了全世界面前。这需要勇气,更需要一种对自由共享的坚定信念。他的这一举动,无疑是往整个软件行业扔下了一颗炸弹,尽管当时声响不大,但其后续的冲击波,却绵延至今。🚀

    二、从大学宿舍到全球协作:Linus和开源社区的崛起 🌍

    Linus把最初的Linux内核放到网上,就像在瓶子里装了一封信,扔进了大海。他不知道会有谁捡到,也不知道会有什么回应。但出乎所有人的意料,这封“信”很快被一群怀揣着同样梦想的人发现了。这些人的身份五花八门:有学生、有教授、有业余爱好者,也有对传统商业操作系统感到厌倦的程序员。他们就像被Linus手中的火把照亮了道路,纷纷循着光芒聚拢过来。

    早期Linux社区的协作方式,在今天看来,或许有些原始,但在当时却是前所未有。大家通过Usenet新闻组、邮件列表进行交流。Linus本人,就像一个总舵主,但他更多的时候,扮演的是一个“守门人”的角色。他会仔细审查每一行提交的代码,判断它们是否符合Linux的开发哲学,是否足够稳定可靠。

    这种早期协作的模式,堪称现代开源项目的典范。没有层级分明的管理机构,没有严格的商业目标,大家完全是出于对技术的热爱和对自由开放的信念而聚集在一起。Linus的领导风格,也颇具特色。他不是那种喋喋不休的演讲者,他更像一个沉默的决策者,用代码和简短的邮件来沟通。他对代码质量的要求非常严格,也因此经常会在邮件列表中“怒怼”那些他认为不合格的提交。有时候,他的言辞相当犀利,甚至不留情面,但正是这种近乎严苛的审查,保证了Linux内核的稳定性和高质量。

    有趣的是,Linus本人并非一个完美无瑕的圣人。他有着自己的缺点,比如他会爆粗口,会因为一些技术问题而大发雷霆。但正是这种真实的人性,反而让他更显亲切,也更能赢得社区的信任。他把Linux项目视作自己的孩子,不容许任何人破坏它的成长轨迹。

    1992年,Linux 0.95版发布。这个版本已经具备了完整的TCP/IP网络功能,这对于一个刚刚诞生不久的操作系统来说,是里程碑式的进步。从那时起,Linux不再只是一个“玩具”,它开始具备了在服务器领域一展拳脚的能力。

    随着时间的推移,越来越多的开发者加入进来。他们贡献了各种各样的驱动程序、工具和应用程序,使得Linux生态系统日益壮大。红帽(Red Hat)、Debian等发行版也相继诞生,它们将Linux内核与各种用户空间工具和应用程序打包在一起,使得普通用户也能更容易地安装和使用Linux。

    Linus的力量,从来不是他一个人有多么超凡入圣,而是他激发了成千上万个天才的创造力。他像一个好的导演,给了一个剧本,但把演出的舞台留给了所有人。他始终坚持着“Linus原则”:

    • 技术至上:代码质量和技术选型是第一位的。
    • 开放透明:代码是公开的,决策过程也尽可能透明。
    • 精英治理:最终的决策权掌握在少数几个核心维护者手中,以Linus为首。

    这种特殊的治理模式,至今仍然有效。Linux内核的开发,是人类历史上协作规模最大的软件项目之一。它证明了在没有传统商业公司主导的情况下,一群志同道合的人,也能创造出改变世界的产品。Linus的存在,就像一道闪电,照亮了整个开源运动的天空。他让“开源”不仅仅是一个理念,更是一个活生生的,不断进化的奇迹。✨

    三、与巨头共舞:Linux在商业世界的崛起与Linus的坚守 💼

    随着Linux的羽翼渐丰,它不再只是程序员们书桌上的玩物,开始受到了商业世界的关注。那些曾经对开源嗤之以鼻的软件巨头,也逐渐意识到,这股自下而上的力量,或许不是敌人,而是可以合作的对象。

    Microsoft的“拥抱,但不爱”

    最有意思的莫过于微软。曾经,微软将Linux视为洪水猛兽,甚至有高管称其为“癌症”。他们不理解开源的模式,也害怕这种免费软件会冲击自己的商业帝国。然而,事实证明,挡在历史潮流面前,最终受伤的只会是自己。

    进入21世纪,随着云计算和大数据时代的到来,Linux在服务器领域的优势越来越明显。亚马逊的AWS、谷歌、Facebook等互联网巨头,无一例外地都大量使用了Linux作为其基础设施的核心。微软也开始意识到,如果继续固步自封,只会错失良机。于是,我们看到了微软对Linux态度的180度大转弯。从SQL Server on Linux,到WSL(Windows Subsystem for Linux),再到Azure云服务对Linux的全面拥抱,甚至是贡献代码给Linux内核,都显示了商业世界对Linux的无奈和最终的接纳。

    这其中,Linus扮演的角色,一直是一个冷静的观察者和坚定的守卫者。他欢迎任何有益的贡献,不论其来源。他不在乎一家公司过去说了什么,只在乎他们现在做了什么,以及他们的贡献能否真正提升Linux的品质。这种实用主义的态度,让Linux避免了被某种意识形态绑架的风险,也让它能够更纯粹地发展。

    开源的商业化之路:Ubuntu、Red Hat的成功

    Linux的成功,也催生了一批专注于Linux的商业公司。其中最著名的莫过于红帽(Red Hat)和Canonical(Ubuntu的母公司)。

    公司名称 主要产品/服务 商业模式 对Linux生态贡献 典型用户
    Red Hat Red Hat Enterprise Linux (RHEL), OpenShift, Ansible 订阅服务、技术支持 大量代码贡献,推动企业级Linux发展 大型企业、政府机构
    Canonical Ubuntu, Ubuntu Core 技术支持、云服务集成 广泛的用户群体,简化Linux使用 开发者、初创公司、IoT

    这些公司通过提供基于Linux的商业发行版、技术支持、培训和云服务,证明了开源软件也能创造巨大的商业价值。它们的存在,反过来又促进了Linux生态系统的繁荣。它们雇佣了大量的开发者,这些开发者又将他们的成果贡献回Linux内核和各种开源项目,形成了一个良性循环。

    而Linus,他始终保持着一份“无冕之王”的超然。他没有创立自己的公司去商业化Linux,他也没有通过Linux赚取亿万财富(尽管他完全有这个机会)。他选择留在Intel,继续专注于Linux内核的开发工作。他更像一个哲学家,一个工匠,一个纯粹的创作者。

    他深知,Linux之所以能走到今天,正是因为它的独立性和开放性。一旦它被某个商业巨头完全控制,或者被金钱所腐蚀,它的生命力就会大大减弱。他曾多次在公开场合强调,他最关心的是技术本身,是代码的质量,而不是商业利益。他甚至有一次在公开场合对NVIDIA竖中指,因为他觉得NVIDIA的Linux驱动支持不够好。这种真性情,也成了圈内的一段佳话,也让很多追随者更加敬佩他。🖕

    Linus的故事告诉我们,在这个物欲横流的时代,总有些人,能够抵制住诱惑,坚守自己的初心。他用自己的行动,证明了纯粹的技术热情,也能构建起一座宏伟的数字王国,甚至能让那些曾经高高在上的商业巨头,不得不低下头,重新审视这个由一个芬兰年轻人无聊之余写出来的“小爱好”。他没有穿西装打领带,没有参加各种觥筹交错的晚宴,他只是默默地坐在电脑前,敲着代码,但他的影响力,却远超那些光鲜亮丽的CEO们。💻👑

    四、Linus的哲学与Linux的未来:一个永不止步的旅程 🚀

    如果说Linux内核是Linus的肉体,那么他关于软件开发、社区协作的那些观点,就是Linux的灵魂。他的哲学,并非一套高深莫测的理论,而是从无数行代码的实践中提炼出来的真知灼见。

    Linus法则与“合谋式”协作

    Linus曾不止一次地谈及他管理Linux内核开发的方式。他把它描述为一种“默契的合谋”或者“优化的专制主义”。这听起来有点矛盾,但实际上非常奏效。

    "I’m a fairly dictatorial benevolent dictator. I try to be nice, but when it comes to technical issues, I will step on people’s toes."

    — Linus Torvalds

    他认为,在核心开发层面,需要一个最终的仲裁者来避免无休止的争论和方向迷失。这个角色就是他。但他又不是那种高高在上,不听取意见的独裁者。他会倾听来自社区的声音,会考虑各种不同的实现方案,但最终拍板的,还是他。这种机制,既保证了效率,又保证了方向的统一性。

    更重要的是,他深谙“分而治之”的精髓。Linux内核被划分为无数个子系统,每个子系统都有自己的维护者。这些维护者负责审查各自领域的代码,并将他们认为合格的提交汇总给Linus。Linus再对这些提交进行最终的审查和合并。这就像一个巨大的金字塔结构,Linus是塔尖,下面是几百个主要的维护者,再下面是成千上万的开发者。这种分层协作的方式,使得一个庞大复杂的项目,也能保持高效的开发速度和高质量的代码。

    版本控制系统Git的诞生

    2005年,Linus Torvalds再次展现了他解决问题的能力。当时,Linux内核开发团队使用了BitKeeper作为分布式版本控制系统。但由于BitKeeper的商业公司对开源社区的使用政策收紧,Linus决定再次自己动手。仅仅用了两周时间,他便开发出了一个新的分布式版本控制系统——Git。速度之快,效率之高,令人咋舌。

    Git的出现,彻底改变了软件开发的格局。它不仅成为了Linux内核开发的基石,也迅速被全球的软件开发者所采纳,成为了开源项目和商业项目中最流行的版本控制系统。现在的GitHub、GitLab等等,都是建立在Git之上。Linus不仅仅创造了一个操作系统,他还创造了一个支撑整个现代软件开发流程的基础工具。这再次证明了他不鸣则已一鸣惊人的超强实力。

    Linus与开源的未来

    如今,Linus Torvalds的形象,已经不仅仅是一个程序员,而是一个象征,一个开源精神的图腾。他依然活跃在Linux内核开发的邮件列表第一线,每天审查大量的代码提交,发布新的内核版本。他没有退休的迹象,也没有转向管理或商业的打算。他就是那个永远的技术痴人。

    Linux的未来在哪里?它已经渗透到我们生活的方方面面:

    • 云服务器:绝大多数云计算服务都在运行Linux。☁️
    • Android手机:全球数十亿的智能手机都运行着基于Linux内核的Android系统。📱
    • 物联网设备:智能家居、智能穿戴设备、工业控制系统,大量使用轻量级Linux发行版。📡
    • 超级计算机:全球排名前500的超级计算机中,几乎所有都运行Linux。💻📈
    • 汽车信息娱乐系统:越来越多汽车厂商使用Linux来驱动车载系统。🚗

    Linus Torvalds的故事,远不止于一个传奇的诞生,更在于一个理念的深耕,一种协作模式的成功。他用个人的一己之力,点燃了开源的火炬,又用他的智慧和坚持,守护着这团火不熄。他告诉我们,只要你对一件事有足够的热爱,并敢于打破常规,那么即便是从一个“小爱好”开始,你也能最终改变世界。

    在我的眼中,Linus Torvalds,他不是那种站在舞台中央,光芒万丈的英雄。他更像是一个躲在幕后,默默耕耘的匠人。他的手,粗糙,但不失敏锐;他的眼睛,深邃,时不时透着一丝狡黠。他用代码搭建了一个数字王国,这个王国没有边界,没有国籍,所有人都可以自由进出,自由创造。而他,就是这个王国的缔造者,一个真正的硅谷野路子英雄。没有花哨的营销,没有夸张的包装,只有最纯粹的技术,和最执着的坚持。这,就是Linus Torvalds,一个影响了整个数字世界的芬兰程序员,一个永远的开源传奇。芬兰的冬天很冷,但他却给全世界带来了代码的温暖,和自由的风。❄️❤️‍🔥

  • WordPress 能用远程数据库吗?Supabase 又能怎么玩?

    很多朋友在搭建网站的时候都会遇到一个问题:数据库到底要放哪?是不是一定要和 WordPress 在同一台服务器上?能不能用远程数据库?甚至,有人问我:WordPress 能不能直接用 Supabase?今天就来聊聊这个话题。


    一、成熟的远程数据库服务商

    如果你不想自己维护数据库,可以直接用成熟的远程数据库服务(DBaaS)。常见的有:

    • 国际厂商

      • AWS RDS / Aurora(支持 MySQL、PostgreSQL、Oracle 等)
      • Google Cloud SQL / AlloyDB
      • Azure Database(微软家的 MySQL、PostgreSQL、SQL Server)
    • 国内厂商

      • 阿里云 RDS
      • 腾讯云 CDB
      • 华为云 GaussDB / RDS
      • 万里数据库 GreatDB(国产分布式数据库)
    • 其他开源/轻量级方案

      • MongoDB Atlas
      • PlanetScale(MySQL 云服务)
      • Supabase(PostgreSQL + BaaS)

    二、WordPress 能不能用远程数据库?

    答案是:完全可以。WordPress 本质上只需要能连上 MySQL/MariaDB 数据库,不管数据库是在本地还是远程。

    配置方法也很简单:

    1. 在远程数据库上创建数据库和用户,并授权 WordPress 服务器的 IP。
    2. 修改 wp-config.php
      define('DB_NAME', 'your_database_name');
      define('DB_USER', 'your_database_user');
      define('DB_PASSWORD', 'your_database_password');
      define('DB_HOST', 'your_remote_db_host:3306');
    3. 做好安全措施(防火墙、SSL 加密、定期备份)。
    4. 如果访问量大,建议加缓存插件(Redis、W3 Total Cache)。

    三、WordPress 能不能直接用 Supabase?

    这里要注意:WordPress 必须依赖 MySQL/MariaDB,而 Supabase 是基于 PostgreSQL 的,所以不能直接替代。

    但 Supabase 可以作为 扩展 来用:

    • 内容同步:把 WordPress 的文章、用户数据同步到 Supabase,用它的 API 做移动端或前端应用。
    • 用户认证:Supabase 自带 OAuth 登录、行级安全(RLS),可以增强 WordPress 的用户系统。
    • 无头化(Headless CMS):WordPress 只负责写文章,前端直接调用 Supabase API 来展示。

    换句话说,Supabase 不是 WordPress 的“数据库替代品”,而是它的“外挂增强包”。


    四、Supabase 是什么?

    一句话:Supabase = 开源版 Firebase + PostgreSQL

    它提供:

    • 托管 PostgreSQL 数据库
    • 用户认证(Auth)
    • 文件存储(Storage)
    • 实时订阅(Realtime)
    • 无服务器函数(Edge Functions)
    • 向量数据库(pgvector,用于 AI 应用)

    适合快速开发 Web/移动应用,尤其是前端开发者想要“无后端写法”的场景。


    五、Supabase 的成功案例

    比如有团队用 Supabase + Vercel 做了一个多人 TodoList 应用:

    • 用户注册/登录用 Supabase Auth
    • 数据存储在 PostgreSQL
    • 多人同时操作时,任务列表实时同步(Realtime)
    • 前端几乎不用写后端代码,开发效率非常高

    这就是 Supabase 的典型优势:前端开发者也能独立完成全栈应用


    六、Supabase 怎么收费?

    Supabase 的定价分为几个档次:

    • Free(免费版):$0/月

      • 50,000 月活用户
      • 500MB 数据库
      • 5GB 流量
      • 1GB 文件存储
      • 适合个人项目、学习
    • Pro(专业版):$25/月起

      • 100,000 月活用户
      • 8GB 数据库
      • 250GB 流量
      • 100GB 文件存储
      • 适合中小型生产应用
    • Team(团队版):$599/月起

      • 合规支持(SOC2、HIPAA)
      • 更长的日志和备份保留
      • 适合有合规需求的团队
    • Enterprise(企业版):定制报价

      • 专属支持、定制 SLA
      • 适合大规模企业

    七、免费版能撑多大规模?

    很多人对“50,000 MAU、5GB 流量”没概念,我帮你换算一下:

    • 月活 50,000 ≈ 日均 1,500–2,000 独立访客
    • 数据库 500MB ≈ 1 万篇文章 + 评论
    • 5GB 流量 ≈ 1–1.5 万人次/月(如果每人看 5 个页面)
    • 1GB 文件存储 ≈ 2,000 张图片

    👉 结论:免费版大概能支撑一个 月访问 1–2 万人、几千注册用户的小型网站或应用


    🔚 总结

    • WordPress 可以用远程数据库,只要是 MySQL/MariaDB 就行。
    • Supabase 不能直接替代 WordPress 数据库,但可以作为扩展,做内容同步、认证增强、无头化架构。
    • Supabase 免费版已经能支撑一个小型网站,Pro 版适合中小型生产环境。

    如果你是做内容站、社区或者小型 SaaS,WordPress + Supabase 是一个很有潜力的组合:WordPress 管理内容,Supabase 提供实时 API 和扩展能力。

  • 用 Claude 的额度心得:Pro、Max 和 Claude Code 怎么算?

    最近在用 Claude 的时候,很多人都会问:Claude Code 算不算在对话额度里?
    我自己也踩过坑,后来翻了官方说明,还结合了一些实测,才搞明白。简单一句话:算,而且跟普通对话是同一个池子


    额度到底怎么算?

    Claude 的订阅版有点特别:

    • 聊天消息 → 按「条数」算
    • Claude Code → 按「代码提示」算

    听起来像两套系统,其实都消耗同一个 5 小时额度池。区别只是:普通消息一条一条算,Claude Code 一次提示更重,所以官方给了个范围。


    各套餐额度对比

    套餐 每 5 小时额度 普通消息 Claude Code 提示
    Pro ($20/月) 共享池 约 45 条 10–40 次
    Max ($100/月) 共享池 约 225 条 50–200 次
    Max 20× ($200/月) 共享池 约 900 条 200–800 次

    👉 换句话说:你要是 Pro 用户,光聊天能撑 45 条,但要是一直跑代码,可能 10 来次就见底了。


    折算成 token 大概是多少?

    虽然订阅版不是按 token 收费的,但我们可以粗略折算一下:

    套餐 每 5 小时额度 平均每条消息 token 折算总 token 范围
    Pro 45 条消息 / 10–40 次 Code 提示 1k–2k token/消息 ≈ 45k–90k token
    Max 225 条消息 / 50–200 次 Code 提示 1k–2k token/消息 ≈ 225k–450k token
    Max 20× 900 条消息 / 200–800 次 Code 提示 1k–2k token/消息 ≈ 900k–1.8M token

    Claude Code 一次提示通常更长,可能要 2k–5k token,所以额度掉得更快。


    我的理解和小建议

    • 轻度开发者:Pro 就够了,偶尔写点代码没问题。
    • 重度开发者:Max 更合适,不容易被打断。
    • 团队/大规模调用:Max 20× 才能撑得住。

    总之,Claude Code 并不是额外送的,它就是跟普通对话一起消耗额度,只是换了个计数方式。


    常见误区

    • ❌ 以为 Claude Code 是额外赠送的 → 其实不是。
    • ❌ 以为消息数和 Code 提示数能叠加 → 其实是共享池,二选一消耗。
    • ❌ 以为订阅版和 API 一样按 token 算 → 其实订阅版是「消息条数 + Code 提示次数」的混合机制。
  • Windows Terminal配置Claude Code(各种CLI代理通用)专属终端的优雅方案

    我是个有点强迫症的人。每次打开PowerShell都要手动输入那两行设置代理的命令,心里就不舒服。就像每天出门前都要检查三遍钥匙有没有带,明知道带了,还是忍不住摸一下口袋。有一天我突然想,为什么不能给Claude Code创建一个专属的终端配置,打开就自动设置好一切?这个想法让我兴奋了整整五分钟,然后我开始折腾Windows Terminal的设置。半小时后,我成功了。那种感觉就像终于找到了一把合适的钥匙,不用每次都在门口翻包。

    file

    第一章:为什么我们需要两个PowerShell

    大部分人可能觉得,一个PowerShell不够用吗?为什么要搞两个配置?

    答案很简单:我们需要一个干净的环境和一个带代理的环境。

    想象一下这个场景:

    你正在用PowerShell处理一些本地文件,运行git命令,或者安装npm包。这些操作完全不需要代理,甚至走代理反而会变慢。但突然你想用Claude Code,这时候必须设置代理才能连接。

    如果你在PowerShell配置文件($PROFILE)里永久设置了代理,那么:

    • ✅ Claude Code能用了
    • ❌ 访问国内服务器变慢了
    • ❌ 某些工具可能因为代理配置出问题
    • ❌ 你得时刻记得自己开着全局代理

    更优雅的方案是:创建两个独立的配置文件。

    配置类型 用途 代理状态 适用场景
    普通PowerShell 日常开发 无代理 git、npm、本地操作
    Claude Code专属 AI辅助 自动设置代理 使用Claude Code

    这样你想用哪个就打开哪个,互不干扰。就像家里有一双拖鞋和一双运动鞋,出门穿运动鞋,在家穿拖鞋,各司其职。👟

    第二章:动手创建专属配置

    Windows Terminal的配置界面其实很友好,至少比我预想的要简单。

    第一步:复制现有配置

    打开Windows Terminal的设置(快捷键Ctrl + ,),在左侧找到"配置文件"部分。你会看到一个"添加新配置文件"的按钮,但不要急着点。

    更聪明的做法是:

    1. 找到"Windows PowerShell"配置
    2. 点击右侧的"复制配置文件"
    3. 选择"Windows PowerShell"作为复制源
    4. 点击"复制"

    为什么要复制而不是新建?因为复制会继承所有的颜色方案、字体设置、快捷键配置。你只需要修改关键的几个地方,其他的都是现成的。

    这就像装修房子,翻新比重建简单得多。🏠

    第二步:修改配置

    file

    现在你得到了一个叫"Profile 9"或类似名字的新配置。开始定制:

    1. 名称

    把它改成容易识别的名字:

    Claude Code

    简单明了,一看就知道是干什么用的。

    2. 命令行(核心设置)

    这是最关键的部分。找到"命令行"选项,在下拉框中选择自定义,然后输入:

    powershell.exe -NoExit -Command `
    "$env:HTTP_PROXY='http://127.0.0.1:10808'; `
    $env:HTTPS_PROXY='http://127.0.0.1:10808'; `
    $env:ALL_PROXY='socks5://127.0.0.1:10808'; `
    Write-Host '代理已设置 (HTTP/HTTPS + SOCKS5),可以直接使用 claude 或 Gemini 命令' -ForegroundColor Green"

    这行命令做了三件事:

    • 启动PowerShell(-NoExit参数确保执行完命令后窗口不关闭)
    • 设置HTTP和HTTPS代理环境变量
    • 显示一条绿色的提示信息

    注意:端口号10808要根据你自己的v2rayN配置修改。如果你的代理端口是10809,就把两处10808都改成10809。

    3. 启动目录(可选)

    如果你习惯在某个特定目录下工作,可以设置启动目录。比如:

    E:\Projects

    如果没有特别需求,留空就行。

    4. 图标(可选)

    想要个性化一点?可以给这个配置设置一个图标。虽然我没找到Claude的官方图标文件,但你可以:

    • 留空使用默认的PowerShell图标
    • 找个喜欢的.ico文件设置上去
    • 或者就用默认的,反正功能最重要

    我选择了留空,因为我知道自己三分钟热度,过两天就不在乎图标是什么样了。😅

    5. 保存

    滚动到页面底部,点击"保存"。

    别忘了这一步。我曾经改完配置忘记保存,关闭设置后发现什么都没变,又重新配置了一遍。那种感觉就像写了一篇文章忘记保存,然后浏览器崩溃了。

    第三章:实际使用体验

    配置完成后,关闭设置页面。现在来测试一下。

    点击Windows Terminal顶部标签栏右边的 + 号旁边的下拉箭头。你会看到一个新的选项:Claude Code

    点击它。

    一个新的PowerShell窗口打开了,第一行就显示绿色的文字:

    代理已设置,可以直接使用 claude 命令

    这种感觉很微妙。就像你精心布置了一个工作台,所有工具都摆在触手可及的位置,只等你开始创作。✨

    验证配置

    输入:

    echo $env:HTTP_PROXY

    屏幕显示:

    http://127.0.0.1:10808

    完美。代理已经自动设置好了。

    接下来直接输入:

    claude

    不需要任何额外的设置,不需要先运行那两行代理命令。Claude Code的欢迎界面直接出现,那只像素小章鱼在屏幕上眨眼睛。

    两个世界的切换

    现在你有两个PowerShell配置:

    普通PowerShell(没有代理):

    • 用来做日常开发工作
    • 运行git、npm、python等本地命令
    • 访问速度快,不受代理影响

    Claude Code专属(自动代理):

    • 专门用来运行Claude Code
    • 打开就能用,不需要手动设置
    • 关闭后不影响其他窗口

    我现在的工作流程是:打开Windows Terminal,默认是普通PowerShell。需要用Claude Code时,按Ctrl + Shift + 空格(或者点击下拉菜单),选择"Claude Code"配置,新开一个标签。

    两个标签页并排,左边写代码,右边问Claude。互不干扰,各司其职。

    这种感觉就像左手拿咖啡,右手敲键盘。两只手做不同的事,但配合得很默契。☕⌨️

    关于效率的思考

    有人可能会说,不就是省了输入两行命令吗?至于这么折腾吗?

    但我觉得,效率提升往往来自这些小细节的累积。

    每次使用Claude Code都要先输入代理设置命令,看起来只是5秒钟的事。但这5秒钟:

    • 打断了你的思维流程
    • 让你从"想问问题"转变成"要先设置环境"
    • 有时候你会忘记设置,然后看到连接错误,再回去设置

    把这个过程自动化后,你的注意力可以完全集中在要解决的问题上,而不是工具本身。

    就像一个好的编辑器,你不会意识到它的存在,因为它已经把一切都准备好了。你只需要专注于写作本身。

    而且,这个配置一次设置,永久有效。以后每次打开"Claude Code"配置,都是一个准备好的环境。这种确定性让人感到安心。

    我不用担心"诶,我今天设置代理了吗?"或者"为什么连不上?哦,忘了设代理。"

    打开就能用,关闭就干净。这才是工具应该有的样子。🛠️


    现在,每次我需要AI的帮助时,不再需要在心里默念"先设置代理,先设置代理"。我只需要点击"Claude Code"配置,然后开始提问。

    这个小小的改变,让使用AI变成了一件更自然的事。不是"我要用AI了,得先准备一下",而是"我有个问题,让我问问Claude"。

    少了仪式感,多了随意性。

    而随意性,恰恰是一个工具融入日常生活的标志。

  • Windows11安装Claude Code完全指南:从Node.js到代理配置

    Windows11安装Claude Code完全指南:从Node.js到代理配置

    凌晨一点,我盯着PowerShell窗口里那行红色的报错信息,心想这世界上怎么会有这么多看不懂的英文错误提示。想当年装个QQ只需要一路"下一步"就能搞定,现在装个AI工具,感觉像在破解核弹密码。但转念一想,能在中国大陆用上Claude Code,这点困难算什么呢?

    第一章:Node.js的温柔陷阱

    打开Node.js安装包的那一刻,我以为这会是个简单的旅程。毕竟这年头,哪个软件安装不是"欢迎→同意→下一步→完成"的套路?

    但当我看到"Tools for Native Modules"这个选项时,我愣住了。翻译成中文就是"原生模块工具",听起来像是某种高科技武器的名字。💭

    file

    这个选项到底是什么?

    说实话,大部分人第一次看到这个选项都会懵。它的真实身份是:

    一个会自动帮你安装Python、Visual Studio构建工具、Chocolatey以及一堆Windows更新的"贴心小棉袄"

    听起来很美好对吧?但问题是:

    • 它需要大约7GB的磁盘空间
    • 安装过程可能需要10-30分钟
    • 期间会弹出新窗口,显示一堆像黑客帝国一样的命令行文字

    那到底要不要勾选?

    如果你是个正常人类(不是计算机专业毕业的那种),我建议勾选。因为将来你安装某些npm包时,它们可能包含C/C++代码,需要在你电脑上现场编译。没有这些工具,你就会看到满屏的报错,然后在百度上搜索到一百种解决方案,每一种都不管用。🤦

    安装后的黑色窗口

    file

    点击"Next"后,如果你勾选了那个选项,会弹出一个黑色的PowerShell窗口,上面写着中文"请按任意键继续…"

    这时候不要慌。这不是电脑中毒,也不是被黑客攻击。这只是Node.js在礼貌地询问你:"我要开始装一堆东西了,你确定吗?"

    按下空格键,然后去泡杯咖啡。或者像我一样,打开手机刷二十分钟短视频。

    第二章:PowerShell的权力游戏

    Node.js装好了,我迫不及待地打开PowerShell,输入npm -v想看看版本号。

    然后电脑给了我一记响亮的耳光:

    PS E:\cat99\desktop> npm -v
    npm : 无法加载文件 C:\Program Files\nodejs\npm.ps1,因为在此系统上禁止运行脚本。有关详细信息,请参阅 https:/go.microsof
    t.com/fwlink/?LinkID=135170 中的 about_Execution_Policies。
    所在位置 行:1 字符: 1
    + npm -v
    + ~~~
        + CategoryInfo          : SecurityError: (:) [],PSSecurityException
        + FullyQualifiedErrorId : UnauthorizedAccess

    这是什么鬼?🤨

    Windows的过度保护

    原来Windows的PowerShell有个叫"执行策略"的东西,默认设置是不让你运行任何脚本。这就像你买了把菜刀,但厂家担心你用它做坏事,所以出厂时就把刀刃磨钝了。

    解决方法有三种:

    方法 适用场景 持久性 难度
    修改执行策略 经常用PowerShell 永久有效 ⭐⭐
    使用CMD 偶尔用npm 不需要设置
    临时绕过 单次使用 关闭窗口失效 ⭐⭐

    我的选择是第一种,因为我不想每次都重复这个过程:

    Set-ExecutionPolicy RemoteSigned -Scope CurrentUser

    以管理员身份运行PowerShell,输入这行命令,按Y确认。从此以后,你的PowerShell就不再是个胆小鬼了。💪

    那条烦人的npm更新提示

    当你终于成功运行npm -v后,可能会看到:

    npm notice New major version of npm available! 10.9.3 -> 11.6.1

    每次看到这个提示,我都想问:这到底是在提醒我还是在催促我?

    真相是:你完全可以无视它。npm 10.9.3和11.6.1的区别,对于普通用户来说,就像可乐和百事可乐的区别——都能喝,味道差不多,选哪个都行。

    当然,如果你是个追求完美的人,可以运行:

    npm install -g [email protected]

    然后等待几分钟,让npm把自己升级一遍。这个过程就像给跑车换机油,换不换都能开,但换了心里踏实。🚗

    第三章:Claude Code与中国大陆的距离

    安装Claude Code本身很简单:

    npm install -g @anthropic-ai/claude-code

    8秒钟,2个包,搞定。我看着屏幕上的成功提示,心想这也太容易了吧?

    然后我输入claude,按下回车。

    屏幕上出现了那只可爱的像素小动物,还有星星点点的ASCII艺术。我还没来得及欣赏,就看到了红色的错误信息:

    file

    Unable to connect to Anthropic services
    Failed to connect to api.anthropic.com: ERR_BAD_REQUEST

    墙的问题

    在中国大陆使用国外服务,永远绕不开这个话题。Claude的API服务器在美国,而我们和美国之间,隔着一堵看不见的墙。

    不是技术问题,是物理距离+网络政策的问题。

    所以,你需要一个代理。VPN、V2Ray、Xray、Clash、Shadowsocks——名字一个比一个玄幻,但本质都是同一件事:帮你绕过那堵墙。🧱➡️🚪

    找到你的代理端口

    我用的是v2rayN,一个Windows上常见的代理工具。大部分人电脑上应该都有类似的软件,不然你现在也看不到这篇文章。

    关键是找到本地代理端口。这个端口通常是:

    • HTTP代理:10809
    • SOCKS代理:10808
    • 混合模式(Mixed):10808

    打开v2rayN的主界面,看底部状态栏。我的显示是:

    本地:[mixed:10808]

    这就是我的代理端口:10808

    设置环境变量

    在PowerShell中输入:

    $env:HTTP_PROXY="http://127.0.0.1:10808"
    $env:HTTPS_PROXY="http://127.0.0.1:10808"

    注意几个关键点:

    1. 必须是http://协议,不是socks5://
    2. IP地址是127.0.0.1,这是本地回环地址
    3. 端口号要对,不要瞎猜

    我第一次就栽在了第一点上。我以为SOCKS代理就该用socks5://,结果Claude Code直接给我报错:

    Invalid URL protocol: the URL must start with 'http:' or 'https:'

    后来我才明白,Claude Code的HTTP客户端只认HTTP协议。虽然v2rayN的10808端口是"mixed"模式,同时支持HTTP和SOCKS,但你访问它时必须用HTTP协议。

    就像一个会说中英双语的人,你得先说中文他才知道你要用中文交流。🗣️

    验证代理是否工作

    设置完代理后,先别急着运行claude。测试一下代理是否真的工作:

    curl https://www.google.com

    如果看到一堆HTML代码,恭喜你,代理成功了。

    如果看到错误信息,那可能是:

    • 代理软件没运行
    • 端口号不对
    • 代理服务器没连接成功

    这时候需要回到v2rayN,检查:

    • 托盘图标是否存在?
    • 图标是彩色的还是灰色的?(彩色表示已连接)
    • 底部日志是否显示连接成功?
    • 延迟是否正常?(我的是223ms)

    再次尝试

    确认代理工作后,输入:

    claude

    这次,屏幕上不再是错误信息,而是欢迎界面:

    Welcome to Claude Code v2.0.5

    那只橙色的像素小章鱼向我眨了眨眼睛(虽然它没有眼睛),仿佛在说:"小伙子,你可算来了。"🐙

    第四章:登录与选择

    Claude Code启动后,会问你要用哪种方式登录:

    1. Claude account with subscription(Claude订阅账号)
    2. Anthropic Console account(API账号)

    这是个重要的选择题。

    订阅账号 vs API账号

    Claude订阅账号适合:

    • 你已经在claude.ai购买了Pro、Max或Team订阅
    • 你不想按使用量付费
    • 你只是想在命令行里用Claude

    API账号适合:

    • 你没有Claude订阅
    • 你愿意按API调用次数付费
    • 你需要更精确的使用控制

    两种方式的计费差异:

    方式 费用模式 每月成本 使用限制
    订阅账号 固定月费 $20-100+ 有消息条数限制
    API账号 按token计费 看使用量 无条数限制

    如果你只是想尝鲜,或者已经有Claude Pro订阅,选第一个。

    如果你是开发者,需要大量调用,可能API更划算——前提是你能控制住使用量,不然账单可能比订阅费还高。💸

    关于代理设置的持久性

    有人问我:这样设置代理后,是不是我的PowerShell以后都会用代理?

    答案是:不会。

    $env:方式设置的环境变量只在当前窗口有效。你关闭PowerShell窗口,设置就消失了。

    这既是好事也是坏事:

    好处

    • 不影响其他程序
    • 不会不小心让所有流量都走代理
    • 想取消代理时直接关窗口就行

    坏处

    • 每次用Claude Code都要重新设置
    • 如果忘记设置就会连接失败

    如果你经常用Claude Code,可以把这两行命令保存成一个.ps1脚本文件,每次双击运行就行。或者更简单点,写个批处理文件:

    @echo off
    powershell -Command "$env:HTTP_PROXY='http://127.0.0.1:10808'; $env:HTTPS_PROXY='http://127.0.0.1:10808'; claude"

    保存为claude.bat,以后直接运行这个文件就行了。

    第五章:写在最后的一些思考

    从开始安装Node.js到最终启动Claude Code,整个过程花了我两个小时。

    两个小时,大部分时间都花在Google各种报错信息上。有些错误提示看起来很专业,实际上就是"你没联网"或者"端口号不对"的花哨说法。

    但我还是觉得值得。

    因为这个过程让我重新理解了一些东西:

    关于工具:好的工具应该降低使用门槛,而不是设置更多障碍。Node.js的安装程序已经比几年前进步太多了,至少它会问你要不要装那些编译工具,而不是让你遇到问题时自己去stackoverflow找答案。

    关于代理:在2025年的中国,使用代理已经成为一种基本技能。不是因为我们想干什么坏事,只是想正常使用互联网上的工具和服务。这种现状多少有点荒诞,但我们也只能接受。🌐

    关于AI工具:Claude Code这类命令行AI工具代表了一个趋势——AI不再只是网页上的聊天窗口,它开始进入开发者的日常工作流程。未来可能我们写代码时,旁边一直有个AI助手在帮忙,就像现在我们写文档时旁边开着词典一样自然。

    关于折腾:有人可能觉得这些步骤太复杂了,为什么不用简单点的工具?但我觉得,正是这种"折腾"让我们保持学习的状态。你每解决一个技术问题,就多掌握了一个技能。下次遇到类似问题时,你会知道从哪里下手。

    现在,当我在命令行里输入claude,看到那个欢迎界面时,我会觉得这两个小时的折腾都是值得的。

    不是因为Claude Code有多么强大,而是因为我又征服了一个技术小难题。

    这种感觉,大概就是程序员的简单快乐吧。😊


    最后的最后,如果你按照这篇文章的步骤,成功装上了Claude Code,记得关掉v2rayN的全局代理模式,只在需要时手动设置环境变量。

    毕竟我们都不想让所有流量都走代理,那样既浪费流量,也会让某些国内服务变慢。

    做个聪明的用户,知道什么时候需要梯子,什么时候不需要。

    祝你和AI相处愉快。🤖

  • 我的站点在 Bing 一条都不收录,我去问了官方,结果是……

    最近遇到一个挺郁闷的事:我运营的技术内容站 i.dashen.wang,在 Google 上收录得挺顺利,结构也优化得不错,但在 Bing 上居然一条都没有收录。

    我一开始还以为是抓取慢,结果过了几周还是 0 条。于是我开始自查:

    • robots.txt 没屏蔽
    • sitemap.xml 正常提交
    • 页面响应快,内容原创,也没啥违规东西
    • Bing Webmaster Tools 里也提交了 URL,但就是不收录

    说实话,作为一个内容结构控+SEO重度用户,这种情况让我有点不服。


    📮 提交支持请求:我去找 Bing 官方了

    我在 Bing Webmaster Tools 里提交了一个支持请求,说明了站点情况、排查过程,还附上了 URL。没想到第二天就收到了官方回复:

    file

    Thank you for reaching out to Bing Webmaster Support. We have reviewed your site and sent it to our Product Review Group for further assessment. Bingbot will continue to evaluate it based on Bing Webmaster Guidelines to determine whether it should be indexed or not.
    The review process typically takes a few weeks, depending on the complexity of your site.
    We will send you an email notification once the review is complete.
    In the meantime, we encourage you to review Bing Webmaster Guidelines, especially those listed in the "Things to Avoid" section.
    Please refrain from submitting another support request for your site until the ongoing review is finished.

    翻译一下就是:我们收到了你的请求,已经交给产品评审组了,Bingbot 会继续抓你的网站,看看符不符合收录标准。整个过程可能要几周,别着急,也别重复提交。


    🧠 我的应对方式

    收到这封邮件后,我做了几件事:

    1. 又认真读了一遍 Bing 的 Webmaster Guidelines,尤其是“Things to Avoid”那一栏,确认没有踩雷。
    2. 把首页和几个核心栏目重新梳理了一下,提升了内容聚合度。
    3. 保持内容更新频率,继续输出技术教程和场景化知识产品。
    4. 观察 Bingbot 的访问日志,看看有没有新的抓取行为。

    目前还在等待中,但至少知道他们已经在处理了。


    💬 一点感想

    Bing 的收录机制确实比 Google 更“慢热”,尤其是对新站或者非英文站。但好在他们有人工支持,能反馈处理状态。

    如果你也遇到类似问题,建议先自查技术配置,然后提交支持请求,别一开始就怀疑人生。

    等我收到最终结果后,会再更新一篇收录情况的跟进记录。

  • Solana发币完全指南:手把手教你创建SPL代币

    上个月我在咖啡馆遇到一个做设计的朋友,他神秘兮兮地告诉我,自己用半小时发了一个币,现在市值已经十万美元。我当时的表情大概就像听说隔壁老王中了彩票——既羡慕又怀疑。但当他打开手机给我看Solana钱包里那一串数字时,我知道这事是真的。回家后我开始研究,发现在Solana上发币确实不是什么高深莫测的技术活,甚至比开个淘宝店还简单。于是有了这篇文章,想把这个"秘密"分享给更多人。💰

    为什么是Solana?这条链到底牛在哪儿

    说起区块链发币,大多数人第一反应可能是以太坊。毕竟它是老大哥,ERC-20代币标准已经成为行业规范。但如果你真的去以太坊上试一次,那高昂的Gas费会让你怀疑人生——光是部署一个简单的代币合约,可能就要花掉几百美元。😱

    Solana的出现改变了这个游戏规则。

    Solana采用了独特的历史证明(Proof of History)共识机制,使其能够每秒处理超过6.5万笔交易,而交易费用低到令人发指——通常只需要几分之一美分。这就是为什么2024年Solana成为了Meme币的天堂,无数项目方选择在这条链上发币。

    在Solana链上买NFT、玩链游、赚利息时,所有操作背后都是SPL Token在支撑

    更重要的是,SPL Token作为Solana的标准代币协议,类似于以太坊的ERC-20,提供了一套完整且成熟的代币创建和管理方案。它不仅速度快、成本低,还与整个Solana生态系统无缝兼容——从去中心化交易所到钱包,从DeFi协议到NFT市场,到处都能看到SPL Token的身影。

    Solana发币的真实成本

    让我们来算一笔明白账。根据不同的需求和平台,在Solana上发币的成本差异很大:

    发币方式 基础成本 添加流动性 总计成本 适用场景
    命令行方式 ~0.01 SOL 需要技术知识 0.01-0.05 SOL 技术开发者
    可视化工具 0.02-0.1 SOL 可选 0.02-0.1 SOL 普通用户
    Pump.fun平台 0.02 SOL 自动处理 0.02 SOL Meme币快速启动
    Raydium DEX 0.11 SOL 0.8 SOL 0.91 SOL 正式项目运营

    如果你只是想快速测试或发行一个Meme币,Pump Fun平台仅需0.02 SOL就能完成。按照当前SOL价格计算,这大概只需要几美元。而如果需要在Raydium这样的主流DEX上添加流动性,总成本约为0.91 SOL。

    相比之下,在以太坊上做同样的事情,可能需要花费数百甚至上千美元。这就是为什么那么多人涌向Solana——不是因为它有多么革命性的技术,而是因为它让普通人也能玩得起这个游戏。🎮

    准备工作:你需要的工具和账户

    发币之前,你需要准备几样东西。这就像做饭前要备好食材和厨具,少一样都不行。

    第一步:安装Solana钱包

    Phantom钱包是Solana生态中最流行的选择,界面友好,支持浏览器插件和移动端。当然,你也可以选择Solflare、Backpack等其他钱包,它们功能都大同小异。

    安装Phantom很简单:

    1. 访问官网下载浏览器扩展
    2. 创建新钱包或导入现有钱包
    3. 务必备份好助记词 ⚠️

    这个助记词就是你的全部资产,丢了就真的丢了,连马斯克也救不了你。我的建议是:写在纸上,放在保险柜里,千万别截图保存在手机相册。你永远不知道哪天手机就被偷了或者丢了。

    第二步:准备测试用的SOL

    在Solana测试网上,你可以通过水龙头(Faucet)免费领取测试用的SOL。如果你只是想学习和测试,完全不需要花真金白银。但如果要在主网发币,就需要购买一些SOL了。

    获取测试SOL的方法:

    • 使用Solana官方水龙头
    • 在Phantom钱包中切换到Devnet网络
    • 运行命令:solana airdrop 2 你的钱包地址

    如果你决定在主网操作,可以在各大交易所购买SOL然后转到钱包。整个过程大概需要准备1-2个SOL,虽然发币本身只需要零点几个,但你还需要预留一些用于后续的测试和转账。

    第三步:选择你的发币方式

    这里有个重要的分叉路口:你是想体验技术流的命令行方式,还是选择傻瓜式的可视化工具?

    技术流:命令行方式

    • 优点:完全掌控,成本最低,装逼值max
    • 缺点:需要一定技术基础,出错概率高
    • 适合人群:程序员、技术爱好者

    便捷流:可视化工具

    • 优点:操作简单,界面友好,不容易出错
    • 缺点:可能需要支付少量服务费
    • 适合人群:普通用户、快速启动项目

    我的建议是:如果你不是技术背景,或者想快速上线,直接用可视化工具。别听那些技术大牛说什么"真正的极客都用命令行"——能达到目的就是好方法,没必要为了装酷给自己找麻烦。😎

    方法一:使用命令行创建SPL代币

    好了,勇士,如果你选择了技术流这条路,那就让我们一起深入黑色的终端世界。别担心,虽然看起来很geek,但实际上就是复制粘贴几行命令的事。

    安装必要的工具

    首先需要安装Solana CLI和SPL Token CLI工具。这两个工具是与Solana区块链交互的基础设施。

    在MacOS或Linux上:

    sh -c "$(curl -sSfL https://release.solana.com/stable/install)"

    安装SPL Token CLI:

    cargo install spl-token-cli

    安装完成后,验证一下:

    solana --version
    spl-token --version

    如果能看到版本号,说明安装成功了。这就像组装家具前先检查零件是否齐全——虽然无聊但很有必要。🔧

    创建或配置钱包

    如果还没有钱包地址,可以通过Solana CLI创建一个新的钱包:

    solana-keygen new

    这会生成一个密钥对文件和钱包地址。记住那个文件路径! 它就是你的身份证明。

    接下来配置网络:

    # 使用测试网
    solana config set --url https://api.devnet.solana.com
    
    # 或使用主网(需要真实SOL)
    solana config set --url https://api.mainnet-beta.solana.com

    在测试网上,可以通过水龙头领取一些测试SOL:

    solana airdrop 2

    检查余额:

    solana balance

    创建你的第一个代币

    激动人心的时刻到了!运行以下命令创建代币:

    spl-token create-token

    几秒钟后,你会看到类似这样的输出:

    Creating token AQoKYV7tYpTrFZN6P5oUufbQKAUr9mNYGe1TTJC9wajM
    Signature: 47hsLFxWRCg8azaZZPSnQR8DNTRsGyPNfUK7jqyzgt7w...

    恭喜! 那一串字符(AQoKYV7t...)就是你的代币地址,也叫Mint地址。Mint地址是代币的唯一标识符,类似于代币的身份证号码。把它保存好,后面会经常用到。

    此时你的代币已经存在于区块链上了,但它还是个空壳——没有供应量,也没有人能持有它。这就像是造了一座房子但还没有钥匙。

    创建代币账户

    代币账户用于存储你的代币。每个用户想要持有某种代币,都需要先创建一个对应的代币账户。

    spl-token create-account 你的代币地址

    这会创建一个关联代币账户(Associated Token Account, ATA)。关联代币账户是从用户钱包地址和代币Mint地址确定性派生的,这意味着每个钱包对于每种代币都有唯一且可预测的账户地址。

    铸造代币

    现在到了"印钞"环节。使用mint命令为账户铸造代币:

    spl-token mint 你的代币地址 1000000

    这会给你的账户铸造100万个代币。注意这里的数量要考虑小数位数——SPL代币默认有9位小数,所以如果你想要1000个代币,实际上要输入1000000000000。

    检查余额:

    spl-token balance 你的代币地址

    设置代币元数据

    到这一步,你的代币已经能用了,但它还没有名字、符号或者Logo。就像一个刚出生的婴儿,还没上户口。

    使用Metaplex的Token Metadata程序可以为代币添加名称、符号、Logo等信息。这需要用到JavaScript或者专门的工具,命令行方式相对复杂。

    如果你想给代币添加完整的元数据,建议使用可视化工具或者编写一个简单的脚本。这不是偷懒,而是选择更高效的方式——就像你不会因为会开车就拒绝坐飞机。✈️

    关闭铸造权限(可选但重要)

    如果需要设置代币的最大供应量,可以通过关闭铸币功能实现:

    spl-token authorize 你的代币地址 mint --disable

    这个操作是不可逆的。一旦关闭铸造权限,就再也无法增发代币了。很多Meme币项目会在铸造完成后立即关闭权限,以向社区证明不会无限增发稀释价值。这是建立信任的重要一步。

    方法二:使用可视化工具快速发币

    说实话,上面那一堆命令看得我自己都有点头晕。如果你只是想快速发个币玩玩,或者根本不想碰代码,那么可视化工具绝对是你的救星。

    推荐的发币平台

    市面上有好几个靠谱的Solana发币工具,我挑几个说说:

    1. Slerf.Tools
    Slerf.Tools提供了完整的可视化操作页面,支持用户轻松创建和管理代币。它的界面设计很直观,就像填问卷一样简单。

    2. PandaTool
    使用PandaTool可以像填Excel表格一样简单地创建SPL Token,支付0.1 SOL就能完成。这个平台在中文社区很受欢迎。

    3. Pump.fun
    如果你想发Meme币,Pump.fun可能是最合适的选择。在Pump Fun平台上发行代币仅需0.02 SOL,适合快速启动的Meme代币项目。它还内置了社区推广功能,让你的币更容易被发现。

    4. CoinFactory
    CoinFactory允许你创建和铸造SPL代币而无需编码,只需自定义元数据、名称、符号、Logo和供应量。

    使用Slerf.Tools发币实操

    让我以Slerf.Tools为例,带你走一遍完整流程。

    步骤1:连接钱包

    进入创建代币页面后,点击右上角连接钱包,支持Phantom、Solflare等主流钱包。确保你的钱包里有足够的SOL(至少0.1 SOL比较保险)。

    步骤2:填写代币信息

    这是最重要的一步,需要认真填写:

    代币名称(Token Name)

    • 这是你的代币的完整名称,比如"Kitten Coin"
    • 建议:选个有意思但不要太长的名字
    • 避免抄袭知名项目,会被社区嫌弃

    代币符号(Token Symbol)
    代币符号是代币的简短标识,通常由几个大写字母组成,例如SOL或USDC

    • 通常2-5个字母
    • 全大写是惯例(比如BTC、ETH、SOL)
    • 要简洁有力,方便记忆

    代币精度(Decimals)
    代币精度定义了代币可以分割到多小的单位,SPL代币的最大精度是9

    • 常见设置:6(实用代币)或9(高精度应用)
    • 如果是NFT性质的代币,设置为0
    • 大多数情况下,选6或9就够了

    代币供应量(Total Supply)
    这个需要认真思考。代币供应量应该基于代币的预定用途和市场策略来设定。

    一些参考:

    • Meme币:通常会设置一个很大的数字,比如10亿或100亿
    • 实用代币:根据实际需求设定,几百万到几千万都有
    • 限量代币:数量少反而可能更有价值

    记住:SPL代币的总供应量受到uint64数据类型的限制,最大不超过18,446,744,073,709,551,615。虽然这个数字大得离谱,但也要注意别设置得太夸张。

    代币图像(Token Logo)
    代币图像支持PNG、JPG和GIF格式,建议尺寸为256×256像素

    Logo设计建议:

    • 简洁明了,在小图标上也能看清
    • 最好是正方形
    • 文件不要太大,几百KB就够了
    • 如果是Meme币,够搞笑够吸睛就行 😂

    代币描述(Description)
    简单介绍你的代币是干什么的。不需要写小说,两三句话说清楚就行。如果是Meme币,这里可以放飞自我,怎么搞笑怎么来。

    步骤3:权限设置

    这一步很关键,决定了你的代币未来的可控程度。

    铸币权限(Mint Authority)

    • 保留:你可以随时增发代币
    • 放弃:代币总量固定,无法增发

    如果选择放弃铸币权限,将无法对该代币进行后续增发。大多数正规项目会在铸造完成后放弃这个权限,以证明不会暗地里印钞。

    冻结权限(Freeze Authority)

    • 保留:你可以冻结特定地址的代币转账
    • 放弃:代币可以自由流通

    一般情况下,在Raydium等DEX添加流动性时,需要放弃冻结和铸币权限。

    元数据修改权限(Metadata Authority)
    如果放弃元数据权限,代币名称和Logo将不能更新。这个权限建议保留,万一将来需要更新Logo或者修正错误信息呢?

    步骤4:支付并创建

    检查所有信息无误后,点击"创建代币"按钮。通过Phantom钱包支付0.1 SOL的费用,即可完成SPL Token的创建。

    钱包会弹出交易确认窗口,确认后等待几秒钟,你的代币就诞生了!🎉

    网站会显示你的代币地址(Mint Address),把它复制保存好。你可以在Solscan或Solana Explorer等区块链浏览器上搜索这个地址,查看你的代币详情。

    查看和分享你的代币

    创建成功后,你可以:

    1. 在Phantom钱包里查看你的代币余额
    2. 在Solscan上查看代币的链上信息
    3. 分享代币地址给朋友,让他们也能添加到钱包
    4. 在社交媒体上宣传(如果你想让更多人知道)

    Phantom钱包有时候信息有延迟,需要耐心等待一段时间。如果钱包里暂时看不到Logo,别着急,可以先在Solana浏览器上确认代币是否创建成功。

    进阶操作:让你的代币真正流通起来

    发币只是第一步,就像盖房子只是打了个地基。如果你想让代币真正有价值、能交易,还需要做一些额外的工作。

    添加流动性

    想让别人能买卖你的代币,就必须在去中心化交易所(DEX)上创建交易对。Raydium是Solana上最知名的DEX之一,支持高效的流动性管理。

    在Raydium上添加流动性的步骤:

    1. 创建OpenBook Market ID
      Raydium V4版本的流动性池需要先创建Market ID,费用为0.4 SOL。这个ID是你的代币在OpenBook订单簿系统上的身份标识。

    2. 创建流动性池
      选择代币对(比如你的代币/SOL),设置初始价格和流动性数量。Raydium平台会收取0.4 SOL的官方费用。

    3. 注入初始流动性
      你需要准备两种资产:你的代币和配对资产(通常是SOL或USDC)。建议初始流动性不要太少,否则价格波动会很大。

    比如,如果你想创建一个代币/SOL交易对,可能需要准备:

    • 代币供应量的10-20%
    • 相应价值的SOL(比如5-10 SOL)

    流动性提供者的收益与风险

    做流动性提供者(LP)最好的方式是长期持有,确保交易手续费能够覆盖无常损失。短期LP很难盈利,因为无常损失(Impermanent Loss)可能抵消掉手续费收入。

    但如果代币社区活跃、交易量大,LP收益还是很可观的。有人通过为WIF和Popcat等Meme币做LP,日收益能保持在0.5%到3%左右。

    营销与推广

    再好的代币,如果没人知道,也是白搭。

    社交媒体宣传

    • Twitter/X:加密货币社区的主战场
    • Telegram:建立社区群组
    • Discord:更深度的社区互动
    • Reddit:在相关subreddit发帖

    内容营销

    • 写Medium文章介绍项目
    • 制作表情包和模因(特别是Meme币)
    • 找KOL合作推广
    • 做AMA(问答活动)

    社区建设
    这是最重要但也最被忽视的一点。一个活跃的社区能让代币生命力持久。

    • 定期互动,回答问题
    • 举办活动和空投
    • 培养早期支持者
    • 保持透明,建立信任

    常见的坑和如何避免

    1. 权限设置问题
    很多新手发币后才发现忘记放弃某些权限,导致无法上DEX。需要在Raydium添加流动性的代币需要放弃冻结和铸币权限。这一步务必在添加流动性之前完成。

    2. Logo不显示
    钱包不显示Logo时需要耐心等待,可以在Solana浏览器上搜索代币信息进行查看。有时候需要几个小时甚至一天才能在所有平台同步。

    3. 流动性不足
    初始流动性太少会导致价格暴涨暴跌,吓跑潜在买家。至少要准备相当于几百美元的流动性,最好是几千美元。

    4. 没有计划就开始
    不要脑子一热就发币。想清楚:

    • 这个代币的用途是什么?
    • 目标用户是谁?
    • 如何获得初始用户?
    • 如何维持社区活跃度?

    5. 忽视法律风险
    虽然技术上发币很容易,但在某些司法管辖区,发行代币可能涉及证券法规。如果你的项目规模较大或面向公众募资,最好咨询专业的法律意见。⚖️

    一些实用建议

    从小做起
    不要一开始就想着做下一个比特币。先在测试网练手,发一个玩具币,熟悉整个流程。等有了经验和信心,再在主网上认真做。

    保持透明
    Solana上的代币是通过官方发布好的合约创建出来的账户,所有的SPL代币都用的是同一个合约,这意味着所有操作都是透明可查的。与其藏着掖着,不如主动公开,反而能建立信任。

    学会放手
    如果你的目标是建立一个社区驱动的项目,就要学会逐步放权。把铸币权交给社区,让持有者参与治理决策。一个人的项目走不远,社区的力量才是无限的。

    准备好失败
    残酷的真相是:99%的代币最终都会归零。不要把所有希望压在一个币上,更不要投入超出承受能力的资金。把它当作学习和实验,成功了是惊喜,失败了也没什么大不了。

    写在最后:代币本身不是目的

    写到这里,我突然想起开头提到的那个朋友。后来我又见过他几次,他告诉我,那个币的市值已经跌到不足一千美元了,但他一点也不在意。他说通过这次经历,他认识了一群志同道合的朋友,学到了很多关于区块链和社区运营的知识,这些才是真正的收获。

    发币很简单,但发一个有价值的币很难。技术只是工具,真正重要的是你想用它做什么。是想快速割韭菜然后跑路?还是想建立一个有意义的社区,解决实际问题?这个选择决定了你的代币能走多远。

    SPL Token可以用于多种场景:给粉丝发空投、做MEME币搞病毒营销、发游戏金币做链游、创建DAO治理代币。无论你选择哪条路,记住:技术是中性的,如何使用它取决于你的价值观和创造力。

    最后送你一句话:能力越大,责任越大。现在你有了发币的能力,希望你能负责任地使用它。别做那种发完币就跑路的项目方,给整个行业抹黑。💪

    如果这篇文章对你有帮助,记得分享给有需要的朋友。如果你真的成功发币并且做出了有价值的项目,欢迎回来告诉我你的故事。

    去创造吧,少年。在Solana的世界里,一切皆有可能。🚀


    本文仅供教育和学习目的,不构成投资建议。加密货币投资存在高风险,请根据自身情况谨慎决策。

  • V2EX站长Livid:60块钱的比特币和一个不赚钱的社区

    我也买过比特币。2013年,两千多一个,朋友说能涨到一万。我说他疯了。后来涨到五千,我立马卖了,怕它跌。再后来它涨到了六万美金。我觉得这世界对我有偏见。

    所以当我看到V2EX站长Livid在2011年用60块钱卖掉一个比特币的帖子时,我心里平衡了一些。聪明人也干蠢事。但接着我发现,人家那不叫蠢事,那叫不在乎。

    这才要命。💻

    高二那年他差点被开除

    2001年,刘昕在云南昆明读高二。用今天的话说,他是个极客。那时候他搞了个校园论坛,用的是BBS3000,一套Perl写的程序。论坛名叫ePeta。

    这论坛火到什么程度?学校里所有家里有网的同学都注册了。要知道那是2001年,能上网的家庭不多。他成了风云人物,差点也成了被开除的学生。

    学校看学生搞网站,第一反应是:这小子不学习了。第二反应是:赶紧管管。那个年代就这样,你做点不一样的事,大家第一反应不是你有才华,而是你不正常。

    刘昕没什么商业头脑。他甚至不知道网站可以统计数据,不知道能看多少人访问。纯粹就是喜欢,做着玩。后来论坛用户超过一万,那套用纯文本做数据库的程序扛不住了。换服务器要把上百万个小文件下载下来,再上传上去。那时候连宽带都没普及。

    2003年7月,他把ePeta关了。

    他后来说:"我没有想清楚当时为什么要坚持或放弃。"

    这话挺真实的。年轻人面对自己创造的东西,经常不知道该坚持还是该扔。

    eBay最年轻的程序员

    2005年,20岁的刘昕去了上海,进了eBay。成了当时eBay全球最年轻的程序员。

    上海,来福士写字楼,地处市中心。他每天挤地铁挤到想吐,但觉得自己在宇宙中心工作。那种感觉大概就是:受罪,但值得。

    可他心里还是有个结。做社区的结。

    2005年6月某个下午,他做了个白日梦,梦到了"V2EX"这个词。立马从床上跳起来注册域名。V2EX是什么意思?way to explore,探索之路。或者way too extreme,过于极端。

    两个意思他都喜欢。

    2006年3月,第一版V2EX上线。

    2008年2月,V2EX关闭。

    原因简单得可笑:没钱维持。靠热情做网站,能撑两年已经不错了。他那时候明白了一个道理:网站得赚钱,或者至少别赔钱。不然做不下去。

    很多人不懂这个道理。总觉得做点有意思的事,钱会自己来。不会的。钱从来不会自己来。

    重启

    2010年5月,V2EX 2.0上线。

    这次不一样。他把网站架在Google App Engine上,用的是云计算平台。2010年,国内网站还在用传统服务器,他直接跳到云了。

    file

    为什么?因为便宜,稳定,省心。

    他给新版本起名Project Babel 2,开源了代码。任何人都能看,都能用。这在今天看起来很正常,在当时有点傻。你辛辛苦苦写的东西,凭什么给别人白用?

    凭喜欢。

    V2EX和传统论坛不一样。不是按话题分,是按"节点"分。什么叫节点?兴趣点、关键词、地域,都能是节点。内容按活跃度排序,不按时间。这导致好内容能一直在前面,水贴沉得快。

    设计很简洁。简洁到你怀疑他是不是懒得做复杂。但用久了你会发现,这种简洁让你专注内容,不被乱七八糟的东西分心。

    V2EX的定位是"设计师、程序员及有创意的人参与的社区"。翻译过来就是:不是什么人都欢迎。

    这很冒险。你把用户范围限得这么窄,怎么做大?

    但他不在乎做大。他在乎做对。

    60块钱的比特币

    2011年,Livid用游戏电脑挖矿,挖到了一个完整的比特币。然后他在V2EX上发帖,60块钱把它拍卖了。

    60块。

    那个帖子现在还在。每次比特币创新高,就有人去那个帖子下面留言。2013年有人说可惜,2017年有人说朝圣,2021年有人说这是最贵的帖子,2025年还有人在问:站长,后悔吗?

    按现在的价格,那个比特币值80万人民币。从60到80万,中间差了13000多倍。

    但Livid从来没说过后悔。

    我起初以为他是嘴硬。谁会不后悔?80万啊,够干多少事了。但后来我发现,他是真的不后悔。

    不是不心疼,是不后悔。这是两回事。

    心疼是觉得可惜,后悔是觉得做错了。他觉得可惜,但不觉得做错。因为那时候谁知道比特币会涨成这样?2011年,比特币就是个新鲜玩意儿,能换60块钱已经很好了。

    关键是,他根本不是靠这个赚钱的人。

    从2011到2025,十四年。V2EX还在,Livid还在,那个60块钱的帖子也还在。这才是重点。

    你可以说他错过了80万,也可以说他用60块钱买了个故事。这个故事让V2EX的用户知道:这个站长是认真做社区的,不是想着怎么割韭菜的。🎯

    一个不赚钱的网站怎么活下来

    V2EX到底赚不赚钱?

    不太赚。至少不像那些流量网站那么赚。

    它有收入,靠的是招聘广告、会员费用这些。够维持运营,够养活团队,但发不了财。

    Livid在2010年接受采访时说过一句话:"V2EX还没有进入创业的游戏,自身的收入不是目前V2EX的目标,帮用户发财才是。"

    这话听着有点装。但你仔细想想,还真是那么回事。

    V2EX最火的节点是"酷工作"。创业公司在这里招人,程序员在这里找工作。有人通过V2EX找到了好机会,跳槽后工资翻倍。这对V2EX来说就是价值。

    它不是猎头,不抽成。它就是个场子,让双方自己谈。

    这种模式不赚钱,但长久。因为用户信任你,知道你不是来坑他们的。

    2014年,V2EX备案了。这事引起很大争议。有人说Livid妥协了,出卖了理想。

    可不备案能怎么办?关站?

    有人骂:你没本事反抗某些东西,就来骂个人站长。

    这话糙理不糙。

    Livid的处理方式很简单:该备案备案,但内容质量不降。你可以说他务实,也可以说他识时务。反正网站活下来了,这比什么都重要。

    V2EX的数字

    2006年上线,用户寥寥
    2008年关闭,重新思考
    2010年重启,使用云架构
    2014年备案,引发争议
    2025年现状:75万注册用户,4万日活

    75万注册用户,4万日活。这数字在今天不算大。微信公众号随便一个大号都比这多。

    但V2EX从来没做过推广,没买过广告,没搞过什么增长黑客。就是口碑传播,你觉得好,告诉朋友,朋友觉得好,再告诉别人。

    慢,但稳。

    2025年他又开始发币了

    2025年7月,V2EX发行了代币。在Solana链上,叫$V2EX。

    老用户炸了。又来了,又是区块链,又是割韭菜。

    Livid说这个币是9个月前创建的,当时就是测试Solana平台,不是为了发币赚钱。他自己持有75%,一个都没卖。剩下25%流通,是早期用户持有的。

    他说不在乎价格,在乎的是把Solana技术普及到社区里。用户可以用这个币打赏,可以解锁一些功能。

    这听起来不太像割韭菜的套路。割韭菜的人恨不得马上拉盘,马上套现,哪有自己持币不卖的。

    但老用户还是骂。有人说:"那个Cool的年轻人已经死了。"

    也有人说:"V2EX备案的时候你们也骂,现在不还是用得好好的?"

    争议本身说明人们在乎。不在乎的东西,谁去骂它?

    我倾向于相信Livid不是为了割韭菜。不是因为我多了解他,是因为他过去十四年的行为都证明了他不是这种人。一个在2011年把比特币卖60块的人,一个做了十四年不赚钱社区的人,突然在2025年变成骗子?

    不太可能。

    但也许真的变了呢?谁知道。人是会变的。😤

    理想主义值几个钱

    有人问:Livid算不算理想主义者?

    算。但不是那种喊口号的理想主义者。

    他每天睡到自然醒,有灵感就不睡觉,一直写代码到满意为止。他喝咖啡上火,就换绿茶,舒服了继续喝咖啡。他不玩社交网络,因为他要陪老婆孩子。

    他做的每个决定,都是基于当时的信息做出的最优选择。所以他不后悔。

    这是理想主义和傻的区别。傻是不管不顾往前冲,理想主义是想清楚了还要往前冲。

    V2EX活了十四年,靠的不是情怀,是Livid想清楚了怎么让它活下去。开源是为了吸引技术人才,备案是为了合规,发币也许是为了探索新模式。

    每一步都有理由。不是瞎搞。

    但我也不觉得他有多高尚。他就是喜欢做这个,所以做下去了。喜欢是最大的动力,不是情怀。

    情怀这词被用烂了。创业的说情怀,做产品的说情怀,开餐厅的也说情怀。最后情怀变成了骗钱的借口。

    Livid不说情怀。他就是做一个社区,让程序员和设计师有地方交流。仅此而已。🏠

    那60块钱到底值不值

    回到最开始的问题:60块钱卖掉的比特币,值不值?

    从钱的角度看,不值。亏大了。

    从人生的角度看,值。因为它成了V2EX的一个标志性事件。

    那个帖子在,V2EX就在。每次比特币涨价,就有人去那个帖子打卡。这给V2EX带来了流量,带来了话题,带来了信任。

    信任最值钱。

    一个站长把比特币当60块钱卖了,说明他不是来炒币的,不是来割韭菜的。他就是个做技术的,做社区的。

    这种人设,80万买不来。

    所以60块钱的比特币,其实给V2EX做了十四年的广告。这账怎么算都不亏。

    当然,我不是说Livid当时想到这些。他就是卖了,然后后来发现卖亏了,但没办法,已经卖了。

    生活就这样。很多事情当时看是错的,过几年看也许是对的。也可能当时看是对的,过几年看就是错的。

    重要的不是对错,是你接不接受结果。

    Livid接受了。所以他不后悔。✨

    最后

    V2EX现在有75万用户。不多,但都是真实用户。

    这个社区不完美。有时候管理太严,有时候功能太少,有时候站长想法太多。

    但它还在。十四年了,还在。

    这年头,能活十四年的个人网站不多了。

    Livid也不年轻了。从20岁到40岁,人生最好的二十年,他给了V2EX。

    值不值?

    我觉得值。至少比那些为了钱出卖一切的人值。

    这世界需要一些不那么在乎钱的人。不是因为他们高尚,是因为他们让这世界多了点别的选择。

    60块钱的比特币,十四年的社区,一个不太赚钱的理想主义者。

    这故事不励志,也不感人。就是一个人做了他想做的事,坚持了十四年。

    如此而已。


    V2EX数据

    • 创立:2006年(2010年重建)
    • 用户:75万注册,4万日活
    • 定位:创意工作者社区
    • 收入:广告+会员,够活但不富
    • 特色:节点制、活跃度排序、极简设计

    Livid简介

    • 本名:刘昕
    • 生于:1985年
    • 职业:程序员+设计师+产品经理
    • 代表作:V2EX、Project Babel
    • 名言:与其苟延残喘,不如从容燃烧
    • 现状:上海,已婚,有女儿,继续做V2EX
  • 逃离象牙塔的人:Node.js之父Ryan Dahl和他的两次出走

    我有个朋友学了七年医,实习第一年就辞职了。所有人都说他疯了,他妈妈在电话里哭。但他跟我说:"我不想等到40岁才发现,我这辈子做的事情跟我想要的生活没有任何关系。"三年后他开了家小书店,日子过得紧巴巴的,但每次见面他脸上都有种说不出的轻松。这让我想起了Ryan Dahl——那个从数学博士项目里逃跑的年轻人,最后在德国的咖啡馆里,意外地改变了整个互联网世界。

    file

    第一次逃离:从美丽的虚无中醒来

    1981年出生的Ryan Dahl,从小就被认为是个聪明孩子。6岁那年,母亲给他买了台电脑,就像所有美国中产家庭做的那样——虽然不知道有什么用,但总觉得应该给孩子准备点"未来"。

    Ryan顺理成章地考上了加州大学圣地牙哥分校,学数学。然后读研究生,研究代数拓扑。这是个什么东西呢?Ryan自己的形容很诚实:"非常抽象、非常美,但跟现实生活没什么关系。"

    想象一下那个场景:一个二十几岁的年轻人,每天在罗切斯特大学的研究室里,证明着只有极少数人能看懂的定理。窗外是纽约北部的漫长冬天,屋里是永远写不完的公式。这条路的尽头清晰可见——拿到博士学位,发几篇论文,申请教职,成为某个大学数学系的副教授,然后教授,然后退休。

    一条笔直、体面、安全的路。

    但Ryan有一天突然想明白了:他不想用余生去攀登一座美丽但通往虚无的山峰。😔

    "我想做一些与人类正在发生的事情相关的东西"

    这句话听起来很简单,但说出来需要多大的勇气?你已经在这条路上走了那么多年,投入了那么多时间和精力,周围所有人都在说"再坚持一下就好了"——但他选择了停下来。

    他退学了。

    没有备选方案,没有详细计划。他只是决定:我不要这种生活了。

    在路上:一个没有方向的自由人

    退学后的Ryan去了南美洲。他开始接一些网站开发的活儿,用Ruby写代码,做那种最普通的外包项目——给滑雪公司维护网站,帮小企业搭建在线商店。

    这段时间的Ryan,就像所有逃离了既定轨道的年轻人一样:自由,但也迷茫;轻松,但也焦虑。他不知道自己要去哪里,只知道自己不想回到那个数学研究室。

    后来他去了德国,跟女朋友一起住在科隆。他继续做自由职业,接一些零散的项目。生活平淡,没有什么波澜。

    如果故事就这样继续下去,Ryan Dahl可能就是千千万万个"曾经很优秀但最后泯然众人"的普通人之一。那些读博士读到一半退学的人,那些放弃大公司工作去创业的人,那些说要"找到自己真正想做的事"的人——大多数最后都消失在了时间里,再也没有掀起任何波澜。

    但有时候,命运会给那些真正在寻找的人一个机会。

    科隆的六个月:一个人的革命

    2008年,Ryan 29岁,在科隆做着自由程序员的工作。某天,他接到一个任务,客户要求用异步操作来处理服务器请求。他开始琢磨这件事,觉得现有的服务器技术都有问题——它们处理并发请求的方式太笨了,就像一个厨师必须做完一道菜才能开始做下一道。

    恰好这时候,谷歌发布了Chrome浏览器和V8引擎。

    这个瞬间改变了一切

    Ryan突然意识到,他可以用这个新的引擎,结合异步操作的理念,创造一个全新的东西。不是为了发论文,不是为了拿学位,就是因为——他觉得这个想法太酷了,他必须把它做出来。

    他从一家公司拿到了6万美元的赞助。这笔钱不多,但足够让他暂时不用接外包项目。

    于是,2009年初,Ryan开始了一段奇特的生活:每天去科隆Rudolfplatz拐角的一家星巴克,在那里写8小时代码,持续了6个月。☕

    那家星巴克没有WiFi。

    这个细节很重要。在2009年,没有WiFi意味着没有Google搜索,没有StackOverflow,没有在线文档。Ryan只有他带去的资料、他的电脑、还有V8引擎的说明书。

    想象那个画面:咖啡馆里人来人往,有人在聊天,有人在约会,有人在看报纸。而在角落里,一个美国年轻人盯着笔记本电脑的屏幕,写着只有他自己能看懂的代码。周围的人不知道,这个看起来有点宅、有点孤僻的家伙,正在创造一个将会改变数百万人生活的东西。

    那六个月,Ryan是完全孤独的。没有团队,没有导师,没有同事。只有他和他的想法。每天早上起床,去咖啡馆,打开电脑,写代码,调试,报错,修复,再调试。晚上回家,睡觉,第二天继续。

    这是一种纯粹的、近乎修行般的专注。他不需要向任何人汇报进度,不需要参加任何会议,不需要解释他在做什么。他只是在做一件他认为应该做的事。

    2009年11月,他终于做完了第一个版本。他给它起名叫Node.js。

    聚光灯下的不适:我只想安静地写代码

    Ryan在JSConf EU上展示了Node.js。他很紧张——这是他第一次站在这么多人面前讲话。但演示很成功,现场观众可以立即连接到他搭建的聊天服务器,发送消息,看到实时响应。

    人群中爆发出惊呼和掌声

    Ryan后来回忆说,那一刻他意识到:也许我真的做出了一个不错的东西。

    但他没想到的是,成功会以这样快的速度到来,而且会带来这么多他不想要的东西。

    Node.js开始爆炸式传播。Joyent公司找到他,给了他一份全职工作,条件是把Node.js的版权和商标都转给公司。Ryan同意了——他拿到了钱,有了稳定的工作,可以全职开发Node.js了。

    听起来是个完美的结局对吧?

    但没人告诉他,成功的代价是失去隐身的权利

    他开始被邀请参加各种技术大会,作为"Node.js之父"发表演讲。在日本,有人排队要跟他合影。他写了篇博客批评某些软件设计,结果在Hacker News上引发了数百条评论,有支持的,有反对的,有嘲讽的。他的一个朋友看到后说:"天啊Ryan,你这是在给自己找麻烦。"

    还有人写文章说"Node.js是癌症"。Ryan看到后的第一反应不是生气,而是自我怀疑:"天啊,我肯定在某个地方犯了错误。"

    他发现自己变成了一个公众人物,而他根本不想当公众人物。😰

    Ryan后来说:"我是一个程序员,我想写代码,我想无拘无束地表达我的想法。我并不喜欢这种状态。"

    这是创作者的悲剧:你创造了一个东西,投入了全部的热情和心血,但当它成功之后,它就不再属于你了。它属于使用它的人,属于讨论它的人,属于批评它的人。而你,作为创造者,反而被困在了这个巨大的成功里,动弹不得。

    就像一个作家写了一本畅销书,然后余生都要被问"第二部什么时候出",却再也找不回写第一本书时的那种纯粹的创作冲动。

    第二次逃离:在荣耀中转身

    2012年1月,Ryan宣布离开Node.js项目的日常管理,把工作交给了另一个开发者。

    他给出的理由很官方:"这让我可以去做研究项目。"

    但真实的原因可能是:他又想逃离了。这次不是逃离数学研究室的虚无,而是逃离成功带来的喧嚣。

    离开后的Ryan做了什么?他去了纽约,尝试了一些创业想法——做社交网络、做构建系统——都没什么起色。后来他加入了Google Brain,研究机器学习。

    从外界看,这是一个成功人士的正常职业发展。但我更愿意相信,Ryan其实是在寻找那种感觉——在科隆星巴克里,一个人对着电脑,没有人打扰,纯粹地创造的感觉

    六年过去了。Node.js变得越来越流行,但也变得越来越复杂。成千上万的开发者在使用它,抱怨它,改进它,但也给它添加了各种各样的东西——有些是必要的,有些是妥协的产物。

    Ryan偶尔会看看Node.js的代码,然后心里想:"如果让我重新来过,我绝对不会这么做。"

    这个念头在他心里生根发芽,像一颗种子,在六年的时间里慢慢长大。

    在舞台上承认错误:一次罕见的坦诚

    2018年6月,JSConf EU,同样的会议,同样的舞台。

    距离Ryan第一次在这里展示Node.js,已经过去了9年。

    这一次,他站在台上,说出了一个震惊全场的标题:"我对Node.js后悔的10件事"

    想象一下这个场景的戏剧性:一个创始人,在几千名使用他产品的开发者面前,公开批评自己当年的设计决策。

    这需要多大的勇气?

    我们生活在一个"永远不要承认错误"的时代。企业家要维护自己的形象,政客要维护自己的威信,专家要维护自己的权威。承认错误被视为软弱,被视为失败。

    但Ryan用了26分钟,详细地、毫不留情地批评了自己当年做的选择

    他说,我不应该移除Promise支持。我应该把安全性做得更好。我不应该让模块系统变得这么复杂。我不应该让一个私人公司控制整个生态系统的包管理。

    台下的观众从最初的震惊,渐渐变成了深思。他们意识到,这不是一个失败者的抱怨,而是一个成熟的工程师对自己作品的诚实反思。

    演讲快结束时,Ryan说了一句话:"我觉得在大家面前抱怨一堆东西而不给出解决方案,这很糟糕。"

    然后他介绍了Deno——一个全新的运行环境,用来解决他在Node.js中犯下的所有错误。

    这是一次优雅的自我迭代

    Ryan没有说"Node.js是垃圾,大家都别用了"。他说的是:"这是我当年的想法,这是我现在的想法,这是我学到的东西,这是我想做得更好的地方。"

    重新开始:带着所有的教训

    2020年5月13日,Deno 1.0正式发布。

    这次Ryan不是一个人了。他有了团队,有了资金,有了更成熟的技术。但最重要的是,他有了十年的教训

    Deno和Node.js最大的区别不在于技术细节,而在于理念:

    • Node.js说:我给你提供最大的自由,你可以做任何事
    • Deno说:我默认限制你的权限,除非你明确说你需要做什么

    这就像两种不同的人生哲学。年轻时我们追求自由,觉得限制是枷锁;成熟后我们理解边界,知道有些限制其实是保护。

    Ryan在创造Deno时的心态,可能跟当年在科隆咖啡馆里很不一样。那时候他是纯粹的兴奋和激情,觉得自己发现了一个了不起的东西。现在他更平静、更谨慎,但也更清楚自己在做什么。

    他不再是那个逃离象牙塔的年轻人,而是一个经历过成功、挫折、反思之后,决定重新开始的中年人

    尾声:关于选择和代价

    Ryan Dahl的故事让我想到很多事。

    我们的文化总是鼓励人们"坚持"。坚持就是胜利,放弃就是失败。但Ryan的两次"逃离"告诉我们:有时候,放弃一条错误的道路,比在上面坚持到底更需要勇气

    第一次,他放弃了数学博士学位,选择了一条完全不确定的路。如果失败了,他就是那个"读了这么多年书最后一事无成"的反面教材。

    第二次,他在Node.js最成功的时候选择离开,然后又回来公开批评它。如果Deno失败了,他就是那个"吃老本还要砸自己招牌"的过气创始人。

    但他都做了。不是因为他不在乎别人的看法,而是因为他更在乎做正确的事

    今天,Node.js依然是全世界最流行的服务器端技术之一,被无数公司使用。Deno还在成长中,还没有Node.js那样的影响力。但这不重要。

    重要的是,Ryan展示了一种可能性:你可以创造一个伟大的东西,然后承认它的缺陷;你可以在成功之后选择离开;你可以在十年后回来,说"我当年错了,现在我要做得更好"。

    这不是背叛,不是不忠,不是朝三暮四。

    这是一个人保持诚实、保持成长、保持对完美的追求的方式

    我常常想,如果Ryan当年没有退出数学博士项目,会怎么样?他可能会成为某个大学的副教授,发表一些只有同行能看懂的论文,过着稳定、体面、但平淡的生活。

    如果他在2012年没有离开Node.js,会怎么样?他可能会继续被困在日常的项目管理和社区争议中,失去创造新东西的激情和自由。

    每一次选择都有代价。放弃博士学位的代价是不确定性;离开成功项目的代价是被质疑;公开承认错误的代价是可能被嘲笑。

    但Ryan都接受了这些代价,因为他想要的从来不是外界的认可,而是内心的自洽

    在德国科隆那家没有WiFi的星巴克里,29岁的Ryan Dahl一个人写了六个月代码,改变了世界。

    十年后,他又一次坐在电脑前,对自己说:我可以做得更好。

    这才是真正的自由。🕊️