吭哧吭哧花了两个月,我写了一个兼容 Joplin 同步格式的笔记应用 - Ruslin
## 背景
主要是我发现 Chromium 系应用在的 Wayland 环境下,中文输入法不能用,不论是 fcitx5 还是 ibus 。(我从 KDE 切换到 Gnome 了)。
反正 Joplin 开源?要不我写个 Linux 的原生版本好了。
> 我简单调研了 Tauri ,目前感觉和 Electron 差不多(反正当时的输入法可用性也不高),应用大小我倒不怎么在意( Linux 上会共享 Electron 动态库)。
## 先开源的 Android 版本
事实上 Linux 版本基于 GTK4 + Relm4 开发,已经具备最基本( x100 )的功能的了。此时我尝试了一下能否复用代码到其他客户端,所以我尝试学习了一下 Android 开发。
到目前为止,手机上我已经基本不使用 Joplin 客户端了。
> 虽然我自己在和 Joplin 其他客户端一起用,一起同步笔记,但目前这个版本我还是不建议这么用。
源码地址: https://github.com/DianQK/ruslin-android 。
## Android 版本简介
🚧 目前处于 Pre-alpha 阶段,不建议在生产环境使用,请注意做好备份。 🚧
已支持的功能:
- ✅ 创建、修改和删除笔记
- ✅ 创建文件夹
- ✅ 简单的 Markdown 编辑器
- ✅ 使用 jieba-rs 完成的全文搜索(支持中文和英文)
- ✅ 使用自部署的 Joplin 服务器同步笔记
- ✅ 手动和自动同步
- 🚧 可能兼容 Joplin 的同步格式(不支持端到端加密)
## 接下来?
我也不知道什么时候达到一个生产环境基本可用的状态,可能至少要等上一年吧。
Linux 版本可能会在 3 月左右完成和 Android 的 v0.0.1-pre-alpha.1 功能接近吧。(希望如此)
开发这么费劲,主要是:
- Android & Rust & SQL & GTK4 这些我也只是最近才开始学习,写的本身就费劲
- 一周基本上也就周末可以写写代码
- 这俩月写代码这段时间额外占据了我看书的时间,所以接下来开发的时间会更少了(我得多拿出点时间看书了)
最后,可以复用的数据层代码在 https://gitlab.com/DianQK/ruslin-data 。
> 欢迎基于 ruslin-data 开发其他平台的应用。Windows 上我目前做了很基础的调研,希望 WinUI 3 的学习能顺利。
#Joplin #Android ### #Linux #版本 #ruslin #客户端 #同步 #代码 #开发
## 背景
主要是我发现 Chromium 系应用在的 Wayland 环境下,中文输入法不能用,不论是 fcitx5 还是 ibus 。(我从 KDE 切换到 Gnome 了)。
反正 Joplin 开源?要不我写个 Linux 的原生版本好了。
> 我简单调研了 Tauri ,目前感觉和 Electron 差不多(反正当时的输入法可用性也不高),应用大小我倒不怎么在意( Linux 上会共享 Electron 动态库)。
## 先开源的 Android 版本
事实上 Linux 版本基于 GTK4 + Relm4 开发,已经具备最基本( x100 )的功能的了。此时我尝试了一下能否复用代码到其他客户端,所以我尝试学习了一下 Android 开发。
到目前为止,手机上我已经基本不使用 Joplin 客户端了。
> 虽然我自己在和 Joplin 其他客户端一起用,一起同步笔记,但目前这个版本我还是不建议这么用。
源码地址: https://github.com/DianQK/ruslin-android 。
## Android 版本简介
🚧 目前处于 Pre-alpha 阶段,不建议在生产环境使用,请注意做好备份。 🚧
已支持的功能:
- ✅ 创建、修改和删除笔记
- ✅ 创建文件夹
- ✅ 简单的 Markdown 编辑器
- ✅ 使用 jieba-rs 完成的全文搜索(支持中文和英文)
- ✅ 使用自部署的 Joplin 服务器同步笔记
- ✅ 手动和自动同步
- 🚧 可能兼容 Joplin 的同步格式(不支持端到端加密)
## 接下来?
我也不知道什么时候达到一个生产环境基本可用的状态,可能至少要等上一年吧。
Linux 版本可能会在 3 月左右完成和 Android 的 v0.0.1-pre-alpha.1 功能接近吧。(希望如此)
开发这么费劲,主要是:
- Android & Rust & SQL & GTK4 这些我也只是最近才开始学习,写的本身就费劲
- 一周基本上也就周末可以写写代码
- 这俩月写代码这段时间额外占据了我看书的时间,所以接下来开发的时间会更少了(我得多拿出点时间看书了)
最后,可以复用的数据层代码在 https://gitlab.com/DianQK/ruslin-data 。
> 欢迎基于 ruslin-data 开发其他平台的应用。Windows 上我目前做了很基础的调研,希望 WinUI 3 的学习能顺利。
#Joplin #Android ### #Linux #版本 #ruslin #客户端 #同步 #代码 #开发
[全职远程工作 ] Varlens Android 安卓开发
我们是一支致力于创建优秀产品,为人们的生活和工作提升创造力的独立团队,旗下有三款自主设计和研发的产品,分别是: Zine ,Varlens 和 Lattics 。团队官网: https://auramarker.com
我们倡导 Enjoy Work ,Enjoy Life:
- 成员分布在多个城市,通过互联网紧密地协同工作,不打卡不坐班,以任务目标驱动;
- 倡导 Better ,Faster ,Smarter 的工作风格,不安排节假日加班,更倡导周末多陪伴家人和充电学习;
- 注重深思熟虑,提前计划,高效率高质量的一次性把工作做好,减少无谓的试错和可避免的弯路;
- 持续学习与持续创新,保持独立见解,了解行业与技术发展,但不盲从,持续改进自己的工作方法,不断提升工作效率与质量,追求零缺陷;
- 将良好的设计品味、先进的技术,以及具有乐趣的使用体验,三者融合在一起的产品理念,创作真正能够给人们的生活带来便利,激发人们的创造力和生活品质的产品,并由此获得可持续发展的收入。
------ 职位招聘 ------
## 全职 Android 高级工程师:1 位
职位说明:
- 参与团队的 Varlens 产品的安卓版本开发;
- 工作 3 - 5 年,本科以上学历,对软件非常有热情,有较强的自学能力;
- 非常精通 Java 和 Kotlin 语言,能够熟练地自主开发自定义的 Android 交互控件:
- 独立开发过三个以上 Android 应用,并熟悉客户端自动化测试;
- 非常熟悉客户端数据库和网络通信技术;扎实的软件基础和系统思维,并且有良好的编码风格,追求代码执行效率,了解各种数据结构和算法;
- 熟悉 Android 平台上 App 性能优化的工具和方法,具备较好的代码调试能力;
- 了解敏捷开发过程、了解 Scrum 和 DevOps 等软件工程方法和最佳实践;
- 良好的代码阅读能力和英文阅读能力,能阅读并理解英文资料;
- 能够长期的进行远程工作,良好的自我目标管理和自我情绪管理能力,有良好的抗压能力,有团队协作精神,和良好的审美;
- 非常熟悉开源社区,有自己的技术博客或者 github 开源项目的加分;
- 熟悉 图像处理 和 GPU 优化技术加分;
- 熟悉 JavaScript ,HTML5/CSS3 的加分;
- 熟悉 iOS 平台开发的加分;
## 以上职位可以享受的福利:
- 远程工作,与家人在一起,并且不将自己限定在某个城市和空间,可以自由旅行;
- 目标管理而非时间管理,可以自己更好的平衡工作和生活;
- 可以挑战一切认为不合理或者可以做的更好的地方,拥有很大发言权,团队会倾听你的高见;
- 工作出色会有激励股权,享受团队一起长期携手努力和成长的红利;
## 可能遇到的挑战:
- 长期远程工作对自身的沟通能力、理解能力、以及学习能力都是巨大的挑战,因为很多事情需要主动的沟通和交流,以及主动的学习,并非很多人适合;
- 长期的远程工作会带来孤独感,因此更适合已经组建了家庭,并且有着自己广泛兴趣爱好和成熟的社交圈子的人士。
如果对以上职位感兴趣的,欢迎联系我们,请将你的简历发至我们的招聘邮箱:hr#auramarker.com
#Android #工作 #熟悉 #团队 ### #能力 #良好 #远程 #职位 #加分
我们是一支致力于创建优秀产品,为人们的生活和工作提升创造力的独立团队,旗下有三款自主设计和研发的产品,分别是: Zine ,Varlens 和 Lattics 。团队官网: https://auramarker.com
我们倡导 Enjoy Work ,Enjoy Life:
- 成员分布在多个城市,通过互联网紧密地协同工作,不打卡不坐班,以任务目标驱动;
- 倡导 Better ,Faster ,Smarter 的工作风格,不安排节假日加班,更倡导周末多陪伴家人和充电学习;
- 注重深思熟虑,提前计划,高效率高质量的一次性把工作做好,减少无谓的试错和可避免的弯路;
- 持续学习与持续创新,保持独立见解,了解行业与技术发展,但不盲从,持续改进自己的工作方法,不断提升工作效率与质量,追求零缺陷;
- 将良好的设计品味、先进的技术,以及具有乐趣的使用体验,三者融合在一起的产品理念,创作真正能够给人们的生活带来便利,激发人们的创造力和生活品质的产品,并由此获得可持续发展的收入。
------ 职位招聘 ------
## 全职 Android 高级工程师:1 位
职位说明:
- 参与团队的 Varlens 产品的安卓版本开发;
- 工作 3 - 5 年,本科以上学历,对软件非常有热情,有较强的自学能力;
- 非常精通 Java 和 Kotlin 语言,能够熟练地自主开发自定义的 Android 交互控件:
- 独立开发过三个以上 Android 应用,并熟悉客户端自动化测试;
- 非常熟悉客户端数据库和网络通信技术;扎实的软件基础和系统思维,并且有良好的编码风格,追求代码执行效率,了解各种数据结构和算法;
- 熟悉 Android 平台上 App 性能优化的工具和方法,具备较好的代码调试能力;
- 了解敏捷开发过程、了解 Scrum 和 DevOps 等软件工程方法和最佳实践;
- 良好的代码阅读能力和英文阅读能力,能阅读并理解英文资料;
- 能够长期的进行远程工作,良好的自我目标管理和自我情绪管理能力,有良好的抗压能力,有团队协作精神,和良好的审美;
- 非常熟悉开源社区,有自己的技术博客或者 github 开源项目的加分;
- 熟悉 图像处理 和 GPU 优化技术加分;
- 熟悉 JavaScript ,HTML5/CSS3 的加分;
- 熟悉 iOS 平台开发的加分;
## 以上职位可以享受的福利:
- 远程工作,与家人在一起,并且不将自己限定在某个城市和空间,可以自由旅行;
- 目标管理而非时间管理,可以自己更好的平衡工作和生活;
- 可以挑战一切认为不合理或者可以做的更好的地方,拥有很大发言权,团队会倾听你的高见;
- 工作出色会有激励股权,享受团队一起长期携手努力和成长的红利;
## 可能遇到的挑战:
- 长期远程工作对自身的沟通能力、理解能力、以及学习能力都是巨大的挑战,因为很多事情需要主动的沟通和交流,以及主动的学习,并非很多人适合;
- 长期的远程工作会带来孤独感,因此更适合已经组建了家庭,并且有着自己广泛兴趣爱好和成熟的社交圈子的人士。
如果对以上职位感兴趣的,欢迎联系我们,请将你的简历发至我们的招聘邮箱:hr#auramarker.com
#Android #工作 #熟悉 #团队 ### #能力 #良好 #远程 #职位 #加分
请问高德地图有没有可以判断某个经纬度坐标是否在指定的地理围栏内部的 API?
找 API 找的太苦了~
我的地理围栏就是一个经纬坐标点的方圆 500 米。
这是高德地图开发相关文档(我没找到 o(╥﹏╥)o ):
https://lbs.amap.com/api/android-location-sdk/guide/additional-func/local-geofence#s5
https://lbs.amap.com/demo/sdk/location-geofence#android
找 API 找的太苦了~
我的地理围栏就是一个经纬坐标点的方圆 500 米。
这是高德地图开发相关文档(我没找到 o(╥﹏╥)o ):
https://lbs.amap.com/api/android-location-sdk/guide/additional-func/local-geofence#s5
https://lbs.amap.com/demo/sdk/location-geofence#android
Android 怎么才能读取/mnt/media_rw 下的 OTG 存储卡呢?
https://source.android.com/docs/core/storage/config-example?hl=zh-cn#android_5_x_both
官方说仅系统和 FUSE 守护进程可以访问该位置 media_rw 。*但我不知道为什么有些软件可以读取到它下面的目录*,比如/mnt/media_rw/F544_85C9 ,它索取的权限比如管理所有文件,我也索取了,但我直接 File(/mnt/media_rw)然后 list 返回的数组是 null ,我也不能直接通过 File(/mnt/media_rw/F544_85C9)来访问,显示不存在。
那些能访问的软件也没有提示访问 OTG 权限框,估计也没有用 usbManager.requestPermission(usbDevice, pendingIntent)这套。
(至于网上搜到的如 libaums 这个库,用不了,我也用 ES 文件测试了,ES 估计就是用的这个库,但是用不了,显示什么仅支持什么什么文件系统,我也从 Github 下了同样用这个库来读 OTG 存储卡的库,编译运行也显示不行,读不了这个读卡器存储卡,错误雷同,所以这个库在这个场景下可能是无效的)
https://source.android.com/docs/core/storage/config-example?hl=zh-cn#android_5_x_both
官方说仅系统和 FUSE 守护进程可以访问该位置 media_rw 。*但我不知道为什么有些软件可以读取到它下面的目录*,比如/mnt/media_rw/F544_85C9 ,它索取的权限比如管理所有文件,我也索取了,但我直接 File(/mnt/media_rw)然后 list 返回的数组是 null ,我也不能直接通过 File(/mnt/media_rw/F544_85C9)来访问,显示不存在。
那些能访问的软件也没有提示访问 OTG 权限框,估计也没有用 usbManager.requestPermission(usbDevice, pendingIntent)这套。
(至于网上搜到的如 libaums 这个库,用不了,我也用 ES 文件测试了,ES 估计就是用的这个库,但是用不了,显示什么仅支持什么什么文件系统,我也从 Github 下了同样用这个库来读 OTG 存储卡的库,编译运行也显示不行,读不了这个读卡器存储卡,错误雷同,所以这个库在这个场景下可能是无效的)
[分享] 一个基于 LLaMA 的 AI 聊天伴侣应用
最近开发了一款 AI 聊天应用,想和大家分享一下。这是一款基于 LLaMA 大语言模型的 AI 女友应用,支持语音对话和 AI 图片生成。
主要特色:
1. 丰富的角色设定
- 温柔的咖啡厅女仆
- 高冷的学生会长
- 神秘的哥特少女
- 活力四射的啦啦队长
- 等多个性格各异的角色
2. 自然的交互体验
- 支持语音对话(Google TTS)
- AI 实时图片生成
- 打字动画指示
- 流畅的界面动效
3. 智能对话系统
- 基于 LLaMA 模型
- 上下文理解
- 个性化回复
- 记忆对话内容
4. 精美的界面设计
- Material Design 风格
- 流畅的动画效果
- 简洁直观的操作
- 舒适的视觉体验
技术特点:
- 原生 Android 开发
- OpenRouter API 集成
- 本地 SQLite 存储
- SSL 安全认证
未来计划:
- 增加更多角色
- 提升对话智能度
- 优化图片生成
- 增强语音互动
应用已经上架 Google Play,欢迎下载体验:
[AI Girlfriend - Chat with AI]( https://play.google.com/store/apps/details?id=com.lightgamesstudio.aigirlfriend) - 一个基于 LLaMA 的智能聊天应用。
期待大家的反馈和建议,帮助我们做得更好~
#AI #Android #LLaMA #聊天机器人
最近开发了一款 AI 聊天应用,想和大家分享一下。这是一款基于 LLaMA 大语言模型的 AI 女友应用,支持语音对话和 AI 图片生成。
主要特色:
1. 丰富的角色设定
- 温柔的咖啡厅女仆
- 高冷的学生会长
- 神秘的哥特少女
- 活力四射的啦啦队长
- 等多个性格各异的角色
2. 自然的交互体验
- 支持语音对话(Google TTS)
- AI 实时图片生成
- 打字动画指示
- 流畅的界面动效
3. 智能对话系统
- 基于 LLaMA 模型
- 上下文理解
- 个性化回复
- 记忆对话内容
4. 精美的界面设计
- Material Design 风格
- 流畅的动画效果
- 简洁直观的操作
- 舒适的视觉体验
技术特点:
- 原生 Android 开发
- OpenRouter API 集成
- 本地 SQLite 存储
- SSL 安全认证
未来计划:
- 增加更多角色
- 提升对话智能度
- 优化图片生成
- 增强语音互动
应用已经上架 Google Play,欢迎下载体验:
[AI Girlfriend - Chat with AI]( https://play.google.com/store/apps/details?id=com.lightgamesstudio.aigirlfriend) - 一个基于 LLaMA 的智能聊天应用。
期待大家的反馈和建议,帮助我们做得更好~
#AI #Android #LLaMA #聊天机器人