其他
文章平均质量分 68
虽不易
居安思危,思则有备,有备无患。
展开
-
通过LiveGo学习WebSocket
LiveGo开源代码中了解websocket的连接建立和协议交互过程,带你了解背后细节。原创 2022-06-28 16:45:09 · 1036 阅读 · 1 评论 -
GO语言实战要点摘录
Go语言实战中提取的基础要点,以做备忘。原创 2022-06-13 08:46:09 · 173 阅读 · 0 评论 -
非Unicode程序创建非本地字符集的文件路径
路径带非本地编码字符集的字符,文件目录及文件创建方法。原创 2022-02-26 14:25:24 · 436 阅读 · 0 评论 -
多选字段数据库设计
多选字段数据库表设计。原创 2022-01-13 20:01:17 · 1753 阅读 · 0 评论 -
requestMatchers()适用的业务场景
authorizeRequests适用的业务场景原创 2022-01-08 14:25:43 · 820 阅读 · 0 评论 -
OAuth原理相关博客
OAuth相关博客查找、分享原创 2022-01-06 10:16:24 · 156 阅读 · 0 评论 -
LINUX进程启动时自动挂载调试
对于某些多进程的应用,子进程是有主进程拉起来的。此时,如果相对子进程的启动流程打断点就比较麻烦,如果在子进程启动时调试器自动挂载就完美了。网上找到了gdbhelpers的开源工具库,其对gdb的现有命令做了扩展,其中一个工具是实现预挂载的,原理也比较简单,就是对系统接口加探测回调,然后做进程名称的匹配,若匹中自动调用GDB的attach命令,挂载到该进程。 源码路径如下:GitHub - tromey/gdb-helpers: GDB helper scripts下载解压后,放到某个路径下,最好是跟原创 2021-12-15 20:23:50 · 1211 阅读 · 0 评论 -
VLD内存泄漏检测工具
VLD,检测程序中内存泄漏的工具,检索的相关资料都是说在debug模式下才可以用,针对发布前的版本内存泄漏问题还是想直接做release版本检测更实用。在开源代码的提交记录中找到了相关表述,如下图:网上也找到了使用这个宏的相关代码,引用自:在Release版本下使用VLD_w_419675647的博客-CSDN博客#define VLD_FORCE_ENABLE#include “vld.h”//在程序启动和退出时,分别增加以下函数调用{…VLDGlobalEnable();原创 2021-12-09 13:46:05 · 327 阅读 · 0 评论 -
Linux编译中的头文件路径大小写校验脚本
跨平台编译中,Windows开发的代码路径大小写不正确并不导致编译出错,但在Linux下编译时文件名是严格区分大小写的所以会出现很多因大小写问题导致的编译错误。所以通过编译前检测所有大小写问题,批量修改可以提升编译的效率。思路上,通过grep工具检出所有的包含,然后逐个做locate校验,如果包含路径书写不规范也会导致存在性校验失败,可以对校验条件稍作修改。完整代码如下:#!/bin/bashworkdir=.modify=0while [ $# -gt 0 ]do case原创 2021-12-07 10:42:19 · 902 阅读 · 0 评论 -
Linux跨平台编译问题记录
整理linux跨平台编译中问题记录原创 2021-12-02 09:21:10 · 1671 阅读 · 1 评论 -
MacOS下调试信息格式区分
一直没弄明白DWARF和符号文件的区别,恰好在StackOverflow找到了详细的分析。DWARF是调试信息的格式,在开发阶段(未配置生成信息格式为dSYM的情况下)调试信息是在目标文件中的,调试时根据二进制执行文件中的映射表在目标文件中加载调试信息。但产品发布的时候目标文件作为中间会遗失,所以就要把这些调试信息从目标文件中剥离集成为单独的调试文件,即dSYM文件,在生成dSYM文件时会打入可执行文件一致的uuid,每次编译都会有不同的uuid,文件符号的匹配校验也是根据该uuid,所以对于面临发布的产品原创 2021-11-17 11:34:18 · 191 阅读 · 0 评论 -
bthread分析总结
bthread是brpc中高性能的基础部件,提供了与pthread一致的同步元语实现,如sleep,yeild,wait等。在网络请求中等待对端响应时,线程其实处于空等的状态,通过主动让出执行权给其他线程执行,将付出上下文切换的额外开销。为此,在brpc中引入了更轻量级的“线程”--bthread,bthread的切换是纯用户态的行为,不涉及内核态上下文切换过程,所以性能消耗更小。实现上跟线程池类似,一组线程从任务队列中取任务,但在单个线程的维度,出现空等状态时只能主动放弃执行权,进入挂起...原创 2021-09-04 16:41:24 · 750 阅读 · 0 评论 -
Drogon中WebSocket部分源码梳理
Drogon虽然是后端的框架,但也能实现网络客户端的相关功能。虽然在类名定义上有明确的Client的字样但对于其中设计思路一直没有梳理清楚,终于在看了几遍之后觉得找对了方向,故做个梳理记录。WebSocketClientImpl是WebSocketClient的接口实现类,由于websockect整个连接过程的发起端在客户端,所以该接口中做了TCPClient连接的创建,并发起TCP连接,借助该连接做了如下处理:组装ws协议升级的http请求,并发送给后端服务;接收服务的响应,做初步解析,若含同意升原创 2021-05-16 11:19:02 · 575 阅读 · 0 评论 -
Qt跨线程信号槽槽函数无响应(未调用)问题
最近在开发中遇到一个很奇怪的问题 ,槽函数与信号连接后,在代码执行中发出信号,槽函数始终进不去。一开始认为是connect调用传参不对,打了下返回值是true,而且在输出中也没有相关warnning输出。再一看跨线程信号槽调用,所以猜测跟多线程有关。排查过程中各种换信号、改参数都没有效果,偶然间把接收对象的创建移至主线程,槽函数居然执行成功了。本着有问题看手册的原则,在手册中找到了如下的说明:大体意识是说:Qobject对象是有线程归属的,或者说其存活在特定线程中。当接收到队列连接的信或 投递的事件,槽原创 2020-08-07 09:33:17 · 16978 阅读 · 8 评论 -
AutoHotKey整理
AutoHotKey整理vscode环境搭建脚本调试变量赋值及引用快捷键定义春节放假了,终于有时间把最近使用的脚本工具的语法总结一下了,写的有些简略,记录重点,后面翻出来能想起怎么用就好。vscode环境搭建1.安装AutoHotKey的扩展插件,插件安装后,创建.ahk的脚本文件后,在编辑时会有命令的提示;2.创建运行任务,菜单中选择"终端>配置任务",自动生成task.json文...原创 2020-08-01 20:10:09 · 727 阅读 · 0 评论 -
bat中函数定义及技巧总结
最近因为业余时间研究了一下如何写bat脚本文件,遇到了几个坑,折腾了很久。总结一下,已做备忘。1. 由于长期写c++代码造成的习惯,变量赋值的前后加空格。bat命令中仍采用该种写法,会命令执行时会出现一些稀奇古怪的问题,期初以为是命令使用不正确,拷贝网上实例代码仔细对照后发现是赋值符号的前后多了两个空格。如:::错误写法,输出结果为:%var%set var = abc ech原创 2018-01-21 18:15:27 · 7007 阅读 · 0 评论 -
chromium中logging源码阅读记录
Qt源码阅读中偶然间看到webegine引用了chromium的源码,应该说webengigne的实现是基于chromium源码做了一层封装。看了下为通用的base库log的实现,做一下记录。chromium的日志记录的实现比较简单,可配置性比较,不像log4xx各种复杂的配置及文件和文件拆分等。从源码实现上,可以看出其日志记录的特性:当前进程仅支持一个日志日志文件,默认名称为debug.l...原创 2020-03-08 21:03:33 · 607 阅读 · 0 评论 -
Win10安装推荐链接
Win10安装推荐链接笔记本安装更新直接蓝屏了,很是无语,百度了下重装系统的教程,有一篇还是比较靠谱的:https://baijiahao.baidu.com/s?id=1647543353897829351&wfr=spider&for=pc里面有个MSDN下载操作系统镜像的链接还真是好用,下载很快。附个msdn的链接: https://msdn.itellyou.cn...原创 2020-01-12 10:02:15 · 198 阅读 · 0 评论