12
2010

使用docbook编写《Android ABC》

最近开始写一个大的文档,《Android ABC》,希望把一年来积累的Android知识整理一下。因为是和同事一起写,选择了docbook作为编写文档的方案。

第一个方案

在写文档之前,我们做了技术准备,主要是docbook生成pdf和docbook脚本自动化构建。最终选择了jdocbook和maven,并对fop等做了个别针对中文的配置和改动。可参见《转化docbook的maven工程的安装配置》。

按照上面链接的方式,开始使用的是docbook4.4,通过dtd做语法校验,并写出了文档目录和各章结构。在xml文档的dtd部分声明entity:

image

然后在文档需要的地方引用:

image

Continue Reading »

5
2010

基于html5的客户端图表生成方案

尝试过很多种图表生成方案,比较有代表性的:

  • 服务器端生成图表方案,比如通过jfreechart;
  • 使用云计算的方式,比如通过google提供的chart api,可以参见使用google chart生成动态图
  • 使用flash的免费开源应用,比如fusioncharts,在浏览器端生成图表,效果可见:http://www.fusioncharts.com/free/demos/
  • 使用html5的canvas api在浏览器端生成图表。

其中前两者是通过服务器端生成的,后两者是通过客户端生成的。

服务器端的缺点是:

  • 图表缺乏交互性,比如折线图,鼠标放在某个点上,希望看到该点的值,就做不到;
  • 带宽和流量问题,比如通过手机访问,手机是按流量计费的,对服务器端也会有影响,当大规模访问的时候挤占服务器端带宽;
  • 服务器端性能,当大规模访问的时候服务器端生成图表性能下降。

Continue Reading »

22
2010

android下的全文检索支持

android系统支持全文检索, 是通过sqlite的fts3来提供支持的.

见:

http://androidappdocs.appspot.com/guide/topics/search/search-dialog.html

的searching your data部分.

原因是如果使用like是很慢的. 在android下如果用like做查询, 比如LIKE somestrin%, 是很慢的, 有多慢呢, 10万行的表, 大概要1300ms吧. 不是我测试的, 见:

http://stackoverflow.com/questions/2734828/sqlite-fts3-sumulate-like-somestrin

因此需要通过sqlite3支持的fts3全文检索功能.

具体示例可以参见:

http://bakhtiyor.com/2009/08/sqlite-full-text-search/

运行上面示例的办法是, 解压缩, 然后通过eclipse创建新adt项目, 选择已存在的项目, 然后连接设备运行即可. 从运行效果来看, 英文是没有问题的. 但是中文因为分词方式不一样, 造成无法查询到预期的效果. 比如, 输入”全文检索”四个汉字, 插入到表中, 以”检索”来查询, 就查不到结果, 除非输入”全文检索”四个字才能得到匹配结果.

这说明, fts3没有合适的中文分词, 目前只能适用于比如英文这样带空格的文字分词.

使用sqlite全文检索的步骤如下.

首先要创建VIRTUAL TABLE:

CREATE VIRTUAL TABLE records USING FTS3 ( INTEGER PRIMAERY KEY, col_text TEXT );

插入数据和查询的api就是content provider的. 插入:

SQLiteDatabase db = getWritableDatabase();

ContentValues values = new ContentValues();

values.put(col_text, text);

db.insert(“records”, col_text, values);

匹配全文检索的查询:

List<String> result = new ArrayList<String>();

SQLiteDatabase db = getReadableDatabase();

final Cursor cursor = db.query(“records”,

new String[] { col_text }, col_text + ” MATCH ?”,

new String[] { query }, null, null, null);

if (cursor.moveToFirst()) {

do {

String text = cursor.getString(cursor

.getColumnIndexOrThrow(col_text));

result.add(text);

} while (cursor.moveToNext());

}

cursor.close();

return result;

創建PDF格式    发送文章为PDF   
21
2010

使用base64编码传输图形文本

如果想通过文本方式传递图形内容, 在一些情况下是可能的.

这里提到的文本方式, 比如通过服务器端传递XML或者JSON格式数据.

一般浏览器端会有脚本通过AJAX获取到XML或者JSON数据, 然后修改 (新增) DOM中显示元素的值.

图形文件可以进行base64编码, 通过XML或者JSON传输到浏览器端.

这里对浏览器有一定的要求, IE7及以上版本, 或者其他主流浏览器, 都可以, 这里唯一限制的是必须IE版本7以上. 其他的比如webkit内核的浏览器(safari和chrome), firefox等都没有问题.

这是因为这些浏览器支持一个新的特性, 见下面示例:

<html>

<body>

<img src=“data:image/gif;base64,R0lGODlhDwAPAKECAAAAzMzM/////

wAAACwAAAAADwAPAAACIISPeQHsrZ5ModrLlN48CXF8m2iQ3YmmKqVlRtW4ML

wWACH+H09wdGltaXplZCBieSBVbGVhZCBTbWFydFNhdmVyIQAAOw==”

alt=“Base64 encoded image” width=“150″ height=“150″/>

</body>

</html>

在img标签的src属性中按照这样格式的写法, 可以将base64编码的文本作为图片显示.

Continue Reading »

13
2010

开通腾讯微博

今天上午, 再次登录腾讯微博, 填写用户名和密码, 发现已经可以创建微博了.

201006131241.jpg

让同事测试了一下, 进入的是调查问卷界面, 看来我上次提交调查问卷生效了. 腾讯目前还处在内部测试阶段.

用mac笔记本的摄像头拍了一张夸张效果的照片, 让自己尽量显得和蔼一些.

我的腾讯微博是: http://t.qq.com/marshalw

PDF    发送文章为PDF   
12
2010

使用scapy探测局域网内的DHCP服务器

公司里面时常有非法的DHCP服务器, 一般不是员工有意为之的, 可能是病毒或者木马自带的. 这样的DHCP服务器有个名字: rogur DHCP.

这样的DHCP服务器可能会带来网络安全或者公司信息泄密问题.

其实最好的办法是通过硬件解决, 交换机如果支持DHCP SNOOPING功能, 可以设置屏蔽非法DHCP发出的响应.

目前不具备这个条件, 因此, 考虑通过软件侦测到rogur DHCP, 然后纠正错误.

这里选择的是scapy, 功能很强大, 不只是可以侦测DHCP.

Continue Reading »

11
2010

nmap的一些命令写法

nmap可以扫描网络中的主机和端口, 见根据ip地址查主机.

以下写出一些最近使用的nmap命令.

列出网络中当前的主机及其数目:

sudo nmap -sP 192.168.0.0/24

201006111726.jpg

Continue Reading »

11
2010

写了个groovlet原型,并能生成QR二维码

现在要同事用groovlet,才发现以前写的没有提供源代码,使用groovlets的最简单示例

于是再写一个,并且把前阶段的生成条形码图的示例包含进来(生成QR二维码图片的简单示例)。

image

在chrome下,可以直接在URL的参数content后面跟中文字符,测试没有问题,可能其他浏览器有的需要做BASE64编码。

Continue Reading »

9
2010

通过maven做字符替代处理

项目打包的时候,经常会遇到动态生成文件中字符串的要求。

举个例子,android手机项目,打包生成的APK文件,如果世间只有一个分发渠道,比如google android market,那么没关系,我就打一个包,发布就可以了。

但是现在有多个渠道,比如国内的安卓市场,EOE等等,为了能区分用户安装的版本是从哪个渠道来的,需要在分发包中定制一个渠道代号。

当然手工也可以做这件事情,不过,耗费精力而且容易出错。

这里打算用maven配置来实现这个功能。maven中对资源文件有个filter过滤器的配置,可以用于配置对指定文件进行文字替代。使用的是在刚才生成QR二维码图片的简单示例中的maven项目,在此基础上增加示例。

Continue Reading »

9
2010

生成QR二维码图片的简单示例

QR二维码的生成,在生成QR二维条码中已经提及。不过上次是通过网站生成的,缺点是对网站的依赖。下面做了个调用zxing core实现生成QR二维码图片的示例。另外还可以通过这个办法生成其他条形码格式图形。

对程序生成图片开始扫描:

image

扫描出结果:

image

Continue Reading »

第27页,共88页« 前...23242526272829303132...后 »