GtkNotebook 标签支持四个位置

一直以为 GtkNotebook 是不支持四个位置的,今天群里一个兄弟问到了这个问题,我又查看了一下手册,发现 gtk_notebook_set_pos() 函数比较可疑,没错,就是它了!

void gtk_notebook_set_tab_pos (GtkNotebook *notebook, GtkPositionType pos);
typedef enum
{
  GTK_POS_LEFT,
  GTK_POS_RIGHT,
  GTK_POS_TOP,
  GTK_POS_BOTTOM
} GtkPositionType;

left
Continue reading GtkNotebook 标签支持四个位置

Gtk+ 编写 Windows 程序的编码问题

使用 Gtk+ 编写 Windows 程序时会遇到这样的一个小问题,Gtk+ 函数输出的字符串直接作为 Windows API 的参数时是不行的。这个是因为 Windows API 默认使用的不是 UTF-8 编码,需要使用 g_locale_from_utf8() 函数转换一下。

应用实例

/* get cmd string from entry */
gchar * str = gtk_entry_get_text(entry);
/* convert utf8 string to locale */
gchar * scmd = g_locale_from_utf8(str, -1,  NULL, NULL, NULL);
system(scmd);  /* call this cmd */

Over!

学习 Gtk+ 的一点建议

今天认真的看了一下 GLib 的手册,发现之前写程序走了不少的弯路,很多功能在 GLib 中早就有实现了,但由于我不知道,花了很多时间自己去实现相同的功能,严重影响开发速度。

建议学习 Gtk+ 开发之前把 GNOME 的其它一些库都先认真研究研究,例如 GObject 对象系统是如何实现的等等。

Over!

MSYS – Win32 平台的 Unix-like 工具链

MSYS 是一款运行在 Win32 平台的、可以编译 Win32 平台应用程序的工具链。它包含了绝大多数的 Unix-like 操作系统的工具程序。同时用户还可以自行通过 ./configure, make, make install 等方式编译、安装更多的应用程序。

这个版本的 MSYS 是由 Martin 制作、维护的。我又做了一些扩展,如增加了 Gtk+ for Win32、libcurl、libxml2、zlib 等等。

下载地址:http://ftp.ubuntu.org.cn/home/heihaier/MSYS.rar
用户名:ubuntu
密 码:ubuntuftp

Over!

解决了 WordPress 发送邮件通知问题

前一段时间就发现了博客的邮件通知无效了,以为是红色主机服务器的 sendmail 出问题了,结果在探针上测试可以,但就是 WordPress 没有用。

Google 后发现了 Configure SMTP 这个插件,安装后也还是不行。(可能是当时版本不兼容吧)

今天又测试了一下 Configure SMTP,结果可以了。如果你也遇到了这样的问题,现在不妨也试试吧~

Over!

通信Q简语

简语 问句 答句或报告
QRA 你台的呼号是什么? 我台的呼号是XX。
QRG 你可否将将我(或 XX)的准确频率见告? 你(或 XX)的准确频率是 XX。
QRH 我的频率稳定吗? 你的频率[稳定|不稳定]。
QRI 我发送的音调如何? 你发送的音调[很好|不稳]。
QRK 我的(或 XX 的)信号清晰度怎样? 你的信号清晰度是[劣|差|可|良|优]。
QRL 你忙吗? 我很忙(或与 XX 很忙),请不要干扰。
QRM 你受到干扰吗? 我现在正受到[无|稍有|中等的|严重的|极端的]干扰。
QRN 你受到天电干扰吗? 我正受到[无|稍有|中等的|严重的|极端的]天电干扰。
QRO 要我增加发信机的功率吗? [请|不用]增加发信机功率。
QRP 要我减低发信机功率吗? [请|不用]减低发信机功率。
QRQ 要我发得快点吗? [请|不用]发得快点。
QRS 要我发得慢点吗? [请|不用]发得慢点。
QRT 要我停止拍发吗? [请|不用]停止拍发。
QRU 你有数据发给我吗? 我[有|没有]数据发给你。
QRV 你准备好用吗? 我[有|没有]准备完毕。
QRW 要我通知你正在用什么频率呼叫他吗? [请|不用]通知他我正在用XXX[KHz|MHz]呼叫他。
QRX 你什么再呼叫我? 我将在 XX 时刻呼叫你。
QRZ 谁在呼叫我? XX正用XX呼叫你。
QSA 我(或 XX)信号强度怎么样? 你的信号强度是[[1-5][1-9]]。
QSB 我的信号有衰落吗? 你的信号[有|没有]衰落。
QSD 我的电键发报有问题吗? 你的电键发报[有|没有]问题。
QSK 在你发信号中间能否收到我?如果能,我能插入你的发送吗? 在我发信号中间[能|不能]收到你,你[可以|不可以]插入我的发送。
QSL 你能承认收妥吗? 我[能|不能]承认收妥。
QSN 你在什么频率上吃到我(或 XX )吗? 我已在 XX [KHz|MHz]上吃到你(或 XX)。
QSO 你能否[直接|或必需经过中继]和 XX 通信? [可以|不可以]
QSP 你可否免费转发的 XX? [可以|不可以]
QSV 要我用 XX [KHz|MHz]拍发一连串的 V 字吗? 请用 XX [KHz|MHz] 拍发一连串的 V 字。
QSX 你将用 XX [KHz|MHz]收听 XX 吗? 我正用 XX [KHz|MHz] 收听 XX 。
QSY 要我改用别的频率拍发吗? [请|不用]改用别的频率拍发。
QSZ 要我将我一个[字|组]拍发一次以上吗? [需要|不需要]
QTH 你的坐标是? 我的坐标是经度 XX 纬度 YY。
QTR 现在的准确时间是? 现在的准确时间是 XXXX。
QTV 要我在 XX [KHz|MHz] 守听你吗? 请在 XX 时刻 XX [KHz|MHz] 守听我。

Over!

看我怎么优化 Windows XP

新单位里有一台 P3 的老机,安装了 Windows XP 操作系统和一大堆没有用的垃圾软件,例如金山杀毒软件、瑞星杀毒软件等等。本来性能就不高的机器是更慢了,几乎不能用。

为了让它能玩一些小游戏,对它进行了一些优化和安全处理,下面是具体的日志:
1. 首先把不需要的一些软件都删除了,如杀毒软件等等。
2. 除了 Administrator 用户,删除其它非系统用户。
3. 把所有的分区都转换成 NTFS。
4. 创建一个新的用户组,名为 Limited Users。
5. 创建一个新的用户,隶属于 Limited Users 和 Users,千万不要属于其它的用户组,因为这个用户将作为日常使用的用户。
6. 把安装了操作系统的磁盘(C:\)的 Limited Users 组权限设置成可读不可写。
7. 在其它所有磁盘里创建名为 vroot 的文件夹,把原有的文件全部移动到这个文件夹里。
8. 指定其它所有磁盘的 Limited Users 组权限为可读不可写;指定其中的 vroot 文件夹为可读、可写。 指定所有磁盘里的 Recycler 文件夹的 Everyone 组权限为可读、可写、可修改。
9. 清理开机自启动项目,注册表里和用户启动文件夹,不要忽略了 All Users。
10. 清理不需要的服务,如系统帮助等等。
11. 为各个用户设置密码, Administrator 用户的密码要安全。
12. 安装需要的软件,同时也要指定软件安装目录的权限,有些垃圾软件安装目录不可写还进行不了,这类软件也就只有在 Windows 操作系统里能出现。
13. 保护 IE 主页不被非法篡改,先到日常用户里设置 IE 主页为 http://www.heiher.info,再到管理用户里进行注册表程序,搜索 http://www.heiher.info 并改成你想设置的主页如 http://www.google.com,再修改这个表项的 Limited Users 组的权限为不可修改。下面去日常用户里修改看看吧,那是绝对修改不了的。
14. 最后还是通过用户权限和文件系统的权限去保护一些你私人的文件数据。

经过上述的一些处理后,进程数只有 12,启动后内存占用 89 MB。效果是不错的,相对安全,因为 Windows XP 的漏洞还是很多的,一些病毒通过漏洞提高自身权限就没有办法了。

有兴趣还可以找一些经常出现的病毒来进行试试,看看情况怎么样。我试了多数是报错退出,可能是想修改系统文件没有成功吧,哈哈。

另外还有一些问题,这些问题都是因为一些应用软件开发者的原因,例如腾讯的 Cross Fire 游戏就使用了一款“安全”模块,需要在游戏启动后控件键盘驱动程序,这样的应用程序在 Users 组里是无法正常运行的。还有一些应用软件在运行时需要在安装目录里创建新文件,这样的应用程序保护文件不方便。其它完全可以把这些文件写到 %HOMEDIRVE%%HOMEPATH%\Application Data\ 目录里从而避免这样的问题。

这个方法不可能绝对安全,但相对多数 Windows 用户的方法(例如安装杀毒软件、一些行为实时监控等等)很安全。防火墙还是很好的东西,有需要应该安装一款。

Over!