lombok的@StandardException
但愿每次回忆,对生活都不感到内疚。——郭小川 官方文档: @StandardException 很简单的一个注解,主要是解决自定义异常需要重写一堆构造器 123456import lombok.experimental.StandardException;@StandardExceptionpublic class ExampleException extends Exception {} 就会生成: 12345678910111213141516171819public class ExampleException extends Exception { public ExampleException() { this(null, null); } public ExampleException(String message) { this(message, null); } public ExampleException(Throwable c...
android使用闲置线程执行
读书不可以兼看未读者,却当兼看已读者。——朱熹 使用 Looper.myQueue().addIdleHandler 实现空闲处理在Android开发中,我们经常需要在应用的主线程(UI线程)中执行一些耗时操作,这可能会导致界面卡顿或无响应。为了优化用户体验,我们可以使用一些技巧来确保主线程的流畅运行。本文将介绍如何使用 android.os.Looper#myQueue.addIdleHandler 来在主线程空闲时执行任务。 什么是 Looper 和 MessageQueue?在Android中,每个线程可以有一个 Looper 和一个 MessageQueue。Looper 是一个类,用于管理线程的消息循环,而 MessageQueue 则是一个消息队列,存储需要处理的消息和任务。主线程默认有一个 Looper 和一个 MessageQueue,它们共同协作来处理消息和事件。 什么是 IdleHandler?IdleHandler 是一个接口,包含一个 queueIdle 方法。通过实现这个接口,我们可以在 MessageQueue 空闲时执行特定的任务。通常,Idle...
AI换装虚拟试穿模型
凡心所向,素履所往,生如逆旅,一苇以航。——尘曲 https://github.com/yisol/IDM-VTON 分享一个AI换装虚拟试穿的模型 12345git clone https://github.com/yisol/IDM-VTON.gitcd IDM-VTONconda env create -f environment.yamlconda activate idm VITON-HD 数据集可以从这里下载 GitHub - shadow2496/VITON-HD: Official PyTorch implementation of "VITON-HD: High-Resolution Virtual Try-On via Misalignment-Aware Normalization" (CVPR 2021) 下完了把 vitonhd_test_tagged.json 放到 test 目录中 12345678910train|-- ...test|-- image|-- image-densepose|-- agnostic...
modular
读书有三到:谓心到、眼到、口到。——朱熹 https://www.modular.com/ 在linux中运行 1curl -s https://get.modular.com | sh - MAX 提供了一个统一且可扩展的平台,其中包括将低延迟、高吞吐量的 AI 推理管道部署到生产中所需的一切。 无需任何代码即可对任何模型进行基准测试 使用简单的命令行工具通过 MLPerf 执行 MAX Engine 中的任何模型。 使用 Mojo 编写自定义操作 为您的模型创建自定义操作,并与图表的其余部分一起进行优化。 在 Triton 中启动推理服务 在容器中尝试 MAX Serving 并响应来自 HTTP/gRPC 客户端的推理请求。 编写使用 Python 的 Mojo 代码 了解如何编写与 NumPy 和 Matplotlib 等 Python 包互操作的 Mojo 代码。 尝试 Llama2 或稳定扩散 查看我们使用各种模型运行推理的代码示例。 在浏览器中开始使用 Mojo 进行编码 请访问此网站内置的 Mojo 编码游乐场。没有什么可安装的。 从 Pyth...
phpstorm配置php项目debug
读书人必须不加指导而能独立思考,他必须多多少少是个思想家,而不是模仿者。——塞涅卡 前两天配置 phpstorm debug 时,发现网上一堆教程都不好使,主要是要注意自己的 Xdebug 版本 这是官方的文档: Configure Xdebug | PhpStorm Documentation 然后我们首先查看版本 12345GithubIireAchao:open-fortune achao$ php --versionPHP 5.6.40 (cli) (built: Feb 29 2024 21:08:25) Copyright (c) 1997-2016 The PHP GroupZend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies with Xdebug v2.5.5, Copyright (c) 2002-2017, by Derick Rethans 可以看到这里是 2.5.5 版本,因此我们需要使用 2.x 的配置 我们执行命令查看配置文件路径: 12345678910111213G...
php集成环境servbay
此处果有可乐,我即别无所思。——林语堂 https://www.servbay.com/zh-CN 为什么要使用ServBay我们知道,喜欢一件东西从来不需要理由。但出于对开发环境的严谨性考虑,我们还是为你提供了四个无可辩驳的理由。 快速一个APP,两步,三分钟,马上就可以进入写代码的开发阶段。无需依赖Docker或者使用homebrew进行源代码编译。可随时在各个版本的开发语言或者数据库之间自由切换,并且支持同时运行多个版本的PHP、Node.js。 全面包含了Caddy, PHP, Node.js, MySQL, MariaDB, PostgreSQL, Redis, memcached, email server, DNS, 反向代理等常用Web开发套件。可以自由选择安装最新版本或者历史版本。 高性能没有组件依赖,独立运行环境,不污染操作系统,干干净净。原生支持arm64和x86_64架构的macOS,并且分别进行了适配以及优化。非虚拟化方式运行,不过多消耗系统资源。 安全软件包、组件均与官方版本同步更新,可以随时一键升级至最新版本。同时还合入了最新的安全补丁,并且针...
phpenv安装php8.x
对你帮助最大的书籍,是使你想得最多的书籍。——伯克 首先是用homebrew安装phpenv 1brew install phpenv 然后安装php,大概过程如下: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112GithubIireAchao:bison-2.7 achao$ cat ~/.bash_profileexport NVM_DIR="$HOME/.nvm" [ -s "/opt/homebrew/opt/nvm/nvm.sh" ] && \. "/opt/homebrew/opt/nvm/n...
sdkman
读书仅仅是向大脑提供知识原料,只有思考才能把所学的知识变成我们自己的东西。——洛克 https://sdkman.io/ 可以用 sdkman 管理、下载、切换 java 版本 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158Last login: Tue May 14 21:03:08 on ttys0...
js解析JWT
懂得生命真谛的人,可以使短促的生命延长。——西塞罗 代码如下: 1"token".split(".").slice(0,2).map(i=>JSON.parse(atob(i))) 当我在解析 jwt 的 token 时,发现 token 中附带的用户 id 存在精度丢失问题,然后用正则改进解析 JWT 的代码: 1const tokenParse = token => token.split(".").slice(0, 2).map(i => JSON.parse(atob(i).replace(/:\s*([-+]?\d+(\.\d+)?([eE][-+]?\d+)?)/g, (match, p1) => Math.abs(p1) > Number.MAX_SAFE_INTEGER ? `:"${p1}"` : `:${p1}`))); 但是还存在 base64 解码时无法正确解码中文问题,继续改进 1const tok...
js解决base64编码问题
地利不如人和,武力不如文德。——恒宽 主要是在解析 JWT 时发现 1atob(base64) 存在编码问题,我们如果想要将 base64 解码为 utf-8: 123456789101112function parseBase64ToJSON(base64) { const binaryString = atob(base64); const len = binaryString.length; const bytes = new Uint8Array(len); for (let i = 0; i < len; i++) { bytes[i] = binaryString.charCodeAt(i); } const decoder = new TextDecoder('utf-8'); return decoder.decode(bytes);} 然后就可以正确解析中文了
