<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[SiriusWilliam的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/SiriusWilliam</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; SiriusWilliam]]></copyright><item><title><![CDATA[Qt 6.2.2连接MySQL8.0.28且无需修改MySQL密码策略的方法]]></title><link>https://blog.youkuaiyun.com/SiriusWilliam/article/details/123499790</link><guid>https://blog.youkuaiyun.com/SiriusWilliam/article/details/123499790</guid><author>SiriusWilliam</author><pubDate>Tue, 15 Mar 2022 14:36:16 +0800</pubDate><description><![CDATA[前言
最近需要使用Qt连接MySQL，毫无疑问涉及到了编译MySQL驱动，以及QSqlDatabase: QMYSQL driver not loaded的问题。
网络上其他文章分为几大类：

1、编译好MySQL驱动，莫名其妙就使用成功了。
这种情况是因为MySQL使用的是5.x。
2、使用MySQL connector c 6.11编译MySQL驱动。
这种方法编译出来的驱动是5.x的，因为MySQL connector c最后版本是2017年，可以链接，但是需要修改MySQL 8.0的密码策略。
3、]]></description><category></category></item><item><title><![CDATA[Qt中double与float与16进制字符串之间的转换]]></title><link>https://blog.youkuaiyun.com/SiriusWilliam/article/details/117483663</link><guid>https://blog.youkuaiyun.com/SiriusWilliam/article/details/117483663</guid><author>SiriusWilliam</author><pubDate>Wed, 02 Jun 2021 21:54:50 +0800</pubDate><description><![CDATA[前述
在一些需求中，我们需要读取一些二进制文件，比如java的class文件，图片文件等等。我们有时需要解析里面具体的内容。通过Qt的QFile类读取文件后，可以将其中的二进制读到一个QBytearray中，而我们可以通过QBytearray的toHex方法将其转换为16进制字符串。
而有些时候，这些数据会存储一些double和float类型的浮点数据的16进制形式，我们需要根据需求把16进制转换为double或float。
对于整数int形式，Qt中有明确的方法可以进行转换。这里我们用uint的类型，避免]]></description><category></category></item><item><title><![CDATA[MySQL百万级压测数据表]]></title><link>https://blog.youkuaiyun.com/SiriusWilliam/article/details/113100674</link><guid>https://blog.youkuaiyun.com/SiriusWilliam/article/details/113100674</guid><author>SiriusWilliam</author><pubDate>Mon, 25 Jan 2021 00:16:20 +0800</pubDate><description><![CDATA[一个压测百万级数据表，数据量将近300万。
链接：https://pan.baidu.com/s/11vbcHIo97vkifamJNdsq7Q
说明：
这个表除了数据什么都没有，没有主键外键什么什么这那那这，方便测试用。
修改自github上的一个压测表集合：https://github.com/datacharmer/test_db，码云导库的时候也能找到这个，可以通过码云下载clone，码云比较快。
这个github项目下载后，可以直接导入运行employees.sql，里面所有的表就都可以导入MyS]]></description><category></category></item><item><title><![CDATA[Qt中QTreeview，QLIstView，QTableview等表格控件更新数据model时内存泄漏的问题]]></title><link>https://blog.youkuaiyun.com/SiriusWilliam/article/details/112097653</link><guid>https://blog.youkuaiyun.com/SiriusWilliam/article/details/112097653</guid><author>SiriusWilliam</author><pubDate>Sat, 02 Jan 2021 15:37:17 +0800</pubDate><description><![CDATA[前言
最近开发redis可视化ui，连到了阿里云上的redis，这个redis的hash动辄好几百条数据，拿到后写到QTableview中。测试良好。
但测试一段时间后，点了几十条hash，拿到了几十条hash数据，QTableview也更新了几十次，在进行其他操作的时候，出现了程序崩溃。
于是就想，是不是发生了内存泄漏。
场景
假设有一个QTableview，名叫table
先看下面的代码，功能是清空TableView
void clearTreeView(){
	ui-&gt;view-&gt;setM]]></description><category></category></item><item><title><![CDATA[Qt使用hiredis同步api连接redis面临判断连接是否可以的问题]]></title><link>https://blog.youkuaiyun.com/SiriusWilliam/article/details/112024705</link><guid>https://blog.youkuaiyun.com/SiriusWilliam/article/details/112024705</guid><author>SiriusWilliam</author><pubDate>Thu, 31 Dec 2020 16:52:12 +0800</pubDate><description><![CDATA[hiredis还是挺好用的，但实际运用时候发现，同步方式下，hiredis维护的redis连接在没执行命令的时候是没有办法知道连接是否仍然存在服务端是否宕机的，异步api在处理结果方面也是极其麻烦，这里阻塞那里加锁这里等待回调函数执行完毕的。
gui界面打开后，不执行任何操作，redis宕机了，这边的gui也没有任何反应，只有在执行命令时才能捕捉到REDIS_ERR，显热这是达不到预期的。另外，虽然hiredis提供了qt连接的示例及头文件qt.h，但仍然是异步方式连接，处理结果还是很麻烦。
再者，hire]]></description><category></category></item><item><title><![CDATA[关于hiredis库能否在windows系统下编译]]></title><link>https://blog.youkuaiyun.com/SiriusWilliam/article/details/111937657</link><guid>https://blog.youkuaiyun.com/SiriusWilliam/article/details/111937657</guid><author>SiriusWilliam</author><pubDate>Tue, 29 Dec 2020 21:48:10 +0800</pubDate><description><![CDATA[有话要说
最近研究redis，在win32平台下的redis。
查阅了大量文章。
100%的文章都告诉我在windows平台（win32）下不能用hiredis。
我就怕了。
于是乎自己用socket根据redis协议写了一个redis链接库。
正常使用确实没问题。但由于redis协议的特点，tcp没办法知道redis服务端发过来的数据报文的长度，没有报头。
遇到网络状况不好时候，会造成接收数据不全，数据丢失，这问题就大了。
偶然间，我打开了hiredis的源代码。
看了一看hiredis里面的CMakeL]]></description><category></category></item><item><title><![CDATA[C++网络编程Socket TCP阻塞模式客户端发送数据后，获取服务端返回的数据大小（缓冲区内的长度）]]></title><link>https://blog.youkuaiyun.com/SiriusWilliam/article/details/110355837</link><guid>https://blog.youkuaiyun.com/SiriusWilliam/article/details/110355837</guid><author>SiriusWilliam</author><pubDate>Sun, 29 Nov 2020 23:11:42 +0800</pubDate><description><![CDATA[前言
最近研究网络编程，研究未知字节长度下TCP客户端接收服务端发来的消息。
我们在使用socket接收消息时候，会定义一个定长的char数组，长度1024或更多，通常1024足够接收所有，但也不一定，比如发送一本小说那么长的字符串，大于1024太正常。
通常，解决方式是在数据头部写上数据大小，客户端拿到数据大小后确定长度，这也是普遍的做法。
本人最近在研究用socket连接redis数据库，redis发送过来的包没有长度，人家的协议硬性规定，咱也不可能去改，只能针对这种不知道发送过来的数据有多大的情况，另]]></description><category></category></item><item><title><![CDATA[C++开发Python库：解决生成pyd导入pycharm后函数参数名称未定义（为*args和**kwargs）的问题（心路历程）]]></title><link>https://blog.youkuaiyun.com/SiriusWilliam/article/details/109299621</link><guid>https://blog.youkuaiyun.com/SiriusWilliam/article/details/109299621</guid><author>SiriusWilliam</author><pubDate>Mon, 26 Oct 2020 23:10:00 +0800</pubDate><description><![CDATA[前言
首先注意：这里的c++开发Python库指的是调用Python C/C++ API，而不是在python里调用dll动态链接库。
最近在研究用c++编写Python库，一顿折腾。
网络上的教程给的例子都是定义一个只接受一个参数的函数，用c++来编写。
我爱折腾，写了一个需要2个参数的c++函数，来让Python调用。
这个模块名称我设置为pure_python，之所以这么命名，是之前研究过用c++的Boost库来开发Python库，现在想研究纯Python原生的开发方式。
工程的基本逻辑
C++函数逻]]></description><category></category></item><item><title><![CDATA[TensorFlow报错Internal: no kernel image is available for execution on the device解决]]></title><link>https://blog.youkuaiyun.com/SiriusWilliam/article/details/108930616</link><guid>https://blog.youkuaiyun.com/SiriusWilliam/article/details/108930616</guid><author>SiriusWilliam</author><pubDate>Mon, 05 Oct 2020 18:10:40 +0800</pubDate><description><![CDATA[一、错误描述
运行代码：
import tensorflow as tf
out = tf.random.uniform([4, 10])
y = tf.constant([2, 3, 2, 0])
y = tf.one_hot(y, depth=10)
loss = tf.keras.losses.mse(y, out)
loss = tf.reduce_mean(loss)
print(loss)

报错信息：
F .\tensorflow/core/kernels/random_op_gpu.h:23]]></description><category></category></item><item><title><![CDATA[解决Jetbrains Clion和PyCharm等编辑器run窗口和VS2019运行c++中文编码问题，不修改文件编码为gbk的一劳永逸的方法]]></title><link>https://blog.youkuaiyun.com/SiriusWilliam/article/details/107872108</link><guid>https://blog.youkuaiyun.com/SiriusWilliam/article/details/107872108</guid><author>SiriusWilliam</author><pubDate>Fri, 07 Aug 2020 23:37:38 +0800</pubDate><description><![CDATA[摘要
&nbsp;&nbsp;&nbsp;&nbsp;最近在使用Clion编辑器写C++，发现run窗口输出中文出现乱码，切换到vs2019中也同样如此。
&nbsp;&nbsp;&nbsp;&nbsp;网络上很多解决办法，比如：

修改clion或pycharm的file encoding为utf-8然后把文件字符编码转为GBK。

&nbsp;&nbsp;&nbsp;&nbsp;这种方法最常见，但我可以负责任地说，这种方法会坑死你，因为，你xx改了文件的字符编码为GBK，项目组那么多文件你给改成了GBK]]></description><category></category></item><item><title><![CDATA[python3.7与3.8多版本共存，并解决pip运行时Fatal error in launcher: Unable to create process using问题]]></title><link>https://blog.youkuaiyun.com/SiriusWilliam/article/details/106773132</link><guid>https://blog.youkuaiyun.com/SiriusWilliam/article/details/106773132</guid><author>SiriusWilliam</author><pubDate>Mon, 15 Jun 2020 23:41:22 +0800</pubDate><description><![CDATA[摘要
网络上有很多关于python多版本共存的文章，但都是python2.7与python3.x共存。我最近一直都用的python3.7，有想体验一下python3.8的新特性，就研究了一下python3.7与python3.8共存的问题，其实挺简单，就是正常安装，然后移动一下系统环境变量，但问题出现了，经过查阅资料，找到了解决办法
安装python3.8.3
这步没什么好说的，去官网下载安装包安装就好了。
实现python3.7.7与python3.8.3共存
1、改名
与python3.7与python]]></description><category></category></item><item><title><![CDATA[Java原始方法连接MySQL时的一个官方隐藏改进]]></title><link>https://blog.youkuaiyun.com/SiriusWilliam/article/details/106743725</link><guid>https://blog.youkuaiyun.com/SiriusWilliam/article/details/106743725</guid><author>SiriusWilliam</author><pubDate>Sun, 14 Jun 2020 11:28:20 +0800</pubDate><description><![CDATA[Java连接MySQL时的步骤：
1、下载jdbc驱动
2、Class.name方法注册驱动
3、创建DriverManager对象，利用静态方法getConnection链接到MySQL
4、利用步骤三中的对象的createStatement方法，创建Statement对象
5、利用步骤四中的executeQuery方法执行SQL语句，返回ResultSet对象；
6、循环遍历用各种get来进行获取结果。
在进行注册驱动时，根据官方文档：
Class.forName("com.mysql.cj.jdbc.]]></description><category></category></item><item><title><![CDATA[将PowerShell变为中文版]]></title><link>https://blog.youkuaiyun.com/SiriusWilliam/article/details/106307575</link><guid>https://blog.youkuaiyun.com/SiriusWilliam/article/details/106307575</guid><author>SiriusWilliam</author><pubDate>Sat, 23 May 2020 22:38:48 +0800</pubDate><description><![CDATA[在命令行输入Update-Help -UICulture zh-CN，等待完成即可。

]]></description><category></category></item><item><title><![CDATA[通过一个例子讨论python中类属性的一些性质]]></title><link>https://blog.youkuaiyun.com/SiriusWilliam/article/details/105380710</link><guid>https://blog.youkuaiyun.com/SiriusWilliam/article/details/105380710</guid><author>SiriusWilliam</author><pubDate>Wed, 08 Apr 2020 10:58:12 +0800</pubDate><description><![CDATA[前言

  类属性和实例变量区别比较大，本文均为举例说明，为例实现变量值的动态变化，采用redis数据库，不过读者不用担心，对于涉及到redis数据库的地方都会通俗到极致。

正文

  首先，有这样一段代码。


import databases as db

class Test:
    mydb = db.DatabaseRun()    # 创建数据库实例
    data = ...]]></description><category></category></item><item><title><![CDATA[Python3.7.7+OpenCV4.2+OpenCV-contrib-python在VS2017下的编译和安装配置以及填坑（解决PyCharm无自动补全的问题）]]></title><link>https://blog.youkuaiyun.com/SiriusWilliam/article/details/104891856</link><guid>https://blog.youkuaiyun.com/SiriusWilliam/article/details/104891856</guid><author>SiriusWilliam</author><pubDate>Mon, 16 Mar 2020 09:42:08 +0800</pubDate><description><![CDATA[本文仅针对Python进行讲解。
一、前言
​		OpenCV在3.5版本以后因为版权问题，移除了SIFT和SURF工具，并整合入了opencv-contrib工具包中，但是，仅通过pip安装opencv-contrib-python是无法在python中使用的，需要用户自行将opencv-contrib编译进opencv中。
​	 	网络上有很多关于OpenCV + OpenCV-contrib...]]></description><category></category></item></channel></rss>