自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(39)
  • 收藏
  • 关注

原创 python里面的self,是谁啊?

对,你没看错,这是我初学python时的灵魂发问。我们总会在class里面看见self,但是感觉他好像也没什么用处,就是放在那里占个位子。如果你也有同样的疑问,那么恭喜你,你的class没学明白。所以,在解释self是谁之前,我们先明确几个问题:什么是class,什么是instance,什么是object? 什么是method,什么是function?一个画外音,我个人是比较反...

2020-01-03 14:59:19 996 3

原创 pytorch :: Dataloader中的迭代器和生成器应用

在使用pytorch训练模型,经常需要加载大量图片数据,因此pytorch提供了好用的数据加载工具Dataloader。为了实现小批量循环读取大型数据集,在Dataloader类具体实现中,使用了迭代器和生成器。这一应用场景正是python中迭代器模式的意义所在,因此本文对Dataloader中代码进行解读,可以更好的理解python中迭代器和生成器的概念。本文的内容主要有:解释pyt...

2020-01-03 14:25:53 4658 2

原创 最详细的自定义Spring Boot Starter开发教程

1. 前言随着Spring的日渐臃肿,为了简化配置、开箱即用、快速集成,Spring Boot 横空出世。 目前已经成为 Java 目前最火热的框架了。平常我们用Spring Boot开发web应用。Spring mvc 默认使用tomcat servlet容器, 因为Spring mvc组件集成了spring-boot-starter-tomcat 。但是现在undertow servlet...

2020-01-02 17:12:21 778

原创 Redis事务、持久化、发布订阅

一、Redis事物1. 概念  Redis 事务可以一次执行多个命令, 并且带有以下两个重要的保证:    事务是一个单独的隔离操作:事务中的所有命令都会序列化、按顺序地执行。事务在执行的过程中,不会被其他客户端发送来的命令请求所打断。    事务是一个原子操作:事务中的命令要么全部被执行,要么全部都不执行。  一个事务从开始到执行会经历以下三个阶段:    开始事务。...

2020-01-02 17:11:09 834

原创 从头学pytorch:模型构造

模型构造nn.Modulenn.Module是pytorch中提供的一个类,是所有神经网络模块的基类.我们自定义的模块要继承这个基类.import torchfrom torch import nnclass MLP(nn.Module): # 声明带有模型参数的层,这里声明了两个全连接层 def __init__(self, **kwargs): ...

2020-01-02 15:58:46 193

原创 BeetleX之XRPC使用详解

XRPC是基于BeetleX扩展一个远程接口调用组件,它提供基于接口的方式来实现远程服务调用,在应用上非常简便。组件提供.NETCore2.1和.NETStandard2.0的client版本,因此即使在winfrom和wpf也可以使用该组件进行服务调用处理。接下来详细讲解一下XRPC使用,从简单的hello到桌面wpf调用服务、ssl通讯安全和对象注入等功能。引用组件组件提供了两个版本B...

2020-01-02 15:57:41 536

原创 VUE SSR服务器端渲染NUXT采坑总结

初始化创建项目yarn create nuxt-app <项目名>css预编译安装 yarn add node-sass scss-loader sass-loader --save-dev路由管理在nuxt中路由已经被集成到框架中,所以不需要再单独引入配置,而且当页面文件创建后, router会生成响应的路由,路由文件在.nuxt/router.js文件,用法上基...

2020-01-02 15:06:57 1725

原创 vue递归组件 (树形控件 )

首先我们要知道,既然是递归组件,那么一定要有一个结束的条件,否则就会使用组件循环引用,最终出现“max stack size exceeded”的错误,也就是栈溢出。那么,我们可以使用v-if="判断条件"作为递归组件的结束条件。当遇到v-if为false时,组件将不会再进行渲染1.准备一个树状的递归数据navigation: [ { types: ...

2020-01-02 15:05:39 2866 2

原创 从生日悖论谈哈希碰撞

1 前言前几天和一个大佬交流了几个问题,其中一个关于ID生成的问题推展到了哈希冲突和一个与之相关的一个数学趣题生日悖论。当时对于两个事情的理解不够深刻,周末花时间仔细研究了一下,发现很有趣,于是觉得写一篇文章来和大家分享,今天的主题就是哈希冲突和生日悖论。通过本文你将了解到以下内容:哈希的映射压缩和冲突 生日悖论 CRC32的冲突分析2. 哈希映射压缩和冲突哈希的本质就是...

2020-01-02 14:20:16 617

原创 使用SparkSql进行表的分析与统计

背景​ 我们的数据挖掘平台对数据统计有比较迫切的需求,而Spark本身对数据统计已经做了一些工作,希望梳理一下Spark已经支持的数据统计功能,后期再进行扩展。准备数据在参考文献6中下载鸢尾花数据,此处格式为iris.data格式,先将data后缀改为csv后缀(不影响使用,只是为了保证后续操作不需要修改)。数据格式如下:SepalLength SepalWidth ...

2020-01-02 14:19:26 827

原创 spring cloud Gateway简单使用

一、引子2年前有幸使用过一次Spring Cloud (1.5.9),那次用的是ZUUL做网关,没有使用Gateway做网关,一直是个小遗憾。终于在2年后的19年底再次使用Spring Cloud,这次有机会可以自己选择架构,果断使用Spring Cloud 全家桶。网关就是原生的Spring Cloud Gateway。项目架构图如下:二、Gateway设计思想2.1 ...

2020-01-02 14:18:55 505

原创 【E20200101-1】Centos 7.x 关闭防火墙(firewall)和SELinux

一、准备工作1.1、服务器准备操作系统:centos 7.x1.2、安装好用的文本编辑工具nano# yum -y install nano二、关闭SELinux2.1、查看SELinux状态2.1.1、第一种:查看SELinux状态方法# /usr/sbin/sestatusSELinux status:enabled...

2020-01-01 18:46:24 96

原创 easyUI dataGrid主从表点击展开问题

昨天在公司写代码遇到了一个问题,就是在用easyUI做主从表的时候在查询之后点击展开的时候不能再次展开了。先说一下主从表我也是第一次用效果如下图: 然后点击前面的小加号出现以下效果:然而遇到了一个问题,那就是再查询之后居然不能点开了。于是乎我开始从网上查找问题原因,得到了如下答案:然而改成这样之后问题并没有解决,找了很多地方也没找到解...

2020-01-01 18:45:48 322

原创 漂在远方 在Linux CentOS下如何安装tar.gz和RPM软件包

1、安装tar.gz软件包: 在Linuxr(Centos下)如何安装tar.gz软件包,该方式实质上就是源代码安装方式,具体如下: 在Linux中使用wget命令下载要安装的文件,命令格式如下:wget 要下载的文件的地址。 以下载vsftpd文件为例,先下载vsftpd的tar.gz文件包: wget:https://d...

2020-01-01 18:01:51 1063

原创 大数据存储的秘密之分区

分区,又称为分片,是解决大数据存储的常见解决方案,大数据存储量超过了单节点的存储上限,因此需要进行分区操作将数据分散存储在不同节点上,通常每个单个分区可以理解成一个小型的数据库,尽管数据库能同时支持多个分区操作;分区引入多分区概念,可以同时对外服务提高性能。常常和分区一并提及的概念是复制,分区通常与复制结合使⽤,使得每个分区的副本存储在多个节点上。 这意味着,即使每条记录属于⼀个分区,它仍...

2020-01-01 18:01:04 332

原创 分布式系统中如何优雅地追踪日志(原理篇)

本文只讲原理,不讲框架。分布式系统中日志追踪需要考虑的几个点?需要一个全服务唯一的id,即traceId,如何保证? traceId如何在服务间传递? traceId如何在服务内部传递? traceId如何在多线程中传递?我们一一来解答:全服务唯一的traceId,可以使用uuid生成,正常来说不会出现重复的; 关于服务间传递,对于调用者,在协议头加上traceId,对于...

2020-01-01 18:00:25 175

原创 Rust入坑指南:亡羊补牢

如果你已经开始学习Rust,相信你已经体会过Rust编译器的强大。它可以帮助你避免程序中的大部分错误,但是编译器也不是万能的,如果程序写的不恰当,还是会发生错误,让程序崩溃。所以今天我们就来聊一聊Rust中如何处理程序错误,也就是所谓的“亡羊补牢”。基础概念在编程中遇到的非正常情况通常可以分为三类:失败、错误、异常。Rust中用两种方式来消除失败:强大的类型系统和断言。对于类型系统...

2020-01-01 14:54:55 301

原创 HashMap、lru、散列表

HashMapHashMap的数据结构:HashMap实际上是一个数组和链表(“链表散列”)的数据结构。底层就是一个数组结构,数组中的每一项又是一个链表。 hashCode是一个对象的标识,Java中对象的hashCode是一个int类型值。通过hashCode来算出指定数组的索引可以快速定位到要找的对象在数组中的位置,之后再遍历链表找到对应值,理想情况下时间复杂度为O(1),并且不同对象可...

2020-01-01 14:53:13 157

原创 MYSQL调优实战

一:基础数据准备DROP TABLE IF EXISTS `tbl_user`;CREATE TABLE `tbl_user` ( `id` int(11) NOT NULL AUTO_INCREMENT, `username` varchar(255) DEFAULT NULL, `email` varchar(20) DEFAULT NULL, `age` tinyin...

2020-01-01 12:57:00 504

原创 MySQL基础之事务编程学习笔记

在学习《MySQL技术内幕:SQL编程》一书,并做了笔记。本博客内容是自己学了《MySQL技术内幕:SQL编程》事务编程一章之后,根据自己的理解做的笔记,内容和书本并不一致,不过书本实验都经过自己验证,基于MySQL5.7版本。做笔记的目的是方便自己复习,同时分享出来或许对其他人或许有点帮助1、事务概述事务是数据库区别于文件系统的重要特性之一,提到事务肯定会想到事务的4个特性ACID,要保...

2020-01-01 12:52:47 111

原创 推荐算法之基于物品的协同过滤

基于物品的协同过滤( item-based collaborative filtering )算法是此前业界应用较多的算法。无论是亚马逊网,还是Netflix、Hulu、YouTube,其推荐算法的基础都是该算法。为行文方便,下文以英文简称ItemCF表示。本文将从其基础算法讲起,一步步进行改进并基于MovieLens数据集给出代码实现,带你领略这一经典算法的美。1.基本原理前面...

2020-01-01 12:52:16 763

原创 用pycharm自带的数据库创建项目00

一、生成表格1.创建模型类(在 models.py文件中创建一个person类并且继承models.Models类)2.生成表格(在项目目录下)(1)生成迁移文件:在pycharm下方的命令行Terminal中写入python manage.py makemigrations,回车键后显示迁移文件创建成功(2)同步数据库:继续在命令行内写入python manage.py mi...

2019-12-31 19:35:01 1319

原创 获取美拍视频的链接--JS分析

找到视频链接的标签,源代码中没有这个div通过Fiddler抓包,找到class="mp-h5-player-layer-video"的div由哪个js文件生成的打开对应的js文件,对其进行断点,找到src生成的方式发现src参数在这个位置此时需要找到字符串的来源、再模拟出这个方法最后发现字符串是一开始就存在于网页中的在请求网...

2019-12-31 18:01:35 575

原创 Python 2 与 3 共存了 11 年,新年就要和它道别

在 Python 3.9 都已经进入 dev 版本的 2020 年,Python 2 终于要和我们告别了。2 and 3Python 2 第一个版本发布于 2000 年 10 月 16 日,到今年正好是第 20 个年头。而 Python 3 发布于 2008 年 12 月 3 日,但由于 3.0 版本在底层进行了大量重构(主要是 Unicode 与 C API 的改动),无法完整兼容 ...

2019-12-31 17:18:20 71

原创 python脚本调用iftop 统计业务应用流量

因公司服务器上部署应用较多,在有大并发访问、业务逻辑有问题的情况下反复互相调用或者有异常流量访问的时候,需要对业务应用进行故障定位,所以利用python调用iftop命令来获取应用进程流量,结合zabbix,可帮助定位分析问题。,以下是脚本内容,大概思路是:利用iftop命令 iftop -t -P -N -n -s 2 来获取流量信息 对获取的流量信息进行处理,单位换算,同一个应用程序的所...

2019-12-31 16:15:01 158

原创 Python中property属性的概论和使用方法

property属性概念: 定义一个方法但是使用装饰器property,只可以有一个self形参 可以用这样的属性动态的获取属性的值 定义方式(经典类) class Fun(): @property def size(self): return 100fun = Fun()print(fun.size)100定义方式(新式类)c...

2019-12-31 16:14:23 88

原创 IMU自动化运维平台之CMDB(admin)

#A 首先启用admin  通过python manage.py createsuperuser创建一个管理员账户,用来登录admin后台使用。根据提示设置管理员账号即可。当前处于功能验证阶段,所以很多功能没有做的太花哨,几乎都使用默认配置。 #B 更新admin.py文件  接下来我们要确定哪些资产是需要进行admin后台管理的,我们将这些需要管理的资产通通写进admin.py...

2019-12-31 14:44:51 501

原创 Django下关于session的使用

一、Session的概念cookie是在浏览器端保存键值对数据,而session是在服务器端保存键值对数据 session的使用依赖cookie:在使用Session后,会在Cookie中存储一个sessionid的数据,每次请求时浏览器都会将这个数据发给服务器,服务器在接收到sessionid后,会根据这个值找出这个请求者的Session。二、Django中session的使用s...

2019-12-31 14:43:34 121

原创 聊聊多线程那一些事儿之经典应用(取与舍、动态创建)

hello task,咱们又见面啦!!前面已经通过三篇简单的文章,对多线程的创建、运行、阻塞、等待、取消、延迟操作、异步方法等相关的知识点,通过这一些介绍,现在上手写一个多线程就是分分钟的小事件。如果需要看前三排文章的小伙伴,可以点击下面链接快速阅读谢谢!说了那么多后,我仔细想了一下,还是要来点实际的项目用例比较实在,那么我现在就讲我平时在项目中用常用的一些业务梳理处理,以供参考,写到...

2019-12-31 14:33:09 90

原创 装饰器模式|中介模式|原型模式

装饰器模式(Decorator Pattern)装饰器模式可用来给一个类动态添加功能,将其装饰成一个新的类。这就是装饰器的概念。看到这里我们可能会想,要达到这种效果,我们用子类继承父类不就可以了吗? 没错装饰器模式,本身是一种继承的替代方案。那既然是替代方案,那么自然就有它不一样的地方。具体区别在哪里呢? 请看装饰器模式更灵活:继承时父子类的关系是静态的,而装饰器模式是动态的,装饰类和...

2019-12-31 14:32:17 75

原创 雪花算法 Snowflake & Sonyflake

唯一ID算法Snowflake相信大家都不墨生,他是Twitter公司提出来的算法。非常广泛的应用在各种业务系统里。也因为Snowflake的灵活性和缺点,对他的改造层出不穷,比百度的UidGenerator、美团的Leaf、索尼的Sonyflake等等。这篇帖子主要是讲一下原生的Snowflake算法、缺点及改造方案,并分析索尼的Sonyflake源码对原生Snowflake的改造,原生Sn...

2019-12-31 14:30:43 236

原创 callback、promise和async、await的使用方法

callback回调是一个函数被作为一个参数传递到另一个函数里,在那个函数执行完后再执行。通俗的讲就是B函数被作为参数传递到A函数里,在A函数执行完后再执行B。promisePromise 是异步编程的一种解决方案,比传统的解决方案——回调函数和事件——更合理和更强大,ES6规定,Promise对象是一个构造函数,用来生成Promise实例。Promise实例具有then方法,也就...

2019-12-30 22:12:14 946

原创 支撑百万级并发,Netty如何实现高性能内存管理

Netty作为一款高性能网络应用程序框架,实现了一套高性能内存管理机制通过学习其中的实现原理、算法、并发设计,有利于我们写出更优雅、更高性能的代码;当使用Netty时碰到内存方面的问题时,也可以更高效定位排查出来本文基于Netty4.1.43.Final介绍其中的内存管理机制ByteBuf分类Netty使用ByteBuf对象作为数据容器,进行I/O读写操作,Netty的内存管理也是...

2019-12-30 21:26:39 3365

原创 Web Scraper 高级用法——CSS 选择器的使用

一、定位 HTML 节点HTML 是什么?它是一个网页的骨架,是最最基础的东西。比如说你现在看的这篇文章,其实就是一个网页,每一行字都是 HTML 里的一个<p>标签。网页就是由一行一行的 HTML 标签垒起来的,所以我们用 Web Scraper 的 Selector 选择的元素,本质上都是 HTML 标签,都是一个一个的 HTML 节点。使用 Web Scraper...

2019-12-30 21:25:45 2057

原创 Vue+Element实现网页版个人简历系统

这篇文章介绍一个使用Vue+Element实现的个人简历系统,主要用到的技术有:vue、element、css3、css定位。  作者在window10进行开发,目前只在chrome上进行过测试,没有大的毛病。但是还有很多小功能还不完善,代码也未进行优化,后续会继续完善功能,优化代码。  声明:项目相对来说就是一个纯静态页面,代码都比较简单,大佬可闭眼绕过,或者看一眼留下宝贵意见也可一...

2019-12-30 21:06:10 8632 3

原创 golang实现依赖注入

golang实现依赖注入依赖注入是软件工程中经常使用到的一种技术,它提供了一种控制反转的机制,把控制权利交给了调用方。调用方来决定使用哪些参数,哪些对象来进行具体的业务逻辑。它有几个好处:1 它让调用方更灵活。2 大量减少定义类型的代码量3 增加代码的可用性,因为调用方只需要关注它需要的参数,不需要顾及它不需要的参数了。什么是依赖注入依赖注入使用最多的应该是java中的spr...

2019-12-30 21:05:10 620

原创 数据早8小时Or晚8小时,你知道为什么吗,附解决方案

前言这篇文章,不会解释什么是本初子午线,只想以做实验的方式来理解数据差8小时的问题。下面就先说结论,再来谈原理。解决方案想必大家都很清楚:中国标准时间= UTC + 8小时。 那么所有和时区有关的地方,都有可能成为“凶手”。如果是java写入es怎么解决时区问题?如果你使用java程序来写入es,我推荐你写入带T的时间字符串。提供程序如下:/** * String ...

2019-12-30 21:04:39 421

原创 spring-redis-session 自定义 key 和过期时间

对于分布式应用来说,最开始遇到的问题就是 session 的存储了,解决方案大致有如下几种使用 spring-session 它可以把 session 存储到你想存储的位置,如 redis,mysql 等 使用 JWTs ,它使用算法来验证 token 的合法性,是否过期,并且 token 无法被伪造,信息也是无法被篡改的本文内容主要说 spring-session 使用 redis 来存...

2019-12-30 17:42:55 1917

原创 前端——BOM与DOM

前戏到目前为止,我们已经学过了JavaScript的一些简单的语法。但是这些简单的语法,并没有和浏览器有任何交互。也就是我们还不能制作一些我们经常看到的网页的一些交互,我们需要继续学习BOM和DOM相关知识。JavaScript分为 ECMAScript,DOM,BOM。BOM(Browser Object Model)是指浏览器对象模型,它使 JavaScript 有能力与浏览器...

2019-12-30 17:42:24 82

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除