自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(43)
  • 收藏
  • 关注

原创 《编写可读代码的艺术》读书笔记

代码的写法应当使别人理解它所需的时间最小化。尽管减少代码行数是一个好目标,但把理解代码所需的时间最小化是一个更好的目标。理解代码所需的时间并不与其他目标有冲突,在你犹豫不决时,可读性基本定理总是先于本书中任务其他条例或原则。把信息装到名字里,把名字当做一条小小的注释。避免像tmp和retval这样泛泛的名字,tmp这个名字只应用于短期存在且临时性为其主要存在因素的变量。如果你养成多花几秒钟想出个好名字,你会发现你的『命名能力』很快提升。如果你的变量是一个度量的话(如时间长度或者字节数),那么最.

2022-02-21 09:29:12 225

原创 《浙江大学——操作系统》课堂笔记

课程地址学习方法掌握计算机专业技术的途径系统化的知识面充分的实践体验计算机专业技术能力逻辑思维能力编程能力系统能力职业发展定位于计算机专业,怎么进步?技术(followed by details)组织协调能力沟通能力英语能力成为上级的好助手对下级要有亲和力操作系统结构操作系统服务用户接口命令行接口系统调用(System Calls):向操作系统传递参数的三种方式:通过寄存器传递参数;将参数放在内存的块或表中,并将块的地址作为参数传递给寄存器;

2021-06-22 10:00:06 709

原创 《经济学原理-清华大学》课堂笔记

经济学十大原理人们如何作出决策人们面临得失交换(权衡取舍);(tradeoffs)某物的成本是为此所放弃的东西;(cost)理性人思考边际量;(margin)人们会对激励付出反应;(incentives)人们如何相互作用贸易能使人人收益;(trade)市场通常是组织经济活动的好方式;(markets)政府有时可以改进市场结果;(governments)整体经济如何运行一国的生活水平取决于它的生产;(production)当政府发行了过多的货币时,物价上涨。(money)社

2021-05-19 23:18:09 435

原创 《宏观经济学原理——吴汉洪》课堂笔记

宏观经济计算,模型和财政政策GDP国内生产总值(GDP)是指每年在美国国内所生产的所有商品和服务的价值总和,无论其使用的资源是本国国民提供的还是外国提供的。GDP是一种货币度量。它比较了不同年份生产的商品和服务的相对价值。为了将所买卖的产品重复计算,GDP只计算最终产品的市场价值,而忽略中间产品的价值。中间产品:没有直接的面对消费者的产品叫中间产品。最终产品:为了消费者的使用而购买的商品或服务叫最终产品。二手产品不计入GDP。生产出来没有卖出的也要计算在当年的GDP内。GD

2021-05-17 18:51:02 276

原创 Disruptor源码阅读笔记一

Disruptor核心类阅读代码之前,建议大家先把Disruptor run起来,这样对于这个组件的一些核心概念就了解了,下面首先分析一下disruptor的核心类及其功能:Ring Buffer: disruptor的数据结构,一个环形队列,主要负责放入生产的消息,会在初始化的时候创建好所有event对象,以减少垃圾回收Sequence: 序列器,Sequence本身提供了类似AtomicLong的各个特性。生产者,消费者都是这个类的使用者,每个使用者都会维护一个Sequence来标识自己的读/写

2021-04-07 09:49:37 212 1

原创 Spring官方文档阅读笔记

1. The IoC Container1.1. Introduction to the Spring IoC Container and BeansIn Spring, the objects that form the backbone of your application and that are managed by the Spring IoC container are called beans.A bean is an object that is instantiated, ass

2020-06-11 14:57:00 163

原创 《人人都是产品经理v2.0》读书笔记

只做一次的事情找可行解,反复做的事情求最优解。用户是产品的一部分。产品经理是CEO的学前班。满足需求的三种办法:提高现实;降低期望;转义需求。用户、需求、场景这三个词,共同描述了『问题』:什么人,在什么情况下,想搞定什么事,缺一不可。产品与用户的关系单点用户型产品:只要有一个用户使用,就能产生完整的用户价值;例如计算器。单边用户型产品:需要一群人同时使用,使用这个产...

2020-05-03 20:21:21 518

原创 《Java编程思想》读书笔记

第一章 对象导论1.1 抽象过程Smalltalk的五个基本特性万物皆为对象;程序是对象的集合,它们通过发送消息来告知彼此所要做的;可以把消息想象为对某个特定对象的方法的调用请求。每个对象都有自己的由其他对象所构成的存储;每个对象都拥有其类型;某一特定类型的所有对象都可以接收同样的消息。Booch对于对象的描述对象具有状态、行为和标识。这意味着每个对象都可以拥有内部数据...

2020-04-12 15:43:01 273

原创 Docker分享

先从认识容器开始什么是容器?官方解释:一句话概括容器:容器就是将软件打包成标准化单元,以用于开发、交付和部署。容器镜像是轻量的、可执行的独立软件包 ,包含软件运行所需的所有内容:代码、运行时环境、系统工具、系统库和设置。容器化软件是跨平台的,适用于基于Linux、Windows和Mac OS等应用,在任何环境中都能够始终如一地运行。容器赋予了软件独立性,使其免受外在环境差异(例如,开...

2020-04-07 17:22:26 525

原创 编写可读代码的艺术

第1章 代码应当易于理解代码的写法应当使别人理解它所需的时间最小化相比于代码行数最小化,把理解代码所需的时间最小化是一个更好的目标代码写得容易理解往往会把它引向好的架构且容易测试,并不会与其他目标有冲突可读性基本定理总是优先于其他任何条例和原则要经常想一想其他人是不是觉得你的代码容易理解第2章 表面层次的改进选择专业的词避免使用『空洞』的词;找到更有表现力的词避免像...

2020-03-31 10:06:53 198

原创 使用mysqldump迁移数据库导致表结构变化的原因

使用mysqldump迁移数据库导致表结构变化的原因问题描述原因写在后面问题描述使用下面命令导出SQL时,发现表结构发生了变化mysqldump -u ocean_monitor_w -h 10.46.7.143 -P 6245 -p***** bce_ocean_monitor --skip-opt >./machine.sql原有建表语句是这样的:CREATE TAB...

2019-11-18 22:32:07 402

原创 Flask、Django、Tornado和Gunicorn区别和联系

Flask、Django、Tornado和Gunicorn区别和联系区别Flask、Django和TornadoGunicorn vs Tornado区别Flask、Django和TornadoFlask和Django是一个支持WSGI的web框架Tornado是python的非阻塞异步框架,包含了WSGI server和web框架。Gunicorn vs TornadoGuni...

2019-11-16 12:14:37 1166

原创 Django时区设置

Django时区设置打开settings.py文件,里面关于时区的配置如下:TIME_ZONE = 'Asia/Shanghai'USE_TZ = TrueUSE_TZ = True 的含义是允许Django使用UTC时间;TIME_ZONE = ‘Asia/Shanghai’ 的含义是指定Django中本地时间的时区使用上海;启用 USE_TZ = True 后,处理时...

2019-01-22 14:09:34 2458

原创 《PostgreSQL修炼之道-从小工到专家》读书笔记

索引索引中记录了表中一列或多列的值与其物理位置之间的对应关系,可以通过索引快速定位到需要查询的内容。创建索引可以加快对表中记录的查找或排序。创建索引的代价:增加了数据库的存储空间。在插入和删除数据时要花费较多的时间,因为索引也要随之更新。事务特性原子性(Atomicity):事务中的操作要么全部成功,要么全部失败一致性(Consistency):一个事务执行之前和执行...

2018-11-09 16:55:34 1173

原创 DataGrip设置时区

DataGrip如何设置时区问题描述问题解决操作步骤问题描述在最近的工作中遇到一个问题,使用DataGrip客户端连接PostgreSQL数据库,查询timestamp with time zone这种类型的字段时,会发现查询得到的时间比真实入库的时间早了8个小时,这就是下面要说的时区问题。问题解决新版本DataGrip以默认时区取世界标准时间。要想时间显示正常,需要将时区变为上海时区,可...

2018-09-18 14:26:21 21422 7

原创 《小强升职记》读书笔记

避开时间黑洞的十条策略: 关掉MSN、QQ等聊天工具。记住,是彻底关闭而不是隐身;关掉Outlook的“邮件到达提醒”功能;保持办公环境的干净整洁,并且保证你所需要的办公用品触手可及。这个绝对必要,杂乱的办公桌会严重的分散你的注意力。给水杯里倒满水。这样不会因为去倒水而打断注意力,并且饮水对于你的健康很重要。准备一张当天的任务清单,你一整天的任务安排全在上面,完成一项就划掉一项,这会让...

2018-09-12 21:21:59 529

原创 解决Ubuntu系统安装完成后启动出现黑屏现象,而且左上角一直有光标闪动

解决Ubuntu系统启动出现黑屏及光标闪动现象问题描述发生时间:2018年4月5日系统版本:Ubuntu16.04安装方法:完完全全按照百度经验进行安装问题描述:安装完成重启之后,出现了黑屏现象,而且屏幕左上角一直有白色光标闪动,等了很久没有变化。解决方法1、将刚刚安装系统用过的Ubuntu启动盘插在电脑上,电脑开机,从这个启动盘启动,方法和安装系统时一样;2、这次不是选在安装Ubuntu

2018-04-05 10:46:39 41885 6

原创 Boost关于bind的使用以及函数对象和传递参数的问题

项目中用到了Boost的asio,阅读代码有一个地方很难理解,见截图。 上面这行就是注册一个回调函数,这个回调函数是接受完数据后Boost线程调用的。下面看async_recv函数的声明。 下面看真正的回调函数的声明 可以注意到,async_recv函数的第三个参数是个函数对象,该对象的第一个参数类型是TCP_CONNECTION,而我们在调用async_recv函数时传进去的是o

2017-10-20 20:39:25 3037

原创 《TCP/IP详解,卷一:协议》读书笔记

第一章 概述FTP协议流程图。 应用层和传输层是端到端协议,只有端系统会使用者两层协议,传输层的tcp可以保证可靠性。网络层是逐跳协议,所有中间系统和端系统都会使用这一层。网络层不保证可靠性。网桥在链路层使主机互联;路由器在网络层使主机互联。IGMP是Internet组管理协议,用来把一个UDP数据报多播到多个主机。ICMP是IP协议的附属协议,IP层用它来与其他主机或路由器交换错误报文和其他

2017-10-18 11:17:37 570

原创 《MySQL技术内幕--InnoDB存储引擎》读书笔记

《MySQL技术内幕–InnoDB存储引擎》读书笔记昨天和公司技术总监聊过之后,感觉自己基础还不是很扎实,所以读一读数据库底层实现的书籍,特做此读书笔记:第一章 MySQL体系结构和存储引擎MySQL单进程多线程和SQL Server类似。Oracle多进程。MySQL体系架构图 InnoDB体系架构InnoDB后台线程 Master Thread负责将缓冲池中的数据异步刷新到磁盘。I

2017-10-17 17:55:18 715

原创 工作经验积累

1,在一个项目开发自测过程中,一定要用最新版的客户端去完成整个流程的自测。就是说把服务端程序调到能够使用线上客户端完成正常连接通信的状态即可。

2016-12-01 15:55:17 353

原创 redis和hiredis的几篇不错的博客

redis命令 http://www.runoob.com/redis/redis-commands.html多线程http://blog.csdn.net/educast/article/details/37565639hiredis的使用:http://www.cnblogs.com/wenqiang/p/5506744.html

2016-11-01 10:06:10 967

转载 网游服务器使用UDP的原因

转载地址:http://blog.csdn.net/hezijian22/article/details/41299503近来跟人讨论一些关于实时性要求比较高的服务器设计的问题,这个问题纯粹是理论的,概念的,架构的,整理一下以供参考。 众所周知,UDP是无连接的,面向消息的数据传输协议,对于传统的TCP服务器来讲,有2个致命的缺点,一是数据包容易丢失,二是数据包无序。很

2016-10-18 13:29:59 1545

转载 游戏服务器使用TCP和UDP

http://blog.jobbole.com/64638/在编写网络游戏的时候,到底使用UDP还是TCP的问题迟早都要面对。一般来说你会听到人们这样说:“除非你正在写一个动作类游戏,否则你就用TCP吧” 或者是 “你能够在MMO游戏中用TCP,因为魔兽世界就用的TCP!”遗憾的是,这些观点都没有反映这个问题的复杂性。背景首先,说明一下,我之前主要是用T

2016-10-18 13:08:15 3092

转载 epoll

http://blog.chinaunix.net/uid-20737871-id-1881185.html

2016-09-29 13:42:21 306

转载 面试准备之IO模型

一些概念:同步和异步同步和异步是针对应用程序和内核的交互而言的,同步指的是用户进程触发I/O操作并等待或者轮询的去查看I/O操作是否就绪,而异步是指用户进程触发I/O操作以后便开始做自己的事情,而当I/O操作已经完成的时候会得到I/O完成的通知。阻塞和非阻塞阻塞和非阻塞是针对于进程在访问数据的时候,根据I/O操作的就绪状态来采取的不同方式,说白了是一种读取或者写入操

2016-09-28 11:41:35 1836

原创 大学生爱情兵法-洪亚非-听课笔记

1,男性心理理性成分多于感性成分,女性心理感性多于理性,女性两面性比较强,工作时理性,回家或见到男友感性,男性一直理性。2,女性的感性表现在:遇到心怡的男生时表现出小鸟依人的状态,为情感所痴迷,容易被甜言蜜语醉倒。遇到困难,把原因和责任推到命运或他人身上。相当情绪化,脸部表情比较明显,容易犯愁,特别容易感动。3,从肢体语言看女性的心情准确4,文化程度高的,智商高的女性,独立性更强5

2016-09-05 12:43:03 5215 8

原创 《effective C++》读书笔记

1,C++关键字explicit:C++中, 一个参数的构造函数(或者除了第一个参数外其余参数都有默认值的多参构造函数), 承担了两个角色。 1 是个构造器 ,2 是个默认且隐含的类型转换操作符。所以, 有时候在我们写下如 AAA = XXX, 这样的代码, 且恰好XXX的类型正好是AAA单参数构造器的参数类型, 这时候编译器就自动调用这个构造器, 创建一个AAA的对象。很方便。

2016-08-26 10:34:41 241

转载 服务器端使用Screen

服务器端使用Screen提高工作效率如果你在linux服务器端工作,没有听说过Screen或tmux那简直弱爆了。有时间自己可以多了解一些。简单介绍下Screen:Screen是一个可以在多个进程之间多路复用一个物理终端的窗口管理器。Screen中有会话的概念,用户可以在一个screen会话中创建多个screen窗口,在每一个screen窗口中就像操作一个真实的telnet/SS

2016-08-20 19:08:49 2563

原创 实习积累之一

1,nohup,将进程的输出重定向到nohup.out,例如:nohup python xxxx02.py &将进程挂到后台2,jobs查看所有作业3,fg %n将后台进程n到前台执行4,ps -ef所有正在执行的进程

2016-08-18 10:50:32 658

原创 git常用命令

git init //在当前项目工程下履行这个号令相当于把当前项目git化,变身!git add .//把当前目次下代码参加git的跟踪中,意思就是交给git经管,提交到本地库git add //把当前文件参加的git的跟踪中,交给git经管,提交到本地库git commit -m “…”//相当于写点提交信息git remote add origin git@github.co

2016-08-16 11:01:05 252

转载 mysql主键 外键 索引

http://blog.csdn.net/duck_arrow/article/details/8264686

2016-07-03 09:44:04 283

原创 char **str和char str[8][512]做函数参数的区别

1,void function(char **str);和void function(char str[8][512]);这两种函数参数的不同形式,在C语言中可能没有区别,而在C++中却可能产生段错误。当函数参数为char**时,调用函数前,str可以这样声明;char *str[8] = {“str”,“str”,“str”,“str”,“str”,“str”,“str”,“st

2016-06-03 16:21:36 1971

原创 Qt5 常量中有换行符

1、用记事本打开你的源代码,然后点另存为,utf-8,编码覆盖,这时中文就没问题了但是会乱码。2、在字符串前加个宏QStringLiteral把字符串扩起来;这样字符串就不会乱码了。

2016-06-01 21:00:15 3797

原创 《STL源码剖析》学习笔记

第二章:空间配置器(allocator)考虑到小型区块可能造成的内存破碎问题,SGI设计了双层级配置器。当配置区块超过128bytes时,便调用第一级配置器,即直接使用malloc() free();SGI的第一级配置器的allocate()和realloc()都是在调用malloc()和realloc()不成功后,改调用oom_malloc()和oom_realloc(),后两者都有

2016-05-27 09:05:37 2803

原创 connection reset by peer的问题解决方案

我出现这个问题后,看了好多网上的博客,都没有解决,我就重新看了看我的代码,发现UDP的sendto所发送的端口与服务器所接听的端口不相符!!!一个是10001,一个是10002,所以,出现这种问题再好好看看代码吧!!!

2016-04-29 16:59:09 2331

原创 recvfrom的使用技能之第一次接受打印出的发送方IP地址总是0.0.0.0

while(1){    recvfrom(sockfd, readbuff, UDP_CMD_BUFF_LENGTH - 1, 0, (struct sockaddr *)&Glob_remot_88_port_add, &len);    PRINT("[recevudp]len %d IP is %s\n", len, inet_ntoa(Glob_remot_88_

2016-04-29 16:54:53 1393

转载 http报文格式

原文转载:http://www.oschina.net/question/565065_81309?fromerr=1yTPd5bZHTTP请求报文解剖   HTTP请求报文由3部分组成( 请求行+请求头+请求体 ):     下面是一个实际的请求报文:     ①是请求方法,GET和POST是最常见的HTTP方法,除此以外还包括DELETE、HEAD、

2016-04-15 09:57:37 581

原创 《Linux内核设计与实现》与《Linux内核源代码情景分析》读书笔记

第一章:内核简介处理器在任何指定时间点上的活动范围:a,运行于内核空间,处于进程上下文,代表某个特定的进程执行;b,运行于内核空间,处于中断上下文,于任何进程无关,处理某个特定的中断;c,运行于用户空间,执行用户进程。第三章:进程管理1,内核把进程存放在叫做任务队列(task list)的双向链表中,链表中每一项都是类型为task_struct,称为进程描述符(proc

2016-03-12 20:00:44 2084

原创 笔试题笔记一

1,C++中struct的成员默认属性是public,class的成员默认属性是private;2,Linux中父子进程的

2016-03-08 19:10:58 295

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除