记录hexo整合pwa的使用
pwa介绍 渐进式网络应用程式(英语:Progressive Web Apps,简称:PWA)是一种普通网页或网站架构起来的网络应用程式,但它可以以传统应用程式或原生移动应用程式形式展示给用户。这种应用程式形态视图将目前最为现代化的浏览器提供的功能与行动装置的体验优势相结合。 当你的网站实现了 PWA,那就代表了 用户可以添加你的博客到电脑 / 手机的桌面,以原生应用般的方式浏览你的博客 用户本地可以自动生成缓存,二次访问速度大大加快 用户可以离线浏览你的博客 下面的 PWA 实现方法借助了 Gulp 插件,在站点有内容更新时,可以弹窗提醒用户刷新页面。 背景 本文使用butterfly主题作为演示 虽然官方对pwa做了很好的集成,但是文档中介绍的并不全面,而且还有许多坑需要自己踩一遍,特此记录下 配置 本文使用Gulp 和 WorkBox组合进行配置pwa 克隆现成的butterfly demo项目,默认集成了hexo-offline和gulp https://github.com/jerryc127/butterfly.js.org.git 去除he...
记录valine和waline评论插件的使用
leancloud地址: https://console.leancloud.app/ butterfly主题已默认整合了这两个评论系统, 不需要再安装 Valine获取APP ID 和 APP Key请先登录或注册LeanCloud, 进入控制台后点击左下角创建应用 应用创建好以后,进入刚刚创建的应用,选择左下角的设置>应用Key,然后就能看到你的APP ID和APP Key了: 然后在主题配置文件中填好配置 WalineLeanCloud数据库+Vercel部署还是先进入leancloud, 然后记住id,key和masterkey Vercel 部署 (服务端) 点击上方按钮,跳转至 Vercel 进行 Server 端部署。 注 如果你未登录的话,Vercel 会让你注册或登录,请使用 GitHub 账户进行快捷登录。 输入一个你喜欢的 Vercel 项目名称并点击 Create 继续: 此时 Vercel 会基于 Waline 模板帮助你新建并初始化仓库,仓库名为你之前输入的项目名。 一两分钟后,满屏的烟花会庆祝你部署成功。此时点击...
记录elementary OS的安装以及配置(基于elementaryos-6.0-stable)
记录elementary OS的安装以及配置(基于elementaryos-6.0-stable)elementary OS官网 下载好镜像<elementaryos-6.0-stable.20211103.iso> rufus官网 再下载好刻录启动盘工具 依次点击选择,开始即可(uefi对应gtp,mbr对应bios) 然后重启机器,f12进入,选择对应uefi下的usb选项,进入。elementaryos-6.0-stable镜像基于ubuntu20.04,开始页面是三个选项,第二个是清空磁盘做系统,选择进入,然后分区。最开始的加密密码不用选,麻烦。直接don‘t加密,然后进入。 最佳分区方案12345678910111213SWAP分区:实现虚拟内存,建议大小是物理内存的1-2倍/boot分区:用来存放与系统启动有关的程序,建议大小为200MB以内/usr分区:用来存放系统中的应用程序,相关数据较多,建议总硬盘的40%/var分区:用来存放系统中经常变化的数据以及日志文件,建议大小为5GB/home分区:存放普通用户的数据,建议大小为剩下的空间。/分区...
一个jdbc批量处理的工具类
12345678910111213141516171819202122232425262728293031323334353637383940414243// batchUtils.batchUpdateOrInsert(数据集合, xxxxx.class, (item, mapper实例对象) -> mapper实例对象.insert方法(item));public class MybatisBatchUtils { /** * 每次处理1000条 */ private static final int BATCH_SIZE = 1000; @Resource private SqlSessionFactory sqlSessionFactory; /** * 批量处理修改或者插入 * * @param data 需要被处理的数据 * @param mapperClass Mybatis的Mapper类 * @param function 自定义处理逻辑 * @return ...
DOCKER部署sftp,ftp
sftp搭建,拉取镜像1docker pull docker.io/atmoz/sftp //也可不拉取,在执行docker run命令时会自动拉取 持久化上传的文件12345docker run --name sftp -v /opt/sftp:/home/admin/upload -p 23:22 -d atmoz/sftp admin:admin:::upload--name sftp 容器名称admin:admin:::upload 其中admin为用户名,admin为密码,upload为上传的文件会保存到容器里面的/home/admin/upload目录里面-p 23:22 将宿主机的23端口映射到容器的22端口,这样方位宿主机的23端口则会转发到容器的22端口上-d atmoz/sftp 使用dockup hub中的atmoz/sftp镜像创建容器 12# 远程登录sftp -P portNum user@sftpServerIP ftp搭建,拉取镜像1docker pull fauria/vsftpd 查看端口占用12netstat -an...
记录gitbook部署github pages
安装node(目前测试高于10的版本会有问题,安装10即可)这里使用nvm安装及配置安装路径不能有空格和中文 安装gitbook-cli1npm --registry https://registry.npm.taobao.org install gitbook-cli -g gitbook初始化,SUMMARY(可选,可以将现有文件copy至此)1gitbook init 编写SUMMARY文档,book.json,执行构建编译1gitbook install 在gitbook 的项目里点击 settings ,找到 GitHub Pages 在本地环境中先将编译文档到 docs 目录(这里我新增了一个 Blog.md 文件) ,在 SUMMARY.md 中添加访问链接后可直接在左侧的目录树显示命令行中键入gitbook build . docs,将文件都编译到 docs 目录下 然后将编译好的文件 PUSH 到远端仓库123$ git add *$ git commit -m"Inital commit"$ git push orgin mas...
hexo博客展示git提交记录
hexo-githubcalendar方式(推荐)博客参考链接: https://zfe.space/post/hexo-githubcalendar.html github地址: https://github.com/Zfour/hexo-github-calendar hexo-filter-gitcalendar方式(此方式已被弃用)安装1npm install hexo-filter-gitcalendar --save 自建API部署新建项目,fork项目打开dashboard点击新建项目的New Project按钮。点击导入第三方库。 填入Zfour提供的自建 API 项目地址:1https://github.com/Zfour/python_github_calendar_api.git 进入下一步后,点击create, 之后会自动进行deploy, 如整合waline中介绍, 会生成DOMAIN 修改主题配置文件配置文件可参考: https://akilar.top/posts/1f9c68c9/
MAT的使用
MAT是什么? MAT(Memory Analyzer Tool),一个基于Eclipse的内存分析工具,是一个快速、功能丰富的JAVA heap分析工具,它可以帮助我们查找内存泄漏和减少内存消耗。使用内存分析工具从众多的对象中进行分析,快速的计算出在内存中对象的占用大小,看看是谁阻止了垃圾收集器的回收工作,并可以通过报表直观的查看到可能造成这种结果的对象。 软件地址使用说明1、环境安装好jdk,配置好环境变量JAVA_HOME 运行内存分析器的最低Java版本是 1.8.0 最新版本MAT已经要求17以上 注: 确保你的hprof文件没放在c盘或是桌面,因为mat软件默认会在解析的同时生成一堆文件再hprof文件的相对路径下 2、使用 Memory Analyzer Tools 获取堆存储1、启动进程仅需单击两次。在菜单中,选择“file --> Acquire Heap Dump...” 或者有直接生成好的dump文件,则直接Open Heap Dump ,打开即可; 2、选择Acquire Heap Dump后。您可以看到正在运行的Java进程;选择你所需...
SuppressWarnings注解value值记录
关键字 用途 all to suppress all warnings (抑制所有警告) boxing to suppress warnings relative to boxing/unboxing operations (抑制装箱、拆箱操作时候的警告) cast to suppress warnings relative to cast operations (抑制映射相关的警告) dep-ann to suppress warnings relative to deprecated annotation (抑制启用注释的警告) deprecation to suppress warnings relative to deprecation (抑制过期方法警告) fallthrough to suppress warnings relative to missing breaks in switch statements (抑制确在switch中缺失breaks的警告) finally to suppress warnings r...
优化与源码
优化与源码1. 优化1.1 扩展序列化算法序列化,反序列化主要用在消息正文的转换上 序列化时,需要将 Java 对象变为要传输的数据(可以是 byte[],或 json 等,最终都需要变成 byte[]) 反序列化时,需要将传入的正文数据还原成 Java 对象,便于处理 目前的代码仅支持 Java 自带的序列化,反序列化机制,核心代码如下 1234567891011// 反序列化byte[] body = new byte[bodyLength];byteByf.readBytes(body);ObjectInputStream in = new ObjectInputStream(new ByteArrayInputStream(body));Message message = (Message) in.readObject();message.setSequenceId(sequenceId);// 序列化ByteArrayOutputStream out = new ByteArrayOutputStream();new ObjectOutputStream(out)....
