数据结构
数据结构算法单链表
链表代码前置知识:
cur.next = new_node:代表current的next指针指向新节点
链表有数值域和链接域
代码实现:节点类
包含两个属性:
item:数值域(元素域)
next :地址域(链接域) 不是他的地址,而是他的下一个节点地址
123456# 自定义SingleNode类,表示节点类class SingleNode: # 初始化属性 def __init__(self, item): self.item = item # 元素域(数值域) self.next = None # 链接域(地址域)
代码实现:链表类
该部分代码包含一个属性
head 表示头结点 指向链表的第一个节点
多个行为:
is_empty(self) :链表是否为空
length(self):判断链表长度
traverse(self):遍历整个链表
add(self,item) :给链表头部添加元素
append(self,item):链表尾部添加元素
insert(self,item): ...
深度学习
深度学习和机器学习的区别
深度学习和机器学习-面试题(●’◡’●)
问:什么样的资料集不适合用深度学习?
(1)数据集太⼩,数据样本不⾜时,深度学习相对其它机器学习算法,没有明显优势。
(2)数据集没有局部相关特性,⽬前深度学习表现⽐较好的领域主要是图像/语⾳/⾃然语⾔处理等领域,
这些领域的⼀个共性是局部相关性。图像中像素组成物体,语⾳信号中⾳位组合成单词,⽂本数据中单词
组合成句⼦,这些特征元素 的组合⼀旦被打乱,表示的含义同时也被改变。对于没有这样的局部相关性的
数据集,不适于使⽤深度学习算法进⾏处 理。
深入理解机器学习和深度学习
深度学习与机器学习的差别
不需要人工特征工程
特征工程+分类/回归 使用一个网络来完成
优点
精确度高,性能好,效果好
拟合任意非线性的关系
框架多,不需我们自己造轮子
缺点
黑箱,可解释性差
网络参数多,超参数多
需要大量的数据进行训练,训练时间长,对算力有较高要求
小数据集容易过拟合
PyTorch深度学习框架PyTorch是什么
PyTorch官网
GPU:一个超级快的数学计算器。(显卡)
CU ...
Github之Push问题解决方案
错误复现
6.07日,于晚上10点多通过git提交代码,试了几次都不行,没有分支冲突,但是发现报错如下:
于是乎开始了一番操作:
分析报错看来是443端口的问题,应该是https服务出现了问题
查看是否使用了代理
使用了,于是乎将Clash关掉
又说我没有权限,github你药剂吧干啥啊
重新按照流程生成一遍ssh秘钥,然后填到github上(流程复杂,耗时
ssh-keygen -t rsa -b 4096 -C “xxx@163.com“(填自己的邮箱)
eval “$(ssh-agent -s)”
ssh-add ~/.ssh/id_rsa
打开~/.ssh/rsa.pub,复制公钥到github
没有用
问题排查⭐️
ping github.com(怎么回事,ping自己主机头上了)
ssh -T git@github.com(还是自己主机
查看hosts配置文件(没有github.com的配置项
ssh -v git@github.com查看ssh访问github日志
查看文件
ok!收 ...
机器学习
AI人工智能
讲到AI人工智能首先得从图灵测试开始说起:
图灵测试就是:测试者与被测试者(一个人和一台机器)隔开的情况下,遍过一些装置(如键盘)向被测试者随意提问。多次测试(一般为5min之内),如果有超过30%的测试者不能确定被测试者是人还是机器,那么这台机器就通过了测试,并被认为具有人类智能。
当有人骂你是人机的时候,你不要骂过去,你要说你还没通过图灵测试(这样别人就听不懂了doge)。
人工智能的分类通讯、感知与行动是现代人工智能的三个关键能力
与此对应的三个技术领域分别是
计算机视觉(CV)
计算机视觉(CV)是指机器感知环境的能力。这一技术类别中的经典任务有图像形成、图像处理、图像提取和图像的三维推理。物体检测和人脸识别是其比较成功的研究领域。
自然语言处理(NLP):在NLP领域中,将覆盖文本挖掘/分类、机器翻译和语音识别
语音识别:是指识别语音(说出的语言)并将其转换成对应文本的技术。相反的任务(文本转语音/TTS)也是这一领域内一个类似的研究主题。
文本挖掘:主要是指文本分类,该技术可用于理解、组织和分类结构化或非结构化文本文档。其涵盖的主要 ...
OLLAMA
Ollama大模型Ollama是什么?
答:一只羊驼,不信可以去官网看看(doge)。
但是通过认知的不断完善我们可以发现,Ollama是一款旨在简化大型语言模型本地部署和运行过程的开源软件。
Ollama提供了一个轻量级、易于扩展的框架,让开发者能够在本地机器上轻松构建和管理LLMs(大型语言模型)。通过Ollama,开发者可以访问和运行一系列预构建的模型,或者导入和定制自己的模型,无需关注复杂的底层实现细节。
Ollama的主要功能包括快速部署和运行各种大语言模型,如Llama 2、Code Llama等。它还支持从GGUF、PyTorch或Safetensors格式导入自定义模型,并提供了丰富的API和CLI命令行工具,方便开发者进行高级定制和应用开发。
给我个人的感觉就是类似于声音大模型UVR5或者MSST的模型部署运行软件。
Ollama下载
Ollama共支持三种平台:
Window:https://ollama.com/download/OllamaSetup.exe
Mac:https://ollama.com/download/Ollama-darwin.zip ...
Mozi病毒样本分析
样本发现
24年某日于xxx发现Mozi.m病毒样本,于是在内网环境中开始了分析,当时条件很不方便,于现场不能使用外网。在他们内网写完分析报告回来后,在网上找了一些资料,发现跟我分析的大同小异,分析步骤如下:
拿到样本的sha值去virustotal等病毒分析网站扫一遍
分析病毒源码
分析是否加壳
如果病毒加壳需要使用IDA对病毒进行脱壳破解
继续分析源码(包括病毒的特征、传播方式、影响范围)
样本分析
病毒样本哈希值:4293c1d8574dc87c58360d6bac3daa182f64f7785c9d41da5e0741d2b1817fc7
打开IDA Pro,发现样本通过UPX进行了加壳操作,
使用Detect It Easy进行查壳,发现是upx壳
使用upx -d进行脱壳报错
Mozi开发人员覆盖p_filesize并p_blocksize使用 nullbytes 避免使用 UPX 解包。一个好处是该p_filesize字段在二进制文件的末尾也可用,并且应该等于p_blocksize。
使用造好的轮子nozitookls成功解压Mozi.m文件
123p ...
P2P通信
P2P协议打洞TCP协议打洞
1,局域网通信分为三种情况(有两种情况不需要打洞,只有局域网之间的通信需要打洞2,为什么要打洞,假如一个局域网IP需要跟公网的服务器通信,那么首先这个局域网IP需要通过NAT地址转换将内网IP映射为公网IP,然后才能和公网服务器通信,同理另一个摄像头要和客户端通信,那么需要通过服务器进行转发(因为NAT需要将公网的IP端口和内网的IP端口一一对应才能实现转发,另一端的net公网地址不在这个对应的表里,则包会直接被丢弃),这样的话服务器的压力会比较大3,打洞步骤 1)服务器的连接分为主连接和协助打洞连接(比如端口分别为80 和 3478端口) 2)A,B两个客户端都连接上打洞服务器的主连接,然后A请求和B建立P2P通信,首先A会请求服务器的3478端口(协助打洞端口) 3)S服务器收到A的协助打洞连接会通知B,告诉B,A的NAT端口和NAT地址(经过转换后的公网地址) 4)B收到S的连接通知后首先与S的【协助打洞】port连接。随便发送一些数据后马上断开,这样做的目的是让S能知道B经过NAT-B转换后的公网IP和port号。 5)然后服务器将客户端的公网I ...
记录一次磁盘坏掉排查过程
由于距离上一次磁盘排查已经有一段时间了,这段时间比较忙没有时间去立刻记录下当时的情况,于是借助当时找到的一篇博客来记录一下。
这里列举一些比较能用得上的命令。
1234>lsblk # 查看有多少块硬盘>df -h # 查看硬盘容量>tail -f -n100 /var/log/messages # 查看系统日志最后100条>lsof | grep "/data" # 查找进程打开了哪些文件以及与打开文件相关联的内容
现象VM中有一块盘,进入mount点后,ls显示错误:
12[root@es10 data2]# lsls: cannot open directory .: Input/output error
跟踪分析
查看磁盘
1234[root@es10 ~]# lsblk | grep vdcNAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTvdc 253:32 0 2T 0 disk └─vdc1 253:33 0 2T 0 part ...
FlinkSQL
C01 Flink SQL基本介绍SQL API标准SQL分类
DML(Data Manipulation Language):数据操作语言,用来定义数据库中的记录
DCL(Data Control Language):数据控制语言,用来定义访问权限和安全级别
DQL(Data Query Language):数据查询语言,用来查询记录
DDL(Data Definition Language):数据定义语言,用来定义数据库中的对象
Flink Table API实现了DQL数据查询,Flink SQL实现了DML、DDL、DQL
Flink SQL的优势
FlnkSQL比DataStreamAPI、DataSetAPI实现简单、方便
TableAPI和SQL是流批通用的,代码可以完全复用
TableAPI和SQL可以使用Calcite的SQL优化器,可以实现自动程序优化更容易写出执行效率高的应用
Flink1.9版本引入了阿里巴巴的Blink实现流批一体
Apache CalciteApache Calcite是一款使用Java编程语言编写的开源动态数据管理框架,它具 ...
【安卓逆向】环境搭建
什么是安卓逆向?
安卓逆向是对已经打包好的APP进行反编译、源码分析了解APP实现逻辑的一门技术
安卓逆向可以干嘛?
去更新去广告内购/会员破解协议自动签到,定时完成游戏任务(妥妥外挂白嫖!!!拜托,会逆向的人超酷的好嘛
环境搭建
玩逆向首先需要搭建环境,你需要有一台Windows or Mac的电脑,不可以是云桌面,也不可以是服务器,因为要抓包,解包,发包。
Charles抓包软件
在Windows平台一般使用Wireshark就行,这里我是Mac,使用Charles(青花瓷)来进行抓包了,其实效果都差不多。建
安装Charles
安装使用最新版,官方下载地址 https://www.charlesproxy.com/download
破解Charles
这里put一个网站,可能时好时坏,也可能以后不会维护了:https://www.zzzmode.com/mytools/charles/
此工具用于计算Charles激活码,下载代码 ,在线运行代码:https://play.golang.org/p/Qtt2CmHbTzU
blog介绍: https://bl ...








