- 博客(74)
- 资源 (3)
- 收藏
- 关注

原创 github clone 代码到本地全步骤
由于最近仓库由gitLab转到github,所以可以把代码拉到家里的电脑上来了!一、首先生成SSH密钥:1.$ cd ~/.ssh 查看是否有文件存在 如果没有密钥则不会有此文件夹,有则备份删除 2.$ssh-keygen -t rsa -C 8122XXX@qq.com 后面的是github注册的邮箱账号 回车后会叫你输入github的用户名和密码
2016-02-29 21:12:46
35812
原创 windows git bash 使用zsh 并集成 oh my zsh
windows git bash 使用zsh 并集成 oh my zsh, 记录了自己的踩坑过程,并增加了 zsh-autosuggestions 插件的集成。
2025-01-21 15:46:57
1108
原创 python http server运行Angular 单页面路由时重定向,解决404问题
当页面请求到固定的路由地址的时候,将请求重定向到了index.html文件,因为我们打包后只有index.html文件,并没有其他的网页文件,所以请求的资源找不到。在angular.json 中添加"src/server.py",这样当build的时候,会拷贝 server.py 在dist 的index.html的同级目录。但是运行ng build后,在dist 路径下的打包好的额index.html 必须要在服务器下运行才能加载。当Angular在本地ng server运行时候,可以顺利访问各级路由。
2025-01-16 14:49:46
703
原创 完全自定义Qt翻译功能,不使用Qt Linguist的.ts 和 .qm类型翻译
展示了集成Qt Linguist 的功能。但是有时候Qt的翻译功能比较繁琐,我们简单项目指向使用本地化功能,将中文字符串导入到项目中,避免编码格式问题导致的乱码。只需要使用一个简单的json或者其他格式的本地文件作为映射的key/value.当完全需要自定义翻译文件,或者只是简单的避免将中文写入cpp文件导致显示在ui上乱码时可以使用。
2025-01-10 10:16:39
475
原创 创建受浏览器信任的自签名证书
本文主要介绍了创建自签名受信任证书的相关内容。阐述了在无需向权威证书颁发机构申请的情况下满足加密通信、身份验证等需求。文中详细说明了创建自签名受信任证书的操作步骤,涵盖了使用工具(如 OpenSSL 等常见工具)生成私钥、基于私钥创建证书请求以及最终签发自签名证书等关键环节,同时也提及了如何将自签名证书添加到受信任的证书存储区域(不同操作系统有相应的设置方法),以便系统及相关应用能认可该证书并正常使用
2024-12-04 17:19:10
756
原创 深入了解iOS内存(WWDC 2018)笔记-内存诊断
主要记录下用于分析iOS/macOS 内存问题的笔记。主要分析命令: `vmmap`, `leaks`, `malloc_history`
2024-04-08 17:33:03
1718
1
原创 C++符号清洗、Swift符号清洗, 编译还原
C++ 由于函数重载的原因,针对每个函数符号,假如了的机制。导致堆栈适合机制阅读,因为每个函数符号都是独一无二的,但是这并非程序员易读的文字。比如我们有这个符号crash堆栈。看着很别扭, 这时我们可以使用命令可以看出-->
2024-04-03 17:00:22
529
原创 Qt打印系统库的日志 - QLoggingCategory
Qt的动态库通过源码可以可以看到含有大量的qCInfo和qCDebug等大量的日志, 但是我们正常运行Qt程序,这些动态库或插件里面的日志是不会输出到我们的控制台里面的。所以本章主要记录怎么输出这些日志出来。
2024-03-28 15:37:51
852
原创 MacOS Xcode 使用LLDB调试Qt的 QString
Xcode中显示 预览QString特别不方便, 而Qt官方的lldb脚本一直加载失败,其他第三方的脚本都 不兼容当前的 环境。所以自己研究写了当前的教程。当前方法同样适用于其他非 苹果内置类型的预览和显示。
2024-03-19 14:11:07
1148
原创 Xcode调试Qt 源码
在Mac下使用Xcode 开发Qt程序,由于程序断点或者崩溃后,Qt库的堆栈并不能够正确定位到源码的cpp文件,而是显示的是汇编代码,导致不直观的显示。加载的其他三方库都是同理。所以找了攻略和研究后,写的这篇文章。
2024-03-15 17:14:35
1087
原创 跨进程通信: Unix Domain Socket 创建实例。 Windows和MacOS代码已适配兼容
具体使用到的Socket方法介绍可以查看本文中的server和client的代码可以直接 复制粘贴到 Windows 或 MacOS 的命令行程序中直接运行。由于 Windows 平台下的创建文章比较少,所以创建了这个demo。可直接在跨平台程序中使用。
2024-01-23 16:45:52
1168
原创 macOS跨进程通信: Unix Domain Socket 创建实例
Socket是 网络传输的抽象概念。一般我们常用的有Tcp Socket和UDP Scoket, 和类Unix 系统(包括Mac)独有的(UDX)。Tcp Socket能够跨电脑进行通信,即使是在同一个电脑下的多进程间通信,也会通过网卡进行数据传输,如果本地网卡的环回网络被禁用, 则会导致通信失败。,使用的是Liunx 系统中万物皆文件的概念,和有名管道的操作差不多,都是在文本创建一个特有的文件,用来在两个进程间通信,两个进程分别写入和读取文件流中的数据,达到传输的目的。和Tcp Socket。
2024-01-23 14:42:11
2024
原创 macOS跨进程通信: TCP Socket 创建实例
Socket 是 网络传输的抽象概念。一般我们常用的有Tcp Socket和 Udp Scoket, 和类Unix 系统(包括Mac)独有的(UDX)。Tcp Socket能够跨电脑进行通信,即使是在同一个电脑下的多进程间通信,也会通过网卡进行数据传输,如果本地网卡的环回网络被禁用, 则会导致通信失败。,使用的是Liunx 系统中万物皆文件的概念,和有名管道的操作差不多,都是在文本创建一个特有的文件,用来在两个进程间通信,两个经常分别写入和读取文件流中的数据,达到传输的目的。和Tcp Socket。
2024-01-23 11:26:52
2105
原创 macOS跨进程通信: FIFO(有名管道) 创建实例
在类linux系统中管道分为有名管道和匿名管道。两者都能单方向的跨进程通信。匿名管道(pipe): 必须是父子进程之间,而且子进程只能由父进程fork() 出来的,才能继承父进程的管道句柄,一般mac 开发用的很少。有名管道(fifo): 可以在同一台机器,没有关系的进程间通信。其本质是本地创建一个文件,然后使用其路径作为纽带。open后再内核空间产生管道,不同进程之间分别连接管道的读和写的端口进行通信。
2024-01-03 18:04:07
1009
原创 macOS跨进程通信: XPC 创建实例
XPC是macOS里苹果官方比较推荐和安全的的进程间通信机制。集成流程简单,但是比较绕。主要需要集成XPC Server这个模块,这个模块最终会被apple的根进程launchd管理和以独立进程的方法唤起和关闭, 我们主app 进程并不需要管理这个进程的生命周期。特点:主要做权限分离和错误隔离使用,使用独立进程的方法,可以避免独立进程crash影响到主进程, 而且独立进程可以和主进程赋予不同的权限,比如是否沙盒,是否有网络权限等。命令可以查看系统使用的xpc服务。下面一张官方图,说明了对应的关系。
2023-12-29 14:08:54
2155
原创 Cocoa Mac音频模块关键步骤总结
CoreAudio, AudioHardware,AudioServerPlugIn,AudioToolbox, AudioQueueRef, AudioUnit。
2023-12-13 15:54:54
807
原创 Apple AudioToolbox 之 音频编解码(AudioConverterRef)
今天记录是的是 使用AudioToolbox框架 使用AudioConverterRef工具进行本地音频文件的编码和解码。
2023-08-11 11:29:49
966
原创 macOS coreAudio 之 AudioQueue 播放本地音频文件
macOS CoreAudio 使用记录 之 使用AudioQueue配合AudioFile进行播放macOS 本地音频文件本文打仓库代码为:CoreAudio作为AppleAudioQueueAudioFileBufferAudioQueue。
2023-07-21 11:41:53
1028
2
原创 OC 学习记录随笔 之AutoreleasePool
总资料全是随笔 笔记 与 学习资料。没有规律。自动释放池数据结构class AutoreleasePoolPage : private AutoreleasePoolPageData 继承与AutoreleasePoolPageData, 经过综合后的主要结构为:class AutoreleasePoolPage{ magic_t const magic; __unsafe_unretained id *next; //能够存储的 obj 的位置的 指针 p
2022-06-14 11:33:38
346
原创 音视频笔记:ffmepg 基础代码demo(音视频采集、播放、编码、解码、解封装)
本项目主要是用Qt + c++ + ffmpeg 写的音视频采集、播放、编码、解码、解封装的代码demo。每个按钮对应的文件均为相对独立的demo cpp文件。由于代码数量太大,这里就不给出具体代码,只写出具体的流程逻辑,需要代码的可以到github下载
2022-06-01 18:04:19
931
原创 iOS 签名认证机制回顾与解析
关于前置基础概念: 需要参考加密、签名、证书的基础概念和流程众所周知 iOS 无论开发和发布都需要一堆的证书,那么每个证书的作用是啥呢,它是怎么生成的呢,就是本章主要了解的内容。Apple 本身就是 权威 的CA证书的认证机构。一、证书列表开发中必须包含有以下几种证书:Mac上生成CertificateSigningRequest.certSigningRequest文件上传刚刚的.certSigningRequest文件 生成 ios_development.cer\ios_distribu
2022-01-19 18:39:28
2838
3
原创 加密、签名、证书的基础概念和流程
常用加密算法类型:加密算法:对称加密 (可逆)常用算法DES(Data Encryption Standard):数据加密标准,速度较快,适用于加密大量数据的场合;(已经不安全了,)3DES(Triple DES):是基于DES,对一块数据用三个不同的密钥进行三次加密,强度更高;AES(Advanced Encryption Standard):高级加密标准,是下一代的加密算法标准,速度快,安全级别高,支持128、192、256、512 (首选的算法)特点指加密和解密用的是同一个秘钥。
2022-01-19 18:08:11
2236
原创 OC 学习记录随笔 之APP 启动
总资料全是随笔 笔记 与 学习资料。没有规律。APP冷启动阶段主要可以分为3个阶段dyldruntimemaindylddyld 叫做 apple的动态链接器, 可以用来装载 Mach-O文件(可执行文件和动态库等)启动的时候 dyld做的事情装载app的可执行文件, 同时递归加载所有依赖的动态库当dyld 将所有可执行文件和动态库都加载完成后,会通知runtime进行下一步的处理runtimeruntime做的事情调用map_images()进行可执行文件内容
2022-01-12 21:30:50
1772
原创 OC 学习记录随笔 之多线程
总资料全是随笔 笔记 与 学习资料。没有规律。常见多线程方法dispatch_queue_global_t qH = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0); 并发的dispatch_queue_t que = dispatch_queue_create("jimboqueue", DISPATCH_QUEUE_CONCURRENT /*DISPATCH_QUEUE_SERIAL*/); 并发和串行自由控制线程阻塞
2021-12-22 20:35:52
1978
原创 HTTP笔记
节选自《图解HTTP》一书方法列表持久链接HTTP 协议的初始版本中, 每进行一次 HTTP 通信就要断开一次 TCP 连接以当年的通信情况来说, 因为都是些容量很小的文本传输, 所以即使这样也没有多大问题。 可随着 HTTP 的普及, 文档中包含大量图片的情况多了起来。比如, 使用浏览器浏览一个包含多张图片的 HTML页面时, 在发送请求访问 HTML页面资源的同时, 也会请求该 HTML页面里包含的其他资源。 因此, 每次的请求都会造成无谓的 TCP 连接建立和断开, 增加通信量的开销
2021-12-21 10:39:47
716
原创 OC 学习记录随笔 之 RunLoop
总资料全是随笔 笔记。没有规律RunLoop 相关类CFRunLoopRefCFRunLoopModeRefCFRunLoopSourceRefCFRunLoopTimerRefCFRunLoopObserverReftypedef struct __CFRunLoop * CFRunLoopRef;//全部结构/*struct __CFRunLoop { CFRuntimeBase _base; pthread_mutex_t _lock; /* locke
2021-12-12 21:08:33
1718
原创 OC 学习记录随笔 之 Block
全是随笔 笔记。没有规律。部分为MJ老师的课程笔记.Blockblock 本质就是一个oc对象, 它的内部存有一个isa指针struct __block_impl { void *isa; int Flags; int Reserved; void *FuncPtr;};static struct __main_block_desc_0 { size_t reserved; size_t Block_size; void (*copy)(struct __main
2021-11-20 21:24:13
2070
原创 Sublime 配置Python/C++ 编译运行环境
Python 编译配置menu 路径 Tools -> Build System -> New Build Syestem...。在打开的文件中编辑{ "env": { "PYTHONIOENCODING": "utf8" }, "working_dir": "$file_path", "shell_cmd": "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Py
2021-11-18 10:33:05
1352
原创 OC 学习记录随笔
全是随笔 笔记。没有规律。动态特性 VS 静态特性OC: 动态类型(id)、多态绑定([obj msgSend])、 多态加载(图片2x3x替换,动态加方法和变量)OC Alloc Init Newalloc 开辟内存,绑定指针isainit return(id)self,工厂构造方法,工厂设计,给开发者初始化数据提供重写入口内存检测僵尸对象zombie object :已经被系统回收的内存,但是没有置空, 随时可能被其他申请和覆盖.内存,进程分别有虚拟页面,在去访问物理内存。只有
2021-11-05 15:06:35
2105
原创 C++ 学习记录随笔
没有规律,没有章法,看到哪里写哪里。单纯笔记编译步骤:hello.c -> 预编译 -> hello.i -> 编译 -> hello.s -> 汇编 -> hello.o -> 链接 -> 可执行文件预编译会对 预编译伪指令(一般以 # 打头,且前面只能出现空白字符)进行处理后 生成中间文件作为编译器的输入。#include (头文件的所有内容都会最终合并到某一个或几个源文件中,将所有头文件递归展开后形成的源文件叫做编译单元)#define
2021-11-01 16:45:42
477
原创 Pyside2 学习系列三:PyInstaller打包项目瘦身(超详细的Pyside2 攻略)
继上一篇文章打包后,发现包太大了,我们现在开始进行瘦身优化。本项目的所有演示代码:github可在这里下载。打包只用的工具为PyInstaller。优化1 简单查看包构成2 瘦身方法2.1 打包成单文件2.2 UPX压缩2.2.1 命令行添加地址2.2.2 将UPX路径添加到环境变量2.3 打包成单文件并UPX压缩2.4 打包成多文件后,删除无用的依赖库(未成功)3 方法对比1 简单查看包构成下图中,我们可以看到,我们只是简单的添加了两个ui文件,包大小就显示有98.5 MB。完全不可理解。进
2021-09-27 16:05:34
10455
4
原创 Pyside2 学习系列二:PyInstaller打包项目exe (超详细的Pyside2 攻略)
继上一篇文章创建了项目后,本章我们进行项目的打包工作。本项目的所有演示代码:github可在这里下载。打包只用的工具为PyInstaller。打包步骤1 准备环境1.1 安装`PyInstaller `2.初始化虚拟安装环境2.1 创建虚拟环境2.2 加载虚拟环境2.3 添加依赖库3 开始打包3.1 进入到我们工程的路径3.2 打包尝试3.3 解决ui文件报错3.3.1 方法一:手动拷贝3.3.2 方法二:修改打包命令3.3.3 方法三:修改.spec文件4 小结1 准备环境1.1 安
2021-09-24 16:19:54
10317
原创 Pyside2 学习系列一:创建包含ui文件的项目 (超详细的Pyside2 攻略)
主要是Pyside2的相关文档太少了,不全且大部分是英文的,所以当时想要学习pyside2开发gui的时候,研究的比较多,所以在这里做一个相关的总结。请注意:这是Pyside2,并不是PyQt,虽然两者的语法差不多,都是python和qt开发ui,但是两者的组成是不一样的,Pyside2是qt官方开发,PyQt是第三方公司开发的,而且两者的调用函数还是有一定区别的。因为这里需要是ui文件,所以开发的工具是Qt Creator, python 环境是3.6.7。由于Qt Creator已经默认安装了
2021-09-07 16:44:24
4506
2
原创 Qt学习笔记之--多线程
其他链接:- OC学习笔记之多线程- Python学习笔记之–多线程和多进程本文的所有代码均可在github上下载查看。Qt 使用多线程主要存在 下面几种方法继承QRunnable类 并重写 run() 方法继承QThread类 并重写 run() 方法继承QObject类作为工作类,创建临时QThread,使用moveToThread() 来将QObject整体移入子线程QtConcurrent 类直接在子线程调用 方法或 lambda表达式下面就主要针对上面4种情况进行代码
2021-04-30 15:10:47
458
VVDocumenter-Xcode-master 代码规范注释
2016-02-24
iOS自定义cell侧滑删除、编辑等按钮
2016-01-09
iOS的Navigation自带返回按钮点击后弹框提示确认返回、源码
2016-01-09
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人