支付宝沙箱使用之路
支付宝沙箱使用之路 可以参考的网站 https://open.alipay.com/develop/sandbox/app https://opendocs.alipay.com/common/02kkv7 https://opendocs.alipay.com/common/02kipl https://opendocs.alipay.com/open/204/106450 https://open.alipay.com/api/detail?code=I1080300001000041313#api-detail-content https://zhuanlan.zhihu.com/p/425893989 预处理 自定义密钥 https://opendocs.alipay.com/common/02kipl 公钥模式默认不启用,点击上面的链接获取密钥生成的exe生成密钥 应用公钥复制给网页对应窗口,会获取到支付宝公钥,启用完成。 下载沙箱版app 开发 阿里demo:https://gw.alipayobjects.com/os/bmw-prod/a526522f-3 ...
域模型、DDD、CQRS与12306的设计
域模型、DDD、CQRS与12306的设计 一系列好文摘录与汇总,具体出处参见文末参考连接 前言 不管在架构层面还是编码层面,采用CQRS的都会增加程序的复杂度和代码量,不过,这种复杂性可以在很大程度上被其所带来的“条理性”所抵消,“有条理的多”恰恰是为了简单。 域模型 什么是域模型 域模型(domain model)英文又称为问题域模型(problem space model)。维基百科(Wikipedia)对它的定义是 A conceptual model of all the topics related to a specific problem 。 可以翻译成: “域模型是针对某个特定问题的所有相关方面的抽象模型”。 这个定义有几个要点:第一是“特定问题”, 也即是说域模型是针对性某个问题域而言的, 脱离的这个特定问题,域模型的构建其实不存在一个最优或者是最合理的构建。 第二是抽象, 域模型是一个抽象模型, 不是对某个问题的各个相关方面的一个映射, 也不是解决方案的构建。 关于域模型, 经常会看到大家把逻辑数据模型(logical data model) 或者是物理数据模型( ...
Python爬12306余票
Python爬12306余票 项目地址:https://github.com/ZWN2001/data_spider_12306 数据库课设使用的爬虫 半成品,需要根据todo自己改改 main.py查的是学生票 main2.py查的是成人票 爬虫教程在 here 一些问题的解答 为什么要分成人与学生 如果你进行请求就会发现默认(成人票)只能请求到近几个月的数据。 而学生票则可以请求到更多。 成人与学生爬虫的区别 区别主要在请求的url与使用的cookie上。 url会使用purpose_codes参数进行区分。 cookie上,学生票要比成人票的cookie严格很多,无法直接通过selenium获取,只能手动填写、更新。 成人票使用了selenium的无头浏览器,默认使用了谷歌浏览器。 cookie的结构 两种票的cookie都是由两部分组成的,一部分是固定的cookie数据,通过多次相应头的set_Cookie设置的,从浏览器中可以获取,学生票cookie还会对其中的一些属性进行修改,并且会添加加密过的fo属性。 另一部分是请求的行程信息,其中起点与终点的值为站名,站编码的 ...
cpp小抄
来自 https://github.com/mortennobel/cpp-cheatsheet C++ QUICK REFERENCE / C++ CHEATSHEET Based on Phillip M. Duxbury’s C++ Cheatsheet and edited by Morten Nobel-Jørgensen. The cheatsheet focus is both on the language as well as common classes from the standard library. C++11 additions is inspired by ISOCPP.org C++11 Cheatsheet). The goal is to give a concise overview of basic, modern C++ (C++14). The document is hosted on https://github.com/mortennobel/cpp-cheatsheet. Any comments and feedback are ...
Python小抄
来自https://github.com/gto76/python-cheatsheet Comprehensive Python Cheatsheet Contents 1. Collections: List, Dictionary, Set, Tuple, Range, Enumerate, Iterator, Generator. 2. Types: Type, String, Regular_Exp, Format, Numbers, Combinatorics, Datetime. 3. Syntax: Args, Inline, Import, Decorator, Class, Duck_Types, Enum, Exception. 4. System: Exit, Print, Input, Command_Line_Arguments, Open, Path, OS_Commands. 5. Data: JSON, Pickl ...
Git 的奇技淫巧
来自:https://github.com/521xueweihan/git-tips Git 的奇技淫巧:see_no_evil: Git 是一个 “分布式版本管理工具”,简单的理解版本管理工具:大家在写东西的时候都用过 “回撤” 这个功能,但是回撤只能回撤几步,假如想要找回我三天之前的修改,光用 “回撤” 是找不回来的。而 “版本管理工具” 能记录每次的修改,只要提交到版本仓库,你就可以找到之前任何时刻的状态(文本状态)。 下面的内容就是列举了常用的 Git 命令和一些小技巧,可以通过 “页面内查找” 的方式进行快速查询:Ctrl/Command+f。 开卷必读 如果之前未使用过 Git,可以学习 Git 小白教程入门 一定要先测试命令的效果后,再用于工作环境中,以防造成不能弥补的后果!到时候别拿着砍刀来找我 所有的命令都在git version 2.7.4 (Apple Git-66)下测试通过 统一概念: 工作区:改动(增删文件和内容) 暂存区:输入命令:git add 改动的文件名,此次改动就放到了 ‘暂存区’ 本地仓库(简称:本地):输入命令:git commit 此次 ...
正则表达式
正则表达式 前言 这种学得快忘得也快的小玩意真是让人头疼。 通过使用正则表达式,可以: 测试字符串内的模式。 例如,可以测试输入字符串,以查看字符串内是否出现电话号码模式或信用卡号码模式。这称为数据验证。 替换文本。 可以使用正则表达式来识别文档中的特定文本,完全删除该文本或者用其他文本替换它。 基于模式匹配从字符串中提取子字符串。 可以查找文档内或输入域内特定的文本。 正则表达式的使用,可以通过简单的办法来实现强大的功能。下面先给出一个简单的示例: ^ 为匹配输入字符串的开始位置。 [0-9]+匹配多个数字, [0-9] 匹配单个数字,+ 匹配一个或者多个。 abc$匹配字母 abc 并以 abc 结尾,$ 为匹配输入字符串的结束位置。 我们在写用户注册表单时,只允许用户名包含字符、数字、下划线和连接字符 -,并设置用户名的长度,我们就可以使用以下正则表达式来设定。 修饰符(标记) 标记也称为修饰符,正则表达式的标记用于指定额外的匹配策略。 标记不写在正则表达式里,标记位于表达式之外,格式如下: 1/你的flags 下表列出了正则表达式常用的修饰符: ...
Python爬虫从入门到小黑屋
还是希望能比较系统地回顾一下爬虫的一些知识,不过有一些我也记不清了。 可能对小白不是很友好。 如果看视频可以参考这个。 Python爬虫从入门到小黑屋 概论 爬虫的矛与盾 robots.txt协议: 君子协议。规定了网站中哪些数据可以被爬取哪些数据不可以被爬取。 Request与第一个爬虫 1pip install -i https://pypi.tuna.tsinghua.edu.cn/simple requests 1234567891011121314import requestsif __name__ == '__main__': url = "https://fanyi.baidu.com/sug" s = input("请输入你要翻译的英文单词") dat = { "kw": s } # 发送post请求, 发送的数据必须放在字典中, 通过data参数进行传递 resp = requests.post(url, data=d ...
isdu暑期维护日志
日志 2022.7.4 解决了一系列由于空值引发的问题,其中: 一个比较奇怪的问题 方法返回值并没有什么问题,但data['data']可能原本就是null导致的报错,通常发生在获取不到课表数据的情况下。 同样可能出现这种情况: 原因是 arr可能为null 除此之外解决了几个使用null调用isEmpty或者length()造成的NoSuchMethodError 2022.7.7 解决对于20级以后的一些必修课不计入绩点的问题。 根据绩点的计算策略,我们只需要更改课程属性即可。 api.dart中添加获取用户年级的方法,直接从键值对存储hive中获取登录时存储的学号值,取学号的前四位就是用户的年级。 获取成绩时直接在原有的遍历中加一个方法处理一下即可。 处理的方法如下,不同年级按不同规定进行处理 本学期成绩的获取也是从全部成绩中获取到的,所以只需要改完上面的代码即可。 2022.7.10 IDE的一个bug:修改代码后重新build不会将修改的代码进行应用。热重载后会应用部分修改的代码但再次热重载后又会变回原样。 flutter3.0.4版本,flutter cle ...
操作系统os-chapter1-6
期末90,考得还行吧。hmb出卷真的要命,有一道大题让你自己设计二级页表系统,我计组忘净了直接寄。 第一章 什么是操作系统 操作系统是一组控制和管理计算机硬件和软件资源、合理地对各类作业(程序)进行调度,以及方便用户的程序集合。操作系统是用户和计算机的接口,同时也是计算机硬件和其他软件的接口。 书上定义为操作系统是一直运行在计算机上的程序(通常称为内核) 操作系统最基本的两个特征:并发和共享 计算机系统组成 计算机系统的组织 计算机系统操作 计算机启动过程 https://zhuanlan.zhihu.com/p/60929600 其实电脑启动的过程是一个十分完善的硬件自检的过程,在加电自检的那几秒钟里面计算机可以完成上百道工序,下面就由我来与大家介绍一下这个过程。 第一步:在主板接通电源之后,系统就由POST(Power On Self Test,上电自检)开始自检,在我们刚刚接通电源的时候,整个系统由BIOS控制,电压还不太稳定(这个过程非常短暂,一般只有几毫秒,这个时候电压的稳定完全依靠主板和电源内部的滤波电容进行),主板芯片组会向CPU发出reset的命令让CPU开始初 ...
操作系统os-chapter7-13
第七章:死锁 死锁模型 死锁的概念还是经常考的 多道程序环境下,多个进程竞争有限资源。如果某个进程需求的资源被其他进程占用,则该进程可能被永久阻塞,这种情况称为 死锁(deadlock) 。 进程按照如下顺序使用资源: 申请(Request) :如果申请不能被允许(如资源正在被其他进程占用),则申请进程必须等待直到获得资源 使用(Use) 释放(Release) 资源的申请和释放都是系统调用,如设备的 request()/release(),文件的 open()/close(),内存的 allocate()/free() 等。对于进程或线程的每次执行,操作系统会检查并确保它们以获得所需资源。系统维护一张记录表,说明某个资源是否空闲,被分配给哪个进程。 永久性资源可分为: 可剥夺资源(可重用资源):当进程所占有的并使用的资源被剥夺时,对进程不产生破坏性影响(如内存、CPU) 不可剥夺资源:如打印机等,一旦剥夺则任务执行失败 死锁与饥饿/饿死的区别 也考过 Deadlock: A process waits for a resource that is curr ...
众智-社会网络
社会网络 三元闭包 在一个社交圈内,若两个人有一个共同的朋友,则这两人在未来成为朋友的可能性就会提高。我们将上述原则称为三元闭包 原理的拓展 量:两个人的共同朋友越多,则他们成为朋友的可能性越高 质:两个人与共同朋友的关系越密切,则他们成为朋友的可能性越高 如何定义考察三元闭包现象的测度 当前共同朋友数与后来成为朋友的概率关系 数据验证 统计相同数量的共同朋友下,出现新边(成为朋友)的概率 如何计算共同朋友数 邻接矩阵相乘 节点聚集系数 刻画三元闭包现象的一个常用参数,描述某个节点对朋友的聚集能力 节点A的聚集系数 = A的任意两个朋友之间也是朋友的概率(即邻居间朋友对的个数除以总对数) 社会网络结构的统计特征 度分布(包括图的入度和出度) 度分布函数。P(k)表示网络中度为k的节点在整个网络中所占的比例。 累积度分布函数(CumulativeDegree Distribution Function)。PkP_kPk表示度不小于k的节点的概率分布,其分布关系为Pk=∑x=k∞P(x)P_k=\sum_{x=k}^{\infty}{P(x)}Pk=∑x=k∞P(x) ...
众智-博弈论
博弈论基础 基本概念 参与人(player,玩家) 策略集(Strategy,战略) 回报(payoff,受益) 策略组:每个参与人出一个策略构成的策略组合 例如: 收益矩阵:表达博弈的一种直观方式 博弈中的行为推理 首先,假设参与人关心的是自身的最终收益。 其次,还假设每个参与人对博弈结构具有充分信息。 这意味着参与人都知道他/她自身的可能策略集。 最后,进一步假设每个个体策略的选择都是为了达到自身收益的最大化,假定他/她也知道其他参与人也会选择收益最大化的策略。 有关个体行为策略模式,通常被称为是理性化模型,且个体行为模型实际上结合了两种观点。 一是每个参与人都想要自已受益的最大化。因为个体收益被定义为是个体最在意的,这种假设看起来合理。 二是每个参与人实际上都会选择最优策略。在简单的设置背景下,假设博弈中的参与人都是有经验的,这似乎就更加合理。 在复杂博弈中,或者博弈中的参与人是经验比较少的,则确实是不够合理。 基于上面的假设,当无论其他参与人选择何种行为策略时,都会存在一个决策是最佳选择,则定义这个策略是严格占优策略 (strictly domina ...
database-system-concepts-1
前言 期末92,大家分都比较高。期末试卷满分70,不进行折算,扣一分是一分,要珍惜。 基本概念 数据 数据(Data)是数据库中存储的基本对象 数据的定义 描述事物(对象)的符号记录 数据是现实世界运转留下的痕迹 数据的特点 数据与其语义是不可分的 数据库 数据库(Database,简称DB)是长期储存在计算机内、有组织的、可共享的大量数据集合 数据库的特征 数据按一定的数据模型组织、描述和储存 在磁盘上的基本组织形式是文件 可为各种用户共享 冗余度较小 数据独立性较高 易扩展 数据库管理系统 数据库管理系统(Database Management System,简称DBMS)由一个互相关联的数据的集合和一组用以访问这些数据的程序组成。是位于用户与操作系统之间的一层数据管理软件。 DBMS的目标 科学地组织和存储数据、高效方便地获取和维护数据 DBMS的主要功能 数据定义功能 提供数据定义语言(DDL) 定义数据库中的数据对象 数据操纵功能 提供数据操纵语言(DML)操纵数据 实现对数据库的基本操作 (查询、插入、删除和修改) 数据库的运行管理 保证 ...
database-system-concepts-2
通用样例 关系模型 关系的基本概念 域(Domain) 一组值的集合,这组值具有相同的数据类型 域的基数:集合的值的个数 笛卡尔积(Cartesian Product) 一组域D1,D2,…,DnD_1 , D_2 ,…, D_nD1,D2,…,Dn的笛卡尔积为: D1×D2×…×Dn={(d1,d2,…,dn)∣di∈Di,i=1,…,n}D_1\times D_2\times …\times D_n = \{(d_1,d_2,…,d_n) | d_i∈D_i , i=1,…,n\}D1×D2×…×Dn={(d1,d2,…,dn)∣di∈Di,i=1,…,n} 笛卡尔积的每个元素(d1,d2,…,dn)(d_1,d_2,…,d_n)(d1,d2,…,dn)称作一个n-元组(n-tuple) 元组的每一个值 did_idi 叫做一个分量(component) 若DiD_iDi的基数为mim_imi,则笛卡尔积的基数为∏i=1nmi\prod_{i=1}^{n}{m_i}∏i=1nmi 关系 笛卡尔积D1×D2×…×D ...
database-system-concepts-3
SQL SQL概述 特点 一体化 集DDL,DML,DCL于一体 单一的结构----关系,带来了数据操作符的统一 面向集合的操作方式 一次一集合 高度非过程化 用户只需提出“做什么”,无须告诉“怎么做”,不必了解存取路径 两种使用方式,统一的语法结构 SQL既是自含式语言,又是嵌入式语言 对于关键字:大小写不敏感 组成 数据定义语言(DDL) 数据操纵语言 (DML) 数据控制语言(DCL) 事务控制(Transaction Control) 嵌入式SQL和动态SQL(Embedded SQL and Dynamic SQL) 基本数据类型 char(n):固定长度的字符串 长度不够使用空格补齐(取出时会自动trim把空格去掉) varchar(n):可变长字符串(varchar2) n是字符串长度上限 int:整数(-231–231-1) smallint:小整数类型(-215–215-1) numeric(p,d):定点数,小数点左边p位,右边q位 real:浮点数 double p ...
database-system-concepts-4
连接表达式 基本分类 连接成分 包括两个输入关系、连接条件、连接类型 连接条件 决定两个关系中哪些元组相互匹配 连接类型 决定如何处理与连接条件不匹配的元组 连接条件 on条件允许在参与有连接的关系的关系上设置通用谓词,该谓词的写法与where子句谓词类似。 1select * from s join sc on s.sno = sc.sno 等价于 1select * from s,sc where s.sno = sc.sno 在表名后面加外连接操作符(*)或(+)指定非主体表 非主体表有一“万能”的虚行,该行全部由空值组成。虚行可以和主体表中所有不满足连接条件的元组进行连接 由于虚行各列全部是空值,因此与虚行连接的结果中,来自非主体表的属性值全部是空值 如: 查询每个学生及其选修课程的情况包括没有选修课程的学生----用外连接操作 123SELECT s.sno,sname,gender,age,dno,cno,score FROM s,sc WHERE s.sno = sc.sno(*); 连接类型 内连接(i ...
database-system-concepts-5
E-R模型:Entity-Relationship Model 世界是由一组称作实体(entities)的基本对象和这些对象之间的联系(relationships)构成的 基本E-R图 基本概念 实体(Entity) 客观存在并可相互区分的事物叫实体(唯一标识) 具体的:如学生张三、汽车鲁A12345…… 抽象的:如软件学院、数据库系统课程…… 实体集(Entity Set) 是具有相同类型及即具有相同性质(属性)的实体集合 全体学生,全部课程,所有学院…… 组成实体集的各实体称为实体集的外延(Extension) 实体集可相交 属性(Attribute) 定义:实体集中每个成员具有的描述性性质 一个实体可以由若干个属性来刻画和描述 例如,学生可由学号、姓名、年龄、性别等属性描述 属性的类型 简单属性 (Sample Attribute) 不可再分的属性 如年龄、性别 复合属性(Composite Attribute) 可以划分为更小的属性 可以把相关属性聚集起来,使模型更清晰 如电话号码=区号+本地号码 单值属 ...