liuguangzhao's blog

跨平台下载软件的那些事

在国内windows一统天下的时代,讨论跨平台软件的开发的思想是不入流的,浪费才力物力人力,却无任何好处,反而由于竟争对手对windows平台的专注而可能超越自己.
不过现在情况有些复杂了,桌面操作系统不断向多元化方向发展,使用不同操作系统的用户逐渐均衡分布,大大提高对通用软件跨平台特性的要求.
呼声比较高的软件像IM,下载工具,在线视频等.
在几年前,我从中选择一个相对比较容易的下载工具,作为目标,但由于自己水平有限,时间有限,孤军作战,到现在也没有做出一个成熟的跨平台下载工具.今年实现一个跨平台命令行工具aria2c的UI项目,效果比较好,准备好好完善.并且还构思了一种方便的资源收集与集成方案,但工作生活时间紧张,成了半拉子项目.
偶尔有一天收到一个rss新闻,看到flashget出了linux版本,下载试用,运行无问题,界面简单,下载测试速度的确比较快,特别是通过P2SP资源搜索功能,对一些死链接,慢速链接相当好用.服了呀,虽然现在功能比较简单,如果继续发展,应该会成为与windows版本一样强大的工具的.
浏览了一下flashget linux版本论坛,发现有人也希望官方出命令行版本,或者提供库 (当然是闭源的),以便适应不同用户的需要.这个当然不错,如果官方也这两种形式,本人不才,愿意做一个qt界面的linux flashget,或者参与到其他基于flashget API的项目中,给喜欢用kde的人使用.如果不出,希望官方的能继续开发出更好更强的linux版flashget吧.我也继续开源版本下载工具的开发,给linux使用者多一个选择,自己也在能在空闲时间做点网络学习.

另外在im方面,TX的linux QQ估计为了占坑吧,已经停止出版本了,并且最后一个beta版本基本不能用,崩溃问题很严重.虽然有一个web版本,但缺点也有,偶尔才用用.

视频方面,曾经ppstream有一个版本,但一直没用成功,后来被官方通过协议屏蔽了,算是完了.这个方面目录还没有什么希望用上了.还得继续VM+windowsxp.

对有核心技术的官方来说,开发一个跨平台的核心模块应该比较容易,接下来界面部分,简洁更好,不用太复杂,反倒win平台这些程序的界面都搞的特别复杂.
继续支持跨平台通用软件的公司团体和个人,自己也多努力,做出一个成熟的跨平台通用软件.

SourceForge 2.0 beta 发布

in

http://sourceforge.net/blog/get-ready-for-a-whole-new-forge/

试用例:
http://sourceforge.net/adobe/

还需新申请项目才能用,有空试用下。

遇到一个奇怪的网络问题

in

连接到本地 localhost 网络不稳定,表现为telnet localhost 22, 随机出现connect timeout问题。
当然前提确定openssh的22端口没有问题,并且即登陆其他端口也有这个问题。
但是登陆其他外网,其他同网络的机器都没有这个问题,其他网络程序也没出现此问题。
所以,用到这种通信模式的本地程序都出现了问题,无法使用。
是路由设置问题?还是dns问题,还是什么问题呢。

路由如下,感觉是没有问题,
localhost ~ # route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.1.0 * 255.255.255.0 U 0 0 0 eth0
loopback localhost.local 255.0.0.0 UG 0 0 0 lo
default 192.168.1.1 0.0.0.0 UG 0 0 0 eth0
localhost ~ #

resove.conf如下,
localhost opera # more /etc/resolv.conf
domain domain
search domain

nameserver 8.8.8.8
localhost opera #

ifconfig结果:

localhost opera # ifconfig
eth0 Link encap:Ethernet HWaddr 00:24:7e:6f:f3:89
inet addr:192.168.1.110 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::224:7eff:fe6f:f389/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:83482 errors:0 dropped:0 overruns:0 frame:0
TX packets:72777 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:100389515 (95.7 MiB) TX bytes:7621328 (7.2 MiB)
Interrupt:20 Memory:fc200000-fc220000

lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:294 errors:0 dropped:0 overruns:0 frame:0
TX packets:294 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:21216 (20.7 KiB) TX bytes:21216 (20.7 KiB)

teredo Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
inet6 addr: 2001:0:53aa:64c:1404:b424:8ab0:9fd/32 Scope:Global
inet6 addr: fe80::ffff:ffff:ffff/64 Scope:Link
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1280 Metric:1
RX packets:24 errors:0 dropped:0 overruns:0 frame:0
TX packets:39 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:500
RX bytes:2928 (2.8 KiB) TX bytes:8883 (8.6 KiB)

wlan0 Link encap:Ethernet HWaddr 00:1e:65:a1:1c:7e
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)

localhost opera #

PS: 终于发现问题出在什么地方了,
发现如果关闭/etc/init.d/wicd后,这个问题消失,
现在的路由如下:
localhost ~ # route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.1.0 * 255.255.255.0 U 0 0 0 eth0
loopback localhost.local 255.0.0.0 UG 0 0 0 lo
default 192.168.1.1 0.0.0.0 UG 0 0 0 eth0
localhost ~ #
与原来的一样,但不会出现连接不上的问题。

PS2: 这样就是问题出的少点了,但依然没有完全解决,出问题比例基本1:4的概率。应该不会是rc内核的问题吧,到底问题出在哪呢。
换回2.6.34稳定内核,修改了/etc/hosts文件,注掉一行,
# 127.0.0.1 localhost.localdomain localhost
这么测试了几回,没有问题了。再试用一段时间。

I2P匿名网络研究

I2P 是一个匿名网络项目,它提供了一个简单的网络层供对身份敏感的程序进行安全的匿名通讯。I2P 网络是动态的分布式网络,它在设计上并不信任网络中的任何一方,其中的所有数据都经过多层加密。

很多程序可以使用 I2P ,其用途涉及 Email,P2P,IRC 聊天等。

1. 安装
用source安装,
ant pkg
java -jar install.jar

用二进制包安装,下载后直接运行:
java -jar i2pinstall.exe

2. 安装后开启的服务及端口:
7652:
7654:
7657: I2P路由控制台服务,web方式访问,http://127.0.0.1:7657/index.jsp
7658: 基于I2P网络的匿名web服务器
7659:
7660:
6668:
4444:
32000:
49680:

霍金的生平

in

  关键词:霍金病逝 霍金 霍金的资料 霍金资料 霍金病逝 霍金去世 霍金简介 霍金介绍 霍金时间简史 史蒂芬霍金 霍金的资料 霍金的故事 斯蒂芬霍金 霍金的成就 罗京病逝

  霍金获得奖项

  1、 1989年获得英国爵士荣誉称号

  2、 是英国皇家学会学员和美国科学院外籍院士

  3、 伦敦皇家天文学会的埃丁顿勋章

  4、 梵蒂冈教皇科学学会十一世勋章

  5、 霍普金斯奖

  6、 美国丹尼欧海涅曼奖

  7、 马克斯韦奖

  8、 英国皇家学会的休斯勋章

  9、 1978年获物理界最有威望的大奖—阿尔伯特·爱因斯坦奖

  10、与彭罗斯共同获得了1988年的沃尔夫物理奖

  11、1988年霍金的书《时间简史:从大爆炸到黑洞》获沃尔夫基金奖

  霍金的生平

  1942年 1月8日出生于英国的牛津。

  1950年 举家迁往圣奥尔本斯

  1959年 入英国牛津大学

  1962年 在牛津大学完成物理学学位课程,搬到剑桥大学攻读研究生,

  1963年 霍金被诊断患有运动神经元疾病。

  1965年 进入剑桥大学冈维尔和凯厄斯学院任研究员,被授予博士学位。他的研究表明:用来解释黑洞崩溃的数学方程式,也可以解释从一个点开始膨胀的宇宙。/与珍妮.怀尔德(简·瓦尔德)结婚

  1967年 长子罗伯特出生

  1969年 起任冈维尔和凯厄斯学院科学杰出成就研究员

  1970年 霍金研究黑洞的特性。他预言,来自黑洞(现在叫霍金辐射)的射线辐射及黑洞的表面积永远也不会减少。/女儿露西出生/开始使用轮椅

  1973年 首部著作《空时的大型结构》出版

  1974年 被选为英国皇家学会会员。他继续证明,黑洞有温度,黑洞发出热辐射,以及气化导致质量减少。

  1975—1976年间 获得伦敦皇家天文学会的埃丁顿勋章、梵蒂冈教皇科学学会十一世勋章、霍普金斯奖、美国丹尼欧海涅曼奖、马克斯韦奖和英国皇家学会的休斯勋章6项大奖

  1977年 被任命为剑桥大学引力物理学教授

  1978年 获世界理论物理研究的最高奖爱因斯坦奖

  1979年 次子蒂莫西出生/《广义相对论评述:纪念爱因斯坦百年诞辰》出版

  1980年 任剑桥大学数学鲁卡斯教授(艾萨克·牛顿曾任此职)。

  1981年 参加梵蒂冈宇宙学大会,宣布无边界构想/《超时空和超引力》出版/被授予大英帝国高级骑士

  1985年 在瑞士病倒/实行气管造口手术从而失去语言能力,使用带造音器的计算机1988年。

  1988年 出版《时间简史》,获沃尔夫基金奖,成为关于量子物理学与相对论最畅销的书。

  1989年 被授予大英帝国荣誉爵士

  1990年 与结婚25年之久的妻子简·怀尔德离婚。

  1991年 《时间简史》同名电影上映

  1993年 《“黑洞与婴儿宇宙”及其他论文》出版

  1995年 9月16日,与他的护士伊莱恩·梅森结婚

  1996年 至今继续在剑桥大学工作。

  2001年 10月又一部力作《果壳中的宇宙》出版发行

  2004年7月,霍金修正了自己原来的“黑洞悖论”观点错了,信息应该守恒。7月21日,在爱尔兰都柏林举行的“第17届国际广义相对论和万有引力大会”上。

  2007年 霍金与露西吉高佛尔德合著的儿童科幻小说《乔治通往宇宙的秘密钥匙》于9月6日率先在法国出版发行。这本书是霍金写的第一本儿童读物,霍金在书中向儿童解释了自己关于时间和宇宙方面的学说。

  后感

  霍金是本世纪享有国际盛誉的伟人之一,现在68岁,出生于伽利略逝世周年纪念日,剑桥大学应用数学及理论物理学系教授,当代最重要的广义相对论和宇宙论家。70年代他与彭罗斯一道证明了著名的奇性定理,为此他们共同获得了1988年的沃尔夫物理奖。他因此被誉为继爱因斯坦之后世界上最著名的科学思想家和最杰出的理论物理学家。他还证明了黑洞的面积定理。

  霍金的生平是非常富有传奇性的,在科学成就上,他是有史以来最杰出的科学家之一。他担任的职务是剑桥大学有史以来最为崇高地教授职务,那是牛顿和狄拉克担任过的卢卡逊数学教授。他拥有几个荣誉学位,是皇家学会会员。

  霍金教授是现代科普小说家,他的代表作是1988年撰写的《时间简史》,这是一篇优秀的天文科普小说。作者想象丰富,构思奇妙,语言优美,字字珠玑,更让人咋惊,世界之外,未来之变,是这样的神奇和美妙。这本书至今累计发行量已达2500万册,被译成近 40种语言。1992年耗资350万英镑的同名电影问世。霍金坚信关于宇宙的起源和生命的基本理念可以不用数学来表达,世人应当可以通过电影——这一视听媒介来了解他那深奥莫测的学说。本书是关于探索时间本质和宇宙最前沿的通俗读物,是一本当代有关宇宙科学思想最重要的经典著作,它改变了人类对宇宙的观念。本书一出版即在全世界引起巨大反响。《时间简史》对我们这些喜用言语表达甚于方程表达的读者而言是一本里程碑式的佳书。她长于一个对人类思想有接触贡献者之手,这是一本对知识无限追求之作,是对时空本质之谜不懈探讨之作。

  《时间简史续编》作为宇宙学无可争议的权威,霍金的研究成就和生平一直吸引着广大的读者,《时间简史续篇》是为想更多了解霍金教授生命及其学说的读者而编的。该书以坦白真挚的私人访谈形式,叙述了霍金教授的生平历程和研究工作,展现了在巨大的理论架构后面真实的“人”。该书不是一部寻常的口述历史,而是对二十世纪人类最伟大的头脑之一的极为感人又迷人的画像和描述。对于非专业读者,本书无疑是他们享受人类文明成果的机会和滋生宝贵灵感的源泉。

  《霍金讲演录——黑洞、婴儿宇宙及其他》,是由霍金1976-1992年间所写文章和演讲稿共13篇结集而成。讨论了虚时间、有黑洞引起的婴儿宇宙的诞生以及科学家寻求完全统一理论的努力,并对自由意志、生活价值和死亡作出了独到的见解。

  《时空本性》80年前广义相对论就以完整的数学形式表达出来,量子理论的基本原理在70年前也已出现,然而这两种整个物理学中最精确、最成功的理论能被统一在单独的量子引力中吗?世界上最著名的两位物理学家就此问题展开一场辩论。本书是基于霍金和彭罗斯在剑桥大学的6次演讲和最后辩论而成。

  《未来的魅力》本书以霍金预测宇宙今后十亿年前景开头,以唐·库比特最后的审判的领悟为结尾,介绍了预言的发展历程,及我们今天预测未来的方法。该书文字通俗易懂,作者在阐述自己观点的同时,还穿插解答了一些有趣的问题,读来饶有趣味。


kde 4.5 beta2安装中的几个小问题

in

昨天kde 4.5 beta2发布,在gentoo上开始安装该更新版本,虽然大多数包都顺利安装,但也遇到几个小问题。

首先,kttsd模块已经改名了,现在叫jovie。所以在从以前的版本升级时,总是无法找到kttsd模块的源代码。解决方法,emerge -Ca kttsd卸载旧的版本,将kttsd-4.4.85.ebuild改名为jovie-4.4.85.ebuild, 放在新创建的jovie目录,使用ebuild jovie-4.4.85.ebuild digest 生成签名文件Manifest。现在emerge jovie 安装即可。不过,虽然这样安装上了,但jovie现在无法正常注册服务,经常提示:找不到服务 kttsd未启动。

另外一个出现问题的是kdepim-runtime,这个包kde官方没有提供包,需要在trunk中svn://anonsvn.kde.org/home/kde/trunk/KDE/kdepim/runtime/获取代码,打包为kdepim-runtime-4.4.85.tar.bz2,重新给kdepim-runtime-4.4.85.ebuild更新签名文件Manifest。

kde-l10n没有提供该版本的ebuild, 只需要简单复制以前版本的ebuild, 下载kde-l10n相关的包文件,做下签名。

现在所有我需要的beta2包都可以正常升级了。

kde 4 有一个服务管理界面,现在移动到自启动管理了。

nullfxp原生64位windows 7支持的问题

in

现在64位硬件非常普遍,操作系统对64位硬件的支持也不断改进。现在的64位windows7已经运行的相当稳定,兼容性也不错。这种情况下,64位系统是现在的趋势,所以考虑nullfxp原生支持64位操作系统,而不是32位应用程序运行在64位操作系统上。

现在的情况是,编译的32位nullfxp既能运行于32位操作系统,又可运行于64位系统,并且运行状态良好,没有什么差别。但是,编译的64位nullfxp却无法在64位系统上正常运行,程序崩溃比较频繁,所有功能几乎无法使用。
在linux系统,32位和64位系统上都运行良好。

为了能让64位编译的nullfxp正常运行于64位操作系统中,需要对现有的代码做些修改,目前出问题的地方还没有找到,这个移植的工作量还未知,需要进一步深入的测试,找到问题所在才能确定,甚至有可能重写整个程序。现在代码量粗略统计已经超过3万行,重写的工作量相当大。

专门为windows 64位版本的nullfxp创建新的分支,在这再找一问题出在什么地方。

A1, 今天在测试中发现,即使Qt自带的一些示例,使用64位编译,运行时也会出现崩溃的问题。这么说qt 在64位windows上运行也有些问题,现在在windows 64位上使用64位qt还不成熟。

nullfxp 新功能:文件管理器导航栏

in

最近有时间,为nullfxp添加了许多新功能,界面上的上主要改变是,添加一个与文件管理器类似的管理功能,如地址栏,前进,后退,向上导航按钮。
另一个是目录视图模式设置功能,可以修改目录视图的大小,适应不同环境应用。

技术总结,为显示不同视图模式,使用Qt中的MVC架构,不同视图模式下共享model数据,共享QSelectionModel相关知识。

nullfxp最新界面抓图,

八款最佳的Linux自由视频编辑软件

in
视频编辑是编辑动态视频画面的程序。在这个个人视频时代,视频编缉逐渐成为桌面的一项核心功能,流行的视频编辑软件也越来越多。过去,Linux视频编辑大大落后于其它流行操作系统。现在情况已经有很大的改善,部分是拜多媒体开发框架的进步所赐,如GStreamer和MLT。此外Linux视频编辑的多功能性也明显提高。Linux现在是编辑视频的优秀平台。linuxlinks的这篇文章编辑了八款最佳的Linux自由视频编辑软件,"包括:KDE桌面的非线性视频编辑软件Kdenlive;GNOME桌面的非线性编辑软件OpenShot;非线性数字录像编辑器Kino;捕捉、合成和音频视频编辑软件Cinelerra;易于使用但功能强大的视频编辑系统LiVES

Kdenlive Non-linear video editor for KDE
OpenShot Non-linear editor for GNOME, built with Python, GTK, and the MLT Framework
Kino Non-linear DV editor
Cinelerra 3 main functions: capturing, compositing, and editing audio/video
LiVES Video Editing System designed to be simple to use, yet powerful
PiTiVi Non-linear audio/video editor using GStreamer
Open Movie Editor Non-linear video editor designed for basic movie making capabilities
Avidemux Designed for simple cutting, filtering and encoding tasks

在Qt4中使用QPersistentModelIndex传递QModelIndex

in

在Qt4的model/view架构中,用的非常多的是QModelIndex,但这个类是动态的,可以说不可以传递的,因为随着view的变化,相同结点的QModelIndex也可能不同,非常容易失效,甚至造成读写数据错误的问题。
Qt4中还提供一个QPersistentModelIndex类,说明中这个类可以存储作为结点记录,并且不会因为model的变化而变化,应该也可以当作参数传递。
测试其中nullfxp中试用是否可以。

假如在一个View中的点击事件,点击之后异步更新当前点击的结点,
那么就需要在更新返回的时候正确查找到这个结点。
如果把这个结点的普通QModelIndex传递给异步更新处理器,则返回的时候程序行为 无法预料,
因为model中其他数据可能发生变化,而这个QModelIndex已经失效了,找不到原来的结点,或者找到的结点根本就不是原来结点。

这时候借助QPersistentModelIndex实现该功能,把当前的QModelIndex转换为QPersistentModelIndex:
QPersistentModelINdex *persisIndex = new QPersistentModelIndex(index);

然后这个persisIndex可以当作普通指针传递到更新处理器,更新完成返回后使用这个实例查找原来的结点。

或者可以不使用指针,直接使用引用,
QPersistentModelIndex persisIndex = QPersistentModelIndex(index);
这样在传递存储的时候有大量的实例拷贝,有一些内存上的动态变化开销。
前者则需要自己管理对象生命期,直到用完delete。

QPersistentModelIndex提供的方法,
persisIndex->parent(); 取得结点的父结点的QModelIndex, 这是在本语句执行时最新的view的Index,使用这个值操作不会导致view/model混乱异常。
persisIndex->row(); 结点所在行,也是最新的位置。
persisIndex->column(); 结点所在列,也是最新的位置。

如有需要,代码实现在nullfxp项目中,通过svn访问nullfxp项目源代码可找到可运行的实例。

使用本方法解决前面 http://www.qtchina.net/?q=node/442 中提到的一个bug。

Syndicate content