- 博客(44)
- 资源 (14)
- 收藏
- 关注
原创 golang调用sql server proc
许久没写博客,近来真有点郁闷,首先自己水平有限,在成为大牛的路上努力挣扎中,狰狞地挣扎,其次是不满某些人的某些态度,我觉得态度是很重要的,好,吐槽完毕。 由于项目需要,需要用到sql server。首先golang连接sql server用的是官方推荐的包github.com/denisenkom/go-mssqldb,可以直接go get。golang调用sql server存储过程是比较蛋疼的
2016-09-06 00:54:21
5657
转载 服务器TIME_WAIT和CLOSE_WAIT详解和解决办法
近来在写服务端的时候纠结服务端要不要主动调用close()关闭socket,后来深入了解tcp断开连接四次握手,心中有点答案了。 下面内容均为转载:昨天解决了一个HttpClient调用错误导致的服务器异常,具体过程如下: http://blog.youkuaiyun.com/shootyou/article/details/6615051 里头的分析过程有提到,通过查看服务器网络状态检测到服务器有大量的
2016-07-25 23:44:02
7587
转载 Golang 编译 条件编译
条件编译:标签编译:( build tag )// +build { GOOS }, { GOOS }, { !GOOS }// +build (linux AND 386) OR (darwin AND (NOT cgo))以 + 开始,例如 // +build 支持 GOOS 与 GOARCH 并可以具有多个值,用 , 分割, 例如: // +build linux, darwin, free
2016-05-12 00:06:12
6589
转载 excel表格导入到mysql
最近需要把excel表中的几百门课程导入数据库,然后数据做处理再插入到mongodb,当然,然后不是重点,重点是不知怎么导入,于是google了一下学习学习,还是蛮灵活的,可以导入到对应的字段。 下面内容转载自http://hunan.iteye.com/blog/752606,找了好些,觉得这博主写得比较全面,于是记录下面当备忘录。 下面内容均为转载: 基本语法: load data [
2016-03-14 23:13:26
990
转载 Golang之bytes.buffer学习笔记
bytes.buffer是一个缓冲byte类型的缓冲器存放着都是byte Buffer 是 bytes 包中的一个 type Buffer struct{…}A buffer is a variable-sized buffer of bytes with Read and Write methods. The zero value for Buffer is an empty buffer r
2016-02-29 22:07:20
45285
1
转载 GoConvey断言err和bool的方法
最近在写单元测试的时候GoConvey.So()断言err是否nil和bool是否为true的时候不知道用哪个,于是找了这份官方文档,以后也可以参考。 GoConvey comes with a lot of standard assertions you can use with So(). General EqualitySo(thing1, ShouldEqual, thing2) So
2015-12-08 23:37:23
1815
原创 go json嵌套数组结构体用法
由于之前没有很好理解json,导致今天写单元测试的时候写json嵌套出现了大麻烦,记录一下。 golang生成json和解json数据都很简单,通过官方的“encoding/json”包,调用json.Marshal生成()和json.Unmarshal()解数据。 接下来重点讲嵌套的情况下如何生成json,如下:type AlipayRemoteReqStruct struct { O
2015-12-08 23:14:56
19578
2
转载 支付宝接口接入方法 步骤十分详细
原文在支付宝的论坛,最近在做支付宝支付接口接入,虽然不是用主流的java/php/c#,但原理还是相通。原文连接:http://club.alipay.com/read.php?tid=8681401大家想必都有这种困惑——拿到支付宝的接口代码后,尽管里面的程序有注释,接口代码包中也附有开发说明,但还是不知道该如何入手。这不难想象是什么原因,因为自己并不了解这个接口的工作原理是什么? 那么这篇文章
2015-12-03 23:23:04
72304
5
原创 内存池管理思想 另类内存池实现
一般来说,内存池都是采用预分配的方式,分为固定大小的和非固定大小块,固定大小的内存效率高,非固定大小灵活。同时,分为单线程和多线程版的,单线程不需要考虑并发问题。 一般内存池的实现思想:分配一块比较大多内存,把这块内存分成大小相等的块,即固定大小,第一块要保存必要的信息,比如nfirst(第一块可分配到块),nsize(共分配了多少),nfree(可分配块大小),pnext(若是内存池不够,分配一
2015-12-03 00:05:23
1263
原创 Go实现Web后端基础功能(附源码)
前言:好一段时间没写过博客了,最近比较坎坷,感叹一下。好了,进入主题,源码在最后的链接 功能: 1、实现注册相关,包括用户名(支持中文),密码,验证码。数据库为mysql 2、登录,用session记录登录状态 3、管理,查询用户列表等,json 4、单元测试 实现: 讲一下session的实现原理,session可以通过url和cookie方式实现,推荐cookie方式,是由服务端产
2015-11-23 00:18:48
5853
原创 网络编程经典好书推荐
共享一本经典好书,linux和windows全面涉及,由浅及深,从网络编程基础的套接字开始讲起,再到tcp和upd的区别,有边界和无边界,流的特点和数据包的特点,再到io模型,select到epoll,windows下的异步编程,重叠io,IOCP(io完成端口),epoll和IOCP都非常高效,而且都是操作系统相关。最后讲解http协议以及一个简单的web服务器的实现。 0分下载:http://
2015-09-17 23:01:15
4639
1
转载 探讨read的返回值的三种情况
今天探讨一个很看似简单的API “read”的返回值问题。read的返回值有哪几个值?每个值又是在什么情况下发生的?先问一下男人吧:man 2 read RETURN VALUE On success, the number of bytes read is returned (zero indicates end of file), and the file position i
2015-09-14 22:12:23
16510
转载 VC++6.0调试篇:定位临界区(critical section)导致的死锁
前言:今天人家问死锁怎么调试,除了记日志似乎还没掌握其他方法,于是度娘了一下,找到一篇好文章。在多线程程序的开发中,因为效率的关系,通常会选用CriticalSection作为同步的机制。初学者在设计开发多线程程序时经常会出现死锁的 情况,昨天就看到有个哥们在发帖问这个(明显是郁闷中阿)。这里通过一个例子说下不用Intel的Thread Checker,Thread Profiler,也不用强大的W
2015-09-08 00:14:32
1276
转载 浅谈C++中的单例模式
单例模式也称为单件模式、单子模式,可能是使用最广泛的设计模式。其意图是保证一个类仅有一个实例,并提供一个访问它的全局访问点,该实例被所有程序模块共享。有很多地方需要这样的功能模块,如系统的日志输出,GUI应用必须是单鼠标,MODEM的联接需要一条且只需要一条电话线,操作系统只能有一个窗口管理器,一台PC连一个键盘。 单例模式有许多种实现方法,在C++中,甚至可以直接用一个全局变量做到
2015-09-07 00:48:07
434
转载 海量数据最小k个数
从大量(海量)数据中查找最小的k(k一般比较小)个数,这是笔试中常考的题目。 如果是从少量数据中查找最小的k个数据,并且允许修改允许修改原始数据,侧利用Partition()函数,在O(N)的时间复杂度,O(1)的空间复杂度就可以找到最小的k个数据。 从大量数据中查找最小的k个数,我们可以利用一个容器先存储前k个数据,然后从数据中读取下一个数,判断该数是与容器中最大的数的大小,如果该数较大
2015-09-07 00:42:36
745
原创 vector的clear()的内部过程与析构函数调用
总结一下:vector中存储了对象的指针,调用clear后,并不会调用这些指针所指对象析构函数,因此要在clear之前调用delete;如果vector存储的是对象,调用clear后,自建类型的对象(int之类的)直接删除,若是外部类型,则调用析构函数。class Test { public: Test() { cout<<"Test cons"<<endl;} ~T
2015-09-05 17:17:35
11314
转载 领英的kafka安装和配置
kafka下载:https://www.apache.org/dyn/closer.cgi?path=/kafka/0.8.1/kafka_2.10-0.8.1.tgz 分别在三台服务器上安装kafka: tar zxvf kafka_2.10-0.8.1.tgz修改每台服务器的config/server.properties broker.id: 唯一,填数字,本文中分别为132/133
2015-08-28 01:08:46
1179
转载 开源日志系统比较
一篇介绍四大开源日志系统很好的文章,包含facebook的scribe,apache的chukwa,linkedin的kafka和cloudera的flumehttp://dongxicheng.org/search-engine/log-systems/
2015-08-26 22:47:55
690
转载 fflush和fsync的联系和区别
1.提供者 fflush是libc.a中提供的方法, fsync是系统提供的系统调用。 2.原形 fflush接受一个参数FILE *. fflush(FILE *); fsync接受的时一个Int型的文件描述符。 fsync(int fd); 3.功能 fflush:是把C库中的缓冲调用write函数写到磁盘[其实是写到内核的缓冲区]。 fsync:是把内核缓冲刷到磁盘上。c库
2015-08-19 23:08:14
1000
原创 关于<signal.h>中SIG_ERR、SIG_DEL、SIG_IGN定义的问题
#define SIG_ERR (void (*)())-1#define SIG_DEL (void (*)())0#define SIG_IGN (void (*)())1为什么不是#define SIG_ERR (void (*) (int))-1 呢?在网上搜索之后找到答案: 在C里这样的代码是可以的void fun(); int main(){ fun(1,2);
2015-08-17 23:25:38
6509
转载 孤儿进程与僵尸进程
1、前言 之前在看《unix环境高级编程》第八章进程时候,提到孤儿进程和僵尸进程,一直对这两个概念比较模糊。今天被人问到什么是孤儿进程和僵尸进程,会带来什么问题,怎么解决,我只停留在概念上面,没有深入,倍感惭愧。晚上回来google了一下,再次参考APUE,认真总结一下,加深理解。2、基本概念 我们知道在unix/linux中,正常情况下,子进程是通过父进程创建的,子进程在创建新的进程。子进程的
2015-08-17 23:06:11
402
转载 setjmp和longjmp函数使用方法
非局部跳转语句—setjmp和longjmp函数。非局部指的是,这不是由普通C语言goto,语句在一个函数内实施的跳转,而是在栈上跳过若干调用帧,返回到当前函数调用路径上的某一个函数中。#include <setjmp.h>Int setjmp(jmp_buf env);返回值:若直接调用则返回0,若从longjmp调用返回则返回非0值 Void longjmp(jmp_buf env,int
2015-08-17 21:33:03
708
转载 wait和waitpid详解
1 写在前面 Linux下编程一直被诟病的一点是: 没有一个好用的IDE, 但是听说Linux牛人, 黑客之类的也都不用IDE. 但是对我等从Windows平台转移过来的Coder来说, 一个好用的IDE是何等的重要啊, 估计很多人就是卡在这个门槛上了, “工欲善其事, 必先利其器”嘛, 我想如果有一个很好用的IDE, 那些Linux牛人也会欢迎的. 这都是劳动人民的美好愿望罢了, 我
2015-08-07 00:30:04
525
转载 Linux makefile 教程 非常详细 易懂
最近在学习Linux下的C编程,买了一本叫《Linux环境下的C编程指南》读到makefile就越看越迷糊,可能是我的理解能不行。 于是google到了以下这篇文章。通俗易懂。然后把它贴出来,方便学习。 后记,看完发现这篇文章和《Linux环境下的C编程指南》的makefile一章所讲述的惊人的相似,只是这篇文章从一个实例切入,在有些地方比较好理解。能让人看懂就是好文章。
2015-08-05 00:45:56
1362
原创 c++线程池
共享一份线程池的代码: http://download.youkuaiyun.com/detail/luomoshusheng/8957489 注解:CRunnable是基类,所有Thread继承于它;CThread是CWorker的父类,CWorker是实际的工作线程;CManage是管理线程池的,维护三链表,task,idle,busy。同时注意线程数,任务数和minThread与maxThread的关
2015-08-04 00:16:20
1053
转载 explicit的作用
在C++程序中很少有人去使用explicit关键字,不可否认,在平时的实践中确实很少能用的上。再说C++的功能强大,往往一个问题可以利用好几种C++特性去解决。但稍微留心一下就会发现现有的MFC库或者C++标准库中的相关类声明中explicit出现的频率是很高的。了解explicit关键字的功能及其使用对于我们阅读使用库是很有帮助的,而且在编写自己的代码时也可以尝试使用。既然C++语言提供这种特性,
2015-07-29 20:52:02
2915
原创 银行窗口排队叫号系统实现
这是一个模拟银行窗口排队叫号调度系统,参考了网上两篇文章,一篇java的和一篇linux c++的,然后我在windows下实现了它,开发工具是vs2008.在文章最后我会给出直接可编译可执行代码。Java版参考:http://blog.youkuaiyun.com/zhangxiaoxiang/article/details/6294132 Linux c++版参考:http://blog.youkuaiyun.com
2015-07-23 20:16:34
24081
原创 银联加密算法
很多人对银联卡的加密算法感兴趣,毕竟分分钟涉及的都是你的钱的安全,但网上很少人却讲银联标准加密算法。遂写一遍当做是自己的学习笔记,偶尔忘了可以翻翻,同时希望能够帮助到其他人。 首先要认识一下cbc算法和ecb算法。cbc算法是链式的,慢,不可并行处理,但更安全,因为每一次加密都是依赖于上一次的结果,同时这也会导致一次错将导致后面的全部错误。 ecb算法是分块运算的,可并行,效率高,但不够安全,每
2015-07-20 20:59:47
4654
原创 git简易教程 一看就会
很久之前知道git,也使用过,但一直挺困惑,打了命令行提交之后总不知处于什么位置,也搞不懂这个可以纯打命令行进行版本控制的软件为什么这么让人着迷,很多高手都用github。这些天重新学习了一下,对git有了更深一层的了解,分享一下,希望可以给新手一些参考,看了就会用,不足之处也请指出。 git是一个神奇的软件,分布式,即使不用github远程仓库,你一样可以在本地进行版本控制,这一点跟svn很不一
2015-07-02 00:25:40
650
转载 LPSTR、LPWSTR、LPCSTR、LPCWSTR、LPTSTR、LPCTSTR的区分与转化
首先在编译程序时经常会遇到这种问题:[plain] view plaincopy在CODE上查看代码片派生到我的代码片 错误 1 error C2664: “CWnd::MessageBoxW”: 不能将参数 1 从“const char [3]”转换为“LPCTSTR” 1、觉得很烦,一般的做法就是不管三七二十一,在字符串前面加一个‘L’: 如调用函数FUN(LPCTSTR str)时,不能
2015-06-22 22:17:24
554
转载 一些VC的快捷键以及调试技巧
1.检测程序中的括号是否匹配 把光标移动到需要检测的括号(如大括号{}、方括号[]、圆括号()和尖括号<>)前面,键入快捷键“Ctrl+]”。如果括号匹配正确,光标就跳到匹配的括号处,否则光标不移动,并且机箱喇叭还会发出一声警告声。 2.查看一个宏(或变量、函数)的宏定义 把光标移动到你想知道的一个宏上,就比如说最常见的DECLARE_MAP_MESSAGE上按一下F12(或右键菜单中的G
2015-06-17 09:26:48
668
原创 浅谈设计模式之八——Decorator模式
先上uml图: 意图:动态地给一个对象添加一些额外的职责。就增加功能来说,Decorator模式相比生成子类更为灵活。 uml解析:装饰者模式又名包装器,顾名思义就是给某个对象添加一些功能,而不是给整个类添加一些功能。Component跟Decorator是聚合关系,子类ConcreteDecoratorA和ConcreteDecoratorB实现具体对Component的修饰。 下面给出
2015-04-29 10:12:42
786
原创 浅谈设计模式之七——Composite模式
同样地,先上uml图: 组合模式的意图:将对象组合合成树形结构以表示“部分-整体”的层次结构。Composite使得用户对单个对象和组合对象的使用具有一致性。 uml解析:leaf是叶节点,Composite可以理解为是一个多个叶节点的组合,它是非叶节点,就相当于一个元件以及一个元件容器,里面有很多元件一样。这里可以用list或者vector实现。 本来是想用模板来实现,后来发现实在是多此
2015-04-28 18:40:04
854
原创 浅谈设计模式之六——Bridge模式
先上uml图: uml解析:桥接模式讲的就是一个解耦的问题,将抽象与实现分离开来,对接口编程,使得RefinedAbstraction对实现依赖,而不是实现依赖于RefinedAbstraction,符合依赖倒置原则。 下面给出可执行代码: Bridge.h#pragma once#include <iostream>using namespace std;class Abtracti
2015-04-28 14:20:50
566
原创 浅谈设计模式之五——Adapter模式
这一节开始谈谈结构型模式。结构型模式包括:**适配器、桥接、组成、装饰、外观、享元、代理模式**7种设计模式。这一节说一下适配器模式,适配器模式可以分为类适配器和对象适配器,类适配器其实就是多继承,一般用对象适配器,因此这里只讲对象适配器。 先上uml: uml解析:客户需要的是Target中的Request接口,但是现有的Adeptee的接口是SpecificRequest(),而Adap
2015-04-28 12:34:46
604
原创 浅谈设计模式之四——Singleton模式
单例模式,即只有一个实例。 先上uml图: uml解析:基本思路是,构造函数为protected或者private,类不能被实例化,否则就可以有多个实例。static的特性使得类不需要被实例化就能被调用(因为它和全局变量一样是放在数据段) 下面给出可以执行的代码: singleton.h#pragma once#include <iostream>using namespace st
2015-04-22 23:06:35
441
原创 浅谈设计模式之三——Prototype模式
prototype模式即原型模式,同样先上uml图: uml解析:原型模式讲的是什么呢?原型模式讲的其实就是浅拷贝跟深拷贝的问题。什么是浅拷贝什么是深拷贝呢,相信学过c++的都懂。凡涉及到一个类中的成员变量有指针的,一定会设计到深浅拷贝问题。浅拷贝只是简单的复制指针的值,而没有复制指针的内容,这样在使用以及析构的时候往往会出现问题。一般是要实现拷贝构造函数,重载“=”操作符以及析构等。 下面
2015-04-22 16:09:03
630
原创 浅谈设计模式之二——Builder模式
同样地先上uml图 解析uml:其实这里应该是聚合而不是组合。Director和Builder是聚合关系,1对多,通过参数传到Construct()之后,根据具体的Builder一步一步构造,之后可以通过GetProduct返回一个产品。Builder是父类,下面有好些具体子类。 下面给出可执行的代码: Builder.h#pragma once#include <iostream>u
2015-04-19 23:56:47
499
转载 UML类图几种关系总结
这是一篇很不错的讲uml,转自http://blog.youkuaiyun.com/tianhai110/article/details/6339565 在UML类图中,常见的有以下几种关系:泛化(Generalization), 实现(Realization),关联(Association),聚合(Aggregation),组合(Composition),依赖(Dependency)1.泛化(Genera
2015-04-13 19:59:41
589
原创 浅谈设计模式之一——简单工厂、工厂、抽象工厂
这些天意识自身的不足,看着几个同学跳槽后的高薪,实在是惭愧。毕业两年,仍一事无成,差距也正逐渐体现出来。人们常说,设计模式是一个初级程序员到高级程序员的必经之路。为了补强自己,重新研究了GOF四人帮的<23种设计模式>,其实以前看过,只是没看懂,最近重新研究了一番,理解了一些,希望用通俗易懂的语言把它写下来,或许对初学者有帮助,对自己也有提升。 设计模式分为创建型模式、行为型模式和结构型模式。创建
2015-04-13 14:00:07
676
TCP IP网络编程
2015-09-17
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人