大象笔记

知者行之始,行者知之成

有时候程序有 bug 也未必是件坏事

塞翁失马,焉知非福。上周天晚上,我都准备睡觉了,突然接到一个长期合作客户的微信消息,说我写的一个程序不好用了,让我帮忙看看是怎么回事。 我也很疑惑,这套程序是三年前开发的,稳定运行了这么多年没出现过任何问题,怎么会突然就不好用了呢(๑•̌.•̑๑)ˀ̣ˀ̣ 登录上阿里云服务器,发现进程消失了,客户说自己发现程序不好用,就重启了服务器,但是重启后还是不好用。这就奇怪了,这个 golang 写的服务,配置了 systemd,按理说天塌了也能正常自动重启哇🤔 突然想到了磁盘空间,一看,果然磁盘满了。 原来罪魁祸首是我记录的日志太多,三年了,终于把磁盘空间用完了。算是一个小小的 bug 吧,为了偷懒 ...

阅读全文...

熬不完的夜,写不完的代码,梳理不完的需求,也许被 AI 取代才是我的宿命

最近又开始睡眠质量下降,到了凌晨两三点就自然醒,再也睡不着。 失眠的原因呢,是最近又是一堆这个月底要上线的功能。我也不清楚这些计划是怎么来的,总之就是一句话,这个功能月底要用,这个需求客户一个月内要实现,这个活今晚要收尾(我自己给自己上强度的)。这个客户服务器挂了要恢复,那个客户服务异常要排查,那个兄弟网站被黑要复原。 已经连续两个周十一点之后睡觉了,效果也很明显,脾气暴躁异常。这不,因为财务报销的事情,我没忍住财务仙人的无礼貌无素质的追问,直接怼了对方一句奇葩。这事就闹大了。如果不是心情烦躁,正常我还是能忍住无视这些狗屎的。 熬不完的夜,究其原因,我觉得还是自己急于求成。总是想瞬间完成,一 ...

阅读全文...

s3fs-fuse 将 Linode Object Storage 挂载到 Ubuntu Server 本地文件系统

s3fs 是什么 s3fs 是一个将 Amazon S3 存储桶挂载到本地文件系统的工具,它允许用户通过标准的文件系统接口访问 S3 存储桶中的数据,从而简化了与 S3 的交互过程。 s3fs 通过 FUSE(Filesystem in Userspace)将 S3 存储桶映射为本地文件系统,使得用户可以使用标准的文件系统 API 来与 S3 中的数据进行交互,而无需直接调用 S3 API。 https://github.com/s3fs-fuse/s3fs-fuse s3fs allows Linux, macOS, and FreeBSD to mount an S3 bucket vi ...

阅读全文...

撤掉了网站上的广告,国内的网页广告时代该结束了

大概是去年吧,Google 广告在国内的表现已经非常差了,连服务器的费用都赚不回来。于是替换成了国内的万维广告,可以看到 V2EX 和豆瓣都是用的他家的广告。 参考:百度联盟 / Google AdSense 的替代品万维广告 但是呢,今年开始搞微信公众号之后,发现一个月的微信公众号广告费收入,大概等于一年的网站广告收入。而且,网站的流量还在进一步的萎缩,所以网站广告就变成了鸡肋。 干脆就去掉吧,全部换成了微信公众号的二维码,不如多引流到公众号去。毕竟连我自己也慢慢没有看网站内容的习惯,大部分还是在公众号里看的。在公众号里发布的内容有两点网站无法具备的优势: 推荐非常精准,内容能直达你的目标 ...

阅读全文...

公众号不到 2000 粉丝,我居然也接到了商单

昨天有个人加我微信,说是看了我的公众号文章,想咨询一下我是否愿意接商单。 难以置信,我粉丝量才不到 2000,这点规模也可以么?难道我已经是一个小有名气的网红,只是我自己不知道而已? 出于好奇,也许是受宠若惊,热情地和这位大客户聊了几句。我才知道原来是有篇关于计算 etf 收益率的小程序文章,阅读量比较大,吸引了大哥的注意。所以想找我合作,给他打个广告。 但是我还是觉得不合适,一是这种证券类的其实很敏感,容易被封号,二是返佣计算不透明,而且也没有吸引力,操这个心,还不如好好写代码。所以婉拒了。 虽然第一个公众号的商单没有达成,但是也很有成就感,至少说明内容质量还是得到了认可。而微信公众号 ...

阅读全文...

magento 安装后网站首页打不开,原来是 cloudflare 规则导致

这个问题我遇到了两次。 第一次是安装 magento 2.4.7 p1 版本后,打开网站首页,浏览器显示 cloudflare 521 的错误页面。 第二次是重新安装 2.4.6 p6 版本后,打开首页,显示 302 重定向过多,提示 ERR_TOO_MANY_REDIRECTS 错误。 逐一分析原因,及解决方法。 cloudflare 521 错误问题 521 错误码,代表服务已挂掉。即,我们搭建的 magento 服务无法响应 cloudflare 的请求。 但是这个说不通,因为我使用非 cloudflare 的域名解析,就能正常访问这个网站,只有 cloudflare 的域名无法访问。而 ...

阅读全文...

Magento 的错误日志查看

新安装的 Magento 最新 2.4.7-p1 版本,发现在管理后台无法添加商品。即,无法保存,界面上也没有任何的提示信息。于是只能看日志了。 在 Nginx 中没有任何的有价值的日志,只有一个 edit 的 302 跳转记录。 Magento 的日志存储在哪里 在 magento 安装根目录下的 var/log/ 目录下。例如,假设 magento 安装在 /var/www/html/magento/ 下,那么对应的日志目录就在 /var/www/html/magento/var/log/ 有哪些日志 共四个日志文件。 # ls var/log/ commerce-data-expor ...

阅读全文...

程序员一生的污点,我部署的 docker 容器中了挖矿木马 kdevtmpfsi

晚上,我在排查一台服务器上 docker 拉取镜像奇慢无比的原因。感觉有点卡,本来以为是用海外跳板机网络不好的原因,随手 top 命令看了一下。我直接跪地,泪流满面 load average: 4.06, 4.02, 4.00 (4核服务器) %Cpu(s): 99.6 %CPU %MEM TIME+ COMMAND 397.7 29.6 11,28 kdevtmpfsi 未知进程跑满了 CPU,心想坏了莫非中了传说中挖矿木马!Google 了一下,果然是! 那一刻,我顿感无颜见父老乡亲,没想到机智如我,也能中了挖矿木马。这真 TM 是程序员一生的耻辱,必将永世挂在生产 ...

阅读全文...

动手实践是学习 docker 的最佳方式,docker 安装 php composer

对我来说,docker 还是有点复杂,可能是用的太少,或者使用的场景也偏简单,遇到复杂一点配置,就感觉心里没底。好在这两天通过看了几个 docker 官方镜像的使用文档,及 github 上的开源 docker composer 配置文件,有了一点感觉。 动手实践是理解 docker 的最佳方式,光看书是不行的,我在微信读书上翻了两本书,实在看不下去。讲的晦涩,例子也不实用,没有实践价值。公众号上好多 docker 的文章,也是人云亦云,看起来就跑不通的样子。远不如照着 github 上的开源 docker 配置在服务器上试试。(由于近期国内 docker 镜像站点纷纷被封,本机实践的难度骤升 ...

阅读全文...

docker compose 安装 MySQL 8.0

首先要安装 docker,参考 Ubuntu Server 24.04 LTS 安装 docker 然后创建一个新目录,在目录下新建一个 docker-compose.yaml 文件。 配置文件内容如下: docker-compose.yaml services: mysql: image: mysql:8.0 ports: - 3306:3306 volumes: - ~/apps/mysql:/var/lib/mysql environment: - MYSQL_ROOT_PASSWORD=xxx - MY ...

阅读全文...

docker-compose.yaml 配置文件中的 version 字段

参考网上的配置,写了一段 MySQL 的 Docker Compose 配置 version: '3.9' services: mysql: image: mysql:8.0 ports: - 3306:3306 volumes: - ~/apps/mysql:/var/lib/mysql environment: - MYSQL_ROOT_PASSWORD=xxx 配置完成后,执行 docker compose up -d 把 MySQL 容器跑起来。 version is obsolete 在执行 docker ...

阅读全文...

Staticfile CDN 域名变更,免费的 CDN 服务真是让人头疼

在 staticfile.org 上为新项目搜索 js 库时,看到醒目的提示: 受org域名备案影响主域名更新为 staticfile.net , org老域名不再维护请用户尽快更换为net。 无比震惊,我一堆老项目都是使用的 org 那个域名,这要是换一遍域名得多费劲。 我只能逐一把能想到的项目,先逐一处理了。 批量替换命令 linux 命令将目录 templates 下所有文件中的 staticfile.org 替换为 staticfile.net find templates -type f -exec sed -i 's/staticfile.org/staticfile.net/ ...

阅读全文...