
编程日记
liuwons
混,也是一种追求
展开
-
关于fwrite写文件时出现多余字节
今天在写一个创建软盘映像文件的软件时,在用fwrite写文件后总是出现多余的字节,用winHex打开后发现在文件末尾发现部分多余的ascii字节。 后来google了下,发现windows下如果不是用的wb属性打开文件,在读写二进制数据时就会出现这种情况。 后来改为用wb打开文件再读写,果然没有这种情况了。原创 2012-04-25 22:27:27 · 24555 阅读 · 2 评论 -
Python搭建聊天机器人微信订阅号
Python利用AIML和Tornado搭建聊天机器人微信订阅号AIML ,全名为Artificial Intelligence Markup Language(人工智能标记语言),是一种创建自然语言软件代理的XML语言,是由Richard Wallace和世界各地的自由软件社区在1995年至2002年发明的。它的雏形是一个名为”A.L.I.C.E.” (“Artificial Linguistic原创 2016-01-28 14:12:26 · 56358 阅读 · 4 评论 -
Python搭建聊天机器人
Python用AIML搭建聊天机器人AIML,全名为Artificial Intelligence Markup Language(人工智能标记语言),是一种创建自然语言软件代理的XML语言,是由Richard Wallace和世界各地的自由软件社区在1995年至2002年发明的。它的雏形是一个名为”A.L.I.C.E.” (“Artificial Linguistic Internet Compu原创 2016-01-27 16:50:59 · 52969 阅读 · 14 评论 -
身份证号码编码方法及校验算法
身份证号码编码方法及校验算法1 身份证号码的字段构成:地址码身份证前六位,表示户口所在县(市、旗、区)的行政区划代码。生日码身份证第七至第十四位,表示出生的年、月、日。顺序码身份证十五到十七位,为同一地址码所标识的区域范围内,对同年、月、日出生的人员编订的顺序号。其中第十七位奇数分给男性,偶数分给女性。校验码身份证最后一位,根据前面十七位数字码,按照ISO7064:1983.MOD11-2计原创 2016-01-31 00:44:53 · 58420 阅读 · 1 评论 -
Python包装网页微信API并实现简单自动回复
wxBotwxBot 为Python包装的网页微信API。可以很容易地实现微信机器人。github地址: wxBot Dependencies程序用到了Python requests 和 pyqrcode库,使用之前需要安装这两个库:pip install requestspip install pyqrcodeDemo配置了 图灵机器人 之后,通过测试账号发送各种消息的效果:Run运行程序pyt原创 2016-02-12 20:42:09 · 14528 阅读 · 1 评论 -
Java https服务器证书认证问题解决方案
Java https连接的”unable to find valid certification path to requested target”,”PKIX path building failed”错误原因这个问题的是由于Java自带的根证书库中不包含HTTPS服务器上的根证书,因此无法得到认证。解决方案比较容易实现的方案有两种:导入服务器证书到本地Java环境代码中忽略证书信任问题由于原创 2016-03-02 16:43:45 · 12138 阅读 · 2 评论 -
用wxBot和图灵机器人API实现微信群聊机器人
1 实现方案用 wxBot登录微信,接收、发送微信消息。用 图灵机器人 API对消息作回复。2 实现效果机器人会回复来自联系人的消息,以及群里@此账号的消息。注意要将对应的群保存到联系人。3 运行方法下载wxBot, 安装python的依赖包。在图灵机器人官网注册账号,申请图灵key: 图灵key申请地址在bot.py文件所在目录下新建conf.ini文件,内容为(key字段内容为申请到的图灵原创 2016-03-04 15:15:06 · 44024 阅读 · 6 评论 -
Python写的实时地球图片下载工具
Himawari8 Image Downloaderhimawari8downloader 是下载卫星 Himawari8 拍摄到的地球近实时照片的 Python 脚本。GitHub 地址: himawari8downloader 。依赖himawari8downloader 依赖 PIL 和 Requests:pip install Pillowpip install requests使用直接运原创 2016-04-03 17:57:15 · 4230 阅读 · 3 评论 -
字符编码简介
1. ASCII码ASCII (American Standard Code for Information Interchange, 美国标准信息交换代码),是基于拉丁字母的一套编码系统,主要用于显示现代英语和其他西欧语言。它是现今最通用的单字节编码系统。 单个字节可以表示256个不同的字符,不过 ASCII 只使用了其中低于\x80(即最高位字节为0)的一半来表示所有的英文字符以及一些控制字符原创 2016-04-11 22:17:55 · 4320 阅读 · 0 评论 -
常用搜索引擎使用技巧
指定站内搜索使用site指定在某网站内搜索如只在知乎中搜索 liuwons : liuwons site:zhihu.com精确匹配使用双引号来指定精确匹配单词或短语如精确搜索 liuwons : "liuwons"模糊搜索使用星号(*)代替一个单词进行模糊搜索例如"a * saved is a * earned"会搜到如下结果:A penny saved is a penny earned指定索搜原创 2016-05-19 13:56:59 · 12696 阅读 · 0 评论 -
hexo 解决代码块前后多余空行的问题
解决方案:github issue 通过修改hexo源码来解决: 文件:lib/util/highlight.js 将91行的:numbers += '' + (i + firstLine) + '';content += '' + item + ''; 改为:numbers += '' + (i + firstLine) + '\n'原创 2015-01-10 17:56:52 · 22376 阅读 · 1 评论 -
YUV与RGB的相互转换
YUV到RGB:int C = Y - 16;int D = U - 128;int E = V - 128;int R = 298 * C + 409 * E + 128;int G = 298 * C - 100 * D - 208 * E + 128;int B = 298 * C + 516 * D + 128;RGB到YUV:原创 2014-05-30 20:07:53 · 20451 阅读 · 1 评论 -
利用ar创建静态库
1.编写要添加到库中的程序源代码add.c int ladd(int x,int y) {x+=y;return x; } 2.编写头文件add.h int ladd(int,int); 3.编译add.c gcc -c add.c -o add.o 4.创建静态库 ar rcs libadd.a a原创 2012-04-27 00:23:45 · 18668 阅读 · 0 评论 -
Making And Using Library
picked from the original address : http://www.delorie.com/djgpp/doc/ug/larger/archives.htmlA library is a collection of objects, much like your town library is a collection of books. When building y转载 2012-04-27 00:56:04 · 18662 阅读 · 0 评论 -
关于Android中的乱码
在写Android应用时经常会遇到读取乱码的问题,这里总结下我所遇到的乱码相关问题: 首先,我用的是Eclipse集成开发环境,刚开始时在.java文件中含有汉字时,Eclipse会报出不能识别编码的错误,这个问题的解决办法是修改Eclipse的编码配置,方法是: 点击"Windows"->"Preferences"->"General"->"Content Types",把"原创 2012-05-12 13:22:09 · 30149 阅读 · 0 评论 -
关于Cursor,关于ListView,关于Adapter,关于学习方法
先贴一段我今天纠结了7个小时的代码:public class ListQueryAct extends ListActivity{@Overridepublic void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);Variable.cursor.moveToFirst();/原创 2012-05-11 22:54:11 · 21597 阅读 · 0 评论 -
Android中获取屏幕相关信息(屏幕大小,状态栏、标题栏高度)
Android比Iphone烦的多的一点就是:屏幕尺寸实在是太多了! 下面介绍下在Android中如何获取屏幕相关的信息。 1.屏幕尺寸,源代码如下:DisplayMetrics metrics = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(metrics);原创 2012-05-14 23:35:01 · 20965 阅读 · 0 评论 -
最短路径算法
有一段时间没写算法了,今天要写一个最短路径算法,居然也用了差不多一个半小时。。。 代码也没什么好说的了,用的回溯逐个探测的方法,变量都用的是全局变量,需要注意的就是回溯了。#include#include#define MAX 50 //图的最大顶点数using namespace std;int map[MAX][MAX]; //图的原创 2012-05-20 21:37:25 · 19157 阅读 · 0 评论 -
用nasm重写linux0.00
linux0.00由两个文件组成:boot.s(引导代码),head.s(运行代码)。程序最终在屏幕上不断打印A(任务1)和B(任务2)以及C(系统中断处理)。 boot.s代码:bootseg equ 0x07c0sysseg equ 0x1000syslen equ 17start: jmp bootseg:gogo: mov ax,cs mov ds,ax mo原创 2012-07-17 21:32:31 · 20093 阅读 · 1 评论 -
顺序表实现
sqlist.h#ifndef SQLIST#define SQLIST#define NOT_FOUND -1#define ERROR_LIST_FULL -2#define ERROR_LIST_OVERSTEP -3#define ERROR_LIST_ILLEGALNUM -4#define null原创 2012-11-16 22:28:00 · 18927 阅读 · 0 评论 -
用gcc编译opencv程序
opencv是一个开源的视觉库,有很多视觉开发常用方法,这里介绍下如何用gcc编译含有opencv函数的程序。 我的opencv库放在e:/opencv文件夹下。我在d:/test目录下有一个facetest.cpp源程序。现在要通过gcc将它编译链接。 那么可以用如下的命令: g++ -B e:/opencv/build -L e:/opencv/build/x86原创 2013-03-06 12:17:13 · 23940 阅读 · 1 评论 -
qt中乱码的一种解决思路
Qt中的乱码大都可以通过设置Locale和CString的字符集来解决,也即以下两个函数: voidsetCodecForCStrings ( QTextCodec * codec )voidsetCodecForLocale ( QTextCodec * c ) setCodecForCString设置原始cha原创 2013-12-24 17:45:14 · 19634 阅读 · 0 评论 -
Windows进程间互斥锁
Windows的互斥锁Mutex是可以在进程间使用的。 CreateMutex时可以指定一个mutex名称,此名称可以被其他进程或线程使用。CreateMutex的第二个参数BOOL bInitialOwner表示在创建后是不是立刻获取此锁,相当于立即WaitForSingleObject。 OpenMutex打开一个已经创建了的mutex。 WaitForSingl原创 2014-06-10 17:12:33 · 29937 阅读 · 0 评论 -
git常用操作
Git 常用操作1 概念 概念 意义 HEAD 当前版本 HEAD^ 上一个版本 HEAD~N 往上第 N 个版本 origin 远程仓库的默认名称 master 默认主干分支名2 指令 指令 意义 git init 创建仓库 git clone 克隆远程仓库 git status 当前状态 git diff 查看原创 2016-03-10 12:43:11 · 1857 阅读 · 1 评论