首页 文章 精选 留言 我的

精选列表

搜索[一键部署],共10000篇文章
优秀的个人博客,低调大师

roomGPT —— 使用 AI 一键生成房间设计图

roomGPT 可使用 AI 为你的房间生成新设计,上传现有的房间照片,它会给你一个高大上的新房间设计。 只需要给你的房间拍一张照,或是房间的 3D 效果图,并将其上传,即可用 AI 生成对应的梦幻房间效果图。 原理:使用 ControlNet 的 ML 模型来生成房间的变体ML ,模型托管在 Replicate上。房间照片将使用 Next.js API 路由上传,并通过此 ML 模型重新生成,并返回生成的房间图片。

优秀的个人博客,低调大师

一键到位「GitHub 热点速览 v.22.32」

上上周在 B 站观看了智能键盘——瀚文的制作过程,本周 GitHub 热榜上出现了它的软硬件开源项目 HelloWord-Keyboard,如果你的动手能力强不妨来自己搞一把带有“显示屏”、不再是换键帽的客制键盘。 本周 GitHub 官方在其社交平台上推荐了个可在你业务时间把玩的项目,一个钢琴训练器,搭配上你的 MIDI 键盘优雅旋律信手拈来。至于,其他实用的开源项目请阅读本文的目录一一详细了解吧~ 以下内容摘录自微博@HelloGitHub 的 GitHub Trending 及 Hacker News 热帖(简称 HN 热帖),选项标准:新发布 | 实用 | 有趣,根据项目 release 时间分类,发布时间不超过 14 day 的项目会标注 New,无该标志则说明项目 release 超过半月。由于本文篇幅有限,还有部分项目未能在本文展示,望周知 🌝 本文目录 本周特推 1.1 真·生产力键盘:HelloWord-Keyboard 1.2 钢琴训练器:piano-trainer GitHub Trending 周榜 2.1 C++ 异步框架:userver 2.2 TS 全文索引:lyra 2.3 实时消息服务:nsq 2.4 git 服务:onedev 2.5 Erlang 类型检查:eqwalizer 往期回顾 1. 本周特推 1.1 真·生产力键盘:HelloWord-Keyboard 本周 star 增长数:2,100+ New 硬核开源 up 主稚晖君的新作品——智能键盘,名:瀚文的键盘软硬件开源了。瀚文键盘使用模块化设计,左侧的多功能场景交互模块可以替换成各种自定义组件,默认使用的是一个带电子墨水屏以及 FOC 力反馈旋钮的 Dynamic 组件;键盘使用稚晖君开发的基于 ARM Cortex-M 芯片的键盘固件以及模块固件;键盘本体使用移位寄存器方式实现优化的按键扫描电路;模块以及键盘本体可以单独使用,也可以通过串口协议进行相互通信和调用。 本次的键盘稚晖君和 up 主 Xikii 合作,按照后者的视频介绍,这把键盘将会在他的店铺上架,而不带左侧电子屏幕、只是单个键盘并提供连接接口的客制键盘定价应该低于 ¥2,499。当然你也可以根据稚晖君开源的这个项目,自己动手做一把。 GitHub 地址→https://github.com/peng-zhihui/HelloWord-Keyboard 1.2 钢琴训练器:piano-trainer 本周 star 增长数:100+ GitHub 官方推荐的一个钢琴训练项目,Piano Trainer 支持多种方式、采用多种音调来练习钢琴,搭配 MIDI 使用最佳。特性: 兼容 MIDI; 多平台支持 Linux、macOS、Windows 均可使用; 可视化调试; GitHub 地址→https://github.com/ZaneH/piano-trainer 2. GitHub Trending 周榜 2.1 C++ 异步框架:userver 本周 star 增长数:850+ New 一个开源的异步框架,提供了丰富的抽象组件用于快速、方便地构建 C++ 微服务、服务和程序。它有效地解决了 I/O 交互问题,用户可无感知地使用它来进行操作。 GitHub 地址→https://github.com/userver-framework/userver 2.2 TS 全文索引:lyra 本周 star 增长数:2,200+ New Lyra 采用 TypeScript 编写的全文索引引擎,具有快速、内存化、错别字容错等特性。它的使用简单,先创建一个数据库实例并设置索引模式(schema)即可,通过 https://nearform.github.io/lyra/demo/ 可在线体验 Lyra。 GitHub 地址→https://github.com/nearform/lyra 2.3 实时消息服务:nsq 本周 star 增长数 550+ NSQ 是 simplequeue 的继承者,设计应对大规模的实时消息处理,可每天处理数十亿消息。特性: 支持去中心化的拓扑结构,以提供高可用、消除单点故障; 满足海量消息传递需求; 通过将部分消息持久化到磁盘中,绑定单个进程的内存痕迹; 配置简单; 升级直接; GitHub 地址→https://github.com/nsqio/nsq 2.4 git 服务:onedev 本周 star 增长数:1,050+ 一个自托管的 git 服务,自带 CI/CD 以及看板功能。此外,onedev 具有支持检索、正则查询代码、静态分析代码变更、定制化 issue 状态和区域等特性。 GitHub 地址→https://github.com/theonedev/onedev 2.5 Erlang 类型检查:eqwalizer 本周 star 增长数:300+ New WhatsApp 开源的 Erlang 类型检查工具。部分使用方法如下: {deps, [ {eqwalizer_support, {git_subdir, "https://github.com/whatsapp/eqwalizer.git", {branch, "main"}, "eqwalizer_support"}} ]}. {project_plugins, [ {eqwalizer_rebar3, {git_subdir, "https://github.com/whatsapp/eqwalizer.git", {branch, "main"}, "eqwalizer_rebar3"}} ]}. GitHub 地址→https://github.com/WhatsApp/eqwalizer 3. 往期回顾 往期回顾: 你的工具包已到货「GitHub 热点速览 v.22.31」 造!又有新的生产力语言了「GitHub 热点速览 v.22.30」 以上为 2022 年第 32 个工作周的 GitHub Trending 🎉如果你 Pick 其他好玩、实用的 GitHub 项目,记得来 HelloGitHub issue 区和我们分享下哟 🌝

优秀的个人博客,低调大师

华为音频编辑服务带你一键伴奏分离!

华为音频编辑服务的音源分离功能支持人声与人声,人声与伴奏,人声与乐器元素(即所有乐器单独提取)。 首先,我们来看一段使用华为音频编辑服务提取的《Dream it Possible》伴奏Demo。 (查看示例效果请访问: https://developer.huawei.com/consumer/cn/forum/topic/0202660512438950947?fid=18?ha_source=hms1) 接下来,带您演示如何实现Demo中伴奏分离的效果↓↓↓: 第一步,我们需要准备想要获取伴奏的歌曲素材。 MP3格式最佳,其他音频格式转换请参考第二步2.4进行转换。 如果只有视频格式,请参考第二步2.5进行音频提取。 第二步,接入华为音频编辑服务。 开发实战 开发准备 1.1项目级build.gradle里配置Maven仓地址 buildscript { repositories { google() jcenter() // 配置HMS Core SDK的Maven仓地址。 maven {url 'https://developer.huawei.com/repo/'} } dependencies { ... // 增加agcp插件配置。 classpath 'com.huawei.agconnect:agcp:1.4.2.300' } } allprojects { repositories { google() jcenter() // 配置HMS Core SDK的Maven仓地址。 maven {url 'https://developer.huawei.com/repo/'} } } 1.2 文件头增加配置 apply plugin: 'com.huawei.agconnect' 1.3 应用级build.gradle里配置SDK依赖 dependencies{ implementation 'com.huawei.hms:audio-editor-ui:{version}' } 4在AndroidManifest.xml文件中申请如下权限 <!--震动权限--> <uses-permission android:name="android.permission.VIBRATE" /> <!--麦克风权限--> <uses-permission android:name="android.permission.RECORD_AUDIO" /> <!--写存储权限--> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <!--读存储权限--> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <!--网络权限--> <uses-permission android:name="android.permission.INTERNET" /> <!--网络状态权限--> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <!--网络状态变化权限--> <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" /> 代码开发 2.1创建您应用自定义的activity界面,用于选择音频,并将该音频文件路径用如下方式返回给音频编辑SDK。 // 将音频文件路径List返回给音频编辑页面 private void sendAudioToSdk() { // 获取到的音频文件路径 filePath String filePath = "/sdcard/AudioEdit/audio/music.aac"; ArrayList<String> audioList = new ArrayList<>(); audioList.add(filePath); // 将音频文件路径返回给音频编辑页面 Intent intent = new Intent(); // 使用sdk提供的HAEConstant.AUDIO_PATH_LIST intent.putExtra(HAEConstant.AUDIO_PATH_LIST, audioList); // 使用sdk提供的HAEConstant.RESULT_CODE为结果CODE this.setResult(HAEConstant.RESULT_CODE, intent); finish(); } 2.2在UI界面导入音频时,SDK会发送一个action值为com.huawei.hms.audioeditor.chooseaudio的intent以跳转到该activity。因此,该activity“AndroidManifest.xml”中的注册形式如下。 <activity android:name="Activity "> <intent-filter> <action android:name="com.huawei.hms.audioeditor.chooseaudio"/> <category android:name="android.intent.category.DEFAULT"/> </intent-filter> </activity> 2.3启动音频编辑页面,点击“添加音频”,SDK会主动调用2.1定义的activity。添加完音频,就可以进行音频编辑、特效添加等操作,完成后导出编辑的音频。 HAEUIManager.getInstance().launchEditorActivity(this); 2.4如果您的原声歌曲素材不是MP3格式,此步骤将可以完成音频格式转换。 调用transformAudioUseDefaultPath接口进行音频格式转换,转换后的音频文件导出到默认路径。 // 音频格式转换接口 HAEAudioExpansion.getInstance().transformAudioUseDefaultPath(context,inAudioPath, audioFormat, new OnTransformCallBack() { // 进度回调(0-100) @Override public void onProgress(int progress) { } // 转换失败 @Override public void onFail(int errorCode) { } // 转换成功 @Override public void onSuccess(String outPutPath) { } // 取消转换 @Override public void onCancel() { } }); // 取消转换任务接口 HAEAudioExpansion.getInstance().cancelTransformAudio(); 调用transformAudio接口进行音频格式转换,转换后的音频文件导出到目标路径。 // 音频格式转换接口 HAEAudioExpansion.getInstance().transformAudio(context,inAudioPath, outAudioPath, new OnTransformCallBack(){ // 进度回调(0-100) @Override public void onProgress(int progress) { } // 转换失败 @Override public void onFail(int errorCode) { } // 转换成功 @Override public void onSuccess(String outPutPath) { } // 取消转换 @Override public void onCancel() { } }); // 取消转换任务接口 HAEAudioExpansion.getInstance().cancelTransformAudio(); 2.5 如果您的素材是一段视频,可以调用extractAudio接口进行音频提取,从视频中提取音频文件导出到指定目录。 // outAudioDir提取出的音频保存的文件夹路径,非必填 // outAudioName提取出的音频名称,不带后缀,非必填 HAEAudioExpansion.getInstance().extractAudio(context,inVideoPath,outAudioDir, outAudioName,new AudioExtractCallBack() { @Override public void onSuccess(String audioPath) { Log.d(TAG, "ExtractAudio onSuccess : " + audioPath); } @Override public void onProgress(int progress) { Log.d(TAG, "ExtractAudio onProgress : " + progress); } @Override public void onFail(int errCode) { Log.i(TAG, "ExtractAudio onFail : " + errCode); } @Override public void onCancel() { Log.d(TAG, "ExtractAudio onCancel."); } }); // 取消音频提取任务接口 HAEAudioExpansion.getInstance().cancelExtractAudio(); 2.6调用getInstruments和startSeparationTasks接口进行伴奏提取。 // 获取提取伴奏类型ID,后面将此ID传给接口 HAEAudioSeparationFile haeAudioSeparationFile = new HAEAudioSeparationFile(); haeAudioSeparationFile.getInstruments(new SeparationCloudCallBack<List<SeparationBean>>() { @Override public void onFinish(List<SeparationBean> response) { // 返回的数据,包括伴奏的类型ID } @Override public void onError(int errorCode) { // 失败返回 } }); // 设置要提取的伴奏参数 List instruments = new ArrayList<>(); instruments.add(“伴奏id”); haeAudioSeparationFile.setInstruments(instruments); // 开始进行伴奏分离 haeAudioSeparationFile.startSeparationTasks(inAudioPath, outAudioDir, outAudioName, new AudioSeparationCallBack() { @Override public void onResult(SeparationBean separationBean) { } @Override public void onFinish(List<SeparationBean> separationBeans) {} @Override public void onFail(int errorCode) {} @Override public void onCancel() {} }); // 取消分离任务 haeAudioSeparationFile.cancel(); 最后,我们就可以得到想要的歌曲伴奏了。 如果想要实现demo的效果,可以使用视频编辑软件添加图片和文字歌词进行合成。 了解更多详情>> 访问华为开发者联盟音频编辑服务官网 获取开发音频编辑服务指导文档 华为音频编辑服务开源仓库地址:GitHub、Gitee 华为HMS Core官方论坛 解决集成问题请到Stack Overflow 关注我们,第一时间了解HMS Core最新技术~

优秀的个人博客,低调大师

一键导出全部邮件到本地,彻底解放双手

大家好,我是辰哥 大家可能会遇到这样一种情况:有没有什么办法可以将邮箱里面的邮件全部下载到本地(包括图文、压缩附件、文档附件等)。比如HR、收集意见的工作人员甚至是一些负责收邮件的老师等人都会遇到这种情况。 今天辰哥就教大家如何利用Python去下载邮箱中的全部邮件,本文核心库主要是zmail。 01、准备工作 **1.安装库 ** pipinstall zmail 通过上面的命令即可安装zmail 导入库 import zmail 2.开启****POP3/SMTP服务 在程序中登录QQ邮箱不是使用qq邮箱密码,是使用POP3/SMTP服务口令,所以我们这里先获取口令 第一步:登录qq邮箱点击设置,再点账户 第二步:开启POP3/SMTP,点击开启后会生成一段字符串(token),这里辰哥已经开启了 02、下载全部邮件 1.登录账户 下载的全部邮件都会保存在文件夹chenge中 2.读取全部邮件 目标:下载全部的邮件。所以这里获取到邮件数,并通过循环去遍历 3.创建保存文件夹 这里提取邮件日期和主题,在chenge文件夹下为该邮件创建文件夹(到时候保存正文内容和附件) 4.保存邮件正文 判断本地是否存在该邮件命名的文件夹,不存在则创建。 提取正文内容保存到正文文本.txt,txt中的格式如下: 5.保存附件 一行代码就可以将附件,包括正文中的插图直接下载保存到指定文件夹中 03、演示程序 1.邮件示例 这里准备了两份邮件(一份图+文,一份附件+文) 一份图+文 这份邮件有正文,正文插图,图片附件 一份附件+文 这份邮件有正文,正文插图,压缩包附件 2.执行程序 结果如下: 04、小结 本文讲解了如何通过Python教大家如何利用Python去下载邮箱中的全部邮件,不明白的地方可以在下方留言信,一起交流。 为了大家方便学习,辰哥把本文的完整源码上传,需要的公众回复:邮件下载

优秀的个人博客,低调大师

「Spring Boot 2.4 新特性」一键构建Docker镜像

背景 在我们开发过程中为了支持 Docker 容器化,一般使用 Maven 编译打包然后生成镜像,能够大大提供上线效率,同时能够快速动态扩容,快速回滚,着实很方便。docker-maven-plugin 插件就是为了帮助我们在 Maven 工程中,通过简单的配置,自动生成镜像并推送到仓库中。 spotify 、fabric8 这里主要使用的主要是如下两种插件 spotify 、fabric8 , ... -配置通过 xml 定义出 Dockerfile 或者挂载外部 Dockerfile 通过调用 Docker remote api 构建出镜像 pig 微服务平台所有的容器化都是基于此构建 <plugin> <groupId>com.spotify</groupId> <artifactId>docker-maven-plugin</artifactId> ... -配置通过 xml 定义出 Dockerfile 或者挂载外部 Dockerfile </plugin> <plugin> <groupId>io.fabric8</groupId> <artifactId>docker-maven-plugin</artifactId> ... -配置通过 xml 定义出 Dockerfile 或者挂载外部 Dockerfile </plugin> 执行相应的插件周期即可 mvn docker:build && mvn docker:push jib 项目每次发布实际上变更的代码量不大,尤其依赖的 jar 变动的可能性较小,如果使用前两种插件构建镜像,会导致每次都全量构建,会导致存储和带宽资源浪费。 jib 是 Google 于 18 年 7 月发布的一个针对 Java 应用的构建镜像的工具(支持 Maven 和 Gradle) ,好处是能够复用构建缓存,能够加快构建,减小传输体积 <!--配置通过 xml 定义出 Dockerfile ,本质上和外挂 Dockerfile 并无区别--> <plugin> <groupId>com.google.cloud.tools</groupId> <artifactId>jib-maven-plugin</artifactId> </plugin> mvn jib:dockerBuild 以上三种方案的问题 在实际开发过程中,大部分的 spring boot 项目构建 Dockerfile 都是相同,不需要通过的 XML 或者通过外挂 Dockerfile 来重新定义 以上插件需要对 Dockerfile 的定义知识有相对的了 对开发并不友好 没充分理由 Spring Boot 2.3 以后的 Jar 分层技术。 解决方案 Spring Boot 2.4 推出了自己的 docker 构建工具 整合在原有的 spring-boot-maven-plugin 中,只需要配置对应目标仓库和主机信息即可完成镜像构建。 如下配置即可完成上图中 通过开发机器在不安装 Docker 的同时,通过 192.168.0.10 的 Docker Remote API 完成镜像构建并发布到 192.168.0.20 的镜像仓库 <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <image> <name>192.168.0.20/pig4cloud/${project.artifactId}</name> <!-- 执行完build 自动push --> <publish>true</publish> </image> <!--配置构建宿主机信息,本机不用配置--> <docker> <host>http://192.168.0.10:2375</host> <tlsVerify>false</tlsVerify> <publishRegistry> <username>username</username> <password>password</password> <url>192.168.0.20</url> </publishRegistry> </docker> </configuration> </plugin> 执行以下命令即可完成 镜像的构建和自动发布 mvn spring-boot:build-image 其他说明 docker host 配置不生效 如下图 ① 处配置 <host></host> 节点,但是 ② 报错提示 host 不一致 检查本地是否配置 $DOCKER_HOST 环境变量,经过阅读源码后发现优先读取此变量。 ⋊> ~ echo $DOCKER_HOST 11:07:51 tcp://172.17.0.111:2375 网络支持 截取部分构建过程中的日志,如下需要从 github 下载相关的依赖 约 100M ,这个过程大概率会失败。建议通过配置代理或者使用国外 ECS 来解决。 :: Spring Boot :: (v2.4.0) [INFO] > Running creator [INFO] [creator] Downloading from https://github.com/bell-sw/Liberica/releases/download/8u275+1/bellsoft-jre8u275+1-linux-amd64.tar.gz [INFO] [creator] JVMKill Agent 1.16.0: Contributing to layer [INFO] [creator] Downloading from https://github.com/cloudfoundry/jvmkill/releases/download/v1.16.0.RELEASE/jvmkill-1.16.0-RELEASE.so [INFO] [creator] Downloading from https://repo.spring.io/release/org/springframework/cloud/spring-cloud-bindings/1.6.0/spring-cloud-bindings-1.6.0.jar [INFO] [creator] Verifying checksum [INFO] [creator] 192.168.0.20/pig4cloud/demo:latest [INFO] [INFO] Successfully built image '192.168.0.20/pig4cloud/demo:latest' [INFO] > Pushing image '192.168.0.20/pig4cloud/demo:latest' 100% [INFO] > Pushed image '192.168.0.20/pig4cloud/demo:latest' [INFO] BUILD SUCCESS 项目推荐: Spring Cloud 、Spring Security OAuth2的RBAC权限管理系统 欢迎关注

优秀的个人博客,低调大师

TranslationPlugin v2.9 发布,代码文档一键翻译

TranslationPlugin v2.9发布了,新增了以下功能: Quick Documentation翻译 感谢Nikolay Tropin(来自JetBrains) 提供的功能实现! 我们增加了对Quick Documentation的翻译支持。现在,你可以随时随地对代码中的文档进行翻译,而不是受限于源代码中的文档注释。例如在 Windows 平台中,当你使用Ctrl+Q查看Quick Documentation时,你得到的将是已翻译好的文档。 单词本支持导出为txt文本

资源下载

更多资源
腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册