存档

作者存档
157 views

RSS 2.0 规范[翻译]

2010年8月31日

RSS 2.0 规范
译者:Tony Qu
原文地址:http://blogs.law.harvard.edu/tech/rss
    RSS是一种网页内容联合格式(web content sydication format)。
    它的名字是 Really Simple Syndication 的缩写。

什么是 RSS?

    RSS 是 XML 的一种。所有的 RSS 文档都遵循 XML 1.0 规范,该规范发布在 W3C 网站上。
   
在一个 RSS 文档的开头是一个 <rss> 节点和一个规定的属性 version,该属性规定了该文档将以 RSS 的哪个版本表示。如果该文档以这个规范来表示,那么它的 version 属性就必须等于 2.0。
   
在 <rss> 节点的下一级是一个独立的 <channel> 节点,该节点包含关于 channel 的信息和内容。
    
关于本文档    
    该文档是在 2002 年秋天撰写的,当时的 RSS 版本为 2.0.1。
   
它包含从 RSS 0.91 规范(2000年)开始的所有的修改和添加,以及包含在RSS 0.92(2000年12月)和 RSS 0.94(2002年8月)中的新的特性。
   
必需的频道节点   
下面有一份必须包含的频道 (channel) 节点的列表,每一个都有一个简单的描述、一个例子、应该出现的位置和更详细描述的超链接。

元素 描述 范例
title 频道(channel)名称。它可以告诉别人如何访问你的服务。如果你有一个与你的RSS文件内容一致的HTML网站,你的title元素值应该与你的网站的标题相同。 GoUpstate.com News Headings
link 响应该频道的网站的URL http://www.goupstate.com/
description 关于该频道的描述 The latest news from GoUpstate.com, a Spartanburg Herald-Joural Web
Site

阅读全文…

日常琐碎

168 views

搭建 Android 软件开发平台

2010年8月22日

1. 下载 JDK, 安装. 设定环境变量.
JAVA_HOME = C:\Program Files\Java\jdk1.6.0_21
Path = %JAVA_HOME%\bin;%SystemRoot%\system32;%SystemRoot%; …

2. 下载 eclipse 软件, Eclipse IDE for Java Developers, 解压到一个目录, 如
d:\eclipse

3. 下载 Android Developer Tools(这个网址可能需要翻墙, 感谢党感谢国家感谢政府), 解压到一个文件夹, 如 D:\android-sdk-windows, 执行 SDK Setup.exe 文件, 按照图形界面提示, 到 ADT 服务器下载你需要的版本的 API.
这个过程相当漫长, 因为使用 https 协议连接 Google 服务器, 还可能出现连不上服务器的情况(由于 GFW 的存在, 这在大陆是肯定的), 可以在 settings 页面, 勾选 “Force https://… sources to be fetched using http://…” 复选框. 然再到 Available packages 页面选你需要的 API 包, 点击 “Install Selected” 按钮开始下载.

阅读全文…

日常琐碎

145 views

HTC Desire 或者 Motorola Milestone 手机 Android 3G Modem上網

2010年8月22日

參考前人文章,手機在今天到手後試了一整個晚上,最後終於成功. 因為弄到很晚很累可能會寫的有點亂,汗,請各位多多包涵.
使用的軟體是 azilink, Http 及 Https 都可正常連線 (PDANet 免付費版不能用 Https 連線), 速度很快, 穩定性則還有待觀察, 因為我只用了一个晚上, 目前是沒有斷線的狀況.

環境是 Windows 7 64位元, 我簡化了一些步驟, 過程會比較簡單易用. 跟各位分享.

1. 首先先下載 OpenVPN 2.1.1 並安裝至 PC 電腦端
OpenVPN 2.1.1

2.下載 azilink.apk 並安裝到手機端
azilink-2.0.2

3.设定手机
3.1 先將手機 USB 連接模式設定為 USB deugging (設定→應用程式→開發→USB除錯中(勾選)」 )
在設定裡的 Applications

Development

將USB Debugging打勾

3.2 於手機端允許非市場應用程式,「設定→應用程式→未知的來源(勾選)」

阅读全文…

日常琐碎

596 views

Android 手机翻墙使用 Twitter

2010年8月6日

Android 系统优秀的第三方软件 twidroid 支持 app 接口,这样我们就可以通过 Google App Engine 自己搭建一个 birdnest 代理,然后使用 twidroid 通过这个代理来上 twitter。明白了原理,我们就开始付诸行动吧。

【软件准备】
1. 第三方上传工具 SDUpload
2. gae 源码 gae
3. twitter Android 手机端软件 twidroid (推荐自己用手机到 “电子市场” 下载安装 Twidroyd)

【解决方案】
1. 注册 Google App Engine 以及创建新应用
打开 Google App Engine,如果有google账户,直接登录即可。之后我们需要创建一个应用,需要输入手机号码,以便系统发送一个验证码,为保证中国手机用户的正常接收短信,最好在手机号码前加上+86,如+8613912345678。很快便会得到短信回复,输入七位验证码,即可开始创建应用。

阅读全文…

日常琐碎 ,

128 views

获取文件句柄的基本信息

2010年8月5日

有时候我们想得到文件句柄的一些信息, 比如这个句柄的引用计数, 属性等等的. 我就写了下面的函数.

声明的头文件:

typedef LONG NTSTATUS;

typedef struct _OBJECT_BASIC_INFORMATION
{
	ULONG Attributes;
	ACCESS_MASK GrantedAccess;
	ULONG HandleCount;
	ULONG PointerCount;
	ULONG PagedPoolCharge;
	ULONG NonPagedPoolCharge;
	ULONG Reserved[3];
	ULONG NameInfoSize;
	ULONG TypeInfoSize;
	ULONG SecurityDescriptorSize;
	LARGE_INTEGER CreationTime;
} OBJECT_BASIC_INFORMATION, *POBJECT_BASIC_INFORMATION;

NTSTATUS WINAPI _GetHandleInformation
	(
	HANDLE ProcessHandle,
	HANDLE Handle,
	POBJECT_BASIC_INFORMATION BasicInformation
	);

阅读全文…

技术心得 , , ,

181 views

从模块内提取资源文件

2010年7月30日
void ExtractBinResource( HMODULE hModule, LPCTSTR lpResKind, int nResID,
	LPCTSTR lpOutFile )
{
	HGLOBAL hResourceLoaded = NULL;	// handle to loaded resource
	HRSRC hRes = NULL;				// handle/ptr. to res. info.
	LPCVOID lpResLock = NULL;	// pointer to resource data
	DWORD dwSizeRes = 0;

	// find location of the resource and get handle to it
	hRes = FindResource( hModule, MAKEINTRESOURCE(nResID), lpResKind );

	// loads the specified resource into global memory.
	hResourceLoaded = LoadResource( hModule, hRes ); 

	// get a pointer to the loaded resource!
	lpResLock = (LPCVOID)LockResource( hResourceLoaded ); 

	// determine the size of the resource,
	// so we know how much to write out to file!
	dwSizeRes = SizeofResource( hModule, hRes );

	HANDLE hFile = CreateFile(lpOutFile, GENERIC_WRITE, FILE_SHARE_READ,
		NULL,	CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
	if (INVALID_HANDLE_VALUE != hFile)
	{
		WriteFile(hFile, lpResLock, dwSizeRes, &dwSizeRes, NULL);
		CloseHandle(hFile);
	}
}

技术心得 ,

135 views

STL bitset 简单使用示例

2010年7月29日
#include <iostream>
#include <bitset>

using namespace std;

int main()
{
	// bitset 使用整数初始化 bitset
	bitset<3> bs(7);

	// 输出 bs 各个位的值
	cout<<"bs[0] is "<<bs[0]<<endl;
	cout<<"bs[1] is "<<bs[1]<<endl;
	cout<<"bs[2] is "<<bs[2]<<endl;

	//下面的语句会抛出outofindexexception
	//cout<<"bs[3] is "<<bs[3]<<endl;

	// 使用字符串初始化 bitset
	// 注意: 使用 string 初始化时从右向左处理,
	//         如下初始化的各个位的值将是 110, 而非 011
	string strVal("011");
	bitset<3> bs1(strVal);

	// 输出各位
	cout<<"bs1[0] is "<<bs1[0]<<endl;
	cout<<"bs1[1] is "<<bs1[1]<<endl;
	cout<<"bs1[2] is "<<bs1[2]<<endl;

	// cout 输出时也是从右边向左边输出
	cout << bs1 << endl;

	// bitset 的方法
	// any() 方法如果有一位为 1, 则返回 1
	cout<<"bs1.any() = "<<bs1.any()<<endl;

	// none() 方法, 如果有一个为 1, 则 none 返回 0, 如果全为 0 则返回 1
	bitset<3> bsNone;
	cout<<"bsNone.none() = " <<bsNone.none()<<endl;

	// count() 返回几个位为 1
	cout<<"bs1.count() = "<<bs1.count()<<endl;

	// size() 返回位数
	cout<<"bs1.size() = "<<bs1.size()<<endl;

	// test() 返回某一位是否为 1

	// flip() 诸位取反
	bitset<3> bsFlip = bs1.flip();
	cout<<"bsFlip = "<<bsFlip<<endl;

	// flip(int) 将某一位取反

	// to_ulong
	unsigned long val = bs1.to_ulong();

	// reset() 方法将各个位的值都重置为 0
	bs1.reset();

	return 1;
}

技术心得 ,

162 views

Windows 7:”我的电脑” -> “管理” 打不开的解决方法

2010年7月26日

问题:
装好win7系统,当去掉桌面快捷方式小箭头后,在桌面计算机的管理打不开,出现“该文件没有与之关联的程序来执行操作,请执行安装程序,或者,如果已安装程序,请在‘默认程序’控制面板中创建关联”。”这样对话框,打不开,需要从控制面板中创建关联”。
解决办法:

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\shell\Manage\command]
@=hex(2):6d,00,6d,00,63,00,2e,00,65,00,78,00,65,00,20,00,63,00,6f,00,6d,00,70,\
  00,6d,00,67,00,6d,00,74,00,2e,00,6d,00,73,00,63,00,00,00

日常琐碎

171 views

更改 IE 代理服务器的设置

2010年7月22日

可以通过 ie 浏览器的主界面的菜单设置, “工具 -> Internet 选项 -> 连接 -> 局域网设置” 的 “代理服务器” 选项设置.

在 windows 下可以通过直接改以下注册表的方式更改代理设置, 但 IE 进程必须重启, 不是很专业.

Regedit4

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings]
"MigrateProxy"=dword:00000001
"ProxyEnable"=dword:00000001
"ProxyHttp1.1"=dword:00000000
"ProxyServer"="http://ProxyServername:80"
"ProxyOverride"="<local>"

更好的方法是采用 InternetSetOption 函数实时改设置, 并马上对系统全局所有进程生效.
阅读全文…

技术心得

403 views

Setting VC++ directories in VS 2010

2010年7月13日

In VS 2010, Tools/Options does not have a VC++ directories tab (where you normally set the include/lib search folders). Instead if you take project settings for a C++ project, you’ll see VC++ Directories listed under Configuration Properties. Of course these are per project and NOT per user (as in VS 2008). If you want to change it for the current user globally, bring up the Property Manager and then you’ll see various property sheets under Debug and Release (there may be more configurations on your machine). Just edit the property sheet named Microsoft.Cpp.Win32.user and now you’ll have set it globally for your user for that specific configuration.

More:

阅读全文…

日常琐碎