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

shadowsocks安装,portable化

sss

配置文件:

创建toxcore初始节点与快速测试

使用正式的toxcore网络,目前速度上还有些慢,包括连接到网络上,以及添加好友等操作。
可能是因为toxcore的节点还不是那么多,DHT程序上也优化的不够吧。

可以使用一种简单的方式,实现一个快速的toxcore网络,
用这个小网络做测试,然后再加入到正式的toxcore网络测试。

建立一个自己的toxcore网络,
首先要启动一个初始节点,在toxcore源码树中other/bootstrap_daemon/目录中,
编译出tox-bootstrapd程序,配置该目录中的示例配置文件,启动命令,
tox-bootstrapd tox-bootstrapd.conf

注意,如果要把这个节点作为一个新的toxcore网络的初始节点,
需要把bootstrap_nodes=()一段置空,或者删掉这一段。

skype的本地消息存储是明文的

skype的本地消息存储在sqlite数据库中,并且数据库没有任何加密处理,
包括windows/linux/MacOS系统上的版本,以及移动端版本。

只要使用任何的sqlite工具,都可以打开.Skype目录下的*.db文件查看。

In Linux: /home/user/.Skype/skypename/
In Mac OS X: /Users/user/Library/Application Support/Skype/skypeuser
In Windows : C:\Users\Username\AppData\Roaming\Skype\skype.id

查看工具:https://github.com/suurjaak/Skyperious

原来以安全著称的skype,被收购后也成这样了啊。
要是这样的话还不如qq呢,直少有个加密存储。

115syncd项目介绍

115网盘是个比较好用的网盘,提供比较大的磁盘容量。

该115syncd项目主要提供以下功能,
自动模拟登陆115网盘api。
以服务模式运行。
指定本地目录以及对应的115网盘目录。
监控指定目录,如有目录或者文件发生变化,则自动上传到115网盘对应的目录。
指定目录对可配置多个。
本地目录与网盘目录能够保持一到,在缺少目录时自动创建。
支持任务队列式并发上传控制,默认3个并发上传。
文件上传采用POST协议方式,有上传文件大小限制。
能够自动过滤掉一些指定的临时文件。
能够实现仅上传模式功能,即本地删除而网盘不删除,这样保持本地空间远小于网盘空间。
反复修改重复上传的文件,根据哈希去重,只保留最近一次上传的文件。

该实现使用PyQt5,在linux系统上安装使用都非常简便。
项目地址:https://github.com/kitech/115syncd

ToxCore 客户端基本处理流程图

每一个使用toxcore的程序,都可以算是一个toxcore客户端程序。
而这个客户端大都有一个共有的处理流程,以下提供一个简单流程图,仅供参考:

ToxCore API本次升级总结

在2015年早些时候,ToxCore完成了一次比较大的升级API升级,影响到所有的使用原API的程序。
最近又拾起来了toxcore项目,在些基础上做些项目与研究,在升级API的过程中整理了一下,公布在之儿。如有不完善不正确之处,请指正。

这次api从外面看主要是命名的规范化的提升,其中也不乏大的改动,像文件API部分,有API的增删。

Qt5的ruby语言绑定实现系列:JIT ExecuteEngine与IR Module重用优化

# JIT ExecuteEngine与IR Module重用优化

在项目的原型阶段,为了代码的简洁与直接,很多地方都使用了新实例实现相关功能。
包括JIT ExecuteEngine和IR Module两个大模块。

这种方式由于大量使用了new操作,会浪费大量的内存与CPU资源。
本次改进的目的也是针对这两方面的,以提高现阶段该项目的可用性。

本文从优化的整体架构说明,到每个分模块一一介绍,到最后简单的测试,
希望能够对本次优化做到清晰说明。

###

概要

为什么提高效率,优化内存使用,可行的方式就是资源的重用。

经过项目原型实现的分析,基本整理出来两个关系性比较强,可以重用的模块:
第一个是自动生成的IR代码的重用。
第二个是JIT执行引擎的重用。

以下所有的改进都是围绕这两个部分进行的。

###

Category:

实现Qt的go语言绑定的两种方式

# 实现Qt的go语言绑定的两种方式

Qt是一个成熟优秀的C++ GUI开发库,

###

第一种方式

自动生成完整的cgo代码的方式。

基本原理,
使用一工具扫描使用了qt的go源代码,根据调用特征,生成完整的cgo封装代码。
生成的代码放在项目的目录树中,编译整个项目即可。

这种方式比较直接,编译出来的程序使用cgo的C包直接调用qt类和方法。
这中间完全没有动态处理过程,编译出来的最终程序效率还会比较好。
一个坏处生成的代码量还是比较大的,生成的代码也比较复杂,好在一个项目中可能用到的qt类和方法数量有限,应该可行。
另一个是由于注入了cgo,需要执行C++编译过程,速度比较慢,有点与go追求的极速编译冲突了。

###

第二种方式

使用JIT在类虚拟机ruby-jit-qt后端上即时执行方式。

基本原理,
使用一工具扫描使用了qt的go源代码,根据调用特征,生成调用JIT后端的cgo封装代码。
生成的代码放在项目的目录树中,编译整个项目即可。

Category:

Qt库的ruby语言绑定的探索与实现过程笔记

# Qt库的ruby语言绑定的探索与实现过程笔记

一直一来我经常使用Qt做一些简单的linux桌面工具软件,也算是对Qt库比较熟悉了。
而真正开始搞Qt库的ruby语言的绑定,出于当时觉得ruby是个比较有意思的编程语言,并开始接触学习ruby语言。
虽然在ruby最热门的时期作为web快速开发框架面世的,实现上我认为ruby也是一种非常不错的系统脚本语言。

在不断深入的学习ruby语言的过程中,越来越希望所有的开发工作都使用ruby语言实现,
并且这不只是希望,也尽可能的使用ruby完成一些开发工作。

不过,在这时,遇到一个需要更复杂的项目,希望能为这项目开发GUI界面功能。
经过一番网上搜索,也发现其实已经有qt的ruby语言绑定相关库了,
像kde项目中的rubyqt,还有qtbindings这个gem包,这两个包也比较成熟稳定了。
在试用的过程中了解到这两个包其实是同源的,并且都只支持Qt4版本。

Category:

Qt5的ruby语言绑定实现系列: Clang AST 树遍历优化

目前要实现查找AST树中匹配方法或者函数symbol符号名字的Decl,通过遍历AST树方式实现。
但是,现在这个方式耗时很多,占用整个过程的50%时间,希望能在这个点上优化掉接近一半的时间。

以下就这个功能特点,分析整理可能的优化机制。

虽然所有是在整个AST树中,但实际不需要在整个树的根开始查找,而是从树的一个节点开始。
遍历过程,可能要加入新的新的结点。

实现上,可以看作一个森林数据结构,初始状态时,森林只有一个根节点。
执行过程中,遍历遇到另个函数声明,如果在这次调用中需要,则需要把这个节点加入到森林中,作为森林的一个新的根节点。

根据以上分析,实现执行会有回溯过程,并且回溯时的节点也变化了。
可以暂时把这种方式叫做回溯遍历方法。

考虑到这个过程,只需要关注inline的方法或者函数,可以不断进行深度遍历,
在整个遍历路径上遇符合条件的节点,回调执行相应的处理函数。
如果遍历方式没有问题的话,应该能够一次遍历完成所有的处理工作。
暂时把这种方式叫做单次扩展遍历方法。

分析完功能需求和可能的方式,接下来分析clang提供的遍历相关功能。

頁面

訂閱 www.qtchina.tk RSS


Main menu 2

by Dr. Radut