Jump to Navigation

Welcome!

  NullGet是使用Qt编写的,运行于多种平台的GUI界面的多线程多协议断点续传下载软件。  使用NullGet可以轻松下载网络的多种协议的数据流,加快下载速度,支持断点续传,目前支持的协议有:HTTP,HTTPS,FTP,MMS,RTSP。而且它能运行于当前大多数流行的操作系统,包括Windows,Linux,FreeBSD等。     下载NullGet

  NullFXP 是一个基于Qt 4 开发的SFTP/FTP 客户端软件。目前已经实现基本的多文件上下传功能。详细信息查看本站项目说明页面。     下载nullfxp

  我们的目标是打造一个开源的,跨平台的,多线程的,运行稳定的下载软件,另一个就是整理Qt库开发跨平台GUI应用程序的相关资料。欢迎各位朋友对本站开源项目提供意见及建议,欢迎有兴趣的朋友参与本站开源项目,请联系 drswinghead at gmail dot com

第二次机器时代

安德鲁•迈克菲(Andrew McAfee)和埃里克•布林约尔松(Erik Brynjolfsson)的著作《第二次机器时代:智慧技术时代的工作、进步与繁荣》(The Second Machine Age: Work, Progress and Prosperity In a Time of Brilliant Technologies)是最近很火的一本有关数字经济的新书。它是首批严肃讨论我们的数字经济中的基本问题的书籍之一:人类在人工智能、3D打印机和互联网的年代将扮演什么样的经济角色呢?

迈克菲和布林约尔松承认我们身处“发展惊人”的年代,不过他们也坦言我们的数字经济越来越多地由“胜者为王经济学”所构成,这会挖空中产阶级,致使很多人落在时代的后面。

那我们要做些什么呢?

迈克菲和布林约尔松都是麻省理工学院的经济学教授,这可能并不令人意外。他们指出,我们得重温我们的经济学101教科书来学习如何针对第二次机器时代重新装备自己。他们说,教育是关键,不管是学习的内容还是学习的方式都很重要。互联网在可能夺走我们的工作的同时,也充当着学习网络,给予我们机会去改造自己。

Category:

使用zram优化linux交换分区

zram从名字就可能看出,它是linux内核中的一种内存压缩技术。
zram一个非常适用的地方是把它用于基于压缩内存的linux交换分区。

针对内存比较小的机器,比如内存在2G以内的机器,使用效果非常明显。
其原理是使用CPU的压缩功能变相地让系统有更多地内存可用,。
当然,这需要一部分CPU时间来处理内存地压缩,对于CPU相对比较好的机器,则非常适用。

像我在用的一台电脑,CPU是i5的,但内存是2G,还有512M内存分给了集成显卡,
正常使用的情况下,非常难用,这种笔记本电脑配置非常不合理。
不同自己的电脑,也无法升级内存,则使用这种技术,可以改进一点硬件配置的不合理。

zram一般使用可用物理内存的20-25%,这是比较推荐地值。
假设现有1.5G内存可用,拿出来25%的内存,也就是375M,还剩下1125M内存。
而这375M内存,在压缩率为70%的情况下,可以当作1250M的内存使用。
剩余内存与这些压缩内存相加,大概有1125+1250=2375M了。
可用内存从原来的1.5G变到了2.3G左右,效高还算是比较明显的。

内核中类似的技术,cleancache。

参考资料:

Category:

projecttox项目介绍

projecttox旨在实现一个能够替代skype的开源支持视频通话的即时通信IM,
它的目标是简单易用,消息全程加密,保证通信与通话的安全。

在技术上,与skype类似地可大概分为核心部分与界面UI部分。
核心部分实现了主要的网络通信,网络穿透功能,加密安全功能,视频编码功能。
界面部分是基于核心的功能,使用Qt开发,比较容易地实现跨平台功能。

网络部分最开始使用了UDP协议,为了能支持简便的网络穿透功能。
最近,开发工程师正在添加TCP的支持。
可能将来projecttox也会像skype一样,两种网络协议混用。
在不同的功能上使用不同的网络协议,简化代码,提高可靠性与可用性。

目前在网络穿透功能上,核心部分已经实现了非对称防火墙打洞功能,
对称防火墙的打洞正在做理论研究与测试,相信不久之后也能够加入到核心代码。

在分布式网络方面,使用的是类似bittorrent的分布式DHT网络结构,这一点也与skype类似。
但相比skype来说更是一种无中心结点的分布式网络环境。

Category:

C++标准的发展历史

C++从1979年诞生开始,到2010年以前,一共经历了两个标准版本,并且两个标准差别并不大,时间跨度约30年。

自从2010年之后,随着多种不同类型的新型语言的推出,包括灵活的解释型语言和函数式语言,

C++借着对新语言特性的需求,又好像进入了另一个阶段的飞速发展时期。

C++标准委员会,刚发布了C++11的标准,加入了大量的语言特性,

现在已经提出了C++14标准,并且即将通过委员会讨论。

再往后,可能还会有C++17标准。

C++语言更复杂,更灵活,希望也更好用。

C++的完整历史,

Category:

gitlab版本升级注意事项

gitlab项目非常活跃,版本升级不可避免。

不过gitlab的版本升级做的比较好了,手册文档也比较全面。

总的来说,就是这么几步,

1、备份当前使用的版本
2、升级代码
3、升级数据库
4、更新缓存、
5、升级后的检测

要注意的是最好根据说明文档,并且要执行经常性的升级,否则跨大版本可能比较麻烦。

还有头一次升级只升级了代码,重启后页面排版乱了,更新缓存后才恢复。

详细信息请看:https://github.com/gitlabhq/gitlabhq/tree/master/doc/update

gmagick图片处理优化打包

在做网站的图片处理项目时,碰到系统自带的graphicmagick库与效率比较低,
导致服务器负载偶尔达到 300-500的值,这种状态服务基本不用了。
而这个图片处理系统设计的是实时图片处理,前端加varnish缓存的模式。

一旦达到这个范围的负载Load,整个服务基本处于不可用状态,
大概有70-80%的图片处理请求得不到处理,在页面上显示白页了。

这是由于在默认情况下,全部使用CPU的x86指令处理图片,不但耗CPU,而且处理速度还慢。

经过一些理论研究与摸索测试,找到了一个能够大幅优化图片处理效率的方式。

这个优化方式,着重在三点,
1)使用新版本的包,
2)使用CPU的针对图片处理的高级汇编指令
3) 使用openmp并行处理

这里主要使用了libjpeg-turbo这个处理库,这个库尽可能使用了硬件支持的专门处理图片视频的CPU扩展指令,所以效率非常高。

据其官方测试这个库处理图片的效率是系统默认libjpeg的3-5倍。

根据自己的实现项目测试,这个优化效果也非常明显。

关于这个库的详细说明详见其官方网站。

工作重点与IBM发展规化之间的关系

在工作过程,如果没有一个重点,则工作上会被当前环境左右,
虽然靠工作推动的学习发展过程能够比较好的适应当前的职业需要,
但是长此以往,自己的职业发展可能遇到问题。

从蓝色巨人IBM的发展规化,看本人的职业发展,觉得有些可以类比的。
IBM在最近10年内,从原先的包罗万象的全能型公司,逐渐向两个方向发展。

第一个是服务型/解决方案型软实力方向,依靠这种宏大的理念与思想主导行业的发展。
像IBM的解决方案,大家应该比较了解,给出一个需求,IBM从全局来掌握设计,
体现出强大的先进的软实力。
曾经IBM为美国某个城市设计了“智慧城市”的城市规化,当听到像这种概念时,
不得不佩服IBM超载当前现状的长远眼光和智慧。

第二个是高精尖的科技研发,依靠先进的科技引领科技潮流,占领科技市场。
像目前科技市场已经成熟但缺陷比较大的存储技术,让存储效率更高,存储密度更大的需求。
在这一上一下,也就是全局与一点之间,还有一类不上不下的市场,
像普通的开发与生产,已经被IBM抛出去了。
如PC的设计与制造,已经卖给了中国的联想公司。
部分中端软件的开发,已经外包到中国的软件公司和印度的软件公司了。

Category:

simhash(局部敏感哈希)示例演示

simhash(局部敏感哈希)示例演示
海明哈希算法

新窗口演示:http://qtcnet.duapp.com/demos/simhash.php

代码服务器与测试机自动部署

  在前一节中,讨论了代码的自动同步几种方式的原理与实现。
  本节中,对开发机环境整体的代码存储与自动部署作个介绍。

Category:

PHP的PDO遇到MySql has gone away的解决方法

在MySQL特定的数据库参数配置的情况下,在一个超时的连接上调用任意的mysql函数,

会导致PHP的PDO扩展报"MySQL has gone away"警告,导致程序无法继续执行。

在使用多种PHP层的解决方案后,依旧无法避免这一问题的出现。

原因在于PDO架构采用了连接对象缓存机制,在使用相同的dsn串连接数据库时,

PDO会从连接池对象中取出有相同dsn串的连接,问题就出在这个地方。

当该连接出现了"MySQL has gone away"之后,PDO并不知道这一情况,

PDO连接对象仍旧在PDO的连接池中。

下次即使在PHP层检测到这一问题,并重试连接,PDO却返回之前报了错的连接。

问题的原因查找到了,接下来就是寻找解决方法。

由于PDO没有提供关闭连接的方法,而是依靠PHP本身的引用计数与垃圾回收机制关闭连接,

在大多数情况下这都没有问题,但这时候这种机制就略显无力了。

经过多次实践修改测试,总结出来以下两种方式,

页面

订阅 www.qtchina.tk RSS


Main menu 2

by Dr. Radut