源码

聚宽源码37

落爺英雄遲暮 提交于 2019-12-16 09:14:25
原文策略源码如下: 因子分析 import pandas as pd import jqdata def initialize(context): g.index=‘000300.XSHG’ set_option(‘use_real_price’, True) set_order_cost(OrderCost(open_tax=0, close_tax=0, open_commission=0, close_commission=0, close_today_commission=0, min_commission=0), type=‘stock’) set_benchmark(‘000300.XSHG’) def calalpha(context): stock_list=get_index_stocks(g.index) dt=context.previous_date df = get_price(stock_list,end_date=dt,count=1,fields=[‘money’]) df = df[‘money’].T df.columns=[‘alpha’] result=df.sort([‘alpha’],ascending=False) return result def before_trading_start(context): result=list(

Spring源码:ResourceLoader

懵懂的女人 提交于 2019-12-16 07:41:14
目录 1、ResourceLoader 介绍 2、Resource 介绍 1、ResourceLoader 介绍 ResourceLoader接口用于返回 Resource 对象;其实现可以看作是一个生产Resource的工厂类。 Spring提供了一个适用于所有环境的DefaultResourceLoader实现,可以返回ClassPathResource、UrlResource;还提供一个用于web环境的ServletContextResourceLoader,它继承了DefaultResourceLoader的所有功能,又额外提供了获取ServletContextResource的支持。 ResourceLoader在进行加载资源时需要使用前缀来指定需要加载:“classpath:path”表示返回ClasspathResource,“http://path”和“file:path”表示返回UrlResource资源,如果不加前缀则需要根据当前上下文来决定,DefaultResourceLoader默认实现可以加载classpath资源。 ResourceLoader 源码: package org.springframework.core.io; import org.springframework.lang.Nullable; public interface

【Vue】Vue源码第一步——目录结构

生来就可爱ヽ(ⅴ<●) 提交于 2019-12-16 07:39:09
开始学习探索源码之前,要先熟悉整个源码的目录结构以及整个文件的架构是怎么组成的,所以第一章先看目录结构 目录结构 Vue.js 的源码都在 src 目录下,其目录结构如下。 src ├── compiler # 编译相关 ├── core # 核心代码 ├── platforms # 不同平台的支持 ├── server # 服务端渲染 ├── sfc # .vue 文件解析 ├── shared # 共享代码 compiler compiler 目录包含 Vue.js 所有编译相关的代码。它包括把模板解析成 ast 语法树,ast 语法树优化,代码生成等功能。 编译的工作可以在构建时做(借助 webpack、vue-loader 等辅助插件);也可以在运行时做,使用包含构建功能的 Vue.js。显然,编译是一项耗性能的工作,所以更推荐前者——离线编译。 core core 目录包含了 Vue.js 的核心代码,包括内置组件、全局 API 封装,Vue 实例化、观察者、虚拟 DOM、工具函数等等。 这里的代码可谓是 Vue.js 的灵魂,也是我们之后需要重点分析的地方。 platform Vue.js 是一个跨平台的 MVVM 框架,它可以跑在 web 上,也可以配合 weex 跑在 native 客户端上。platform 是 Vue.js 的入口,2 个目录代表 2 个主要入口

手写HashMap底层(源码)

╄→尐↘猪︶ㄣ 提交于 2019-12-16 05:15:51
底层结构: 在手写HashMap的时候,需要首先弄清楚HashMap底层结构实现原理。HashMap底层采用哈希表实现,其中哈希表相当于“数组+链表”的结构。其结构示意图如下: 采用哈希表实现HashMap的时候,需要首先弄清楚其存储流程。首先创建Entry节点的结构,并且创建指定长度的数组;其次根据哈希函数计算的哈希值确定节点在数组中的存储位置,最后判断数组指定位置是否已有其他节点,并在链表的尾部添加新的节点。其存储流程示意图如下: 源码: Entry类: package cn.csu.hashmap; public class Entry { private int hash; private Object key; private Object value; private Entry next; public Entry() { } public Entry(int hash, Object key, Object value, Entry next) { super(); this.hash = hash; this.key = key; this.value = value; this.next = next; } public int getHash() { return hash; } public void setHash(int hash) { this

CentOS 7.7 源码安装MySQL5.7.27

那年仲夏 提交于 2019-12-16 03:04:16
下载mysql-5.7.27并上传到CentOS 7.7 https://downloads.mysql.com/archives/community/ 163镜像站下载http://mirrors.163.com/mysql/Downloads/MySQL-5.7/mysql-5.7.27.tar.gz 创建安装目录文件夹及 mysql 用户,创建存放mysql数据库/data/mysql,创建log、socket与pid文件与相关存放目录。 [root@localhost MySQL_SRC]# ls mysql-5.7.27.tar.gz [root@localhost MySQL_SRC]# mkdir -p /usr/local/mysql [root@localhost MySQL_SRC]# useradd mysql useradd: user 'mysql' already exists [root@localhost MySQL_SRC]# mkdir -p /data/mysql [root@localhost MySQL_SRC]# mkdir /usr/local/mysql/{data,logs,tmp,run} -p [root@localhost MySQL_SRC]# 安装源码编译所需要的相关依赖包 yum -y install cmake gcc

Ubuntu Linux源码安装nginx

爷,独闯天下 提交于 2019-12-16 02:21:35
一:环境准备 如果需要使用Nginx的常用功能,首先需要确保操作系统至少安装了如下软件。 1:GCC编译器 安装nginx需要先将官网下载的源码进行编译,编译依赖 gcc 环境。安装指令如下: sudo apt-get install -y gcc 2:PCRE PCRE库支持正则表达式。如果我们在配置文件nginx.conf使用了正则表达式,那么在编译Nginx时就必须把PCRE库编译进Nginx,因为Nginx的HTTP等模块需要靠它解析正则表达式。如果不需要则不必安装。第一个安装包提供编译版本的库,而第二个提供开发阶段的头文件和编译项目的源代码。安装指令如下: sudo apt-get install libpcre3 libpcre3-dev 3:zlib库 zlib库用于对HTTP内容做gzip格式压缩,如果我们在nginx.conf配置了gzip.on,并指定对于某些类型(content-type)的HTTP响应使用gzip进行压缩以减少网络传输量,那么在编译时就必须把zlib编译进Nginx。安装指令如下: sudo apt-get install zlib1g-dev 4:OpenSSL开发库 如果我们的服务器不仅支持HTTP,还需要更安全的SSL协议上传输HTTP,那么久需要OpenSSL。另外,如果需要使用MD5,SHA1等散列函数,也需要安装它。安装指令如下:

各种开源协议介绍

丶灬走出姿态 提交于 2019-12-16 00:49:49
世界上的开源许可证(Open Source License)大概有上百种,今天我们来介绍下几种我们常见的开源协议。大致有GPL、BSD、MIT、Mozilla、Apache和LGPL等。 Apache License Apache License(Apache许可证),是Apache软件基金会发布的一个自由软件许可证。 Apache Licence是著名的非盈利开源组织Apache采用的协议。该协议和BSD类似,同样鼓励代码共享和最终原作者的著作权,同样允许源代码修改和再发布。但是也需要遵循以下条件: 需要给代码的用户一份Apache Licence。 如果修改了代码,需要再被修改的文件中说明。 在衍生的代码中(修改和有源代码衍生的代码中)需要带有原来代码中的协议,商标,专利声明和其他原来作者规定需要包含的说明。 如果再发布的产品中包含一个Notice文件,则在Notice文件中需要带有Apache Licence。你可以再Notice中增加自己的许可,但是不可以表现为对Apache Licence构成更改。 Apache Licence也是对商业应用又好的许可。使用者也可以再需要的时候修改代码来满足并作为开源或商业产品发布/销售。 使用这个协议的好处是: 永久权利 一旦被授权,永久拥有。 全球范围的权利 在一个国家获得授权,适用于所有国家。假如你在美国,许可是从印度授权的

线程池源码详解

混江龙づ霸主 提交于 2019-12-15 21:54:59
https://blog.csdn.net/luluyo/article/details/92403240 https://blog.csdn.net/luluyo/article/details/95517610 https://blog.csdn.net/anhenzhufeng/article/details/88870374 来源: https://www.cnblogs.com/minikobe/p/12045642.html

Linux软件源码包的安装(Tarball的安装)转

我的梦境 提交于 2019-12-15 21:38:46
软件源码包安装背景 接触过Linux的人都知道要在Linux上安装软件通常使用rpm或yum,这两种工具的出现确实大大减少我们在Linux系统上安装软件的工作量,但是rpm及yum的安装的软件都是基于某种平台事先编译好的成品,这个成品中制作者考虑种种因素可能会对这个软件的功能进行一定程度的剪裁,也就是说现成的rpm包或yum包不是最全的软件包。而如果我们想要添加这个软件的rpm或yum中未包含的功能该怎么办?为了解决这个问题,我们就要使用软件源码包进行安装。 什么是软件源码包? Linux软件的源代码分发是指提供了该软件所有程序源代码的发布形式,需要用户自己编译成可执行的二进制码并进行安装。其 优点是配置灵活,可以随意去掉或保留某些功能/模 块,适应多种硬件/操作系统平台及编译环境 ; 缺点是难度较大,一般不适合初学者使用 源码包格式有两种: 1. *.src.rpm形式的源代码软件包 2. *.tar.gz/*.xz/*.bz2形式的源代码软件包 软件源码包的安装 1.*.src.rpm形式的源代码软件包 ( 该类型由于还是以rpm功能实现的软件安装,这里只是简单介绍下其方法,具体如何实验就不再演示。 ) 假设此*.src.rpm文件在/usr/local/src下,在该目录下执行rpmbuild --rebuild *.src.rpm,若命令顺利执行则会在/usr/src

Redis源码剖析--哈希t_hash

馋奶兔 提交于 2019-12-15 18:42:15
不知不觉,从第一篇写Redis源码分析开始,已经过了快一个月了,想想自己的进度,简直慢的吓人啊,这样下去不行,后面得加快脚步了。今天分析的是Redis的又一个数据类型—哈希,哈希键的底层编码形式有OBJ_ENCODING_ZIPLIST和OBJ_ENCODING_HT两种,其中,前者的底层数据结构为压缩列表,后者的底层数据结构为字典。如有对这两个结构不清楚的,可以点击跳转去温故复习一下。 Hash概述 前面我们提到,Redis对于其五个对用户公开的数据类型统一采用RedisObject管理。Hash类型只需要修改encoding字段就能表示该对象为一个哈希对象。为了便于大家理解,我还是不厌其烦的先罗列出RedisObject的结构体定义。 typedef struct redisObject { unsigned type:4; // hash类型 unsigned encoding:4; // hash结构,此字段为OBJ_ENCODING_ZIPLIST或OBJ_ENCODING_HT unsigned lru:LRU_BITS; // 上一次操作的时间 int refcount; // 引用计数,便于内存管理 void *ptr; // 指向底层的数据结构 } robj; 如果底层编码是ziplist的话,hash键按照如下方式排列