自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

AlexGeek

欢迎我的个人微信公众号【栈无不胜】

  • 博客(79)
  • 资源 (1)
  • 收藏
  • 关注

原创 Go语言的运行机制&程序是怎么跑起来的

学习Golang有一段时间了,自己看着各种教程也码了些demo。其实接触了这么多语言,当因为工作、项目、兴趣所驱在短时间切换一门编程语言时,并不会太难上手,甚至会对了解一些很雷同的基础语法感到枯燥,但这是必经之路。对于一个技术爱好者而言,技术广度、技术深度、技术新特性等往往是最好的兴奋剂。今天这篇文章主要结合最近的资料学习,对Go语言的运行机制及Go程序的运作进行一些稍微深入的分析及总结,对Go的启动和执行流程建立简单的宏观认知~为什么Go语言适合现代的后端编程环境?服务类应用以API居多,IO密.

2021-09-24 21:33:21 2334 2

原创 经典SQL题目-求第N高的薪水的解法汇总及知识点复习

这几天在看Leetcode的时候逐步开始留意SQL题目,不做不知道,一做才感觉自己的SQL太弱了,因此将一道经典题目:求第N高的薪水的解法进行汇总(MySQL)。相关解法的原文链接已标注在文末~题目的链接为:第N高的薪水一、题干第N高的薪水:编写一个 SQL 查询,获取 Employee 表中第 n 高的薪水(Salary)。+----+--------+| Id | Salary |+----+--------+| 1 | 100 || 2 | 200 || 3 |.

2021-09-22 15:29:30 782

原创 vscode在自动填充后失去常规代码提示的问题(连续自动补充失效)

vscode固然非常好用,但是还是毕竟是轻量级的IDE,需要安装很多插件支持,同时进行诸多设置才能达到相对舒适的开发状态。之前在进行代码开发的过程中遇到一个问题,那就是:vscode在配合一些自动填充功能、snippets插件的时候,一旦自动填充后,补全片段出现半透明的白色底,这时候再使用一些已定义的代码片段,无法触发vscode的代码片段机制。需要将光标移除至半透明底区域点击,再又移回来,待那个半透明白色底区域消失后,才可以再次触发编辑时的代码补全。本篇大概记录一下这个问题基本现象以及vscode设置问.

2021-09-21 16:02:03 3260 4

原创 随身Token动态令牌工作原理的思考

前段时间在腾讯工作,新员工入职的时候都会配发一个Token配件,核心作用只有一个,那就是验证身份。腾讯内部的系统、网站访问大多都需要PIN + Token的形式,PIN为固定的个人密码,Token为动态令牌,这样动静结合可以大幅提高访问的安全性,防止内部重要资料泄露。其实很多场景都会有类似的静态密码+动态Token的验证方式,比如暴雪游戏的手机App令牌、中国银行的EToken,原理类似,大概长这个样子:笔者是一个对技术相对痴迷的人,世间万物皆可以程序化,喜欢思考其内在逻辑,本篇就简单记录一下之前.

2021-09-18 14:50:28 3413

原创 无头浏览器与Puppeteer中PDF生成应用指南

前言最近在做项目的时候,遇到了在后端生成PDF的需求,而且生成的页面较多,且样式管理相对复杂,还原度要求较高。通过一系列的社区调研后发现,Puppeteer这个Node库可以提供一个相对高级的API,以DevTools协议控制Chrome或者Chromium,其无头模式可以将HTML转为PDF。这是目前Node Server应用中最为主流的解决方案,但是在使用过程中还是会存在很多坑点和注意事项。因此本文围绕无头浏览器、Puppeteer、HTML转PDF等几个方面进行总结和介绍。一、无头浏览器1.

2021-08-25 16:41:52 4473 2

原创 前端跨域jsonp的细节,挡住面试官的连环提问

1.前言在前端面试中,想必每一个人都会被问到跨域相关的问题,背过八股文的小伙伴肯定对跨域的解决对答如流,常见的跨域解决方案在网上有很多整理,但是如果问到实现的细节,你是否能够手写实现或者深入解读呢?其实很多情况下,面试官不仅仅会考察第一层的概念,还会追问第二层、第三层内容,所以对于实现原理的掌握是必要的,今天笔者就整理一下跨域的基本方式,重点介绍jsonp的实现~2.跨域方案常见的跨域解决方案有8种左右,在面试中能答出4-5种就可以了~2.1 如果只是想要实现主域名下的不同子域名的跨域操作,我们

2021-04-16 02:46:24 2620

原创 Js构造函数、原型、原型链整理(一文搞懂原型,原型链相关知识)

Js构造函数、原型、原型链整理1. 普通函数、构造函数的区别:(1)名字:构造函数首字母建议大写,普通函数首字母建议小写(2)内容:① 构造函数内部this指向的是构造出来的新对象。普通函数this指向的是window全局对象 ; ②构造函数默认不用return返回值,普通函数一般都有return返回值如果使用了return,那返回值会根据return值的类型而有所不同function Person() { var a; this.name = 'Jerry' this.age = 1

2021-04-16 02:00:24 302

原创 CSS深入理解z-index(z-index相关知识总结)

一、z-index基础内容(入门级掌握)1.z-index含义:z-index属性指定了元素及其子元素的【z顺序】,而【z顺序】可以决定当元素发生覆盖的时候,哪个元素在上面。通常一个较大z-index值的元素会覆盖较低的那一个2.z-index支持的属性值:3.z-index的特性:4.特殊点:如果不考虑CSS3,只有标记了定位元素position的z-index才有作用,但在CSS3中有例外二、多个定位元素(应用级掌握)1. 如果定位元素z-in.

2020-11-30 20:32:27 5212

原创 Knuth公平洗牌算法(给一个数组随机排序)

洗牌算法的重要原则就是“全面”而且“公平”,并且要使用尽可能小的时间复杂度来实现。什么叫公平呢?一旦你开始思考这个问题,其实答案不难想到。洗牌的结果是所有元素的一个排列。一副牌如果有 n 个元素,最终排列的可能性一共有 n! 个。公平的洗牌算法,应该能等概率地给出这 n! 个结果中的任意一个。如思考到这一点,我们就能设计出一个简单的暴力算法了:对于 n 个元素,生成所有的 n! 个排列,然后,随机抽一个。这个算法绝对是公平的。但问题是,复杂度太高。复杂度是多少呢?O(n!)。因为,n 个元素一共.

2020-11-23 21:55:11 794 2

原创 如何实现js数组的扁平化(数组降维:多维变为一维)

变为1维function flatten(arr) { const result = []; arr.forEach((i) => { if (Array.isArray(i)) result.push(...flatten(i)); else result.push(i); }) return result;}// Usageconst problem = [1, 2, 3, [4, 5, [6, 7], 8, 9]];

2020-10-28 12:22:36 508

原创 全面解析JavaScript中对于字符串子串的查询方法

String.prototype.includes()方法String.prototype.indexOf()方法String.prototype.contains()方法底层手写实现

2020-10-24 14:32:41 2153

原创 前端性能——JS的防抖和节流是什么?

数个月之前,在一次前端的性能优化中,接触到了JS中防抖和节流,一开始还不明白他们的应用在哪里,可后来才知道,这是前端中最基础的性能优化,在绑定 scroll 、resize 这类事件时,当它发生时,它被触发的频次非常高,间隔很近。如果事件中涉及到大量的位置计算、DOM 操作、元素重绘等工作且这些工作无法在下一个 scroll 事件触发前完成,就会造成浏览器掉帧。加之用户鼠标滚动往...

2020-10-23 17:26:47 7060

原创 npm安装过程中core-js始终无法安装成功报错问题

截止目前core-js这个npm包的更新版本在3.6+对于从github clone好的项目而言,使用npm install 或者 cnpm install 经常会因为该包版本过高而导致漏包现象因此需要使用较低版本手动单独安装:cnpm install core-js@2 --save...

2020-09-16 20:30:40 12210 5

原创 celery在Django3.0中的应用——个人备忘录

写在前面:本文章非完整的技术博客,只用于记录个人开发中遇到的问题,在项目中需求通过api处理爬虫,但由于爬虫的运行时间较长,所以需要 采用异步任务的方式处理请求,因此采用了celery和Django的结合。1.框架版本Python 3.7Django 3.0 +celery 4.4.2redis 3.22.基本视图结构3.需要预先安装的组件及库...

2020-04-14 19:29:36 813 3

原创 前端性能——图片相关的优化

一、一张JPG图片的解析过      对于原图片来说要进行颜色空间的转换,将RGB的颜色空间转到其他的颜色空间;然后进行重采样,区分高频和低频的颜色变换,从而进一步进行DCT的过程(即对高频的颜色变化采样过程进行压缩),最后对数据进行量化,再进行encoding编码。总体来说通过图片上方的五个过程就得到了JPG-Compressed Image Date。      JPG格式的图片采...

2019-02-27 14:57:05 231

原创 前端性能——资源合并与压缩

一、在http请求的过程中如何提高性能①DNS是否可以通过缓存减少DNS的查询时间②网络请求的过程走最近的网络环境③相同的静态资源是否可以缓存④能否减少http请求的大小⑤能否减少http请求的个数⑥进行服务端渲染而非浏览器渲染深入理解http请求的过程是前端性能优化的核心 二、资源的合并与压缩①减少http请求的数量②减少请求资源的大小 三、压...

2019-02-27 13:46:01 304

原创 Vue别名配置简录(alias配置)

配置文件的路径:项目名/build/webpack.base.conf.js相关函数:resolvefunction resolve (dir) { return path.join(__dirname, '..', dir)}字段配置:aliasalias: { 'vue$': 'vue/dist/vue.esm.js', 'src': resolve(...

2019-02-18 15:40:06 3088

原创 使用Scrapy爬取租号玩网站lol待租账号信息(完整代码)

一、项目Githun地址https://github.com/zhonghangAlex/LOLSpider欢迎大家访问下载! 二、LoLSpider 本项目基于scrapy,对租号玩网站的英雄联盟相关出租账号信息进行爬取,并且存取入库,使用随机User-Agent和随机高匿IP(Based on scrapy, this project crawls the rental...

2019-01-20 20:32:42 3388 2

原创 elasticsearch、elasticsearch-head、kibana(dev tools插件)的安装配置

ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。我们建立一个网站或应用程序,并要添加搜索功能,但是想要完成搜索工作的创...

2019-01-04 18:48:54 1513

原创 scrapy shell加入user_agent

我们在运用scrapy shell调试的时候,通常会遇到返回的response的状态码为302,这是因为没有加User_Agent的原因。比如爬取拉勾网的时候,没加请求头给我返回302重定向,如图: 所以我们可以在进行scrapy shell 调试的时候,加入User_Agent进行伪装:scrapy shell -s USER_AGENT="Mozilla/5.0 (Windows...

2019-01-02 02:40:34 941

原创 windows下的命令行利器——cmder

cmder是一款基于windows的增强命令行工具,不仅可以使用所有windows的命令,还可以使用linux和shell的常用命令1. 安装包安装包链接下载后,直接解压即用2.修改命令提示符λ为$进入解压后的cmder的目录,进入vendor,打开init.bat文件修改第15行的代码:@prompt $E[1;32;40m$P$S{git}{hg}$S$_$...

2018-12-31 18:27:50 231

原创 基于scrapy框架存储爬虫数据的四种方法(自定义json文件、json export方法、同步存储数据库、异步存储数据库)

最近在学习scrapy爬虫框架,感受到了它的强大之处,在接触各种数据存储方法后,希望进行一个简单的总结。总的来说,爬虫常用的数据存储方法,无非就是保存在本地的json格式化文件或者是数据库中,但在学习的过程中,了解了每种场景中不一样的用法,分别是:自定义json文件、json export方法、同步存储数据库、异步存储数据库四种方法。下面就结合代码简要进行一个介绍。说到数据的存储,了解sc...

2018-12-28 23:14:21 1240

原创 docker概况及整体架构

Docker是2013发起的一个项目,早在2013年,Docker自诞生起,就是整个技术界的明星项目。Docker是一个云开源项目,托管在github,任何人都可以通过 git clone 或者fork参与进来,本身是基于linux的容器技术,采用当时如日中天google新推出的Go语言实现。采用apache 2.0协议开源。一、Go语言与Docker 相比Go语言与其它语言的对比,国...

2018-12-27 23:12:39 457

原创 docker安装(Centos7服务器)

安装docker1、Docker 要求 CentOS 系统的内核版本高于 3.10 ,查看本页面的前提条件来验证你的CentOS 版本是否支持 Docker 。通过 uname -r 命令查看你当前的内核版本 $ uname -r2、使用 root 权限登录 Centos。确保 yum 包更新到最新。$ sudo yum update3、卸载旧版本(如果安装过旧版本的话...

2018-12-27 21:34:28 269

原创 爬虫去重策略

我们都知道在获取网站的各层url的过程中,每一层都会有相互指向的url,这样就形成了一个闭合的url网络,那么要想实现爬虫一步步获取url,不陷入死循环,必须进行去重的操作1.将访问过的url保存到数据库中       这种方式是最简单方式,当我们在获取下一个url的时候,就到数据库中查询这个url是否存在,虽然数据库有缓存,但是每个url都从数据库中查找,这样以来效率会非常的低,但是...

2018-12-25 17:45:11 320

原创 深度优先和广度优先算法的Python实现(爬虫原理)

 构造如下的一个二叉树,简要分析一下,在爬虫应用过程中,对深度优先和广度优先算法的实现: 一、深度优先def depth_tree(tree_node): if tree_node is not None: print(tree_node._data) if tree_node._left is not None: ...

2018-12-25 17:17:02 1990 1

原创 Vue.js源码目录及构建

1.Vue.js 目录结构下面是Github上Vue源码的目录结构其中src为源码部分,结构如下:src├── compiler # 编译相关 ├── core # 核心代码 ├── platforms # 不同平台的支持├── server # 服务端渲染├── sfc # ...

2018-12-03 15:20:54 4457

原创 实现手机注册——使用Python(DRF应用)接通腾讯云短信服务接口

本篇以注册或者登陆的单次单人发送场景为例,使用Python进行短信接口的调试,从而实现DRF应用的用户注册功能,至于群发或者语音等短信的场景,合此类似,本篇不做完整介绍。一、申请腾讯云签名并创建模板  首先在腾讯云服务中找到短信服务,点击开通,填写基本信息,最后生成如下:其中SDK AppID和App key是在https请求发送是的必要参数。然后需要创建一个签名,签名相当...

2018-12-02 15:33:02 16012

原创 基于PTB数据集实现RNN-LSTM循环神经网络(智能填词)

本篇直入主题,做一篇学习的记录,在学习RNN的时候,跟着教程敲了一个案例分为处理方法文件,神经网络模型文件,训练方法文件,测试文件所有的操作和重要内容都在代码中作了详细的注释一、目标神经网络模型 二、数据集PTB数据集下载地址http://www.fit.vutbr.cz/~imikolov/rnnlm/simple-examples.tgz或者使用...

2018-12-01 16:25:53 11642

原创 JavaScript中4种常见的内存泄漏及避免方法

垃圾回收算法       常用垃圾回收算法叫做**标记清除 (Mark-and-sweep) **,算法由以下几步组成: 1、垃圾回收器创建了一个“roots”列表。roots 通常是代码中全局变量的引用。JavaScript 中,“window” 对象是一个全局变量,被当作 root 。window 对象总是存在,因此垃圾回收器可以检查它和它的所有子对象是否存在(即不是垃圾); ...

2018-11-27 18:53:25 983

原创 前后端分离模式下JWT用户认证及其在DRF中的应用

       在前后端分离开发时为什么需要用户认证呢?原因是由于HTTP协定是不储存状态的(stateless),这意味着当我们透过帐号密码验证一个使用者时,当下一个request请求时它就把刚刚的资料忘了。于是我们的程序就不知道谁是谁,就要再验证一次。所以为了保证系统安全,我们就需要验证用户否处于登录状态。 一、传统的用户认证方式传统认证方式前后端分离通过Restful API进...

2018-11-27 17:46:02 1827

原创 Python如何在列表,字典,集合中根据条件筛选数据?

在编程中我们经常遇到下面的一些问题:过滤掉列表[3, 9, -1, 10, 20, -2...]中的负数 筛选出字典{'Lilei': 79, 'Tim': 88, 'Lucy':92...}中的值高于90的项 筛选出集合{77, 89, 32, 20...}中能被3整除的元素 在Python中,通用的做法是直接使用循环迭代:data = [1, 5, -3, -2, 6, ...

2018-11-27 13:48:29 16709

原创 Vue相关的学习视频分享

这是我的网盘里面收集的关于Vue的学习视频,分享出来:链接:https://pan.baidu.com/s/1dvdVdI9zqUNbPhIwQxX43Q 提取码:88gm 这里面包括下面的内容: 

2018-11-26 21:49:31 618 2

原创 TensorFlow实现CNN卷积神经网络对手写数字集mnist的模型训练

mnist手写数字集相当于是TensorFlow应用中的Helloworld。在学习了TensorFlow的卷积神经网络应用之后,今天就分步解析一下其应用过程 一、mnist手写数字数据集        MNIST是深度学习的经典入门demo,他是由6万张训练图片和1万张测试图片构成的,每张图片都是28*28大小(如下图),而且都是黑白色构成(这里的黑色是一个0-1的浮点数,黑色越...

2018-11-26 21:44:38 2220 1

原创 TensorFlow报错Fetch argument None has invalid type class 'NoneType'

写了一个TensorFlow卷积神经网络的训练程序。基于mnist数据集进行训练和测试。但是在程序运行的时候报出了下面的错误。Traceback (most recent call last): File "nn_eg.py", line 104, in <module> train_loss, train_op = sess.run([loss, tra...

2018-11-26 19:50:05 13118 6

原创 激活函数的生成及图像

所谓激活函数(Activation Function),就是在人工神经网络的神经元上运行的函数,负责将神经元的输入映射到输出端。        激活函数(Activation functions)对于人工神经网络模型去学习、理解非常复杂和非线性的函数来说具有十分重要的作用。它们将非线性特性引入到我们的网络中。如下图,在神经元中,输入的 inputs 通过加权,求和后,还被作用了一个函数,这...

2018-11-26 14:31:38 1878

原创 初探梯度下降解决线性回归问题

线性回归一般用于预测问题,比如股票的涨跌,通过苹果的股票图可以预测其以后的发展。梯度下降是机器学习中最核心的优化算法。今天以一个小例子进行一个相对综合的应用,使用梯度下降解决一个线性回归问题,我们使用的是matplotlib这个可视化python包。此外在学习的过程中,还要注意python2.x和python3.x在一些语法结构上的区别。 一、TensorFlow中可用的操作...

2018-11-25 21:45:55 710

原创 Django中F查询及Q查询应用

当一般的查询语句已经无法满足我们的需求时,Django为我们提供了F和Q复杂查询语句。假设场景一:老板说对数据库中所有的商品,在原价格的基础上涨价10元,你该怎么做?场景二:我要查询一个名字叫xxx,年龄是18岁,或者名字是yyy,年龄是是19岁的人,你该怎么写你的ORM语句一、F查询 from django.db.models import Ffrom app01.models ...

2018-11-25 19:47:24 1122

原创 vue+django跨域问题解决方案(前后端两种方案)

1.Vue前端设置代理(方案一)我们在使用vue-cli启动项目的时候npm run dev便可以启动我们的项目了,通常我们的请求地址是以localhost:8080来请求接口数据的,localhost是没有办法设置cookie的。 我们可以在vue-cli配置文件里面设置一个代理,跨域的方法有很多,通常需要后台来进行配置。我们可以直接通过node.js代理服务器来实现跨域请求。...

2018-11-25 19:36:38 18672

原创 DRF中接口数据序列化及分页、过滤、搜索、排序的快速实现

       在学习了一段时间DRF后,明显感受到了在Web API搭建的过程中,DRF比Django灵活和迅速很多,DRF中提供了很多强大视图和API,本篇通过一个商品页的小案例记录一下通过试用各种视图及filter之后总结出的一套最简化代码。       在这套代码中,采用了serializer和filter文件与view分离的形式,但都属于一个app文件夹:1.serialize...

2018-11-24 20:19:50 1677

端到端的机器学习案例文档

构造一个端对端的房地产案例描述。主要分为以下几个步骤:1.观察大局,2.获得数据,3.从数据可视化中获得洞见,4.机器学习算法的数据准备,5.选择和训练模型,6.微调模型,7.展示解决方案,8.启动、监控和维护系统

2020-10-28

空空如也

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

TA关注的人

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