• [编程语言] Spring boot 按需启用组件Bean 2020-12-26 19:31:28

    ConditionalOnProperty 这个注解,可以用于控制某个业务组件,是否开启。 当我们在配置文件中加上enabled: true, 开启组件, 没有配置,默认关闭组件   这样我们可以定制化一个通用的模块,它是开,还是关,从而达到充分复用代码的目的。   比如我们封装好的一个核心Lib, 里面有各种MongoDB, Redis, Mysql ,还有各种外部服务,比如发邮件,发短信。   通常我们一个新业务来了,我总是希望能复用这些基础代码类库,但是

  • [编程语言] 功能强大的Markdown web编辑器Vditor 2020-12-26 19:28:30

    简介 今天跟大家分享的是一款Markdown web编辑器,Vditor,如果你的项目需要提供Markdown编辑能力,那请关注一下这款好用免费的开源编辑器吧。 功能 主要的功能,所见即所得,输入Markdown 标记,就可以实时渲染结果预览。其他功能,可以访问官方网站查询。   快速上手 我们新建一个index.html,输入内容如下   <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/vdi

  • [编程语言] golang 构建时写版本号和编译时间 2020-12-26 19:27:50

    项目用git管理源代码,版本号用git 的tag功能。 先看构建命令 # 默认使用goproxy.cn export GOPROXY=https://goproxy.cn export GONOSUMDB=* export GO111MODULE=on go env go version # input your command here go build -ldflags "-X 'gitee.com/leobbs/leobbs/pkg/version.Build

  • [Linux/Unix] Ubuntu Nvidia tensorflow安装指南 2020-12-26 19:27:12

    文介绍了在ubuntu下安装nvidia 驱动和tensorflow gpu加速版本。 下载安装官方ubuntu 18.04.5 64位,其他版本不行, 然后按照下面的指南安装 # Add NVIDIA package repositories wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/cuda-repo-ubuntu1804_10.1.243-1_amd64.deb sudo

  • [编程语言] sqlite的json查询支持 2020-12-26 19:26:31

    本文介绍了如何在 sqlite 中使用json 查询, 目标是从保存的json array中,找到匹配的id。 这个使用场景,是为文章,增加标签,然后查询 所有包含某个标签的文章   先来看看数据表结构 -- auto-generated definition create table json_test_table (     id      int,     content jso

  • [Linux/Unix] Linux fq-pie 流控算法 2020-12-26 19:25:13

    Linux 内核 流量包调度算法 fq-pie是 Mohit P Tahiliani 和他的团队研发的。已经被Linux 开发团队接受,合并到Linux 内核5.6当中。该算法又名为:"Flow Queue Proportional Integral controller Enhanced (FQ-PIE)". 它最小化网络数据包的延时队列。 FQ-PIE 被称作 Linux 5.6 最佳的特性. 开发设计工作由以下人员完成 Gautam Ramakrishnan, Sai Charan, Mohi

  • [Linux/Unix] ubuntu 和debian安装xanmod 内核 2020-12-26 19:24:20

    xanmod是一个为ubuntu或者debian设计的 自定制linux内核版本。 可以把它理解为一个汽车的发动机,这个是加强版的。   特性有:   Preemptive Full Tickless Kernel at 500Hz w/ Tuned CPU Core Scheduler.【更快的cpu调度】 RCU Boost for better responsiveness and lower overall system latency.【更低的系统延

  • [编程语言] Spring boot 异步事件编程详解 2020-12-26 19:23:22

    简介 本文章详细介绍Spring Boot中如何利用Event 事件机制,编程实现异步 处理一些比较耗时间的操作。 预习知识 您需要熟悉Spring boot项目开发; 您需要了解lombok的简单使用; 项目目录结构     config 目录下面,存放了一个异步事件的配置,代码看下面 controller 下面是web api的相关源代码 event.listener目录下面,是异步执行器,用于监听事件publish, 然后执行任务 event.vo

  • [电脑数码] 关掉不必要的刷磁盘,提升NTFS性能 2020-12-26 19:21:40

    简介 本文介绍如何提升NTFS性能,通过关掉不必要的刷磁盘操作 原理 NtfsDisableLastAccessUpdate 这个注册表选项, 控制NTFS 在访问文件,目录时的刷新最后访问时间的行为。它会在每次我们访问文件的时候,刷新这个属性标签,记录上次你访问它的时间,所以这个写磁盘操作是非常大的。 如果我们不需要,我们就可以关掉这个选项。禁止刷磁盘。   开始操作   我们运行regedit.msc 命令,打开注册表, 找到位置:HKEY_LOCAL_M

  • [编程语言] Golang 策略设计模式 介绍 2020-12-26 19:20:20

    简介 本教程讲解Golang编程语言的策略设计模式 开始   策略模式是设计模式的一种。软件开发中,我们经常会遇到这样的场景,比如支付,用户支付,可以通过支付宝,微信,或者银联。 他们最终的目的都是完成付钱的动作。我们可以归纳抽象这些支付渠道为相同的流程;基本的支付动作都是相同的,只不过支付实现(策略)不一样。比如调用的api 不一样,参数不一样,签名不一样等。 我们可以定义基本的支付 interface,然后用不同的实现,完成 provider.DoPay 操作,完成支付。 这种就

  • [前端开发] ant design pro pro-table 翻页定位的问题 2020-12-26 19:19:34

    问题 使用ant design pro 的时候,pro-table组件是一个强大的表格展示组件,不过翻页的时候,如果列表太长,翻页之后,没能定位到页面开头的部分(滚动条) 怎么解决这个问题呢,请继续往下看。 解决   增加onLoad 属性, 在加载完成的时候,把页面滚动到最顶部   <ProTable<TableListItem> size="small" style={{top: 10}}

  • [电脑数码] asp.net core 自定义错误页面 2020-12-26 19:18:18

    简介 这篇文章教学如何在asp.net core项目下面,自定义错误页面,处理404,403等错误页面。 官方文档   https://docs.microsoft.com/zh-cn/aspnet/core/fundamentals/error-handling?view=aspnetcore-3.1   实战操作   在项目Startup.cs 中 Configure中增加app.UseStatusCodePagesWithReExecute &nbs

  • [Linux/Unix] 优化Linux 流控协议 2020-12-26 19:17:06

    简介 本文介绍Linux 流控协议算法,以及优化的一些基础知识 tc 介绍 tc , Linux Advanced Routing & Traffic Control, Linux高级路由和流量控制的名词,qdisc,queuing discipline 是数据包的排队规则 实时查看当前的排队规则 /proc/sys/net/core/default_qdisc 对应的sysctl设置 net.core.default_qdisc   默认的排队规则是:pfifo

  • [Linux/Unix] 利用curl 抓取接口延时数据 2020-12-26 19:15:43

    简介 做接口开发,有时候会遇到投诉接口响应缓慢的场景。一般客户端投诉会比较多。这个时候我们需要分析一下具体慢在哪个环节。 好在我们可以用curl工具,抓取一段时间内的接口响应延时数据,包括dns解析,建立链接,等待请求响应的时间。 工具源代码 编写了一个脚本工具,源代码如下   #!/bin/bash set -o errexit print_header () { echo "code,time_total,time_namelookup,time_conn

  • [电脑数码] msys2 安装ming-w64-gcc 2020-12-26 19:13:43

    简介 在前面的msys2安装教程中,你应该学会了如何安装msys2,并设置导入windows Path变量,这里我继续教大家如何安装gcc工具 开始 pacman -Syuu pacman -S mingw-w64-x86_64-toolchain   然后添加系统变量Path   D:\soft\msys64\mingw64\bin\ 保存,并关闭 使用 关掉所有命令行窗口   再重新打开一个msys2 shell,然后试试输入gcc 命令,应

  • [编程语言] msys2, windows下面最好的linux软件工具 2020-12-26 19:09:10

    简介 msys2是一个为windows提供linux下面各种软件工具的包管理器,相比传统的msys,经过优化的msys2提供了更强大的软件包管理功能,如果你用过archlinux,那么msys2也具有相同的pacman 安装 访问msys2官方网站,找到名为 msys2-<架构>-<日期>.exe 的文件(如 msys2-x86_64-20141113.exe),下载安装即可。 pacman 的配置 定位到安装目录,比如c:/msys2, 找到etc/pacma

  • [服务器/VPS/云] Nginx记录日志到systemd journal 2020-12-26 19:07:51

    简介 今天要给大家分享的事如何配置nginx记录access log和error log到systemd journal日志中去 需求 在前面的文章我们讲道,我们可以不需要容器化,直接部署nginx到裸服务器,那么传统的部署方式,日志文件是存在例如/var/log/nginx/access.log这样的路径。 但是你接了systemd启动管理器之后,思路可能就需要改变一下,因为systemd有个jounal日志管理组件。它会帮你管理日志,然后管理日志的rotate,查看日志也有对应的命令。非常好用,

  • [编程语言] Java开发Grpc,打印debug请求,响应信息 2020-12-26 19:07:08

    需求 在开发java项目,用到grpc的时候,我们发现调试grpc调用比较不方便,因为grpc基于http2协议封装了请求参数和响应结果,人眼一下子还是不能快速看到请求参数和响应结果的,所以我们需要掌握打印请求参数和响应信息的手段 原始代码   /** * Get topics (max 10) for our project ID: the topic list is logged to the logger. * * @param projectID the

  • [Linux/Unix] 利用sctl管理你自己的服务启动脚本 2020-12-26 19:05:59

    简介 在前面的微头条,我们讲到了我们不需要容器。那么问题来了。我们怎么启动我们的服务呢?linux下面常用的启动程序,有systemd和supervisor, supervisor是python写的。 systemd是很多linux自带的启动管理程序。 今天给大家讲解如何通过一个自定义的 脚本,来帮助我们管理systemd服务 原理 我们管理systemd服务的原理,就是把我们的服务启动配置文件,加到/etc/systemd/system/这个默认的目录下面 sctl脚本 这个脚本,

  • [前端开发] postman 脚本编程入门 2020-12-26 19:04:26

    简介 postman提供了强大的脚本功能,你可以编写预处理脚本,比如增加加密变量等。 scripts系统 首先,我们可能会用到引入第三方js类。 那么postman默认提供了很多类,你可以直接require,然后可以调用对应的api ajv → v6.6.2 atob → v2.1.2 btoa → v1.2.1 chai → v4.2.0 cheerio → v0.22.0 crypto-js → v3.1.9-1 csv-p