MoreRSS

site iconsmilejay | 笑遍世界修改

履历:点评、阿里。博客内容:云计算、虚拟化、Linux技术等
请复制 RSS 到你的阅读器,或快速订阅到 :

Inoreader Feedly Follow Feedbin Local Reader

smilejay | 笑遍世界的 RSS 预览

读了《我的二本学生》和《去家访》两本书

2026-06-13 13:37:21

我在2024年读了《我的二本学生》这本书,其续集第2本一直没读,最近把它也就是《去家访》找来读完了。

我对这个两本书还比较有兴趣。一方面是因为里面讲的不少都是小镇或农村的学生他们成长、求学、上大学、毕业、工作、生活等一些鲜活的事情,由于我曾经也是出生在农村一路考上大学并在大城市中工作生活,有不少共鸣。另一方面,是它记录的是广东金融学院的事情,里面提到大学的部分,都是在广州的龙洞地铁站附近,由于我也是在广州读的大学,我读大学时估计龙洞地铁站没有通,尽管不太远,其实我也没去过龙洞那边,但总之听到广州那些熟悉的地名,还是有很多的亲切感。

也不打算记录太多东西,只记一个细节吧,就是有一个女孩的父母离婚,她就跟着爸爸生活,是奶奶在带她,后来甚至被送给大伯家,因为调皮或者什么习惯不好,又给送回来给奶奶来养,到后面该到读书的年龄了,他爸也结了婚,她的后妈就一定要把她接过去养,后妈一直教育和照顾她,而且非常鼓励她好好读书。而她的爸爸、奶奶、伯伯等都认为女孩读不读书无所谓,但她的后妈坚持让她好好读书,后来女孩考上了广东金融学院。女孩说最感激的就是她的后妈,是养育她的人,而且没有后妈的坚持和鼓励,她就不可能考上大学。挺不容易的。

从这两本书中 看到该学院的学生的成长考试等经历(当然里面也有不少家庭条件好的除外),我自己的求学和找工作的整个过程还是非常幸运的。尽管经历一些小的波折 也顺利考上985大学 毕业时也顺利找到BAT的工作。感恩 感恩~

Original article: 读了《我的二本学生》和《去家访》两本书

©2026 笑遍世界. All Rights Reserved.

我的博客站点支持HTTPS访问了

2026-06-10 21:26:07

写在前面

这个博客站点smilejay.cn 以前没有支持HTTPS,因为感觉配置挺麻烦的,还要证书啥的,自己玩玩用http感觉就够了;现在好用的AI工具了,刚才就让codex给我配置好了,大约花费10分钟时间。

现在的URL: https://smilejay.cn/

  1. 我告诉它去ssh直接登录到我的服务器上去修改,提前ssh key免密登录打通。
  2. 将http协议的访问走HTTP 301 Moved Permanently 重新定向到了 https 协议。
  3. codex还很专业的备份了我之前的nginx配置,并且考虑到SSL证书会过期的事实,它自动给我做了crontab定时任务每天2次检查并按需续期。

很不错哦! AI加持下,我的运维能力更专业了~

下面的内容是codex干完活后,给我的输出,我觉得很重要,保存一下。

------ 分割线 ------

已完成 smilejay.cn 的 HTTPS 支持配置,并把 HTTP 改成了 301 跳转 HTTPS。

已完成内容

  1. 安装 certbot
    • 已安装 certbot 1.11.0
  2. 申请 Let's Encrypt 免费证书
    • 证书路径:

/etc/letsencrypt/live/smilejay.cn/fullchain.pem
/etc/letsencrypt/live/smilejay.cn/privkey.pem

  • 证书有效期:

notBefore=Jun 10 12:00:17 2026 GMT
notAfter=Sep  8 12:00:16 2026 GMT

  1. 修改 Nginx 配置
    • 已备份原配置:

/etc/nginx/nginx.conf.bak-20260610-205932

  • 已启用:

80 端口:301 跳转到 https://smilejay.cn
443 端口:HTTPS 正常服务

  1. Nginx 配置校验通过

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

  1. Nginx 已 reload
    • 当前监听:

*:80
*:443
[::]:80
[::]:443

  1. 外部访问验证通过

HTTP:

http://smilejay.cn
HTTP/1.1 301 Moved Permanently
Location: https://smilejay.cn/

HTTPS:

https://smilejay.cn
HTTP/2 200

  1. 自动续期已配置

已创建:

/etc/cron.d/certbot-renew-nginx

内容为:

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin

# Renew Lets Encrypt certificates twice daily and reload nginx if renewed.
17 3,15 * * * root certbot renew --quiet --deploy-hook "systemctl reload nginx"

并已执行续期 dry-run,结果成功:

Congratulations, all simulated renewals succeeded:
/etc/letsencrypt/live/smilejay.cn/fullchain.pem (success)

当前最终状态

http://smilejay.cn   -> 301 跳转到 https://smilejay.cn/
https://smilejay.cn  -> 正常返回 200
证书:Let's Encrypt
自动续期:已配置并 dry-run 成功

配置已经生效。

Original article: 我的博客站点支持HTTPS访问了

©2026 笑遍世界. All Rights Reserved.

这才是最快的Mac向Android手机传文件的方法

2025-08-13 01:02:59

手机和Mac电脑在同一个局域网(如:在家里同一个WIFI之下)。

在Mac上启动一个 http server:

cd $your_www_dir   # 进入需要共享的目录
python3 -m http.server   # 启动一个最简单的http服务,默认端口是 8000
# 当看到类似输出时,就是启动成功了: Serving HTTP on :: port 8000 (http://[::]:8000/) ...

可以在电脑上浏览器中,打开 http://localhost:8000/ 检查一下。

然后,手机上浏览:http://192.168.0.104:8000 (这里的192.168.x.x的IP就是电脑在局域网中的IP地址)

很方便,适合技术人员,局域网的下载速度也非常快的。

当然,如果不是在一个局域网中,那就会麻烦一些了;就选择云盘、邮箱等外部系统来中转吧。 甚至就用USB、Type-c的数据线直接连接吧。

Original article: 这才是最快的Mac向Android手机传文件的方法

©2026 笑遍世界. All Rights Reserved.

Mac上删除App的方法(包括强制删除)

2025-08-13 00:51:43

23年初始化电脑时遇到的,只是记录一下。

安装过火狐浏览器 再安装Firefox国际版,但总是打开新安装的国际版,它的配置还是使用国内版火狐。关键是账号体系不打通,国内版火狐登录Firefox账户时,不能选择firefox.com的(只能选firefox.com.cn的),而它们2个账号体系是隔离的。我就是想同步一些之前的账户配置。

应用不是AppStore安装的 则在启动台那里长按应用也不会有删除标志(左上角小叉叉),我一般就暴力删除,注意命令别敲错了,否测删除到关键文件,系统可能出问题。

sudo rm -rf /Applications/Firefox.app/

许多 App 的缓存垃圾等都会存放于特定目录中。比较常见的,如 /Users/用户名/Library/Caches 和 /Users/用户名/Library/Application Support 等。你可以进入文件夹中按需清理。
比如: /Users/your-username/Library/Application\ Support/Firefox

卸载某些应用程序后会留下一些预置文件和缓存等,一般这些文件没有潜在坏处,但是我们确实今后也不打算再装的App,可以将其清理干净:
~/Library/Application Support/(应用程序名称)
~/Library/Preferences/(应用程序名称)
~/Library/Caches/(应用程序名称)

但请务必注意:仅在你完全了解文件夹作用后,才能考虑是否删除,否则可能造成 App 崩溃乃至系统关键功能受损等严重后果。

苹果官网也提到了两种删除App的方法:
1. 使用启动台删除从 App Store 下载的 App
2. 使用“访达”删除 App,在“访达”中点击“应用程序”,将其中的需要删除的App移到“废纸篓”即可。大多数 App 都位于“应用程序”文件夹中。
通过以下任一方式将 App 移到“废纸篓”:a. 将相应 App 拖移到“废纸篓”。 b. 选择相应 App,然后从菜单栏中选取“文件”>“移到废纸篓”。 c. 选择相应 App,然后按下键盘上的 Command-Delete 键。

参考文档:
在Mac上卸载App:https://support.apple.com/zh-cn/102610
区分火狐与Firefox国际版:https://zhuanlan.zhihu.com/p/433010918

Original article: Mac上删除App的方法(包括强制删除)

©2026 笑遍世界. All Rights Reserved.

Ollama及open-webui使用,及Qwen3开源大模型体验

2025-05-01 01:19:32

这两天阿里开源了Qwen3系列推理模型,里面有不少Dense模型的参数量不太大,可以用本地笔记本电脑运行,速来体验一下。

本机电脑配置:MacBook Pro (Apple M2 Pro 芯片)
模型选择:Qwen3-4B(40亿参数),模型占用磁盘空间 2.5GB

Ollama运行Qwen3

  1. 去Ollma官网 https://ollama.com/ 去下载并安装ollama;完成后用 命令 ollama --version 检查一下。
  2. 下载并运行Qwen3:4b模型,就一个命令 ollama run qwen3:4b,Ollama自己会去下载模型文件(2.6GB大小,需要花一点时间)然后运行的。
  3. 第2步完成,就会进入交互式问答界面,就可以开始体验qwen3:4b大模型的推理了。 (注:用 /? 命令查看帮助,用 /bye 退出)

在浏览器中打开 http://localhost:11434/ 可以查看Ollama是否正常运行,同时其API已可用,比如 http://localhost:11434/api/tags

ollama默认监听了 127.0.0.1:11434,如果需要个性化修改(一般建议不要修改了,后面open-webui等也会自动找这个端口),可以设置 OLLAMA_HOST 这个环境变量即可。

使用open-webui通过浏览器UI的方式体验大模型

命令行交互的方式聊天对人类不友好,特别是它还输出markdown格式的文本;那么可以使用open-webui这个工具来支持用浏览器使用本地(也支持远程的大模型)。
有多重方式可以安装open-webui,这里就选择用pip安装的方式。
1. 用命令 pip install open-webui 即可安装open-webui,不过请注意open-webui当前仅支持python3.11(至于怎么安装python3.11这里就不介绍了),所以我这里执行命令其实是:pip3.11 install open-webui
刚开始没注意我系统默认python是3.9版本,通过pip安装时就没有找到oepn-webui包,有如下报错:

ERROR: Could not find a version that satisfies the requirement open-webui (from versions: none)
ERROR: No matching distribution found for open-webui

  1. 用命令 open-webui serve 即可启动服务。 如果希望修改监听地址和段扩,可以 open-webui serve --help查看一下帮助,通过--host、--port参数修改即可。
  2. 浏览器通过地址 http://localhost:8080 来访问open-webui了。如果上面步骤这两个ollama已经启动qwen3:4b模型,那么此时浏览器中已经默认以选中该模型了,就可以低成本体验qwen3的推理能力。

体验下来,MBP电脑运行qwen3:4b还是比较流畅的,模型本身推理能力使用起来也算不错(粗略体验),当然还是容易有些AI幻觉的(比如,问它4B模型是多大参数,它说是400亿;而人眼一眼就是40亿)。

参考:
https://www.runoob.com/ollama/ollama-open-webui.html
https://zhuanlan.zhihu.com/p/1900866584001642539

Original article: Ollama及open-webui使用,及Qwen3开源大模型体验

©2026 笑遍世界. All Rights Reserved.

《性能之巅》读书笔记第11章

2024-12-29 00:40:54

第11章 云计算

我已在云计算行业工作多年,Gregg这里写到的东西都比较熟悉了;如下是一些摘内容摘要和我的评论。

OS虚拟化技术的劣势:
* 任何kernel panic都会影响到所有客户
* 客户不能运行不同的内核版本(评论:也不能再linux上启动Windows guest)
* 也不支持热迁移,kvm虚拟化技术是支持的 (该项是我的评论内容)
目前流行的docker也使用OS虚拟化技术,所以docker也是一样的问题;同时包括kata在内,目前其官网也未支持热迁移。

KVM中一个常见的VM Exit Reason是Guest中执行HLT指令。(评论:在较新的qemu/kvm中支持了cpu-pm=on 透传,可以让guest控制host cpu的power state,可以避免HLT/MWAIT等指令的退出

P500页,作者还有一处错误说GVA到HPA之间可以TLB缓存,是错误的。

一些技术信息拓展

根据豆包查了一些资料,结合个人认知。

概念解释
* GVA(Guest Virtual Address):这是客户机(Guest)操作系统所使用的虚拟地址。在 KVM 虚拟化环境中,客户机操作系统运行在虚拟机中,它看到的是自己的虚拟地址空间。
* HPA(Host Physical Address):这是宿主机(Host)的物理地址。在 KVM 中,虚拟机最终的数据存储和访问都要落实到宿主机的物理资源上。
* TLB(Translation Lookaside Buffer):是一种高速缓存,用于存储虚拟地址到物理地址的转换映射,以加速内存访问。

转换过程分析
一般情况下,在 KVM 虚拟化中,从 GVA 到 HPA 不能直接通过 TLB 转换。
原因在于地址空间的隔离和多层转换需求:
* 首先,客户机操作系统使用 GVA 进行内存访问,这个虚拟地址需要先转换为客户机物理地址(GPA - Guest Physical Address)。这个转换是由客户机操作系统的内存管理单元(MMU)基于其自身的页表来完成的。因为客户机操作系统并不知道它运行在虚拟化环境中,它按照传统的方式管理自己的虚拟地址到物理地址的映射。
* 然后,从 GPA 到 HPA 的转换需要通过 KVM 虚拟化层的介入。KVM 会维护影子页表(Shadow Page Table)或者利用硬件辅助虚拟化技术(如 Intel 的 EPT - Extended Page Table 或 AMD 的 RVI - Rapid Virtualization Indexing)来实现 GPA 到 HPA 的转换。
* TLB 通常是存储虚拟地址到物理地址的缓存,但在 KVM 虚拟化环境下,由于存在 GVA - GPA - HPA 这样的多层转换关系,TLB 缓存的内容通常是 GVA - GPA 或者 GPA - HPA 的映射,而不是直接的 GVA - HPA 映射。

Docker 容器是基于操作系统级别的虚拟化技术。容器技术利用了宿主机(Host)的内核来运行。当启动一个 Docker 容器时,容器内的进程是直接运行在宿主机的内核之上的,容器共享宿主机的内核。

Docker 是基于 Linux 容器技术构建的平台,它利用了 Linux 内核的特性(如 namespaces 和 cgroups)来实现容器的隔离和资源管理。容器本质上是在 Linux 操作系统的用户空间进行隔离,共享 Linux 内核。这种设计使得 Docker 在原生状态下主要用于运行基于 Linux 的应用程序和服务。因为 Windows 操作系统有自己独立的内核和系统架构,和 Linux 内核不兼容,所以在常规的 Docker 运行机制下不能直接启动 Windows Guest OS。

Kata Containers 是一种容器运行时技术,它结合了容器的轻量级和虚拟机的安全性优势。本质上,Kata 在每个容器启动时都会创建一个独立的轻量级虚拟机(VM)来运行容器。最重要的安全特性是内核隔离。

另外,Gregg曾经供职和在本章中多次提到Joyent公司已于2016年被三星电子收购;后来也退出了IaaS共有云的市场。

Original article: 《性能之巅》读书笔记第11章

©2026 笑遍世界. All Rights Reserved.