网上冲浪周刊第37期

欢迎阅读第37期技术资讯!欢迎阅读本期技术资讯!在软件开发领域,Twitter 分享了 Compose 开发规范和检查,助您避免常见错误;Android Studio Iguana 发布了新版本,带来了 AppQualityInsights 中的版本控制、Compose UI 检查和预览的渐进式渲染等新特性。工具推荐方面方面,我们介绍了高性能分布式存储数据库 Garnet,可无缝替换 Redis;类似 uTools 的工具 Fluent Search,可提升您的工作效率;软件下载网站,助您找到所需软件;Windows 白噪音应用 Ambie,可帮助您集中注意力、睡眠和放松;Mac 翻译和 OCR 软件 Bob,可轻松进行文本翻译和识别;跨平台划词翻译和 OCR 软件 pot,以及开源划词翻译软件 TTime,让您在不同平台也能轻松进行划词翻译和 OCR 操作。宝藏信息方面,分享了无限制创建 Gmail 小号的方法,免费的闯关式 SQL 自学教程网站 SQL 之母,以及本地部署免费的 GPT3.5-API的aurora。

封面图 宁波四月·2024


欢迎来到第37期 !😄

期待您通过RSS订阅本博客:https://www.lifeee.top//atom.xml

技术

推荐阅读

  • Twitter 的 17 条 Compose 开发规范和检查:帮你避坑~ :文章翻译自Twitter官方的Compose规则文档,分享了Twitter在使用Compose进行开发过程中总结出的一套最佳实践和规则。这些规则覆盖了状态管理、可组合函数的使用、参数定义、CompositionLocals、Modifiers等多个方面,旨在提高代码质量和可维护性。

    文章详细介绍了每一条规则的内容、目的和实施方法,包括但不限于:

    1. 保持状态的提升,避免向下传递ViewModels或State实例。
    2. 使用@Immutable注解确保数据的不可变性。
    3. 避免使用不稳定的集合。
    4. 不使用可变类型作为函数参数。
    5. 可组合函数不应同时发射布局和返回结果。
    6. 避免发射多片段的布局节点。
    7. 为CompositionLocals和预览注解使用合适的命名。
    8. 明确声明可组合函数之间的依赖关系。

    文章还提到了如何使用ktlint和Detekt工具来集成和执行这些规则检查,以及如何将自定义的CompositionLocal添加到允许列表中。

  • 使用 ML Kit 文档扫描器 API 轻松将文档扫描功能添加至您的应用 :文章宣布了ML Kit文档扫描器API的推出,这是一个全新的API,它允许开发者在不具备机器学习知识的情况下,无缝集成由机器学习驱动的文档扫描功能。该API提供了以下优势:

    • 高质量且一致的用户界面,用于数字化处理实体文档。
    • 精准的角点和边缘检测技术,实现精确的文档检测。
    • 用户可以裁剪扫描的文档、添加滤镜,并去除瑕疵。
    • 数字化文件可以以PDF和JPEG格式发送回应用。
    • 设备端处理,保护用户隐私。
    • 无需相机权限的完整解决方案。
  • 移动端APP版本治理:文章提出了一系列方案来提升版本更新率,包括升级交互设计、提醒策略、提示文案、更新渠道、触达投放和其他策略。这些方案旨在通过不同的方式提醒和引导用户更新到最新版本。

    最后,文章建议制定流程SOP,形成一个完整的版本治理策略,以实现自动化和流程化的版本更新管理。

  • 如何有效听播客?分享我的播客管理流~ 作为一个播客深度爱好:文章分享了作者作为播客深度爱好者如何有效管理和利用播客内容进行自我提升的方法和工具。作者提到了具体操作步骤,包括在谷歌应用商店下载插件、在小宇宙复制播客链接、使用浏览器扩展程序下载音频、上传到飞书妙记或通义听悟进行文字转换。最后,作者会整理笔记并提炼知识点,放入Notion知识库中,以便最大程度吸收所听内容。

  • Android Studio Iguana | 2023.2.1 发布,快来看看有什么更新吧 :文章介绍了Android Studio Iguana版本(2023.2.1)的更新内容,包括AppQualityInsights中的版本控制、Compose UI检查和预览的渐进式渲染、BaselineProfiles向导和支持Gradle版本目录等新特性。

  • Flutter 组件 | 手牵手,一起走 CompositedTransformFollower 与 CompositedTransformTarget :文章首先介绍了CompositedTransformTarget和CompositedTransformFollower这两个Flutter组件的作用和用途。作者通过分析Slider组件的源码,解释了这两个组件如何在Slider中被用来处理Overlay提示框的显示和位置变换。

    作者提供了几个使用这两个组件的精简案例,展示了如何通过CompositedTransformFollower和CompositedTransformTarget实现Overlay提示信息的显示和隐藏,以及如何控制Overlay的相对位置。案例中使用了LayerLink来建立目标组件和跟随组件之间的连接,并通过设置对齐方式、偏移量和锚点来控制Overlay的位置。

    文章还讨论了变换一致性的问题,指出使用这两个组件可以确保Overlay在滑动、缩放、旋转等操作中与目标组件保持一致的变换关系,无需进行复杂的计算。

    最后,作者指出CompositedTransformFollower并不仅限于Overlay使用,也可以在Stack中用于普通组件之间的绑定关系,尽管在普通组件间这并不是必要的。

  • 周刊(第8期):技术配图的一些心得 - codedump的网络日志:本文分享了作者在技术配图方面的心得体会,强调了配图在技术沟通中的重要性,并通过区分、联系、组合等多个原则举例说明如何有效地制作和运用技术配图。

  • 当 App 有了系统权限,真的可以为所欲为? :文章讨论了一个热门的Android App如何利用Android系统漏洞获得系统权限,并列举了App在获取权限后所做的一系列行为。这些行为包括自启动和关联启动的修改、通知权限的开启、监听通知内容、获取用户使用手机的信息、修改系统设置等。文章还提到了App对不同手机厂商的特定处理,如华为、Oppo、Vivo和Xiaomi。

  • Flutter 新一代混合栈管理框架—— Fusion 让混合开发如此简单 :文章详细介绍了Fusion框架,这是一个旨在帮助开发者在使用Flutter与Native进行混合开发时减少两者之间的隔阂,提升开发体验的框架。Fusion采用引擎复用方案,确保APP在多次跳转中始终只有一份FlutterEngine实例,从而提高性能和降低内存占用。

    Fusion解决了混合开发中常见的一些问题,如状态栏图标颜色显示不正确、任务界面应用名称不显示等,并彻底解决了黑屏、白屏、闪屏等问题。此外,Fusion支持应用在后台被系统回收后所有Flutter页面的正常恢复。

    文章还提供了Fusion的使用指南,包括初始化、Flutter容器的创建、路由API、FlutterPlugin注册、自定义Channel、生命周期监听、全局通信以及返回拦截等功能的实现方法。Fusion目前支持Android和iOS平台,并正在适配纯鸿蒙平台。



有趣的工具

高性能的分布式存储数据库 Garnet , 无缝替换Redis

Garnet,这是一个由微软研究院开发的新型远程缓存存储系统,基于C# .NET 8.0构建。Garnet的设计目标是实现极速、可扩展和低延迟的性能。它支持单节点线程扩展、分片集群执行,以及复制、检查点、故障转移和事务处理功能。Garnet可以在主内存和分层存储(如SSD和Azure存储)上运行,并提供丰富的API接口和强大的可扩展性模型。

Garnet使用Redis的RESP协议作为主要通信协议,因此可以无缝替换Redis,而无需修改客户端代码。与其他开源缓存存储相比,Garnet在性能、延迟、可扩展性和持久性方面都有显著提升。尽管Garnet是一个研究项目,但其质量和稳定性已经得到了微软内部团队的认可和部署。

优势:

  • Garnet 采用流行的 RESP 线路协议作为起点,这使得可以从当今大多数编程语言(例如 C# 中的 StackExchange.Redis)中可用的未经修改的 Redis 客户端使用 Garnet。
  • 相对于同类开源缓存存储,Garnet 通过许多客户端连接和小批量提供更好的吞吐量和可扩展性,从而节省大型应用程序和服务的成本。
  • Garnet 使用启用了加速 TCP 的Azure VM 展示了极低的客户端延迟(在 99.9% 时通常低于 300 微秒),这对于现实场景至关重要。
  • Garnet 基于最新的 .NET 技术,具有跨平台、可扩展和现代化的特点。它被设计为易于开发和发展,而不会牺牲常见情况下的性能。我们利用 .NET 丰富的库生态系统来扩展 API,并提供开放的优化机会。由于我们对 .NET 的精心使用,Garnet 在 Linux 和 Windows 上都实现了最先进的性能。

Garnet 实现了广泛的 API,包括原始字符串(例如,获取、设置和密钥过期)、分析(例如,HyperLogLog 和 Bitmap)和对象(例如,排序集和列表)操作。它可以以客户端 RESP 事务和我们自己的 C# 服务器端存储过程的形式处理多密钥事务,并允许用户在原始字符串和新对象类型上定义自定义操作,所有这些都以 C# 的便利性和安全性实现,导致开发自定义扩展的门槛较低。

Garnet 使用快速且可插拔的网络层,支持未来的扩展,例如利用内核旁路堆栈。它使用强大的 .NET SslStream 库支持安全传输层安全 (TLS) 通信以及基本访问控制。 Garnet 的存储层称为 Tsavorite,是从我们之前的开源项目 FASTER 中分叉出来的,包括强大的数据库功能,例如线程可扩展性、分层存储支持(内存、SSD 和云存储)、快速非阻塞检查点、恢复、操作日志记录以实现持久性、多键事务支持以及更好的内存管理和重用。最后,Garnet 支持集群操作模式,支持分片、复制和动态密钥迁移。

https://microsoft.github.io/garnet/docs/benchmarking/overview 网站上展示了一些关键结果,将 Garnet 与领先的开源缓存存储进行比较。

开源地址:https://github.com/microsoft/garnet


Fluent Search 可以轻松搜索正在运行的应用程序、浏览器选项卡、文件和应用程序内内容,专供 Windows 10/11 用户使用。搜索标签可让您轻松过滤搜索结果。使用搜索标签查找特定书签、特定格式的文件、特定搜索引擎的网页结果等。
Fluent Search 使用先进的机器学习模型来了解您的使用模式并根据您的常用工作流程建议结果。
搜索屏幕让您无需鼠标即可使用计算机。在屏幕上的每个可点击对象上,Fluent Search 都会显示一个可以使用键盘触发的标签。

官网:https://fluentsearch.net/

微软应用商店:https://apps.microsoft.com/detail/9nk1hlwhnp8s?hl=zh-cn&gl=HK: Fluent Search 适用于 Windows 10/11,可从 Microsoft Store 下载。

Twitter:Fluent Search (@FluentSearch) / X (twitter.com)


软件下载网站 https://filecr.com/

https://filecr.com/ 是一个软件下载网站,可下载Windows、macOS、Android应用的正版应用和开心版应用。

网址:https://filecr.com/


Ambie: Windows平台白噪音应用

Ambie 是一款播放白噪音和自然声音的应用程序,可帮助您集中注意力、睡眠和放松。对于许多人来说,在完成任务时有背景噪音有助于集中注意力。 Ambie 有一系列不错的内置声音可供选择,例如雨声和海浪声,可以帮助您。这些也可以用来帮助您睡眠、放松和减压。如果您从 Microsoft Store 下载 Ambie,您将可以访问在线声音目录,您可以下载这些声音来扩展您的库。

微软应用商店下载:https://apps.microsoft.com/store/detail/ambie-white-noise/9P07XNM5CHP0?cid=ambierepo

开源地址:https://github.com/jenius-apps/ambie


Bob 翻译 & OCR 软件 Mac平台

Bob是一款功能强大的翻译和OCR软件,专为macOS用户打造。它提供了一种简便的方式来在任何应用程序中进行文本翻译和识别,无需离开当前正在使用的程序。这意味着用户可以即用即走,无需中断工作流程,提高了工作效率。

该软件的特点是简单、快捷和高效,它通过一个直观的界面使用户能够轻松地进行翻译和OCR操作。Bob还提供了一个快速上手指南,帮助新用户快速了解如何使用该软件。

主要特性:

  • 翻译功能:划词翻译、截图翻译、输入翻译、翻译多开、自定义插件、自动识别语种、驼峰拆分、蛇形拆分、AppleScript 调用、PopClip 调用
  • OCR 功能:截图 OCR、静默截图 OCR、访达选图 OCR、离线识别、连续识别、二维码识别、自动复制、智能分段

支持的服务:

  • 文本翻译:系统翻译、火山翻译、腾讯翻译君、阿里翻译、百度翻译、有道翻译、彩云小译、小牛翻译、Google 翻译、Microsoft 翻译、Amazon 翻译、DeepL 翻译、OpenAI 翻译
  • 文本识别:离线文本识别、火山 OCR、腾讯 OCR、腾讯图片翻译、百度 OCR、有道 OCR、Google OCR
  • 语音合成:离线语音合成、火山语音合成 、腾讯语音合成、Google 语音合成、Microsoft 语音合成

网址: https://bobtranslate.com/ (Bob 不是开源软件)

使用演示:https://github.com/ripperhe/Bob


跨平台划词翻译和OCR软件 pot

pot (派了个萌的翻译器)是一个跨平台的划词翻译软件,支持多个操作系统,包括Windows、macOS和Linux。项目使用了Tauri框架,结合了JavaScript和Rust编程语言进行开发。

项目特点:

  • 支持划词翻译、输入翻译、剪切板监听模式和截图OCR功能。
  • 支持多接口并行翻译、文字识别和语音合成。
  • 提供了插件系统,允许用户通过安装额外的插件来扩展软件功能。
  • 支持Wayland显示服务器协议,适用于多种桌面环境。

安装指南:

  • Windows: 可以通过Winget安装,或者手动下载exe安装包。
  • macOS: 可以通过Homebrew安装,或者手动下载dmg安装包。
  • Linux: 可以通过APT或Flatpak安装,或者手动下载deb安装包。

外部调用: Pot提供了HTTP接口,允许其他软件通过发送HTTP请求来调用Pot的翻译功能。

安装指南:https://github.com/pot-app/pot-desktop#%E5%AE%89%E8%A3%85%E6%8C%87%E5%8D%97

网站:https://pot-app.com/

开源地址:https://github.com/pot-app/pot-desktop

同类软件:TTime | 一款简洁、高效、高颜值的输入、截图、划词翻译AI软件 (timerecord.cn)


开源划词翻译软件 TTime

TTime 是一款开源的简洁高效的输入、截图、划词翻译软件,主要功能包括:输入翻译截图翻译划词翻译悬浮球翻译截图OCR静默截图OCR剪贴板监听翻译。支持 Windows和Mac平台。

网站:https://ttime.timerecord.cn/

使用介绍:https://ttime.v1.timerecord.cn/pages/1c1de2/#%E7%AE%80%E4%BB%8B

开源地址:https://github.com/InkTimeRecord/TTime


宝藏信息

无限制造 Gmail 小号,但指向同一个邮箱

Gmail 诞生二十周年,无限创建 Gmail 小号 一文分享了一个无限创建Gmail小号的方法,利用Gmail支持的点(.)和加号(+)在用户名中的变化,来创建多个指向同一邮箱的小号。这样做可以在不同网站使用不同邮箱地址注册账号,并方便管理通过不同地址发送的邮件。同时,这也有助于识别哪个网站可能泄露了个人信息。

具体方法为:

Gmail 跟其他常见的邮箱地址最不同的地方,就是不支持底线 _ ,相反却支持点 . 和加号 +。而这个制造小号的方法,就是有效利用 . 和 + 。

我们以 ddl123@gmail.com 举例。

  1. 利用点(.):在Gmail地址的用户名部分任意位置添加点(.),例如ddl.123@gmail.comddl...123@gmail.com。Gmail会将这些带有不同数量和位置的点的地址视为同一个邮箱。
  2. 使用加号(+):在用户名和@之间插入加号(+)加上任意字串,如ddl123+bbc456@gmail.com。可以添加多个加号和不同的字串,例如ddl123+b+b+c+1+2+3@gmail.com
  3. 创建特定用途的小号:根据不同的网站和服务,使用加号(+)创建具有唯一标识的小号,如ddl123+Apple@gmail.comddl123+Facebook@gmail.comddl123+Twitter@gmail.com等。
  4. 追踪垃圾邮件来源:当收到垃圾邮件时,通过检查收件人地址可以识别出是哪个网站或服务泄露了你的信息。

原文:Gmail 诞生二十周年,无限创建 Gmail 小号


免费的闯关式 SQL 自学教程网站 SQL之母

SQL之母 是一个完全免费的闯关式 SQL 自学教程网站,结合作者自己的 SQL 学习实践经验,编写了 30 多个关卡,用户可以在线提交 SQL 代码做题闯关,目标是从 0 到 1 地带大家掌握常用的 SQL 语法。

此外,网站支持自由选择关卡、自定义关卡、SQL 在线练习广场等功能。

在线体验:http://sqlmother.yupi.icu

视频演示:https://www.bilibili.com/video/BV1pV4y1i7LW


本地部署免费的GPT3.5-API:aurora

通过本地部署 aurora 可以获得本地可调用的 GPT3.5-API ,当然也可以 部署到 Docker 上面。

开源地址:https://github.com/aurora-develop/aurora


资讯


后记

百闻不如一见,百见不如一试。

🎉 本文同步更新于 https://github.com/starsight/TechWeekly