自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(32)
  • 资源 (4)
  • 收藏
  • 关注

原创 PostgreSQL 远程连接设置

修改 pg_hba.conf,在host all all 127.0.0.1/32 md5下面添加一行host all all 0.0.0.0/0 md5修改 postgresql.conf,将listen_addresses = 'localhos

2017-05-31 18:05:09 1081

原创 Python 使用全局变量

今天在写以下Python代码时出现了问题。该段代码根据一些URL下载视频:#coding=utf-8def save_case_infos(case_urls): for case_url in case_urls: # some download code ... # 打印已下载的视频个数 # 希望访问全局变量 case_total_num

2017-05-31 16:13:24 85965 2

原创 Go标准容器之List

简介Go的标准包container中包含了常用的容器类型,包括conatiner/list,container/heap,container/ring。本篇介绍conatiner/list。conatiner/list实现了一个双向链表。使用起来与其他语言的动态列表非常相似,3秒钟便可入门。3秒钟入门package mainimport ( "container/list" "fmt

2017-05-27 17:30:46 29593

原创 Python遍历文件夹

os标准包里提供的walk()函数用来遍历文件夹和文件夹中的文件:os−−\underline{os}// top 为要遍历的目录,遍历时将该目录包含在遍历范围之内// topdown指明先遍历当前目录(自上向下),还是先遍历当前目录的子目录(自下向上)// followlinks指明是否遍历目录链接(快捷方式)// 返回值为一个三元组:// dirpath, dirnames, file

2017-05-27 15:09:41 841

原创 Python通过psycopg2操作PostgreSQL

debian安装PostgreSQL操作系统为:Debian GNU/Linux 8.2 (jessie)执行以下命令安装PostgreSQL$ apt-get install postgresql安装好之后,PostgreSQL会创建一个名为postgres的系统用户,以及一个同样名字的数据库管理员角色,以及一个同样名字的数据库。通过cat /etc/passwd列出系统中所

2017-05-27 09:31:58 33518

原创 PostgreSQL入门

说明本篇博文假设已经安装和配置好了PostgreSQL,如果没有安装配置好,请见我的另一篇博文Debian8下安装配置PostgreSQL。这里采用的操作系统为:Debian GNU/Linux 8.2 (jessie)首先,需要通过su命令切换到PostgreSQL为我们创建的系统账户:# su postgres创建数据库使用createdb命令创建建数据库:$ createdb mydb删除数

2017-05-27 08:35:55 445

原创 Debian8下安装配置PostgreSQL

简介PostgreSQL根据不同的操作系统,安装的方法也不同,这里采用的操作系统为:Debian GNU/Linux 8.2 (jessie)如果是其他操作系统,请到PostgreSQL官方网站查找相应的安装方法。Debian下安装PostgreSQL执行以下命令安装PostgreSQL$ apt-get install postgresql安装好之后,PostgreSQL会创建一个名为postg

2017-05-27 07:52:55 3430

原创 Go利用net/http包搭建Web服务器

简介利用Go的标准包net/http可以很方便的搭建服务器。实际上只需要一个函数和一个接口:net/http−−−−−−−\underline{net/http}package http// 建立服务器,address为服务器地址,比如:"localhost:8000"// h 是处理请求的接口,类型为 Handler// 该函数将一直运行,除非有错误发生,则返回error,返

2017-05-26 12:39:46 3755

原创 Go Timer的使用

Go的标准包time里提供了两种定时器,一种是标准定时器,另一种是循环定时器。标准定时器标准定时器在到达指定时间时仅触发一次。time包提供了若干函数和类型来表示这种定时器:// After() 在经过时长 d 之后,向返回的只读信道发送当前时间func After(d Duration) chan Time// Timer 表示仅触发一次事件的定时器type Timer st

2017-05-25 17:03:22 8274 1

原创 Go并发:利用sync.WaitGroup实现协程同步

经常看到有人会问如何等待主协程中创建的协程执行完毕之后再结束主协程,例如如下代码:package mainimport ( "fmt")func main() { go func() { fmt.Println("Goroutine 1") }() go func() { fmt.Println("Goroutine 2") }

2017-05-25 09:28:48 18771 5

原创 Go并发:利用sync.Once延迟加载

总所周知,延迟加载会提高程序的加载速度,有时还能够节省内存。比如如下程序:package mainimport ( "image")var icons map[string]image.Image // 保存所有的图标func Icon(name string) image.Image { if icons == nil { // 延迟加载 loadIcons(

2017-05-25 08:49:56 2328

原创 Go生成随机数

Go的math/rand包提供了生成随机数的API,重要的API如下:// 该函数设置随机种子// 若不调用此函数设置随机种子,则默认的种子值为1,由于随机算法是固定的,// 如果每次都以1作为随机种子开始产生随机数,则结果都是一样的,因此一般// 都需要调用此函数来设置随机种子,通常的做法是以当前时间作为随机种子// 以保证每次随机种子都不同,从而产生的随机数也不通// 该函数协程安全

2017-05-25 07:54:24 64071

原创 Go 基于Token解析JSON

Go 基于Token解析JSON

2017-05-24 18:49:30 2125

原创 Go error 接口

Go的标准库函数在发生错误时会返回error类型,比如常用的os.Open函数用来打开文件,错误时返回error:func Open(name string) (*File, error)那么究竟什么是error类型呢?其实很简单,error是一个接口,该接口只声明了一个方法Error(),返回值是string类型,用以描述错误:type error interface { Error()

2017-05-24 14:09:18 3041

原创 Go for的三重陷阱

说明这篇for的三重陷阱取自我的另一篇博文Go学习笔记。为了方便快速的查找,将其复制了过来。for陷阱之循环变量在使用匿名函数时,须特别注意在for词块中引入的循环变量。如果在匿名函数里保存了这个变量,则会造成意想不到的结果,例如,下面的程序试将一个数组的元素全部图临置成0,随后再恢复原来的值:func main() { a := [3]int{1, 2, 3} var recs

2017-05-24 11:31:32 4304 2

原创 Go并发:访问共享数据

竟险竟险(竞争条件、Race Condition)是指多个协程(goroutine)同时访问共享数据,其结果取决于指令执行顺序的情况。考虑如下售票程序。该程序模拟两个售票窗口,一个执行购票,一个执行退票。package mainimport ( "fmt" "time")var tickCount = 200 // 总票数// 购票func buy()

2017-05-24 10:56:02 8652 2

原创 Go使用Base64编解码

简介Base64是网络上最常见的用于传输8Bit字节代码的编码方式之一,可用于在HTTP环境下传递较长的标识信息。Go 的 encoding/base64 提供了对base64的编解码操作。encoding/base64 定义了一个Encoding结构体,表示Base64的编/解码器。并且导出了四个常用的Encoding对象:StdEncoding、URLEncoding、RawStdEncodin

2017-05-23 13:30:51 16827

原创 Go计算MD5和SHA1

Go的crypto包中提供了丰富的加密工具,可以计算 MD5、SHA1、SHA256 等等,他们分别在包 crypto/md5、crypto/sha1、crypto/sha256 中。每一种算法提供的接口都大致相同,如下所示(仅列出重要部分):// 创建一个Hash对象,用于计算相应的加密值func New() hash.Hash// 计算 data 的加密值,Size是一个常量,用于表示加密值的

2017-05-23 08:30:41 9099

原创 Go调用DLL

package mainimport ( "fmt" "syscall" "unsafe")func main() { dll := syscall.MustLoadDLL("test.dll") procGreet := dll.MustFindProc("greet") procGreet.Call() procSay :=

2017-05-22 21:08:03 7375

原创 C# 获取字符串字节数

用System.Text.Encoding.Default.GetByteCount()获取字节数:string str = "你好,世界!";int length = str.Length;int countOfBytes = System.Text.Encoding.Default.GetByteCount(str);Console.WriteLine("length: {0}, coun

2017-05-22 17:59:20 6066

原创 C++11/14/17 auto & decltype

C9803中的autoC11中的auto与decltypeauto使用和注意事项类型推导规则decltype使用和注意事项C14中的auto与decltypeC17中的auto与decltype

2017-05-22 08:57:04 1840 1

原创 C++11/14/17 nullptr

nullptr的引入什么是nullptr呢?为什么要引入nullptr呢?任何事物的产生都有其缘由和意义,nullptr也不例外。一切还得从0开始说。C++98中的0即表示整数字面值0,又表示指针的0值:class Foo{public: void bar() {}};int *p = 0; // 0表示普通指针的0值void (Foo::*pBar)() =

2017-05-16 09:30:29 1159

原创 C++11 Range for Statement

基本形式可用作expression的类型。使用方法和注意事项访问 改变自建类型与forforeach替代深度解析

2017-05-15 09:02:43 600

原创 C++11 Scoped Enumeration

本文从C++98枚举存在的问题入手,逐步分析C++11枚举存在的理由。并介绍了C++11对C++98枚举的扩展。最后以C++11枚举类型的改进做结尾。

2017-05-12 14:40:57 813

原创 C#开发Word控件

简介本文简要描述了利用C#开发一个Word插件的流程方法。实现一个简单的发送邮件的功能。如下图所示:点击发送邮件按钮,则将文本内容发送到邮箱。新建工程切换到Visual C#,选择office,可以看到office下面有2010和2007两个版本,为了兼容2007,这里选择2007版本。在工程选项里选择Word 2007 Addin,工程名字填写 SendEmail。工程路径设置成合适的位置。这里还

2017-05-10 18:54:53 13493 2

原创 Go排序

简介Go的sort包提供了排序功能。包括基本类型的排序和自定义数据(通常是结构体数组)的排序。基本类型的排序sort提供了以下API对基本类型进行排序,查找// 排序func Ints(a []int)func Float64s(a []float64)func Strings(a []string)// 判断是否已经排序func IntsAreSorted(a []i

2017-05-09 18:24:34 1354

原创 用FFmpeg SDK计算MP3文件的时长

说明首先需要编译FFmpeg,这个网上已经有很多资料了,这里略过。可参见:VS编译FFmpeg关于FFmpeg SDK的使用,可以参见:An ffmpeg and SDL Tutorial计算MP3文件时长主要利用 avformat_find_stream_info读取文件信息,AVFormatContext中的成员变量duration用来描述MP3文件的时长。注意duration的值为实际秒

2017-05-09 08:59:39 3199

原创 Go解析命令行传入参数

APIGo的flag包用来解析命令行参数。 参数的表示方法为:-flag-flag=x-flag x // x不能是bool值主要的API如下:// 获取名字为name的参数值,默认值为value,用法为usage// 注意返回值是一个指针// 类似的方法还有 Int(),Bool()等。func String(name string, value string, usage strin

2017-05-05 16:02:18 8815 1

原创 Go使用Text和HTML模板

简介Go的两个包text/template和html/template提供了将变量的值替换到文本的机制。通常用在一些printf应付不了的、需要复杂的格式化的场合。模板的使用模板规则Action模板是一个包含了一个或多个双花括号标记({{...}})的字符串,这种双花括标记号叫做Action。模板中所有的除Action的字符串都按照原样打印,Action则表现了特殊的行为。通过Action可以打印变

2017-05-05 15:37:52 6484

原创 Go压缩解压文件夹

Go的archive/zip包提供了文件的压缩和解压,本例涉及到的API如下(仅列出重要部分):// zip.Writer用来写入压缩包type Writer struct { // Has unexported fields.}// Create方法用来在zip包里创建文件,返回的io.Writer用来写内容func (w *Writer) Create(name string)

2017-05-03 18:08:49 4441 2

原创 Go遍历文件夹

简介Go的path/filepath提供了Walk函数用来遍历文件夹,原型如下:func Walk(root string, walkFn WalkFunc) errorroot 为要遍历的文件夹。在遍历(按照字母顺序)每个文件或文件夹(包括root)时会调用walkFn,它的类型是WalkFunc:type WalkFunc func(path string, info os.FileInfo,

2017-05-03 16:16:54 3883

原创 Go上传文件

简介Go提供的net/http和mime/multipart两个包可以很容易的实现http文件上传。客户端package mainimport ( "bytes" "io" "log" "mime/multipart" "net/http" "os")func main() { // 创建表单文件 // CreateFormFile 用

2017-05-02 15:40:39 12160 1

Cef3博文配套源代码

Cef3博文的配套源代码,注意其中没有放 Cef3 库的资源(因为太大了...)。建议配合博文一起查看。博文地址:http://blog.csdn.net/u011304970/article/details/77592775

2017-12-28

CppUnit入门代码

CppUnit 入门的代码,仅供参考。编译时请指定编译版本为 Debug|x86

2017-07-01

C++实现Office插件

纯C++实现Office插件

2017-06-08

udns-0.0.9-win32.zip

udns的VS2015工程

2017-02-17

空空如也

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

TA关注的人

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