home
首页
search
搜索
login
登录
person_add
注册
GeekNote
home
首页
search
搜索
login
登录
person_add
注册
arrow_back
search
文章
评论
账号
排序: 最新
arrow_drop_down
相关
最新
最旧
steve lee
2025年04月26日 03:15
Ruby - Job scheduling lock with Redis
Introduction In a Rails app, sometimes you need to execute a long-running job and have to run it in the background. You might run into some special requirements to avoid duplicate jobs Problem 1 You must delete the user and all related data in CleanupDataJob job. It will take a long time, and to avoid some problems, such as database-locking, you need to keep only one user deleted at a time. Problem 2 You have the ProductSalesJob to fetch the sales data of the product and calculate some numbers. What if you had 100 of these jobs? Your…
咕咕乔
2025年04月25日 05:23
Clewdr 部署到 huggingface space
简介 Clewdr 是一个 claude 的逆向 api 项目。拥有前端可以直接添加 cookie 和修改设置 开始 创建空间 前往 https://hf.space 点击右侧的 New space 创建一个空间 填写详情页 上传 Dockerfile 下载 Dockerfile.huggingface 手动重命名为Dockerfile并上传 状态为 Running 后打开日志 LLM API Password 为请求 API 的密码 Web Admin Password 为前端管理密码 前端地址 复制你的项目名 它应该是这样的:3v4pyve7/clewdr2 现在将/改成-后面加上 .hf.space 拼接后就可以直接访问了 https://3v4pyve7-clewdr2.hf…
Rei
2025年04月22日 11:41
用 Hotwire Turbo 实现常驻侧边栏
最近用 Hotwire Turbo 改进了 Geeknote 的首页,减少了重复查询和渲染,想分享一下过程。 问题 Geeknote 的首页有个侧栏区域,区域内展示了一些次要内容,有热门标签、推荐用户,和社区统计等,未来还可能加一些广告代码或友情链接。 问题在于,这个区域的内容并不重要,但是需要的查询并不少。热门标签需要对近期标签使用进行统计排序,推荐用户需要关联当前用户是否关注,社区统计比较简单只是对几个表的总计数。在用户切换 Tab…
busylog
2025年04月17日 05:44
Mojibake problems
utf8 gbk 3bytes to 2bytes confusion. the classic example is EF BF BD -> 锟斤拷 (but sadly not decodeable). if you found the first character in the following table, decode utf8 and encode gbk. import sys for i in range(0xe0a0, 0xefbf + 1): if i >= 0xeda0 and i <= 0xedbf: continue if i & 0xf0c0 == 0xe080: sys.stdout.buffer.write(bytes([i // 256, i % 256])) if (i + 1) // 256 != i // 256: sys.stdout.buffer.write(b'\n') 酄唷啖啵啶啷唳唰啜喋嗒喃喱喹…
Rei
2025年04月15日 14:05
我的 kamal 生产环境配置
Kamal 是 Basecamp 开源的一款部署工具,它的工作模式类似 Capistrano,但使用 docker 解决依赖封装。它原始设计用于 Rails 应用,由于使用了 docker,只要应用可以 docker 化也能使用 kamal 部署。 Kamal 的使用率在 Rails 社区越来越高,问题也随之出现:Build 的过程遇到网络问题怎么办?Secret 应该存在哪里?怎么配置 CI/CD? 这些问题我在实践中也解决过,在此分享我的解决方案。方案不是唯一的,有其他方案欢迎在评论区留言。 本文假设你已经读过 Kamal 官方…
busylog
2025年04月13日 12:26
WoA on qemu (2025 ver)
prepare for macvtap. the default 52:54:00:12:34:56 mac address is unchanged and the windows instance would be activated by others' license. sudo ip link add link eth0 name macvtap0 type macvtap mode bridge ||: sudo sysctl -w net.ipv6.conf.macvtap0.autoconf=0 sudo sysctl -w net.ipv6.conf.macvtap0.disable_ipv6=1 sudo ip link set macvtap0 allmulticast on address 52:54:00:12:34:56 up ||: TAP=tap$(cat /sys/class/net/macvtap0/ifindex) sudo chown USER /dev/$TAP optional: share the sd card as virtio-blk (the user needs to be in group disk, and…
busylog
2025年04月11日 11:46
Use movefile in sysinternals to clean files with powershell
the PFRO functionality deletes files the next boot, before some applications start to use the file. Example (elevated): Get-Item C:\DumpStack.log | %{ movefile '/nobanner' $_.FullName '""' } $a = New-Object System.Collections.Generic.List[System.Object] Get-ChildItem -Recurse ($env:USERPROFILE + '\AppData\Local\Packages\Microsoft.Windows.ContentDeliveryManager_cw5n1h2txyewy\LocalState')| %{$a += $_.FullName} Get-ChildItem -Recurse ($env:USERPROFILE + '\AppData\Local\Microsoft\Windows\Explorer')| %{$a += $_.FullName} Get-ChildItem -Recurse ($env:USERPROFILE + '\AppData\Local\Microsoft\Windows\Caches')| %{$a += $_.FullName} Get-ChildItem -Recurse ($env:USERPROFILE + '\AppData\LocalLow\Microsoft\CryptnetUrlCache')|…
yuan
2025年04月08日 13:54
GPS 数据解析
最近研究 GPS 的数据解析,发现网上都是零零散散的知识,干脆整理一份完整点的出来。 卫星是怎么向设备发送数据的? 卫星数据并不会主动单独发给你设备,而是持续不断地广播导航信息。卫星发的是原始导航信号,包括:时间、位置、卫星状态等信息。数据速率非常低,例如 GPS L1 频段的数据速率是 50bps; 这些原始信号由接收机(GNSS 模块)接收、解码、计算后,再通过串口、USB 或其他接口输出成我们能理解的格式,比如 NMEA 字符串。 GNSS 模块(比如…
Rei
2025年04月06日 12:18
在 Rails 实现返回按钮
Geeknote 遵循 Material Design。Material Design 经常使用返回按钮,我在实现返回按钮的过程发现一些问题,在此分享。 返回按钮跟浏览器的原生返回按钮类似,但又有所不同: 如果直接打开一个页面,应该有默认返回的上级页面。 如果一个页面有多个入口,应该返回对应的入口。 从外链进入一个页面,不应该返回网站外部。 先看看有什么实现方式。 探索 固定链接 最容易实现的就是固定链接,例如文章页返回网站首页,评论页返回文章页。但如果用户从…
Rei
2025年04月03日 12:43
搭建反向代理降低网站网络延迟
最近我通过在香港机房搭建反向代理,将 Geeknote 的国内访问延迟从 300ms 降低到 50ms,以下分享解决过程。 问题产生 Geeknote 一开始部署在 Fly.io 的香港机房。Fly.io 的特色是在全球提供多个区域机房,通过任播网络使访问者访问靠近自己的边缘节点从而降低访问延迟。理想情况下,中国大陆访客的请求应该到达香港机房,获得最低访问延迟。 可惜的是,Fly 的任播网络优化并没有覆盖中国大陆,中国大陆访问可能会…
Rei
2025年03月31日 09:24
Geeknote 2.0 回顾和展望
经过漫长、痛苦和纠结的开发,Geeknote 终于以新形态出现在大家面前,我愿称之为 2.0 版本。可能有人会想,不就是一个冷门、不起眼,没什么技术含量的博客平台,有什么痛苦和纠结呢?我想借此机会分享一下心路历程,以及未来的展望。 Geeknote 第一篇帖子发布于2021年07月02日,竟然已经过了三年多的时间。开发这个网站的初衷,是想提供一个体验良好、网络友好的技术分享平台。回顾当时国内的同类平台,要不体验不好,页面乱糟糟的…
iamai
2025年03月31日 01:03
AGI在当前硬件条件下的智能上限(未来2-3年)总结
一、架构能力上限 主力架构:Transformer,仍是AGI发展主线,支持千亿~万亿级参数、多模态输入、百万token上下文。 新兴架构:RWKV、Mamba、RetNet等更高效、线性复杂度、适合长序列,提升算力利用率。 世界模型与神经符号混合尚处探索期,2-3年内或见于特定领域(如数学推理、物理建模)。 二、算力与瓶颈 Scaling Laws仍成立:性能随参数、数据、计算量呈幂律提升。 Chinchilla定律:更优训练策略是等比例扩展模型与数据。 瓶颈1:训练数据耗尽;瓶颈2…
HackerPie
2025年03月30日 06:02
灵活与专注——谈谈我这几个月来的远程工作体验
从今年 8 月开始,我入职了一家新公司,正式开始了我的远程工作。记得面试的时候,面试官问我如何看待远程工作,我说作为对比,我比较反感办公室里被人轻易打断我的工作,所以我第一个期待的是远程工作可以减少打扰。事实上,几个月下来,远程工作总体而言带给我的还是很多幸福感的,第一时间想到两个主要的点:灵活的工作地点,以及不被打扰的空间。 远程工作给我的幸福感 灵活的工作地点 工作地点…
HackerPie
2025年03月30日 05:53
PostgreSQL: 一个在 DDL 事务中同时增加列和移除外键索引触发的线上数据库死锁问题
上周将一个大功能发布到了线上环境,但是在半个多小时后收到数据库从库(我们使用的是 PostgreSQL 数据库)CPU 使用率接近 100% 的告警,同时 APM 监控表明部分 API 响应时间明显变长,并且相关 API 的错误追踪里会看到 Statement Timeout 错误。经过版本回滚后,数据库和服务恢复正常。后面是漫长的根因分析的过程,而最后我们确定的原因,竟是一个 Rails migration 触发(注意不是导致,因为死锁还得找到和它形成相互等待的另一方…
黄健宏
2025年03月30日 05:46
大家好,我是黄健宏,一位计算机技术图书的作者和译者,最近的新作是《Redis应用实例》和《SQL实战》。 刚来到Geeknote,很期待接下来和各位朋友交流,请大家多关照~!
yuan
2025年03月29日 08:05
聊聊代码的复杂性
回想起来,我的职业生涯有大半的时间都在有意无意的死磕这个问题。2016 年左右,开始觉得有必要写下来,因为总觉得不写下来的话,到该说的时候脑子里有许许多多的想法,临时却又说不出来什么。本文写于 2016-08-06,写得挺早,放着好多年。现在看起来,来来回回也没改动多少,发出来大家随缘看看。 复杂从哪来 代码当中包含的复杂性,我分为两部分来看:业务逻辑本身的复杂性,和代码结构的复杂性。 对有点规模的…
Rei
2025年03月19日 03:39
自建 docker 镜像服务
由于众所众知的原因,docker pull 在国内不好使。在开发环境会影响工作学习,在生产环境会影响产品部署。 国内有一些服务商提供了 Docker 镜像服务,但出于供应链安全的考虑,我不建议使用第三方服务。好在 Docker 官方提供了搭建镜像服务的工具,自己也可以很方便的搭建一个镜像服务。下面来看如何实现。 准备服务器 准备一台境外服务器,需要能在国内直接访问,云服务商不限。 在服务器上安装 docker。 启动镜像服务 为了方便管理配置,这里使用…
xfyuan
2025年04月14日 07:26
Monolith的新时代
本文已获得原作者( Svyatoslav Kryukov 、 Travis Turner )和 Evil Martians 授权许可进行翻译。原文讲述了 Inertia.js 这个新兴工具在 Rails 中的集成。对 Monolith 架构的促进,并以具体实例进行了演示。 原文链接:Inertia.js in Rails: a new era of effortless integration 作者:Svyatoslav Kryukov、 Travis Turner 站点:Evil Martians ——位于纽约和俄罗斯的 Ruby on Rails 开发者博客。 它发布了许多优秀的文章,并且是不少 gem 的赞助商。 Inertia.js 也是我去年在 RubyConf China 2024 上做的讲演主题的核心内容…
Rei
2025年02月26日 02:34
用 HTTP + JSON 直接访问 GraphQL API
有一天我需要访问 Fly 的 API 以支持自动签发 SSL 证书,Fly API 基于 GraphQL。我一向不太喜欢 GraphQL,精神洁癖让我不想增加一个 GraphQL Client 依赖。我想到 GraphQL 底层基于 HTTP 和 JSON,为何不直接访问接口?以下就是用 Ruby 实现过程。 Fly 前开发者认为“GraphQL 拖慢了所有人、所有事物的速度。” —— https://fly.io/blog/the-exit-interview-jp/ 首先 Graph QL API 需要提供一个 endpoint,对于 Fly API 来说是 https://api.fly.io/graphql: ENDPOINT = "https://api.fly.io/graphql" 可以…
busylog
2025年02月21日 11:45
OpenWrt snapshot in systemd-container
(apt install systemd-container) first boot, need to edit inittab to enable console: sudo machinectl pull-tar url/to/openwrt-armsr-armv8-rootfs.tar.gz openwrt --verify=no # or use machinectl copy-from / copy-to? or use nsenter -a -t PID /bin/sh #echo "console::askfirst:/usr/libexec/login.sh" | sudo tee -a /var/lib/machines/openwrt/etc/inittab sudo systemd-nspawn --boot -D /var/lib/machines/openwrt --network-veth the created veth will be called host0 in the container. see also openwrt as client. # in the openwrt container uci set network.host0=interface uci set network.host0.device=host0 uci set…
查看更多
home
首页
search
搜索
login
登录
person_add
注册