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

GCC 4.9.0 发布,提升 C++11 和 C++14 特性

GCC 4.9.0 发布,此版本是个主要版本更新,包括了 GCC 4.8.x 系列和之前的 GCC 版本都没有的新特性,新特性非常之多,详细内容请看发行说明。

此版本已提供二进制包下载,镜像下载,FTP 下载。

文章转载自:开源中国社区 [http://www.oschina.net]
本文标题:GCC 4.9.0 发布,提升 C++11 和 C++14 特性
本文地址:http://www.oschina.net/news/51084/gcc-4-9-0

Category:

程序运行时动态修改进程名

在做平台的过程中,碰到一个可能的需要,平台服务的的进程名一般都不变的,
如果需要动态在外部监控进程的执行状态,比如程序正在执行什么功能,
也许可以通过动态修改进程的名字实现,可以把正在执行的功能做个摘要放在进程名字中。

在linux上,有一个系统调用prctl,这是一个综合性的函数,可以实现一些进程的控制功能。
动态修改进程名的功能也就是在prctl函数。

来看看prctl的函数原型,

NAME
prctl - operations on a process

SYNOPSIS

沉浸式学 Git

沉浸式学 Git 是一份强调通过实践来掌握 Git 基础用法的指南。 本书包含 52 个实验,这些实验经过精心设计,篇幅皆十分短小, 只需几分钟时间便可完成。对于想要快速学习 Git 的朋友而言, 这是一本不可多得的好书。

本书原作者为 Ruby 编程语言大师 Jim Weirich,我利用业余时间 翻译完成。

本书许可为 Creative Commons, Attribution-NonCommercial-ShareAlike License。
在线阅读:http://igit.linuxtoy.org/index.html
本书源码:https://github.com/xuxiaodong/gitimmersion

若有任何问题,欢迎反馈。

Category:

快速php json扩展jsond

jsond是最近发现的一个解码速度比php自带的json扩展速度快的扩展。
对于比较长的json串解码其优势特别明显。

另一个非常好的特点是功能上与php自带的扩展功能完全兼容。
不过函数名与扩展名使用是使用的前缀jsond_xxx,
这一点与php自带扩展稍微有些区别。

如果希望替代php自带的扩展,还需要对这个扩展做一点修改。
即使不改这扩展的代码,在代码中兼容使用这个扩展也非常方便。

而对于当前正在做的平台化产品,在代码层做兼容代价比较大,
需要所有项目都注意这一点,非常不方便。
目前已经通过修改,无论在扩展名和使用上都与json扩展兼容了。

jsond扩展主页:https://github.com/bukka/php-jsond

Category:

tcpcoh: tcpcopy over http

tcpcoh,正如标题所示,是一种基于http的tcpcopy功能。
其流程为,某tcp服务程序,可以被客户端程序通过http的方式访问,
客户端与该tcp服务之间没有直接连接,
而是通过tcpcoh实现模拟tcpcopy功能,在客户端与服务器端交换tcp包。
这种的方式优点是,tcpcoh不需要理解基于tcp的服务协议,
因此从理论上说,tcpcoh支持所有的tcp协议服务程序。

tcpcoh网络架构,

使用NGINX+PHP实现comet服务的nginx配置

正常情况下,nginx为了最大化优化其负载能力,
大量使用缓存技术,比如缓存http响应内容直到缓冲区满再输出,可以最大化提高网络吞吐量。
在nginx连接fastcgi时,也使用相同的缓存技术。
但是,对于comet来说,缓存只能让comet的传输信息延迟更大,甚至可能收不信息。

在现在的nginx版本中,提供了一些参数,可以优化这种应用场景。

一般comet的实现,需要尽量关闭不需要的所有缓存,在无法关闭的时候减小缓冲区大小。
还需要尽量能保持连接跟踪,以便能在有信息时及时响应。

这里说明的是使用php fastcgi实现简单的comet服务端的情况。
具体在nginx中,配置需要注意这些参数,
fastcgi_keep_conn on; # < solution
proxy_buffering off;
gzip off;
fastcgi_buffer_size 100;
fastcgi_buffers 2 100;
fastcgi_busy_buffers_size 100;

Category:

通过http实现简单的远程shell访问代理

当机器处理不同局域网时,如果希望能够互通,一种常用的也比较可靠的方式是使用vpn。
如果是自己搭建私有vpn,则需要一台可控的公网IP服务器。
在没有这些资源的情况下,希望机器的互通比较困难。

在此,给出一种并非完全的互通方式,可以实现单向的远程shell命令执行方式。
这种方式能执行另一局域网中机器的命令,实现简单的类似远程登陆管理的功能。
这就是使用http实现的远程shell访问代理。

实现逻辑为,
在一台有公网访问的http服务器上安装一个像php一类的脚本程序,
该脚本程序分服务端模式与客户端模式。
服务模式下,脚本程序不断轮循命令记录数据库表,查找需要远程执行的下一条命令记录,
并把查找到的命令记录依次输出到访问该脚本的客户端组件。
客户端模式下,脚本程序不断轮循命令响应数据库表,查找需要返回的已经执行完的下一条命令行输出,
并把查找到的命令行输出记录输出到访问该脚本的客户端组件。

fastcgi客户端PHP语言实现

在一个项目中,希望使用php直接与PHP-FPM进程通信,
跳过nginx代理,减少一点中间过程的效率损耗,
同时,更重要的是把PHP-FPM当作一个PHP进程池使用,
不要受到关于nginx的超时、缓冲设置的影响,让不同处理程序之间通信更直接,
特意使用PHP语言编写了一个fastcgi客户端类,实现协议的打包、发送与接收工作。

在经过一段时间的完善之后,确定这种方式非常适用我们的需求场景,
花了一些时间,重新使用C语言编写了一个中间代理服务,
并集成了一个C版本的fastcgi客户端实现,现在已经不再需要这个PHP版本的了。

现张贴在此,给有兴趣的朋友一个示例,给需要的朋友当作参考,
在实现fastcgi类的过程中,总结下来,需要注意的一些点,
对二进制数据包的封装,像处理C语言中的不同长度的整数,字符串在PHP语言中的处理方式。
对C语言中的变长结构体类型的数据结构,在PHP中不太好表达,需要使用比较原始的分支逻辑来实现,
还可以了解网络协议的封闭数据包,解析数据包的基本模式。

Category:

第二次机器时代

安德鲁•迈克菲(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:

页面

订阅 www.qtchina.tk RSS


Main menu 2

by Dr. Radut