
共享
文章平均质量分 79
zhshuai1
如果不留下点文字,怎么证明你曾经存在过?
展开
-
机器学习笔记
序言最近在看机器学习相关的知识,然而当时看懂了,时间一久就忘了。我可不是张无忌在学太极,忘了是不行的。记下一些当时看懂的,好的基本点和相关链接,尤其是当时的aha moment,希望后续后帮助。长远看当知识形成体系之后,会再做整理。理解这些方法,可以参照各个博客,但是很多博客都只有只言片语,很多都语焉不详,但是看看原始论文,就能恍然大悟。概述机器学习要解决的问题可以分成两大类:分类和回归。所谓分类,就是顾名思义的分类;相对的,回归是预测具体的值而不是一个类别。举个例子,预测明天的天气(晴、阴、雨、雪原创 2021-07-25 01:33:02 · 370 阅读 · 0 评论 -
常刷的编程题
二叉树层序遍历;二叉树前中后序遍历(非递归);拓扑排序;编辑距离;最长总共子序列,子串;kmp;最近公共祖先;LRUCache;反转链表(单个+多个成组)原创 2021-07-22 17:47:55 · 102 阅读 · 0 评论 -
docker实战
docker run xxxx #启动一个docker容器docker ps #显示正在运行的docker容器, -a显示全部,包括没有在运行的docker run --detach --name web nginx:latest #以分离(后台)方式运行nginxdocker run --interactive --tty --link web:web --name web_t...原创 2020-03-12 02:16:07 · 431 阅读 · 0 评论 -
Innodb引擎笔记
原书:《mysql技术内幕:InnoDB引擎》源码:https://github.com/mysql/mysql-server/tree/8.0/storage/innobase======================================================查看mysql使用配置:mysql --help | grep cnf 以最后一个为准查看mysq...原创 2020-01-07 10:11:24 · 170 阅读 · 0 评论 -
深入理解Java虚拟机
1. Class文件是一组以8位字节为基础单位的二进制流,各个数据项目严格按照顺序紧凑地排列在Class文件中,中间没有添加任何分隔符,这使得整个Class文件中存储的内容几乎全部是程序运行的必要数据,没有空隙存在。当遇上占用8位字节以上的数据时,按照高位在前的方式分割成若干个8位进行存储(大端方式)。Class文件使用一种类似于C语言结构体的伪结构来存储数据,这种结构只有两种类型,无符号数和表。...原创 2018-09-08 19:01:07 · 133 阅读 · 0 评论 -
Gradle
Graph: Spark<-Scala<-Gradle<-Groovy原创 2018-09-02 16:33:01 · 126 阅读 · 0 评论 -
Scala并发编程
$placeholder原创 2018-09-07 22:29:39 · 143 阅读 · 0 评论 -
Groovy
图谱:Spark<-Scala<-Gradle<-GroovyBefore you learn, setup your IDE well!!! IDEA is recommanded.1. Groovy基于JVM;2.如果把java文件的后缀改成.groovy,能够编译通过并运行。但是由于groovy是动态语言,很多行为可能会不一致。尤其涉及继承、多态的时候。如果...原创 2018-08-31 10:38:03 · 1048 阅读 · 0 评论 -
系统设计
Resource https://github.com/donnemartin/system-design-primer原创 2018-07-07 08:59:58 · 273 阅读 · 0 评论 -
JVM笔记之GC
1. JVM 运行时数据区域: 1)程序计数器(线程私有),当前线程所执行字节代码的行号指示器,如果执行的是java方法,则值为字节码的指令地址,如果是native方法,则为空。2)Java虚拟机栈(线程私有),存储局部变量,操作数栈,动态链接,方法出口等。其大小在编译时确定。3)本地方法栈,和虚拟机栈类似,只是执行本地方法。4)Java 堆,垃圾收集的主要区域,最大的一块内存。5) 方法区(线程...原创 2018-06-30 07:30:14 · 185 阅读 · 0 评论 -
Linux基础-文件
1. 文件类型属性:d(目录) -(文件) l(链接) b(block,如磁盘) c(字符设备,不能阶段输出,不支持随机存取,如鼠标) s(socket) p(pipe/fifo)2. /bin 存放的是在单人模式下还能运行的指令;/sbin 包括了开机、修复、还原系统所需要的指令3. file 查看文件类型,纯文本/shell/二进制相当于windows下面的后缀名4. od 以一定...原创 2016-08-02 22:59:34 · 580 阅读 · 0 评论 -
SSL与TLS
1.安全通信要解决的问题:保密性、信息完整性、端到端认证。主要考虑的攻击手段:篡改和重放。防止篡改的主要手段,加入摘要或者MAC,防止重放的主要手段,加入随机数或者序号。2.SSL把消息分割成记录,每个记录进行单独的加解密和验证,这样,部分数据准备好就可以发送和使用,而不必等到所有数据传输完毕在进行处理。3. OpenSSL指令分成三部分:标准指令,摘要指令和加密指令。标准指令内容比较丰富:1)生...原创 2018-03-03 11:44:42 · 288 阅读 · 0 评论 -
Unix 网络编程
通用套接字地址结构:sockaddr,几种具体实现为sockaddr_in和sockaddr_in6表示和数值之间的转换:inet_ntop/inet_pton"213.0.99.98" <-> 0x626300d5服务器:socket->bind->listen->accept------------>read->write------>...原创 2018-02-21 21:55:23 · 241 阅读 · 0 评论 -
Unix 环境高级编程
1. 一切皆文件;2.对于每种资源都有open/read/write/close操作,因为一切皆文件;3.对于不清楚的参数,可以使用man: man open; man 2 open; man -s2 open; 4. 函数: strerror ferror sysconf-----------------------------------------------------rea...原创 2016-07-30 23:43:50 · 326 阅读 · 0 评论 -
Scala
Scala是静态语言,支持类型推导。结合了函数式编程和面向对象的编程。1. 变量定义有两种,val类似于Java的final变量,一旦初始化了,就不能再赋值;var如同java中的非final变量,可以被多次赋值。2. Scala的类型标注放在名称之后,用冒号分隔。3. 函数定义:def max(x: Int, y: Int): Int = { if(x>y) x ...原创 2018-09-06 06:59:03 · 281 阅读 · 0 评论 -
Java并发编程笔记
1.线程安全主要关注的问题:原子性和可见性。所谓原子性,是指它要么完整的被执行,要么完全不执行。对于多线程来说,可以理解为,对于其他线程而言,它看到的是要么完整的被执行,要么完全不执行,而不会看到中间状态。实现原子性的主要方法有:原子变量:AtomicInteger,AtomicReference等;加锁,包括使用synchronized关键字;所谓可见性,是指对于多个线程共享的变量,当一...原创 2016-06-26 17:52:23 · 443 阅读 · 0 评论 -
C++ 11特性示例代码
初始化列表,这个基本没啥可讲的#include <iostream>#include <vector>#include <functional>struct Point {private: float x; float y;public: Point(std::initializer_list<float> l...原创 2019-09-17 23:30:46 · 275 阅读 · 0 评论 -
cocos2d-x/js杂记
cocos creator参见官方文档,目前有大量小型公司在使用cocos creator 进行游戏开发,这个对于非编程人员来说,确实更容易,开发效率也更高,并且对于团队来说,设计和开发分工也更容易,但是代码量基本不会少。但是对于开发来说,使用cocos2d-js更符合开发人员的习惯。对于cocos2d-x建议使用xcode/clion,对于cocos2d-js,建议使用webstorm。...原创 2019-09-15 13:26:53 · 322 阅读 · 0 评论 -
Unix环境编程二
前言之前写过一篇,但是当时理解还很初级,而今重读,并且已经看了网络编程,对IO/网络编程有了更好的认识,相信重读也会有新的收获。最终会把之前的文章删掉,只保留这一篇。系统限制可以使用的获取系统限制的方法:1)通过命令行getconf;2)通过sysconf和pathconf系统调用。前者的所有可用选项可以通过查看后面的文档取得。可以使用strace查看getconf的实现。实际上,ge...原创 2019-07-21 20:26:56 · 247 阅读 · 0 评论 -
ssh 直连,正向,反向代理
1. 直接转发如果执行命令的机器为192.168.1.99ssh -D 8972 192.168.1.100建立连接之后,回环地址的8972端口会被监听,如果通过这个代理发送请求curl --socks5 localhost:8972 http://www.baidu.com或者配置浏览器使用socks5代理:localhost:8972。信道如下,即192.168.1.9...原创 2019-06-24 02:29:06 · 1097 阅读 · 0 评论 -
计算广告
敬请期待。。。原创 2019-06-18 01:03:16 · 237 阅读 · 0 评论 -
Unix进程间的通信
1. 管道可以用作父子进程之间的通信,pipe函数,将fd[0]打开用于读取数据,fd[1]打开用于写入数据。通常,对于单方向通信,读端会关闭写fd,即fd[1],写端会关闭读fd,即fd[0]int main() { int fd[2]; int err = pipe(fd); char *str = "Hello..."; //write(fd[1], s...原创 2019-04-19 09:55:03 · 332 阅读 · 0 评论 -
redis 源码解读
1. 工欲善其事,必先利其器。使用git clone redis 源码,使用Clion打开工程。如果是使用mac,务必先安装xcode。但是Clion只支持CmakeFile,不支持Makefile,所以要手动增加一下配置:cmake_minimum_required(VERSION 3.8)project(redis-3.12)set(CMAKE_C_STANDARD 99)se...原创 2018-11-16 01:44:13 · 405 阅读 · 0 评论 -
Spark核心技术与高级应用
1. Spark的RDD操作:1)转换操作:通常转换操作是惰性的;2)执行操作:会得到执行;3)控制操作:用于故障恢复、持久化以及数据移除等,其中cache/persist是惰性的,Unpersist是及时的。2. Spark在发生数据丢失时会采用折中方案,他会重新执行之前的步骤来恢复数据。假如其中一个RDD分区坏掉,因为Spark记录了依赖关系lineage,只需要执行其相应的父RDD就可以...原创 2018-11-06 10:29:49 · 418 阅读 · 0 评论 -
Go 入门
1. 赋值和初始化var s=""; //<=> s:="";2. 程序入口://hello.gopackage mainimport "fmt"func main(){ fmt.Println("Hello, world!");}go run hello.go //<=> go build hello.go; ./hello3. 遍原创 2018-10-26 11:56:30 · 424 阅读 · 0 评论 -
akka Actor
访问Actor对象的方法和其他对象不同,从来不会得到Actor实例,不调用Actor的方法,也不改变Actor的状态,只向 Actor 发送消息。除此之外,我们也不会直接访问 Actor 的成员,而是通过消息传递来请求获取关于 Actor状态的信息。使用消息传递代替直接方法调用可以加强封装性。 通过使用基于消息的方法,我们可以相当完整地将 Actor 的实例封装起来。如果只通过消息进行相互通信...原创 2018-09-15 10:19:51 · 415 阅读 · 0 评论 -
Shell tricks
1. bash支持关联数组:declare -A map # define an associated array (hash map), this is supported by bash >= 4.1.2map[k1]=v1; map[k2]=v2;echo ${map[k1]} #v1${!a[@]} # the keys in the associated array/l...原创 2018-09-17 18:26:32 · 202 阅读 · 0 评论 -
maven 入门
1. 安装,到maven官网,下载bin类型,解压,放到一个目录下面,将bin路径到添加环境变量PATH,运行mvn -v 验证是否成功;2.常用命令:mvn archetype:generate 在交互模式下生成maven工程mvn site 生成maven文档mvn compile(mvn compiler:compile)编译mvn package(UT 且打包)原创 2015-08-22 11:51:50 · 462 阅读 · 0 评论 -
mysql常用命令
mysql -h hostname -u user -p password 连接mysqlSELECT User, Host FROM mysql.user; 从user表中选出user 和hostSET PASSWORD FOR 'user'@'localhost' =PASSWORD ('abc')CREATE USER 'username'@'host' IDENTIFIED...原创 2016-02-20 14:53:46 · 509 阅读 · 0 评论 -
uC/OS中的TCB
下图简要描绘了uC/OS中的TCB,其中OSTCBFreeList是系统中空闲TCB的单向队列,OSTCBList是已经分配的TCB队列,是双向队列,这两个队列的数据都存储在数组OSTCBTbl中。在函数OS_InitTCBList()中,OSTCBFreeList被初始化,建立队列连接关系。在OSTaskCreate()中调用OS_TCBInit()从OSTCBFreeList中分配一个没有使用原创 2015-08-23 17:47:47 · 1084 阅读 · 0 评论 -
jstl入门
jstl(JSP Standard Tag Lib)1.在maven中使用需要包含依赖: jstljstl1.2 2.EL表达式默认变量:默认变量 pageScope、 requestScope、sessionScope、 applicationScope实例:${sessionScope.sampleValue}默认变量原创 2015-08-23 15:22:16 · 411 阅读 · 0 评论 -
log4j2 详细讲解
原文:http://www.jb51.net/article/44734.htmLog4j 2的好处就不和大家说了,如果你搜了2,说明你对他已经有一定的了解,并且想用它,所以这里直接就上手了1. 去官方下载log4j 2,导入jar包,基本上你只需要导入下面两个jar包就可以了(xx是乱七八糟的版本号):log4j-core-xx.jarlog4j-api-转载 2015-08-08 13:08:54 · 1703 阅读 · 1 评论 -
git 常用命令
git add [file] [path] 文件添加到暂存区git add -u 所有已追踪文件添加到暂存区git commit -m "msg" 提交git commit -amend -m "msg" 提交,覆盖上次提交git diff 比较暂存区和工作区差异git diff HEAD 比较版本库和工作区差异git diff --cached --stage 比较暂存区...原创 2015-08-04 01:51:35 · 458 阅读 · 0 评论 -
Android Eclipse开发环境配置
其实这本来应该是一件挺简单的事情。可是。。。首先问一个问题,在所有的中国制造中,质量最可靠的是什么?在科技领域,中国最领先的技术在哪里?我想这个要数我们的亲爱的长Cheng防&货强了。但是,其实,可能这个东西并不是Made in China。上来先开个玩笑,以表示我对此的不满,以及配置了一整天才弄好的郁闷。1、如果有机会,请下载一个ADT(Android Development Toolk原创 2015-06-28 23:26:32 · 537 阅读 · 0 评论 -
后缀数组两种算法的分析比较
来源:http://www.cppblog.com/superKiki/default.html?page=5【摘要】 后缀数组是处理字符串的有力工具。后缀数组是后缀树的一个非常精巧的替代品,它比后缀树容易编程实现,能够实现后缀树的很多功能而时间复杂度也并不逊色,而且它比后缀树所占用的内存空间小很多。可以说,在信息学竞赛中后缀数组比后缀树要更为实用。本文分两部分。第一部分介绍两种构造后缀转载 2015-03-30 15:33:19 · 2474 阅读 · 0 评论 -
1068. Find More Coins (30)
#include#include#include#includeusing namespace std;bool findSolution(map&coins,map::iterator it,int V,vector&path){ pair count=*it;int v=V;int num=0;while(v>=count.first&&num原创 2014-09-14 10:46:38 · 681 阅读 · 0 评论 -
浅谈uCOS任务栈及任务切换
void OSStartHighRdy(void){ OSTaskSwHook(); OSRunning = TRUE; _asm{ mov ebx, [OSTCBCur] ;OSTCBCur结构的第一个参数就是esp mov esp, [ebx] ;恢复堆栈 popad ;恢复所有通用寄存器,共8个 popfd ;恢复标志寄存器 ret原创 2013-12-20 21:37:47 · 2738 阅读 · 1 评论 -
windows下比较文件差异fc
当项目的工程比较大的时候,做好版本控制是很重要的。一方面要防止过度修改而导致连原来的功能都无法实现,真是欲哭无泪;另一方面,通过标记修改的位置,通过比较和分析可以得出出现问题的原因。小编一般在修改程序的时候,如果修改比较多,或者是不确定是否能修改正确的时候,或者用于测试的程序都会在前面加上一句话//modified/appended/commented by somebody YY-MM-DD原创 2013-11-14 22:02:27 · 5628 阅读 · 0 评论 -
The betray of compiler
如果在调试的过程中发现了一个隐蔽的或者激动人心的bug,或者找到了相应的解决方案,一定要及时记下来,否则日后就没有热情了,或者细节就既不清楚了。前几天我就发现了这样的一个bug。这个故事是将编译器和调试器的恩恩怨怨的。 初,在IAR中写了一段程序,有若干语法错误,在编译器的指导之下一一改正,编译通过。于是看结果,结果总是不对。我以为是我写的函数有逻辑bug,于是开始调试。经过了很长时原创 2013-04-24 16:07:30 · 760 阅读 · 0 评论 -
数据类型、数组越界和宏定义引发的悲剧
小编在定义一个变量的时候,数据类型往往不会经过特别的考虑;在使用数组的时候,很多时候会忽略数组越界的问题,因为这个问题在C/C++编译器中是不进行检查的,越界不是编译、链接错误,运行时也未必会出错;但是直到上面的“不小心”引发问题的时候就会让人手足无措,当检查出问题的时候才追悔莫及。 如果是在visual C++里进行编程,出现上述的情况估计不是大问题,因为C++的调试工具使用非常方便,原创 2013-04-15 16:34:20 · 1863 阅读 · 0 评论