谈谈基于OAuth 2.0的第三方认证
虽然我们在《上篇》分别讨论了4种预定义的AuthorizationGrant类型以及它们各自的适用场景的获取AccessToken的方式,我想很多之前没有接触过OAuth2.0的读者朋友们依然会有“不值所云”之感,所以在介绍的内容中,我们将采用实例演示的方式对Implicit和AuthorizationCode这两种常用的AuthorizationGrant作深入介绍。本章着重介绍Implicit
MYSQL索引建立需要注意以下几点细节
1.建立索引的时机:若表中的某字段出现在select、过滤、排序条件中,为该字段建立索引是值得的。2.对于like'%xxx'的模糊查询,普通的索引是无法满足的,需要建立全文索引。3.对于有多个条件的,比如:"...wherea=xxxandb=yyy","...wherea=xxxorderbyb","...wherea=xxxgroupbyb"。需要使用组合索引。但是组合索引只能在
sublime长博客利器,自动生成markdown目录
近日在写一些长博客,发现虽然markdown本可以通过[TOC],自动添加大纲,然而,有些编辑器就是不支持,比如简书markown编辑器于是开始翻看神器Sublime的插件家族,问题得到解决,分享一下!这款插件名为:MarkdownTOCgithub开源地址https://github.com/naokazuterada/MarkdownTOC#features使用演示gif动图演示.git我用一
MySQL 8 新特性之Invisible Indexes
背景索引是把双刃剑,在提升查询速度的同时会减慢DML的操作。毕竟,索引的维护需要一定的成本。所以,对于索引,要加上该加的,删除无用的。前者是加法,后者是减法。但在实际工作中,大家似乎更热衷于前者,而很少进行后者。究其原因,在于后者,难。难的不是操作本身,而是如何确认一个索引是无用的。 如何确认无用索引在不可见索引出现之前,大家可以通过sys.schema_unused_indexes来确定无用索引
Scrapy爬虫:实习僧网最新招聘信息抓取
一:前言继续练习Scrapy框架,这次抓取的是实习僧网最新的招聘信息,包括招聘岗位,时间,工资,学历要求,职位诱惑和职位描述等等。之后保存到mongodb和json文件中以备后续使用。爬虫中遇到了很多问题,比如不同解析函数传值、xpath配合正则、职位描述的网页结构多变,这些都一一解决了。代码地址:https://github.com/rieuse/ScrapyStudy二:运行环境IDE:Pyc
开机自动运行python脚本
1、新建rc.localtouch/etc/rc.d/rc.localvim/etc/rc.d/rc.local#!/bin/bash#下面是需要执行的脚本2、赋予可执行权限chmod+x/etc/rc.d/rc.local3、编辑/usr/lib/systemd/system/rc-local.service,添加如下内容[Install]WantedBy=multi-user.target4、
分布式ID生成器的解决方案总结
在互联网的业务系统中,涉及到各种各样的ID,如在支付系统中就会有支付ID、退款ID等。那一般生成ID都有哪些解决方案呢?特别是在复杂的分布式系统业务场景中,我们应该采用哪种适合自己的解决方案是十分重要的。下面我们一一来列举一下,不一定全部适合,这些解决方案仅供你参考,或许对你有用。一个ID一般来说有下面几种要素:唯一性:确保生成的ID是全网唯一的。有序递增性:确保生成的ID是对于某个用户或者业务是
【问题追查】mc集群写入恍惚问题排查
1.现象业务方反馈在向memcache集群写入数据时,出现不稳定。表现为向mc写入一个creative和ad对象的list,有的时候能写进去并读出来,有的时候写成功但是读不出来。2.问题排查2.1复现问题a.有的key没有问题,能够一直写+读。b.有的key一直都是写ok,读None。c.有的key写ok,有的时候读ok有的时候读None.2.2proxy的问题?使用同一个proxy的再次复现问题
Spring Boot搭建轻量级的博客系统
项目介绍轻量级基于SpringBoot的博客系统分为前端展示和后端管理设计风格整体简约-采用AmazeUI开源博客模板文章发布设计两大编辑器,支持Markdown与普通富文本编辑支持整体页面定制化操作,提供定制化操作模板配置管理页个人资源支持本地上传与外链引入文件服务器可选本地服务与第三方存储(已接入七牛云)使用自动配置脚本,只需简单的数据库与文件服务器配置即可一键配置并启动服务器演示地址:htt
在MySQL中使用explain查询SQL的执行计划
1、什么是MySQL执行计划 要对执行计划有个比较好的理解,需要先对MySQL的基础结构及查询基本原理有简单的了解。 MySQL本身的功能架构分为三个部分,分别是应用层、逻辑层、物理层,不只是MySQL,其他大多数数据库产品都是按这种架构来进行划分的。应用层,主要负责与客户端进行交互,建立链接,记住链接状态,返回数据,响应请求,这一层是和客户端打交道的。逻辑层,主要负责查询处理、事
如何让oracle的select强制走索引
大多数情况下,oracle数据库内置的查询优化策略还是很成功的,但偶尔也有犯2的时候,即使有索引,也会做全表扫描,可以参考以下语句的写法,强制让select语句使用索引 1 CREATE OR REPLACE VIEW V_RES_CBA AS 2 SELECT /*+INDEX(SEG IDX_T_RES_ALLOSEG_ALLOID)*/ 3 ALLO.ALLOID AS RESID,
构造函数详解
继承之构造函数 首先我们定义一个Person类,并给个构造函数。代码如下:publicclassPerson { publicstringName{get;set;} publicintAge{get;set;} publicboolGender{get;set;} publicPerson() { Console.WriteLine("父类构造函数");
ActiveMQ+ZooKeeper 伪集群整合
前言本案例使用的是伪集群方式,即在一台主机上部署3个activemq服务(端口不同)+3个zookeeper服务(端口不同)。真集群部署请看:ActiveMQ+ZooKeeper集群整合如果需要了解ActiveMQ集群部署的整体概念,可以参考我这篇文章:ActiveMQ集群整体认识原理简介:一般在部署ActiveMQ集群的时候,更倾向于使用基于ZooKeeper的ReplicatedLevelDB
C#中实现窗体间传值方法
1、VS2005的VisualC#Windows应用程序和VisualC#智能设备PocketPC2003设备应用程序。假设我们需要点击主窗体FMMain中的某一个按钮时打开子窗体FMChild并将某一个值传给子窗体FMChild,一般情况下,我们点击按钮显示子窗体FMChild的代码为:FMChild fmChild = new FMChild(); fmChild.ShowDia
RxJava基础使用(一)
RxJava是什么?如果非要用一句话来概括的话,那就是RxJava是一个异步操作。RxJava是一个和handler以及AscyTask一样的可以控制线程操作线程的一个异步操作。既然RxJava和Handler以及AscyTask效果一样,那为什么要使用RxJava而不是干脆直接使用Handler或者AscyTask呐?这个原因有两点。第一,RxJava的操作简洁。这里需要说明一下,这里说的简洁是
机器阅读理解Match-LSTM模型
0基于SQuAD数据集的通用模型架构由于SQuAD的答案限定于来自原文,模型只需要判断原文中哪些词是答案即可,因此是一种抽取式的QA任务而不是生成式任务。几乎所有做SQuAD的模型都可以概括为同一种框架:Embed层,Encode层,Interaction层和Answer层。Embed层负责将原文和问题中的tokens映射为向量表示;Encode层主要使用RNN来对原文和问题进行编码,这样编码后每
iPhone中XML处理以及网络上的图片显示
xml处理: iPhone开发中,XML处理的方式与.net区别很大。个人感觉没有donot那么方便。苹果sdk中提供了NSXMLParser这个类库来解析xml。它需要一个url作为输入参数,通过NSXMLParser的委托方法来解析这个xml文件。NSXMLParser中主要有三个委托方法来解析XML:1、didStartElement2、didEndElement3、foundCharact
解惑Android的post()方法究竟运行在哪个线程中
Android中我们常用的post()方法大致有两种情况:1.如果post方法是handler的,则Runnable执行在handler依附线程中,可能是主线程,也可能是其他线程下面是Handler里面的post方法/***CausestheRunnablertobeaddedtothemessagequeue.*Therunnablewillberunonthethreadtowhichthis
关于样式重置 css reset
html标签默认样式html,address,blockquote,body,dd,div,dl,dt,fieldset,form,frame,frameset,h1,h2,h3,h4,h5,h6,noframes,ol,p,ul,center,dir,hr,menu,pre{display:block}/以上列表元素默认状态下以块状显示,未显示的将以内联元素显示,该列表针对HTML4版本,部分元
适配器模式:异步转化为同步。
日常开发中会经常不知不觉的使用到各种设计模式,这里以nodejs中异步调用转化为同步调用为例,一起探索下适配器模式。(本文的旨在为把复杂的东西简单化,理清思路换位思考,相信看完本文你应该会掌握处理复杂问题的思路)如果熟悉nodejs的同学应该会对node各种异步编程库有所涉猎。这里我不讲那些库,只是讲解一个简单的函数实现,以此来切入适配器模式。此时,我想把nodejs的异步函数,改为promise