编程开发
编程开发
whojoe
一个想学reverse的web狗
展开
-
go switch 与 interface
当我们实现了一个interface时,使用swtich case去判断,会命中哪条结果?default:经过测试发现,谁的case靠前,会命中谁,哪怕CustomType有一些私有方法后面空了看看switch 底层实现。。原创 2024-06-24 00:29:38 · 395 阅读 · 0 评论 -
proto与json的互相转换
在golang使用比较简单,protobuf生成的go struct是支持proto和json的序列化和反序列化的。原创 2023-12-21 23:28:08 · 1103 阅读 · 0 评论 -
git与ssh多账户共存
在使用git与ssh时,经常会遇到多个账户共存的情况例如使用不同的公钥登陆到不同的服务;使用不同的git信息进行commit。原创 2023-11-24 00:13:08 · 605 阅读 · 0 评论 -
rod disable-dev-shm-usage 踩坑
在对rod进行版本升级后,发现效果有下降,通过二分降级查找对比发现,是中间的代码导致效果变差但是本地无法复现通过在启动参数中添加解决了问题。原创 2023-10-23 20:33:02 · 361 阅读 · 0 评论 -
linux下常见编译问题
CMakeLists.txt 添加。原创 2023-08-19 21:39:44 · 559 阅读 · 0 评论 -
django groupby踩坑
django的orm作为简单查询 使用简直是太爽了,所见即所得,但是groupby时候缺有一些坑点。原创 2023-07-20 23:57:27 · 497 阅读 · 0 评论 -
Can‘t connect to HTTPS URL because the SSL module is not available
miniconda自带的python3.8 在使用pip安装包的时候报错。将conda的安装目录下的。复制到\DLLs目录下。原创 2023-07-08 19:20:22 · 943 阅读 · 0 评论 -
Anaconda+PyTorch环境搭建
点击这里,创建一个虚拟的python环境环境,命名为py38,其中python版本指定为了3.8(-n是name的缩写)PyTorch适配,我首先进入了PyTorch的官网查看到最新的版本支持CUDA为11.7和11.8,这里对显卡驱动又要求,不过显卡驱动是向下兼容的,所以直接安装了最新版528.89。下载之后一路next等待安装选项的时候,选择自定义安装。下载好之后一路next即可,可以根据情况配置安装磁盘。解压压缩包之后,复制到刚才安装cuda的文件夹里面。文件,打开使用对应的镜像进行替换即可。原创 2023-04-22 17:56:04 · 733 阅读 · 0 评论 -
ubuntu22.04安装nvidia驱动
在第一次成功之后,重启了虚拟机,失败了很多次,重装了n次系统和驱动,但是发现在windows下好用,linux下不行,记录一下成功的配置。原创 2023-04-18 00:01:24 · 4516 阅读 · 1 评论 -
pymysql更新数据后 重新读取字段数据不更新
pymysql在操作mysql数据库时候,update了数据之后select拿到的一直都是老数据。原创 2023-04-08 10:51:53 · 684 阅读 · 0 评论 -
Docker Desktop错误
将Docker Desktop中的Decker Engine的buildkit配置将其设置为false即可。找到钥匙串中的证书,双击,之后修改信任策略。mac在安装证书之后,需要手动信任。原创 2023-03-11 22:13:26 · 324 阅读 · 0 评论 -
python yaml.dump踩坑
yaml.dump 导出字段顺序yaml导出中文错误安全load。原创 2023-02-20 20:53:07 · 673 阅读 · 0 评论 -
python3.9安装backports.zoneinfo失败
【代码】python3.9安装backports.zoneinfo失败。原创 2023-01-31 21:01:43 · 2846 阅读 · 0 评论 -
python pre-commit “RuntimeError: The Poetry configuration is invalid:“
修改pre-commit的配置 更新isort到最新版本5.12.0。原创 2023-01-31 20:59:05 · 1426 阅读 · 0 评论 -
c 位域学习
在定义结构体的时候,有时候可能只需要一个bool值,但是c99标准并不存在bool类型,但是对于每一个人物中的struct都是需要申请内存的,一个int完全可以拆分成32个bool。原创 2022-11-28 01:23:01 · 178 阅读 · 0 评论 -
为什么if(-1)为真
在写程序时候发现不管是if(1) if(-1)都为真,if(0)为假。原创 2022-10-04 10:00:55 · 4901 阅读 · 0 评论 -
golang python proto
proto文件来预先定义的消息格式。数据包是按照proto文件所定义的消息格式完成二进制码流的编码和解码。proto文件,简单地说,就是一个消息的协议文件,这个协议文件的后缀文件名为“.proto”。作为演示,下面介绍一个非常简单的proto文件:仅仅定义一个消息结构体,并且该消息结构体也非常简单。原创 2022-09-29 19:44:03 · 335 阅读 · 0 评论 -
使用Valgrind检测内存泄露
使用Valgrind检测内存泄露环境测试参考文章环境kali2021apt install valgrind测试#include<stdlib.h>void f(void){int* x = malloc(10 * sizeof(int));x[10] = 0; //问题1: 数组下标越界} //问题2: 内存没有释放int main(void){f();return 0;}gcc -g -o test 1.cvalgrind --tool=memchec原创 2021-11-20 21:52:47 · 425 阅读 · 0 评论 -
centos6安装cmake3.4
centos6安装cmake3.4换源下载cmake参考文章换源curl -o /etc/yum.repos.d/CentOS-Base.repo http://file.kangle.odata.cc/repo/Centos-6.repocurl -o /etc/yum.repos.d/epel.repo http://file.kangle.odata.cc/repo/epel-6.repoyum clean allyum makecacheyum install -y gcc gcc-c+原创 2021-11-03 14:11:36 · 786 阅读 · 0 评论 -
libuv编译安卓版报错解决
libuv编译报错解决libuv编译安卓版报错解决报错参考文章报错error adding symbols: Archive has no index; run ranlib to add onelibuv版本1.42.0安卓10 64位kali2021cmakendk21cmake -DCMAKE_TOOLCHAIN_FILE=/usr/lib/android-ndk/build/cmake/android.toolchain.cmake -DANDROID_ABI=armeabi-v7原创 2021-10-16 15:12:02 · 983 阅读 · 0 评论 -
socks5认证过程
socks5认证过程过程客户端发起请求无认证客户端发送账户密码认证客户端发送服务端验证命令过程参考文章过程客户端发起请求 客户端连到服务器后,然后就发送请求来协商版本和认证方法: **客户端** 请求第一步 +----+----------+----------+ | VER|NMETHODS | METHODS | +----+----------+----------+ | 1 | 1 | 1 - 255 | +----+----------+--原创 2021-09-11 21:22:01 · 2710 阅读 · 0 评论 -
c 语言生成随机字符串
代码#include <stdio.h>#include <stdlib.h>#include <string.h>#include <ctype.h>#include <time.h>char* genRandomString(char string[],int length){ int flag, i; srand((unsigned) time(NULL )); for (i = 0; i < l原创 2021-09-11 20:43:27 · 8637 阅读 · 0 评论 -
php获取上个月第一天和当前月最后一天
php获取上个月第一天和当前月最后一天前言代码获取上个月第一天获取本月最后一天前言微信公众号有订单自动同步功能,结果在判断时间的时候只判断了月份,导致去年的订单被同步,直接血亏代码获取上个月第一天<?phpecho date('Y-m-01', strtotime(date('Y-m-01') . ' -1 month'));?>获取本月最后一天<?phpfunction endDayOfMonth() { //endDayOfMonth li原创 2021-06-19 19:20:09 · 1678 阅读 · 2 评论 -
php处理json(array和object)
这里写目录标题前言解决方案1.特判,针对只有一个订单的单独处理2.处理json前言在修改公众号订单同步接口时,发现接口经过修改后,返回json格式不一致,原来为{"a":[{"order":dasdasdad}]}现在为{"a":{"order":dasdasdad}}在多个订单时无这种情况解决方案1.特判,针对只有一个订单的单独处理代码修改量较大,并且可能出现问题2.处理json修改比较简单,只需几行代码<?php $jsjson = json_decode(原创 2021-05-10 01:27:41 · 540 阅读 · 0 评论 -
linux下定时器使用(带参数)
linux下定时器使用(带参数)需求代码参考需求和windows一样,需要一个定时器来完成非阻塞任务,提高线程效率代码#include <stdio.h> //printf()#include <signal.h> //signal()#include <string.h> //memset()#include <time.h>#include <sys/time.h> //struc原创 2021-04-28 15:03:13 · 954 阅读 · 0 评论 -
windows下c定时器使用
windows下c定时器使用需求解决参考需求由于程序使用阻塞方式计时,导致程序效率过低,使用定时器来进行计时,保证程序效率解决https://docs.microsoft.com/en-us/previous-versions//ms713423(v=vs.85)?redirectedfrom=MSDNMMRESULT timeSetEvent( UINT uDelay, UINT uResolution, LPTIMECALLBA原创 2021-04-28 00:13:54 · 1263 阅读 · 0 评论 -
gcc为程序添加icon
gcc为程序添加icon过程首先编辑资源文件执行命令编译过程首先编辑资源文件demo.rc1 ICON "favicon.ico"执行命令windres -i demo.rc -o demo.o编译gcc -o hhh.exe demo.o main.c -s原创 2021-04-21 16:34:32 · 202 阅读 · 0 评论 -
c语言对变量进行强制赋值
c语言对变量进行强制赋值一级目录解决方案1.memcpy2.自写函数一级目录在一个demo中需要把char进行转换到unsigned int一开始尝试使用strcpy方法,或者直接对char进行强转 均失败解决方案1.memcpyunsigned int value;char url[5];memcpy(&value,url,4);2.自写函数unsigned int value;char url[5];int i;for(i=0;i<4;i++){ *(原创 2021-04-21 16:03:43 · 659 阅读 · 0 评论 -
/usr/include/gnu/stubs.h:7:27: 致命错误:gnu/stubs-32.h:没有那个文件或目录
linux64下编译32位程序gcc -o xxx -m32 xxx.c遇到问题在linux64下编译32位程序时遇到报错/usr/include/gnu/stubs.h:7:27: 致命错误:gnu/stubs-32.h:没有那个文件或目录解决办法yum install glibc-devel.i686 libstdc++-devel.i686...原创 2021-03-27 22:30:27 · 2424 阅读 · 0 评论 -
windows和linux下启用keepalive并且自定义心跳包时间
windows下启用keepalive并且自定义心跳包时间前言前言最近在编写c的socket,在使用keepalive时候遇到一些问题,如下设置即可#include <winsock2.h> struct tcp_keepalive { u_long onoff; u_long keepalivetime; u_long keepaliveinterval;};#define SIO_RCVALL _原创 2021-03-27 21:35:23 · 1746 阅读 · 0 评论 -
修改idea自带maven的源
修改idea自带maven的源目录参考文章目录{IDEA安装目录}\plugins\maven\lib\maven3\conf\settings.xml在mirrors下添加,<mirror> <id>alimaven</id> <mirrorOf>central</mirrorOf> <name>aliyun maven</name> <url>http://maven.aliy原创 2021-03-02 15:13:48 · 2215 阅读 · 0 评论 -
codeblocks配置编译32和64位程序,修改报错libgcc_s_dW2-1.dll undefined reference to `WSAStartup@8‘
codeblocks配置编译32和64位程序,修改报错libgcc_s_dW2-1.dll配置MinGw下载无法找到libgcc_s_dW2-1.dll配置32和64位编译参考链接配置MinGw下载https://sourceforge.net/projects/mingw-w64/files/不要使用在线安装方法直接下载解压之后放到codeblocks目录下或者自定义目录下在codeblockssettings->complier->toolchain executables修改原创 2021-02-04 14:19:42 · 2046 阅读 · 0 评论 -
python gzip 压缩/解压缩 字符串
python gzip 压缩/解压缩 字符串参考文章import gzipimport StringIOdef gzip_compress(buf): out = StringIO.StringIO() with gzip.GzipFile(fileobj=out, mode="w") as f: f.write(buf) return out.getvalue()def gzip_decompress(buf): obj = StringIO原创 2021-01-28 19:36:53 · 3197 阅读 · 0 评论 -
批量创建CTFd账号和启动容器进行压测
批量创建CTFd账号和启动容器进行压测前言代码前言使用随机数进行用户注册,获取csrftoken创建容器代码# coding=utf-8# This is a sample Python script.# Press Shift+F10 to execute it or replace it with your code.# Press Double Shift to search everywhere for classes, files, tool windows, actions, a原创 2020-10-20 13:21:31 · 477 阅读 · 0 评论 -
使用pydicom处理dcm文件提取信息并存储在csv
使用pydicom处理dcm文件提取信息并存储在csv使用pydicom使用pydicom#! /usr/bin/env python# _*_ coding:utf-8 _*_import pydicom as dicomimport csvimport codecsimport osimport re#需要遍历的目录DATA_PATH = 'C:\\Users\\admin\Desktop\\level2\\'#提取的字段list=['PatientID', 'Patient原创 2020-10-05 19:19:14 · 1065 阅读 · 0 评论 -
修改jar的三种方法(反编译jar)
修改jar的三种方法(反编译jar)工具准备三种方式1.使用fernflower反编译之后再编译2.使用javassist动态修改class3.通过引入原来的jar包,修改代码(推荐)总结工具准备相同大版本的jdkideafernflower.jarjavassist.jarjd-gui三种方式1.使用fernflower反编译之后再编译把要反编译的.jar修改成.zipjava -jar fernflower.jar classes.zip zzCode/即可得到全为java的ja原创 2020-07-27 11:49:17 · 17412 阅读 · 0 评论 -
利用python爬取分享网站链接
利用python爬取分享网站链接前言代码前言发现在网上分享的链接需要一个一个提取很麻烦,所以写了一个脚本代码#! /usr/bin/env python# _*_ coding:utf-8 _*_from requests import sessionfrom bs4 import BeautifulSoupimport csvimport codecsimport reimport timeimport jsondef login(email,passwd,isproxies原创 2020-07-22 15:50:11 · 551 阅读 · 0 评论 -
记一次chrome插件编写(修改User-Agent和Accept-Language)
记一次chrome插件编写(修改User-Agent和Accept-Language)什么是Chrome插件学习Chrome插件开发有什么意义准备调试插件核心开始打包验证参考文章什么是Chrome插件严格来讲,我们正在说的东西应该叫Chrome扩展(Chrome Extension),真正意义上的Chrome插件是更底层的浏览器功能扩展,可能需要对浏览器源码有一定掌握才有能力去开发。鉴于Chr...原创 2020-04-18 18:01:59 · 2512 阅读 · 0 评论 -
phpstrom结合xdebug进行php调试(虚拟机和本机)超时解决办法
phpstrom结合xdebug进行php调试(虚拟机和本机)环境搭建及配置wamp环境可以使用phpstudyphpstrom下载xdebug的安装phpstrom配置apache配置环境搭建及配置wamp环境可以使用phpstudy链接: phpstudy官网phpstrom下载链接: phpstrom官网phpstrom的激活方法大家可以百度xdebug的安装1.xdebug...原创 2020-04-11 23:59:10 · 1481 阅读 · 2 评论