求地图 beijing.osm.pbf 数据
想做一个应用需要一份相对准确的地图源数据,用来做一个导航应用。 用了网上开源的 OpenStreetMap 的数据,但是这份数据上有很多 beijing 的线路,是在建的未开通的道路,实际无法用来导航。
有没有哪些渠道已经改好的一份 pbf 数据,花钱买也可以,只要 beijing 的数据部分。
谢谢。
想做一个应用需要一份相对准确的地图源数据,用来做一个导航应用。 用了网上开源的 OpenStreetMap 的数据,但是这份数据上有很多 beijing 的线路,是在建的未开通的道路,实际无法用来导航。
有没有哪些渠道已经改好的一份 pbf 数据,花钱买也可以,只要 beijing 的数据部分。
谢谢。
分享一个好用的 i18n 插件:I18n Fast,我们团队内部也在用这个,帮作者做做推广
区别于市面上其他插件,这个插件可以自己写 js 代码去自定义国际化需求
优点:自由度高,可以自己写代码扩展功能,基本上可以满足所有需求和技术栈了
缺点:需要写 js 代码,不然没法用。不过可以参考作者给的示例代码改改就能用
感觉其他插件用着别扭可以研究研究这个
这里也是 Copy https://juejin.cn/post/7546664451485237282 这个文章里面的截图,有兴趣可以读一下原文。
回显效果:
cmd/ctrl + click
下钻跳转至 i18n 定义位置选中转换:
cmd + option + c
/ ctrl + alt + c
批量转换:
cmd + option + c
/ ctrl + alt + c
转换剪切板文本并粘贴:
cmd + option + v
/ ctrl + alt + v
遇到重复 i18n 时:
i18n-fast.conflictPolicy
配置来执行对应策略smart
模式,有超过一个 i18n 定义,所以弹出选择器自行选择:要复用的 key 、忽略(重新生成)、跳过更多i18n-fast.conflictPolicy
可选项参考配置
撤销:
功能测试(远程办公)
基本月薪:20-26 万 K 人民币+固定职级补贴+奖金等
3 轮面试(一二面技能三面谈薪)
工作职责: 1 、根据游戏功能设计文档编写测试用例、测试方案,执行测试用例,维护测试 BUG ; 2 、根据测试用例对游戏产品进行全面测试,撰写测试报告,提交测试结果,并对测试结果进行分析; 3 、对游戏产品质量进行实时监控; 4 、管理游戏缺陷,推动游戏缺陷的解决; 5 、准确、详实的描述 bug 产生的过程、bug 的现象,在修改过程中对 bug 进行跟踪; 6 、能对游戏提出有效优化建议,提高游戏体验。
技能要求: 1 、熟悉游戏测试理论和方法,具备至少五年以上游戏测试经验; 2 、熟悉游戏,热爱游戏、逻辑思维清晰和产品分析能力、能项目跟进; 3 、熟悉常用的测试方法和测试工具; 4 、有相关行业经验的,5 年以上工作经验 5 、做过交易所的优先考虑
福利待遇: 入职即享固定每月职级补贴 以技术职位 P 岗举例 P3 - P8 每月 6500-13500 新台币标准 入职即享设备及其他补贴等 入职即享固定每月考评奖金 入职即享每年劳健保补贴等 入职即享各项优秀鼓励奖金
另有女性带薪产假 98 天 另有男性陪伴产假期 3 天 另有超多福利以制度福利文档为准喔~
可选每天 8 小时月休 4 日(六日制)+每月带薪休假 2 天+固定传统假期等 (固定每天中午 2 小时午休+20 分钟下午茶时间)
(有兴趣可以联系邮箱: lebbiejanic@gmail.com )
非折腾党,但是以前看到过相关的折腾觉得很好玩,最近也遇到这样的问题了
公司的网太不稳定了,而且网速很慢,所以我都是开热点玩的,反正流量管够带宽还高
但是有的时候要用手机了又太麻烦了,想问问现在有什么插自己卡的,能用 clash 而且用起来比较稳定的随身 WIFI 推荐吗
国外访问速度 ok 就行
另外还有一个额外的问题
ClawCloud VPS 有类似腾讯云/阿里云后台面板的那个防火墙么?
[实验] 此文章由 Cursor 根据项目翻阅项目代码和文档后, 加上本人的一些信息输入自动生成, 我只改了几处明显的错误, 每处不超过一行
作为一名 iOS 开发者,我一直被两个问题困扰:重复的网络请求浪费资源,缓存策略难以精确控制。最近两个月,我决定用 AI 辅助编程的方式来彻底解决这些问题,最终开发出了一个名为Monstra的 Swift 性能框架。
整个过程让我重新思考了"编程"这个概念,也让我对 AI 协作开发有了全新的认识。今天想分享一下这次 AI 辅助开发的完整经历,包括遇到的坑、解决方案,以及一些意外的收获。
相信很多 iOS 开发者都遇到过这种情况:
// 场景:多个 ViewController 同时需要用户数据
class UserProfileViewController {
func viewDidLoad() {
API.fetchUserProfile { result in
// 处理结果
}
}
}
class SettingsViewController {
func viewDidLoad() {
API.fetchUserProfile { result in // 重复请求!
// 处理结果
}
}
}
class NotificationViewController {
func viewDidLoad() {
API.fetchUserProfile { result in // 又一个重复请求!
// 处理结果
}
}
}
结果:3 个页面同时加载,发出 3 个完全相同的网络请求。浪费流量,增加服务器负担,用户体验还差。
iOS 开发中的缓存问题同样让人头疼:
面对这些痛点,我决定开发一个专门的框架来彻底解决这些问题。但这次,我想尝试一种全新的开发模式:AI 辅助编程。
经过思考,我制定了一个明确的分工策略:
这样分工的好处是:我专注于最需要创造性思维的部分,AI 帮我处理那些重复性、规范性的工作。
基于对问题的分析,我设计了两个核心组件:
// 创建一个处理用户资料获取的任务
let userProfileTask = MonoTask<UserProfile>(
resultExpireDuration: 300.0 // 5 分钟缓存
) { callback in
// 实际的网络请求逻辑
API.fetchUserProfile { result in
callback(result)
}
}
// 多个地方同时调用,只会执行一次网络请求
Task {
let profile1 = await userProfileTask.asyncExecute() // 发起网络请求
let profile2 = await userProfileTask.asyncExecute() // 返回缓存结果
let profile3 = await userProfileTask.asyncExecute() // 返回缓存结果
}
// 批量获取用户帖子,自动合并重复 ID
let postManager = KVLightTasksManager<String, Post>(
config: .init(
dataProvider: .asyncMultiprovide(maximumBatchCount: 10) { postIDs in
return try await API.fetchPosts(ids: postIDs)
}
)
)
// 三个 ViewModel 请求重叠的帖子 ID ,自动批处理
postManager.fetch(keys: ["101", "102", "103"]) { id, result in
// 处理单个帖子结果
}
// 大文件下载,支持进度跟踪和取消
let downloadManager = KVHeavyTasksManager<URL, Data, Progress, CustomProvider>(
config: .init(
maxNumberOfRunningTasks: 2, // 最多同时 2 个下载
maxNumberOfQueueingTasks: 64
)
)
// 多个下载请求,自动队列管理
downloadManager.fetch(
key: fileURL,
customEventObserver: { progress in
print("下载进度: \(progress.fractionCompleted)")
},
result: { result in
// 处理下载结果
}
)
let cache = MemoryCache<String, UIImage>(
configuration: .init(
// 内存限制
memoryUsageLimitation: .init(capacity: 1000, memory: 500), // 500MB
// TTL 配置
defaultTTL: 3600.0, // 正常数据 1 小时过期
defaultTTLForNullElement: 300.0, // 空值 5 分钟过期
// 雪崩保护:随机化过期时间
ttlRandomizationRange: 60.0, // ±60 秒随机
// 内存成本计算
costProvider: { image in
guard let cgImage = image.cgImage else { return 0 }
return cgImage.bytesPerRow * cgImage.height
}
)
)
// 优先级缓存
cache.set(element: profileImage, for: "user-123", priority: 10.0) // 高优先级
cache.set(element: thumbnail, for: "thumb-456", priority: 1.0) // 低优先级
cache.set(element: nil, for: "missing-789") // 缓存"未找到"
// 智能获取
switch cache.getElement(for: "user-123") {
case .hitNonNullElement(let image): // 找到有效图片
displayImage(image)
case .hitNullElement: // 找到"未找到"记录
showPlaceholder()
case .miss: // 缓存未命中
loadImageFromNetwork()
case .invalidKey: // 键值验证失败
handleInvalidKey()
}
使用 Cursor 进行 AI 辅助开发最大的感受是:AI 比我想象的更"理解"代码。
当我写完核心逻辑后,Cursor 会提出改进建议:
我的原始代码:
func removeExpiredElements() {
for key in keys {
if isExpired(key) {
remove(key)
}
}
}
Cursor 的优化建议:
func removeExpiredElements() -> Int {
let keysToRemove = keys.filter { isExpired($0) }
keysToRemove.forEach { remove($0) }
return keysToRemove.count // 返回清理数量,便于监控
}
这种优化不仅提高了性能,还增加了实用功能,完全是我没想到的角度。
最让我惊讶的是 AI 生成的单元测试。我只写了基本的功能测试,但 AI 补充的测试用例覆盖了很多我忽略的边界情况:
// AI 生成的边界测试
func testConcurrentAccessWithSameKey() {
// 测试多线程同时访问同一个 key
}
func testMemoryPressureEviction() {
// 测试内存压力下的驱逐策略
}
func testTTLRandomizationPreventsStampede() {
// 测试 TTL 随机化防止缓存雪崩
}
func testNullValueCaching() {
// 测试空值缓存的各种场景
}
在开发过程中,我尝试了多个 AI 模型,发现它们确实有不同的"专长":
经过两周的深度协作,我总结出几个关键的协作技巧:
❌ 模糊的描述:
"我写了一个缓存, 帮我 review 一下"
✅ 精确的描述:
"我写了一个线程安全的内存缓存,支持 TTL 过期,优先级 LRU 淘汰策略,能够缓存 nil 值,防止缓存雪崩,并且可以设置内存使用上限, 请帮我 review 一下代码逻辑正确性 public API 的规范性以及合理性"
不要指望 AI 一次性生成完美代码,而是通过多轮对话逐步优化:
第 1 轮:实现基本功能
第 2 轮:添加异常处理
第 3 轮:优化性能
第 4 轮:完善文档
第 5 轮:添加单元测试
对于关键代码,我会让不同的 AI 模型都 review 一遍,综合它们的建议:
为了验证框架的实用性,我开发了 5 个真实场景的示例:
// 应用启动时的配置加载,支持重试和永久缓存
let configManager = AppConfigurationManager()
configManager.initializeModule { result in
switch result {
case .success:
print("配置加载成功")
case .failure(let error):
print("配置加载失败: \(error)")
}
}
// 单用户资料管理,支持 TTL 刷新和强制更新
let profileManager = UserProfileManager()
profileManager.setUser(firstName: "Alice") { result in
// 设置完成后自动刷新缓存
}
// 三个 ViewModel 同时请求重叠的帖子 ID ,自动批处理
let repository = PostRepository()
repository.getPostsBatch(ids: ["101", "102", "103"]) { results in
// 批量处理结果
}
// Alamofire + AFNetworking 双 Provider 支持,断点续传
let downloadManager = AlamofireManager(config: .init())
let result = await downloadManager.asyncFetch(
key: fileURL,
customEventObserver: { progress in
updateProgressBar(progress.fractionCompleted)
}
)
// ZIPFoundation 集成,进度跟踪
let unzipManager = UnzipManager(config: .init())
unzipManager.fetch(
key: zipFileURL,
customEventObserver: { event in
switch event {
case .progress(let percent):
print("解压进度: \(percent * 100)%")
}
}
)
// 10 个并发请求测试
let startTime = CFAbsoluteTimeGetCurrent()
await withTaskGroup(of: Void.self) { group in
for i in 0..<10 {
group.addTask {
let result = await userTask.asyncExecute()
print("Task \(i) completed: \(result)")
}
}
}
let duration = CFAbsoluteTimeGetCurrent() - startTime
print("总耗时: \(duration)s, 网络请求次数: 1")
结果:10 个并发请求,只发出 1 个网络请求,所有回调都收到相同结果。
// 缓存命中率测试
let cache = MemoryCache<String, Data>(capacity: 1000)
// 写入 10000 个条目
for i in 0..<10000 {
cache.set(element: randomData(), for: "key\(i)")
}
// 随机访问测试
var hitCount = 0
for _ in 0..<1000 {
let key = "key\(Int.random(in: 0..<10000))"
if case .hitNonNullElement = cache.getElement(for: key) {
hitCount += 1
}
}
print("缓存命中率: \(Double(hitCount) / 1000.0)")
通过这次深度的 AI 协作开发经历,我对程序员这个职业有了新的思考:
我认为未来的编程将是**"人机协作"**模式:
程序员 = 产品经理 + 架构师 + 质量把控者
AI = 编码助手 + 测试工程师 + 文档工程师
程序员的价值将更多体现在创造性思维和判断决策上,而不是纯粹的编码技能。
这个项目现在已经在 GitHub 开源:**github.com/yangchenlarkin/Monstra**
Swift Package Manager:
dependencies: [
.package(url: "https://github.com/yangchenlarkin/Monstra.git", from: "0.1.0")
]
CocoaPods:
pod 'Monstra', '~> 0.1.0'
这次 AI 辅助开发的经历让我深刻体会到:AI 不是要取代程序员,而是要让程序员变得更强大。
通过合理的分工协作,我们可以:
如果你还没有开始尝试 AI 辅助编程,我强烈建议你现在就开始。这不仅仅是一个工具,更是编程思维的升级。
Examples/
目录包含 5 个完整示例关于作者:iOS 开发工程师,专注于移动端性能优化和架构设计。这是我第一次深度尝试 AI 辅助开发,也是第一个开源项目。如果这个项目对你有帮助,欢迎在 GitHub 上给个⭐️,也欢迎提出改进建议!
如果你有任何问题或想要交流 AI 辅助开发的经验,欢迎在评论区讨论,或者在 GitHub 上提 Issue 。让我们一起探索编程的未来!
上面的内容都是 Cursor 写的(甩锅 ing), 我这里补充几点:
系统:Windows11LTSC (不忘初心深度精简 2025-8-16 版本)(母版是 win11 的 24H2 )
硬件:i5-11260H RTX3050
显示:笔记本外接显示器,仅在外接屏显示,外接屏分辨率为 3440*1440 ,win11 的系统缩放是 165%,文本大小是 130%。
Telegram 版本:5.16.6 ( Telegram Desktop )
安装路径:D:/APP/telegram/Telegram Desktop/
具体表现:
[2025.09.08 05:36:13] Launched version: 5016006, install beta: [FALSE], alpha: 0, debug mode: [FALSE]
[2025.09.08 05:36:13] Executable dir: D:/APP/telegram/Telegram Desktop/, name: Telegram.exe
[2025.09.08 05:36:13] Initial working dir: C:/Users/8975/
[2025.09.08 05:36:13] Working dir: D:/APP/telegram/Telegram Desktop/
[2025.09.08 05:36:13] Command line: D:\APP\telegram\Telegram Desktop\Telegram.exe -safe
[2025.09.08 05:36:13] Executable path before check: D:/APP/telegram/Telegram Desktop/Telegram.exe
[2025.09.08 05:36:13] Logs started
[2025.09.08 05:36:13] App Info: Shortcut validated at "C:/Users/8975/AppData/Roaming/Microsoft/Windows/Start Menu/Programs/Telegram Desktop/Telegram.lnk"
[2025.09.08 05:36:13] AppUserModelID: Telegram.TelegramDesktop
[2025.09.08 05:36:13] Using DirectX compiler 'D:\APP\telegram\Telegram Desktop\modules\x64\d3d\d3dcompiler_47.dll'.
[2025.09.08 05:36:13] Connecting local socket to Global\3a28ac47dc80d001e315755e15f61f4c-{87A94AB0-E370-4cde-98D3-ACC110C5967D}...
[2025.09.08 05:36:13] This is the only instance of Telegram, starting server and app...
[2025.09.08 05:36:13] Moved logging from 'D:/APP/telegram/Telegram Desktop/log_start1.txt' to 'D:/APP/telegram/Telegram Desktop/log.txt'!
[2025.09.08 05:36:13] Old start log 'log_start0.txt' found, deleted: [TRUE]
[2025.09.08 05:36:13] Opened 'D:/APP/telegram/Telegram Desktop/tdata/working' for reading, the previous Telegram Desktop launch was not finished properly :( Crash log size: 0
[2025.09.08 05:36:13] Global devicePixelRatio: 1
[2025.09.08 05:36:13] QT_DPI_ADJUSTMENT_POLICY: AdjustDpi
[2025.09.08 05:36:13] Primary screen DPI: 96, Base: 96.
[2025.09.08 05:36:13] Computed screen scale: 100
[2025.09.08 05:36:13] DevicePixelRatio: 1
[2025.09.08 05:36:13] ScreenScale: 100
[2025.09.08 05:36:17] Launched version: 5016006, install beta: [FALSE], alpha: 0, debug mode: [FALSE]
[2025.09.08 05:36:17] Executable dir: D:/APP/telegram/Telegram Desktop/, name: Telegram.exe
[2025.09.08 05:36:17] Initial working dir: D:/APP/telegram/Telegram Desktop/
[2025.09.08 05:36:17] Working dir: D:/APP/telegram/Telegram Desktop/
[2025.09.08 05:36:17] Command line: D:\APP\telegram\Telegram Desktop\Telegram.exe
[2025.09.08 05:36:17] Executable path before check: D:/APP/telegram/Telegram Desktop/Telegram.exe
[2025.09.08 05:36:17] Logs started
[2025.09.08 05:36:17] App Info: Shortcut validated at "C:/Users/8975/AppData/Roaming/Microsoft/Windows/Start Menu/Programs/Telegram Desktop/Telegram.lnk"
[2025.09.08 05:36:17] AppUserModelID: Telegram.TelegramDesktop
[2025.09.08 05:36:17] Using DirectX compiler 'D:\APP\telegram\Telegram Desktop\modules\x64\d3d\d3dcompiler_47.dll'.
[2025.09.08 05:36:17] Connecting local socket to Global\3a28ac47dc80d001e315755e15f61f4c-{87A94AB0-E370-4cde-98D3-ACC110C5967D}...
[2025.09.08 05:36:17] Socket connected, this is not the first application instance, sending show command...
不忘初心的深度精简的 win11LTSC2025-3-15 的那个版本的系统在另一台电脑都可以用 TG 。 为什么这台电脑怎么就不行呢……。
对了 2025-3-15 的那个系统的母版是 win11 的 LTSC 。然后现在遇到问题的系统( 2025-8-16 )的母版是 win11 的 24H2 。既然母版都不是 24H2 为啥还要叫 LTSC……
发现在目前还没有成套有关 Claude code 的 hub 站,自己这两天收集了一些资料整理成一个文档站 ClaudeCodeHub 。
官方文档更多的是大而全,再就是一些文章比较零散,缺少一些案例和模板等实用性的内容。文档站刚起步,做的不好欢迎吐槽。没有任何卖课、或者引流中转站的内容,纯纯就是想做一些资料的收集和分享,大家放心哈。
技术栈:nextjs + nextra
本网站由 Claude code 全力支持,😄
代验证 figma 教育版本一年 另外提供已验证 figma 教育版本成品号可换绑自己邮箱 并且适配最新政策 从 8 月 27 日起所有新团队必须走 SheerID 验证,现有用户也需在 9 月 29 日前重新认证!否则自动降回免费版本 官方政策公告链接 https://help.figma.com/hc/en-us/articles/360041061214-Figma-for-Education
需要联系 tg@sexkxd 明盘 25 接批发
一个小项目 类似一个网上商城 线下有人去给大家推广 支持商品二维码,购买成功后给推广人返佣金
也支持给推广人定制定制一批商品,做二级商城,支持二级商城的二维码推广
有没有类似的源码,谢谢
RT.领导微信丢了个图片过来,说让 AI 生成 3D MAX 或者 c4d 文件。。。给我干蒙了。。。现在 AI 已经牛逼到一张糊图就能跑出 3D 模型文件的地步了么?
https://noki-maker.github.io/poeticOrder/
默认古诗是白居易的《问刘十九》,玩家可自定义古诗(记得换行)。
稳定币、rwa 等概念,自认为未来是一个方向。 但是很少看到或者我没看到过有人使用稳定币进行支付。个人认为多种因素,其中一个因素是钱包太难用了。 是否可以搞一个类似 pos 记的机器,传输商家收款方的地址以及交易相关信息,实现一个像欧美人那样,手机 nfc 支付的支付方式?从而在基础设施上让大众更能接受稳定币?
vps 是之前很火的灵车 claw ,hk 迁到新加坡的难民。
今天早上发现 vps 无法访问了,ping 不通、ssh 超时、web 服务无响应,一开始以为是墙的问题,后来用外面跳板机也访问不了,然后在线测试,全球都访问不了。
登录 claw 后台,显示状态正常。没有头绪,乱点一通,结果发现监控指标里面很异常,cpu 和磁盘 io 都很高,网络流量正常
https://imgur.com/kPSB7bq https://imgur.com/d1Xn6KM https://imgur.com/HFrnmFv
怀疑是不是有什么服务异常,或者被挂马了之类的,于是通过网页执行了重启(上面数据最后降下来就是重启的结果)。然后就悲剧了,所有远程探测都不通了。
最后无意间发现通过网页的控制台还能连上,进去后,发现系统也不正常,通过 systemctl 管理的服务都没有启动(所以 ssh 和 web 服务访问不了),ip address 发现网卡都没启动(状态 down ),mount 发现磁盘都是只读状态。
用ip link set ens5 up
可以手动启动网卡,分配 dhcp ip 后,也可以 ping 通。但是重启后会恢复原样。
现在怀疑问题源头在磁盘只读上,就是不知道原因是什么,是持续的高 io 导致磁盘坏了?还是被 claw 拔网线了?发了工单,也一直没有人回复。
有没有懂哥帮忙分析一下?现在只剩下 console 可以连上,有没有什么排查手段可以用?
通过访问链接你就可以打开这个简历制作工具,因为写简历需要大量输入,所以我更推荐你用 Pc 来访问。打开后你会看到一个初始的模板,这是我心目中的一个好的程序员的简历,内容简洁,条理清晰。
github 地址,拜托给个 star~~
当鼠标悬浮到某一个模块时,右边会出现一个小笔,点击它会弹出表单用来修改内容。
管理模块按钮可以让你添加新的模块或者删除模块。每个模块都可以选择两种编辑器,分别是“文本编辑器”、“时间线编辑器”
“文本编辑器”就是一个普通的文本域,图片里“个人优势”这一部分就是用“文本编辑器”输入的。如果你对工作经历、项目经历有一些排版需求可以使用“时间线编辑器”,支持编辑标题、副标题、开始结束时间等。
不需要害怕编辑的内容丢失,刷新页面后内容也还在,因为该编辑器会自动保存。如果你内容编辑坏了可以通过清空按钮返回初始状态。
预览&导出按钮会引导你通过浏览器自带的打印功能保存为 pdf 。
office/wps 这类办公软件调整格式、找模板太麻烦了。wps 提供简历编辑工具但是需要开通会员。
网上可以找到一堆功能类似的简历模板,但他们要么收费、要么让我注册登录、再或者是关注 xx 公众号。都很不爽。
最重要的是隐私保护,写简历必然会填写一些隐私信息,我不想个人隐私被不信任的服务收集,所以这一个纯前端项目,0 个网络请求。
另外我比较看重自由度,比如某直聘的简历编辑器个人信息有哪些字段是固定的,这让我这个强迫症很难受。另外自己写简历编辑工具可以自己随意定制样式。
暂时不想。因为目前这个样式是我个人最喜欢的。
如果你想自定义样式,你可以在源码src/components/theme
文件中修改 css 。
safari 浏览器导出位置如图所见。
如果你一定要用手机来操作,那我只能告诉你手机端的 safari 怎么搞。
长按下面的预览图,预览图就会放大,点击放大后的预览图 iphone 就会自动生成 pdf 。缺点是这么生成的 Pdf 会在底部附有网址等元信息,但只要能成功到处就问题不大。
b 站私信我、github 提 issue 、发邮件都可以。
b 站账号、邮箱地址都可以在我个人网站里找到。
去了趟线下店,iWatch s9 表冠上有点小划痕,在光线好点情况下才能看到
也没测量,扣了 100 块钱,问了线下员工,划痕大于 5 mm 就算
爱回收投诉专员(常州打来的)的回复,有划痕都算,这个所谓的专员感觉是做公关的
疑问:那么点表冠,线下员工肉眼怎么分辨出 5 mm 的
京东爱回收上下单的,本来 1200 ,加券会有 1480 ,最后 1100 成交的