hash

Convert named matches in MatchData to Hash

青春壹個敷衍的年華 提交于 2020-02-26 11:28:28
问题 I have a rather simple regexp, but I wanted to use named regular expressions to make it cleaner and then iterate over results. Testing string: testing_string = "111x222b333" My regexp: regexp = %r{ (?<width> [0-9]{3} ) {0} (?<height> [0-9]{3} ) {0} (?<depth> [0-9]+ ) {0} \g<width>x\g<height>b\g<depth> }x dimensions = regexp.match(testing_string) This work like a charm, but heres where the problem comes: dimensions.each { |k, v| dimensions[k] = my_operation(v) } # ERROR ! undefined method

破解复制加密狗

纵饮孤独 提交于 2020-02-26 02:00:04
从入口文件index.js中我们可以看到暴露出了一个VueRouter类,这个就是我们在 vue 项目中引入 vue-router 的时候所用到的new Router() 其中具体内部代码如下(为了方便阅读,省略部分代码) export default class VueRouter { constructor (options: RouterOptions = {}) { this.app = null this.apps = [] this.options = options this.beforeHooks = [] this.resolveHooks = [] this.afterHooks = [] this.matcher = createMatcher(options.routes || [], this) let mode = options.mode || ‘hash’ this.fallback = mode === ‘history’ && !supportsPushState && options.fallback !== false if (this.fallback) { mode = ‘hash’ } if (!inBrowser) { mode = ‘abstract’ } this.mode = mode switch (mode) { case

java源码学习---HashMap

橙三吉。 提交于 2020-02-25 19:07:46
开门见山,直接干 HashMap是java常用的一个集合,每个元素的key经过哈希算法后储存在链表或红黑树的一种键值对数据集合(JDK1.8) 从HashMap新增元素说起 map.put( "key" , "value" ); 这是我们日常向HashMap插入元素的其中一种方式,put(k,v)的源码 public V put( K key, V value) { return putVal( hash (key), key, value, false , true ); } put()会再调用一个putVal(),但是在这之前key会通过hash()计算出对应位置的值,真正的put操作,就是从这里开始 final V putVal( int hash, K key, V value, boolean onlyIfAbsent, boolean evict) { Node< K , V >[] tab; Node< K , V > p; int n, i; if ((tab = table ) == null || (n = tab. length ) == 0 ) n = (tab = resize()). length ; if ((p = tab[i = (n - 1 ) & hash]) == null ) tab[i] = newNode(hash, key,

https原理及tomcat配置https方法

一世执手 提交于 2020-02-25 15:25:57
一、 什么是HTTPS 在说HTTPS之前先说说什么是HTTP,HTTP就是我们平时浏览网页时候使用的一种协议。HTTP协议传输的数据都是未加密的,也就是明文的,因此使用HTTP协议传输隐私信息非常不安全。为了保证这些隐私数据能加密传输,于是网景公司设计了SSL(Secure Sockets Layer)协议用于对HTTP协议传输的数据进行加密,从而就诞生了HTTPS。SSL目前的版本是3.0,被IETF(Internet Engineering Task Force)定义在RFC 6101中,之后IETF对SSL 3.0进行了升级,于是出现了TLS(Transport Layer Security) 1.0,定义在RFC 2246。实际上我们现在的HTTPS都是用的TLS协议,但是由于SSL出现的时间比较早,并且依旧被现在浏览器所支持,因此SSL依然是HTTPS的代名词,但无论是TLS还是SSL都是上个世纪的事情,SSL最后一个版本是3.0,今后TLS将会继承SSL优良血统继续为我们进行加密服务。目前TLS的版本是1.2,定义在RFC 5246中,暂时还没有被广泛的使用。 二、 Https的工作原理 HTTPS在传输数据之前需要客户端(浏览器)与服务端(网站)之间进行一次握手,在握手过程中将确立双方加密传输数据的密码信息。TLS/SSL协议不仅仅是一套加密传输的协议

面对海量的数据,我们应该如何处理?

这一生的挚爱 提交于 2020-02-25 15:25:23
一、海量数据处理 所谓海量数据处理,无非就是基于海量数据上的存储、处理、操作。何谓海量,就 是数据量太大,所以导致要么是无法在较短时间内迅速解决,要么是数据太大,导 致无法一次性装入内存。 那解决办法呢? 针对时间,我们可以采用巧妙的算法搭配合适的数据结构,如Bloom filter/Hash/bit- map/堆/trie树。 针对空间,无非就一个办法:大而化小,分而治之(hash映射)。 相关内容后续GitHub更新 ( 顺手留下GitHub链接,需要获取相关面试等内容的可以自己去找 ) https://github.com/xiangjiana/Android-MS (VX:mm14525201314) 二、算法/数据结构基础 1.Bloom Filter Bloom Filter(BF)是一种空间效率很高的随机数据结构,它利用位数组很简洁地 表示一个集合,并能判断一个元素是否属于这个集合。它是一个判断元素是否存在 集合的快速的概率算法。Bloom Filter有可能会出现错误判断,但不会漏掉判断。也 就是Bloom Filter判断元素不再集合,那肯定不在。如果判断元素存在集合中,有一 定的概率判断错误。因此,Bloom Filter不适合那些“零错误”的应用场合。 而在能容忍低错误率的应用场合下,Bloom Filter比其他常见的算法(如hash,折 半查找

Nginx配置文件nginx.conf中文详解

浪子不回头ぞ 提交于 2020-02-24 20:27:37
Nginx是通过配置文件来做到各个功能的实现的。Nginx的配置文件的格式非常合乎逻辑,学习这种格式以及如何使用这种每个部分是基础,这将帮助我们有可能手工创建一个配置文件。 其整体结构如下: 从图中我们可以看出主要包含以下几大部分内容: main(全局设置) :设置的指令将影响其他所有设置; server(主机设置) :指令主要用于指定主机和端口、 upstream(负载均衡服务器设置) :指令主要用于负载均衡,设置一系列的后端服务器 location(URL匹配特定位置的设置) :用于匹配网页位置。 这四者之间的关系式:server继承main,location继承server,upstream既不会继承其他设置也不会被继承。在这四个部分当中,每个部分都包含若干指令,这些指令主要包含Nginx的主模块指令、事件模块指令、HTTP核心模块指令,同时每个部分还可以使用其他HTTP模块指令,例如Http SSL模块、HttpGzip Static模块和Http Addition模块等。 ######Nginx配置文件nginx.conf中文详解##### #定义Nginx运行的用户和用户组 user www www; #nginx进程数,建议设置为等于CPU总核心数。 worker_processes 8; #全局错误日志定义类型,[ debug | info | notice |

Feature hashing in R for Text classification

佐手、 提交于 2020-02-24 09:14:49
问题 I'm trying to implement feature hashing in R to help me with a text classification problem, but i'm not sure if i'm doing it the way it should be. Part of my code is based on this post: Hashing function for mapping integers to a given range?. My code: random.data = function(n = 200, wlen = 40, ncol = 10){ random.word = function(n){ paste0(sample(c(letters, 0:9), n, TRUE), collapse = '') } matrix(replicate(n, random.word(wlen)), ncol = ncol) } feature_hash = function(doc, N){ doc = as.matrix

chapter9.1、魔术方法

泄露秘密 提交于 2020-02-24 05:51:09
魔术方法 python精华之一 特殊属性 __name__ 类,函数,方法等的名字 __modle__ 主模块,当前的模块__main__,其他模块调用返回模块对象 __class__ 相当于type,对象或类所属的类 __bases__ 返回基类的元组,顺序为基类列表中出现的顺序 __doc__ 文档,未定义为None __mro__ 类的mro,定义时就会计算并放在类的属性里的__mro__中 __dict__ 类或实例的属性,可写的字典,这里注意有些只读字典 查看属性 __dir__ 返回类的或者对象的所有成员的列表, dir()函数调用__dir__(),dir是内建函数, 如果类中和实例中定义了__dir__:   使用实例调用时,实例中如果定义了__dir__,就会覆盖类__dir__,返回实例中的__dir__的运行结果;   如果实例中没有,就会调用父类的,如果父类没有,就继续向上找,中间有的话就会运行该方法; 如果类中和实例中没有定义__dir__:   如果对象是模块对象,返回的列表包含文件的属性名和变量名,受作用域影响,一般在模块上使用时,调用模块,在自己的模块搜集   如果对象是类或类的实例,近似于自己实例的字典加类的字典加object的字典,返回列表包含类的属性名,及它的基类的属性名   如果dir() 括号中不写,返回的列表包含不同的内容    

爬虫基础知识(捌)

余生颓废 提交于 2020-02-23 17:25:21
一、Redis基础知识     Redis的客户端和服务端命令:       redis-server:服务器命令         启动一个redis的命令是:redis-server redis.windows.conf       redis-cli:客户端命令         启动一个客户端的redis命令:redis-cli -p 端口号      1、Redis和Memcached相比的独特之处:            ·Redis可以持久化数据到硬盘,memcached只能做缓存         ·Redis相比于memcached,其支持的数据类型更多     2、Redis的优点:            (1)读写速度快。数据存放在内存中,数据结构类似于HashMap;         (2)支持丰富的数据类型:string,hash,list,set,sorted;         (3)支持简单事务:watch;         (4)丰富的特性:可以用于缓存、消息队列,按key设置过期时间,到期后自动删除;         (5)支持数据持久化,支持AOF和RDB两种持久化方式,从而进行数据恢复操作,可以有效地防止数据丢失;         (6)支持主从复制来实现数据备份,主机会自动将数据同步到从机。     3、Redis目录下的重要文件的意义:     

散列表简介

好久不见. 提交于 2020-02-23 10:11:58
散列表 也叫 哈希表 ,是一种根据关键字直接访问内存存储位置的数据结构,它是用一个数组实现的无序符号表.将键作为数组的索引而数组中键i处存储的就是它对应的值,这样就可以实现快速访问任意键的值.散列表是算法在时间和空间上做出权衡的经典例子. 散列表的查找算法分为 两步 : 1.用散列函数将键转化为数组索引,可能会出现多个键散列到相同的索引值上面,这是就要进行第二步了. 2.处理碰撞冲突(拉链法和线性探测法). 散列函数的概念 散列函数应该易于计算并且能够均匀分布所有的键, 即对于任意键, 0到M-1之间每个整数都有相同的可能性与之对应(与键无关), 严格地说每种类型的键都应该有对应的散列函数. 正整数 : 一般用 除留余数法 ,选择素数为M的数组,对于任意正整数k,计算k除以M的余数.可以有效的散布在0-M-1之间.如果M不是素数,可能不会均匀散布. 浮点数 :java中将键表示为 二进制 然后使用除留取余法 . 字符串 :java中charAt()返回一个非负16位整数,只要R足够小,不造成溢出,那么结果就会落在0至M-1之间 int hash = 0; for (int i = 0; i < s.length(); i++) hash = (R * hash + s.charAt(i)) % M; 组合键 :如果键中含有多个整型变量, 我们可以和String类型一样将它们混合起来