blog.TangGaowei.com

存档: 2008年05月

[摘]乐毅:请对地震科学多一点理解

作者 Neot 写于 2008-05-15  | 259 次浏览

  每一次大地震后,地震局和地震科学家都会被痛骂,这次汶川大地震也不例外,网上已出现了大量骂地震局吃干饭的帖子,质疑“纳税人养了这帮家伙干什么?”传统媒体上也出现了类似的声音,如5月13日《信息时报》上的文章《大地震前我们对诸多预兆是否太大意》说:大自然再三地提醒与警告,我们却彻底地对此失去领会能力。这到底是科学的局限,还是我们智慧的悲哀?

  大家在大灾发生后的痛惜心情我可以理解,但据此就指责地震科学还是有失公允了。虽说现在科学昌明,但偏偏人类对自己所生存的这颗星球本身的了解还很有限。中国的地震预报水平并不低,被世界公认史上唯一一次对地震的准确预报,就是中国人做出的,即1975年2月4日的中国海城地震。但今天回过头看,就不得不承认那次准确预报多少有点运气。

  《大地震前我们对诸多预兆是否太大意》一文中说到了10日四川绵竹市出现大规模蟾蜍迁徙,绵竹离汶川只有几十公里。

  现在看来,这可能确实是大自然对地震的预警。但这话也只是事后诸葛亮罢了,在自然界,蟾蜍大规模迁徙,原因可能有许多种,地震警告只是其中一种,事发当时几乎不可能准确判断。

  当然,我并不是说这种“大自然的警告”毫无意义,但这些信息在社会管理层面上却是无用的。现在地震科学能做出一些中长期的预报,也就是“某某时间段内在某地区可能会发生某某级的地震”之类,但准确到某时某地会发生多大的地震,却是做不到的。像绵竹大规模蟾蜍迁徙这种现象,也许吻合了地震局内部可能存在的某份对川北地震的中长期预报(只是可能而已,没有也不能算错),但地震局能据此就要求政府命令川北地区的几千万人民,在三个月内露宿街头,且不进厂房、办公楼上班么?这根本就不具有可操作性!

  有人会问,既然不能做出准确预报,地震局有何用?这可以从两个方面回答。

  其一,地震局存在的最直接一个作用在于,地震一旦发生,地震局可迅速给出准确的震中、震级等情况。不要小看这一点,它一方面是开展后续救灾工作的基础科学依据。另一方面,它还有一大功效。这次汶川大地震是浅源地震,影响范围广,全国大片地区都有震感。如果没有地震局迅速给出辟谣信息,我想12日晚上全国会有数以千万计甚至上亿的人在恐慌下露宿街头。我们这些非震中地区的人昨夜能安然入梦,可以说就有地震局的功劳。其二,我们可以把纳税人的钱视作一种长线投资,养着这些科学家持续研究,等待地震预报能发展到准确预报的那一天,为子孙后代造福吧。

  其实真正做地震研究的科学家,在地震以后往往较一般人更难受。因为他们常常要第一时间赶到灾区,在情绪激动的灾民们的骂声中直面那些悲惨现场,心中充满了挫败感。所以,大家还是多给一些理解吧。

[ 标签: 地震 ]
[ 固定链接:http://blog.tanggaowei.com/2008/05/post-16.html ]

征“名”

作者 Neot 写于 2008-05-15  | 331 次浏览

我姓唐,女儿今天出生42天,想给她起个好名字。自己想了几个,不是很满意。特此征求各位朋友的意见。:)

[ 标签: 育儿 ]
[ 固定链接:http://blog.tanggaowei.com/2008/05/post-17.html ]

真钱越做越假,假钱越做越真

作者 Neot 写于 2008-05-13  | 318 次浏览

许多 20 元的纸币上,人头掉色掉得很厉害,看起来像假钱一样。有人拒绝接受这样的纸币,一定要换两张十块的给他。

20 元的假币也掉色,但没有真钱那么厉害,看起来更真。不少人并不知道他们使用的是假币,有的可能还会怀疑是不是别人搞错了。

这真应了那句老古话:假做真时真易假,真做假时假易真。

[ 标签: 假币 ]
[ 固定链接:http://blog.tanggaowei.com/2008/05/post-15.html ]

Wordpress 的国际化

作者 传说一梦 写于 2008-05-12  | 270 次浏览

Wordpress 是使用 mo 文件进行国际化的。mo 文件是二进制文件,由 po 文件生成。从 po 文件生成 mo 文件,可使用 poEdit 编辑器。用 poEdit 编辑器打开 po 文件后,按 [Ctrl + S] 保存时,就可自动生成同名的 mo 文件。

po 文件是文本文件,可以用记事本、Editplus 等文本编辑器编辑。po 文件的格式类似如下:

1  msgid ""
2  msgstr ""
3  "Project-Id-Version: WP-T-WAP\n"
4  "POT-Creation-Date: \n"
5  "PO-Revision-Date: 2008-05-12 12:14+0800\n"
6  "Last-Translator: tanggaowei <tanggaowei@gmail.com>\n"
7  "Language-Team: TangGaowei.com <tanggaowei@gmail.com>\n"
8  "MIME-Version: 1.0\n"
9  "Content-Type: text/plain; charset=utf-8\n"
10 "Content-Transfer-Encoding: 8bit\n"
11 "X-Poedit-KeywordsList: _e;__\n"
12 "X-Poedit-Basepath: .\n"
13 "X-Poedit-SearchPath-0: .\n"
14
15 #: index.php:57
16 msgid "Last Comments"
17 msgstr "最新评论"
18
19 #: index.php:54
20 msgid "Categories"
21 msgstr "分类"

文件最上面两行可能是定义数据的格式。将 msgid 引号里的内容定义为信息 ID,将 msgstr 引号里的内容定义为 ID 对应的内容。如第 16 行的 "Last Comments" 就是 ID,"最新评论" 翻译成的内容。

第 3 行到第 13 行是文件信息和编辑成 mo 文件要使用的参数。poEdit 的 "设置" 里可设置这部分内容,保存时能自动生成。

第 15 行和第 19 行是注释,不写也可以。注释是为了下次修改时,查看所有使用过此翻译的位置。一定格式的注释能在 poEdit 里直接定位到被翻译的文件位置。

Wordpress 有 4 个方法用于加载 mo 文件到内容,以供页面使用:

1. load_textdomain($domain, $mofile)

$domain - 域名,用于区分其它域的 mo 数据。
$mofile - mo 文件的物理地址,含文件名。

load_textdomain 函数是下面 3 个函数的基础。

2. load_default_textdomain()

用于加载 Wordpress 站点自己使用的 mo 文件。(实际将 $domain 缺省为 ‘default’。)

3. load_plugin_textdomain($domain, $path = false)

$domain - 域名,用于区分其它域的国际化数据。
$path - mo 文件相对于 Wordpress 站点根目录的相对路径,不含文件名。(不一定非得是插件目录,站点的任何目录都可以)

用于加载 Wordpress 插件所使用的 mo 文件。假设 $domain = ‘wap’,Language = ‘zh_CN’,则 mo 文件名应为 wap-zh_CN.mo 。

4. load_theme_textdomain($domain)

$domain - 域名,用于区分其它域的国际化数据。假设 $domain = ‘wap’,Language = ‘zh_CN’,则 mo 文件名应为 zh_CN.mo ,mo 文件的目录为当前模板的目录。

用于加载 Wordpress 模板所使用的 mo 文件。

以上 4 个函数都在 /wp-includes/l10n.php 文件里定义。它们的生命周期都是 Page,也就是当页面加载完时失效,并不是一个页面执行一次,其它页面都可使用。

Language 在 /wp-config.php 文件的 "define (’WPLANG’, ‘zh_CN’);" 行定义。

mo 文件被正确的加载后,就可以在页面里使用这些数据了:

1. 返回值函数

__(’Last Comments’)

返回 load_default_textdomain() 函数加载的, ID 为 ‘Last Comments’ 所对应的数据。如上例,应返回 ‘最新评论’ 。(函数名为 2 个下划线)

__(’Last Comments’, ‘wap’)

返回 ‘wap’ 域中,ID 为 ‘Last Comments’ 所对应的数据。如上例,应返回 ‘最新评论’ 。

2. 输出函数

_e(’Last Comments’)

输出 load_default_textdomain() 函数加载的, ID 为 ‘Last Comments’ 所对应的数据。如上例,应返回 ‘最新评论’ 。

_e(’Last Comments’,'wap’)

输出 ‘wap’ 域中,ID 为 ‘Last Comments’ 所对应的数据。如上例,应返回 ‘最新评论’ 。

[ 标签: 国际化 ]
[ 固定链接:http://blog.tanggaowei.com/2008/05/wordpress-4.html ]

WP-T-WAP 1.7 新增域名绑定支持

作者 传说一梦 写于 2008-05-12  | 546 次浏览

WP-T-WAP 1.7 新增域名绑定支持。域名绑定方法如下:

直接将域名绑定到 WP 站点根目录的 "wap" 目录上。例如,WP 站点根目录是 /usr/http/www ,那么应该将 wap.mysite.com 域名绑定到 /usr/http/www/wap 目录上。

下载:http://www.tanggaowei.com/2008/01/04/7.html

手机下载地址:http://wap.tanggaowei.com/index.php?p=7

[ 标签: wp-t-wap ]
[ 固定链接:http://blog.tanggaowei.com/2008/05/wp-t-wap-17.html ]

通货膨胀加剧,非生活必需品购买力下降

作者 Neot 写于 2008-05-11  | 373 次浏览

通货膨胀还在继续加剧,生活必需品价格不断攀升,人们的生活成本持续增长。

柴米油盐、房租房价都在加速吞食着人们的不堪一击的工资单。听说,水费电费也按耐不住了。

生活必需品掠夺的人们的口袋,人们对其它商品的购买力明显下降。如果通货持续膨胀,整个经济必然受到影响,并可能出现萎缩。

通货膨胀实际是一种洗钱的游戏。它会把多数人的钱转移到少数人口袋里。它并不单纯是一种经济现象,必然会出现人为的炒作。

[ 标签: 通货膨胀 ]
[ 固定链接:http://blog.tanggaowei.com/2008/05/post-14.html ]

为什么总是收到“未经确认的发件人”的垃圾短信

作者 传说一梦 写于 2008-05-10  | 396 次浏览

收到“未经确认的发件人”的垃圾短信已不止一个月了。原来都是隔几天才收到一条,可最近却每天都会收到。实在忍无可忍!于是用手机上网 Google 了一下。搜到的结果并不多。多普达智能手机论坛里的一个帖子提供了一个注册表文件来解决这个问题。不过,一篇“WAP PUSH 服务介绍”的文章,说明了这种垃圾短信是一种叫“wap push”的业务产生的。在国外,“wap push”是用来方便手机用户,直接找到并使用自己喜欢的 wap 业务的;而在国内,却被一些无耻之徒用来发垃圾短信。

手机的“wap push”功能是可能打开和关闭的。关闭后,就不会再收到“未经确认的发件人”的垃圾短了。但是,这样一来,你也无法使用它“直接找到并使用自己喜欢的 wap 业务”了。真是一个两难的境地啊——可恶的无耻之徒!好在我没有用过“wap push”的业务,对它还没有什么依赖。

在关闭“wap push”功能,只要将手机注册表里的“HKEY_LOCAL_MACHINE/Security/Policies/Policies/0000100D”键值,修改为十进制的 3072 (0×00000C00) 就可以了。“WAP PUSH 服务介绍”文章里介绍一款“注册表编辑器”用于编辑此键值。我是使用的 Resco Explorer 2007 的“注册表插件”进行修改的。

如果要打开“wap push”,可将注册表键值修改为十进制“4095”。

为了方便,我用 .net 写了一个软件,用于打开和关闭“wap push”功能。有兴趣的可以下载使用:WapPushMgr (for microsoft mobile smartphone 2005)(手机下载地址

[ 标签: wap push, 垃圾短信 ]
[ 固定链接:http://blog.tanggaowei.com/2008/05/post-13.html ]

智能设备应用程序的菜单怎么修改不了

作者 传说一梦 写于 2008-05-08  | 259 次浏览

调试VS2005 C++ MFC 智能设备应用程序时,系统总是显示项目的初始菜单(在手机上运行可能正常)。要使用自己的菜单,请注释掉 res\MyProjectsp.rc2 中以下内容:

/////////////////////////////////////////////////////////////////////////////
//
// 数据
//
/*
IDR_MAINFRAME SHMENUBAR DISCARDABLE
BEGIN
    IDR_MAINFRAME,
    1,
    I_IMAGENONE, IDOK, TBSTATE_ENABLED, TBSTYLE_BUTTON | TBSTYLE_AUTOSIZE,
    IDS_OK, 0, NOMENU,
END
*/

[ 标签: 资源菜单 ]
[ 固定链接:http://blog.tanggaowei.com/2008/05/post-12.html ]

怎样恢复 Edit 控件的 BackSpace 键功能

作者 传说一梦 写于 2008-05-08  | 416 次浏览

VS2005 C++ MFC 智能设备应用程序中,在 Edit 控件里按“TBack”键时,并没有删除光标前的字符,而是最小化当前应用程序。要恢复 Edit 控件的 BackSpace 键功能,方法如下:

1. 函数申明:在 MyProjectDlg.h 中写到“DECLARE_MESSAGE_MAP()”语句之前

afx_msg LRESULT OnHotKey ( WPARAM wParam, LPARAM lParam );  // 一定要在 DECLARE_MESSAGE_MAP() 之前

DECLARE_MESSAGE_MAP()

2. 消息映射:在 MyProjectDlg.cpp 的 BEGIN_MESSAGE_MAP() 段添加代码

BEGIN_MESSAGE_MAP(….)

ON_MESSAGE( WM_HOTKEY, OnHotKey )

END_MESSAGE_MAP()

3. 函数定义:在 MyProjectDlg.cpp 中实现代码

LRESULT CMyProjectDlg::OnHotKey ( WPARAM wParam, LPARAM lParam )
{
    if(VK_TBACK == HIWORD(lParam))
    {        
          SHSendBackToFocusWindow( WM_HOTKEY , wParam, lParam);

          return 1;
    }

    return 0;
}

[ 标签: BackSpace, Edit控件, TBACK ]
[ 固定链接:http://blog.tanggaowei.com/2008/05/edit-backspace.html ]

VS2005 C++ 字符串相关处理

作者 传说一梦 写于 2008-05-08  | 293 次浏览

———————————————————————————-
分割字符串
———————————————————————————-
#include <string.h>
#include <stdio.h>

char data[] = "A string\tof ,,tokens\nand some  more tokens";
char seps[]   = " ,\t\n";   // 分隔符字符集
char *token;

void main( void )
{
   printf( "%s\n\nTokens:\n", data );
   /* Establish string and get the first token: */
   token = strtok( data, seps );
   while( token != NULL )
   {
      /* While there are tokens in "string" */
      printf( " %s\n", token );
      /* Get next token: */
      token = strtok( NULL, seps );
   }
}

———————————————————————————-
字符串转换成数字
———————————————————————————-

char* token = "20";   
int nHour;

nHour = atoi( token);

———————————————————————————-
数字转换成字符串
———————————————————————————-
_itoa( nHour,buf, 10);  // 10 代表十进制

char* token = "20";   
char* buf;
int r;
int nHour;
string sHour;
nHour = atoi( token);
nHour += 8;
_itoa( nHour,buf, 10);
sHour = buf;

[ 标签: 字符串 ]
[ 固定链接:http://blog.tanggaowei.com/2008/05/vs2005-c-4.html ]

订阅

 

手机访问

http://blog.tanggaowei.com/wap/

Google