代码改变世界

随笔分类 -  业余项目

PSP应用开发入门

2012-06-25 17:32 by htc开发, 258 阅读, 收藏,
摘要: 一、PSP平台介绍硬件架构SDK官方的SDK网上找不到,可能是收费的,我们可以使用第三方的SDK。据网上介绍,一般有两种方法:psptoolchain+cygwin;devkitpro(不需要cygwin)。这里采用第二种方法。开发语言devkitpro中自带的SDK中都是C语言的头文件和库文件,所以使用C语言进行开发。二、开发环境搭建从http://sourceforge.net/projects/devkitpro/files/Automated%20Installer/下载并安装devkitPro开发包。三、编译示例程序在命令行CMD中进入D:\devkitPro\devkitPSP\p 阅读全文

Java版的Redis

2012-06-20 16:12 by htc开发, 365 阅读, 收藏,
摘要: Redis是一个基于Key-value结构的Nosql数据库,它支持各种常见的数据结构以及非常方便的操作,与其说它是一个数据库,不如说它是一个保存各种数据结构的服务器。今天闲来没事,用Java集合类实现了Redis的一些基本功能,算是温习下Java了。1.Redis入门Redis的Key键值为字符串,但是Value值支持许多种类型,如String字符串,List链表,Set无序集合,SortedSet有序集合,甚至是Hash表。各种数据结构通过不同的存取方法来区分。如Set/Get直接将值存为String,LPush/LPop/LRange将值存到一个链表中,SAdd/ZAdd则区分了无序和有 阅读全文

Java实现Qt的SIGNAL-SLOT机制

2012-06-04 22:41 by htc开发, 361 阅读, 收藏,
摘要: SIGNAL-SLOT是Qt的一大特色,使用起来十分方便。在传统的AWT和Swing编程中,我们都是为要在监听的对象上添加Listener监听器。被监听对象中保存有Listener的列表,当相关事件发生时,被监听对象会通知所有Listener。而在Qt中,我们只需通过connect方法连接两个对象上的方法就可以了,非常方便、优雅地实现了传统的观察者Observer模式。Qt是如何办到的呢?对于发出SIGNAL的对象,我们需要在其头文件定义中声明Q_Object宏,之后Qt的预处理器MOC会为我们自动添加上相应的代码来实现SIGNAL-SLOT机制。这与AspectJ自定义了Javac编译器很类 阅读全文

用Qt开发简单的浏览器(二)

2012-05-24 22:47 by htc开发, 862 阅读, 收藏,
摘要: 一、功能改进经过对QtWebKit的一些学习,对之前的浏览器进行一些改进:1.增加分页显示多个网页的功能。每个分页都是一个QWebView控件,实现对多个网页的加载。2.加入欢迎主页。学习如何创建Qt资源文件,从本地读取欢迎主页的HTML。3.添加了前进Forward和后退Back按钮。4.此外还明确了SIGNAL和SLOT的命名,SLOT都以handleXXX开头与SIGNAL区分开。二、Qt资源文件Qt可以很方便的通过资源文件来管理各种资源,就像在VS中创建资源文件一样。项目结构如下:在Qt Creator中创建四个资源文件html.qrc,script.qrc,style.qrc,res 阅读全文

用Qt开发简单的浏览器(一)

2012-05-20 09:00 by htc开发, 3594 阅读, 收藏,
摘要: 1.代码实现工程目录结构如下:AddressBar类包含了地址栏和按钮两个控件,将地址栏回车和按钮点击信号与goToSite()槽连接。当回车和点击事件发生时,goToSite()将获得Url地址并发送go(QUrl)信号。addressbar.h#ifndef ADDRESSBAR_H #define ADDRESSBAR_H #include <QWidget> #include <QLineEdit> #include <QPushButton> #include <QHBoxLayout> #include <QUrl> #i 阅读全文

我的第一个Chrome插件:天气预报应用

2012-05-08 21:51 by htc开发, 258 阅读, 收藏,
摘要: 1.Chrome插件开发基础开发Chrome插件很简单,只要会基本的前台技术HTML、CSS、JS就可以开发了。Chrome插件一般包括两个HTML页面background和popup。background页面只在启动浏览器加载插件时载入一次,它不直接显示出来而是在后台运行。它包含了插件的主要逻辑,收集或处理的结果可以保存到全局变量localStorage中传递给popup页面。popup页面就是点击插件图标后弹出的页面,将用户需要的数据展示出来或者与用户交互。此外插件还应该包含有CSS和JS文件以及一些图片文件。插件的相关配置都保存到一个叫做manifest.json的文件中,里面的配置是以 阅读全文

Trie的应用及拼写检查器的优化

2011-12-29 22:11 by htc开发, 270 阅读, 收藏,
摘要: 之前实现的拼写检查器,是用Hash表来保存语言模型(Language Model)。每个单词插入到Hash表时都要先计算一个Hashcode值来作为Id。因此插入一个单词到Hash表(不冲突的情况下)与查询一个单词的效率都是O(len),其中len是单词的长度。我们也可以用一种叫Trie的树形结构来保存语言模型。Trie的结构非常简单,举个简单的例子,对于下面这些单词:an, ant, all, allot, alloy, aloe, are, ate, be我们可以构建出这样一个Trie树,每条支路都代表一个字母,由根节点出发到叶子节点所经过的路径上的字母就组成一个单词。其中,根节点不包含字 阅读全文

贝叶斯公式与拼写检查器

2011-12-27 22:34 by htc开发, 454 阅读, 收藏,
摘要: 年底工作不是很忙,今天复习了下概率论中贝叶斯的基础知识,动手写了个Java版本的简单的拼写检查器。我们在使用Google时,当我们输入一个错误的单词,经常可以看到Google提示我们是不是要查找什么什么。它是怎样做到的呢?现在我们就来实现一个简单的拼写检查器。1. 什么是贝叶斯公式?来看来自维基百科的定义:贝叶斯定理贝叶斯定理由英国数学家贝叶斯( Thomas Bayes 1702-1761 ) 发展,用来描述两个条件概率之间的关系,比如 P(A|B) 和 P(B|A)。按照定理 6 的乘法法则,P(A∩B)=P(A)·P(B|A)=P(B)·P(A|B),可以立刻导出贝叶 阅读全文

开发一个小工具重温C#经典问题

2011-12-26 22:53 by htc开发, 297 阅读, 收藏,
摘要: 利用业余时间为公司的国际化开发一个小工具,功能很简单,但可以重新温习C#的一些经典问题。1. 两个基本功能根据源文件和新文件对比,生成对比结果文件。对比结果要包括:新文件中更改的词条、新加的词条、删除的词条。输入文件格式:文件开头有些注释,正文的每行由id号、空格、引号围绕的词条三部分。对比结果文件格式:实例1:txt1.txt(源文件)----------id1 "a"id2 "b"id3 "c"txt2.txt(新文件)----------id1 "a2"id3 "c"id4 "d 阅读全文