在gemfield的《从pthread到QThread》一文中我们了解了线程的基本使用,但是有一大部分的内容当时说要放到这片文章里讨论,那就是线程的同步问题。关于这个问题,gemfield在《从进 程到线程》中有一个比喻,有必要重新放在下面温习下: 继续阅读
作者归档:gemfield
从pthread 到QThread
使用线程技术进行应用编程的意义在gemfield的文章《从进程到线程》中已经介绍过了,我们就直奔主题:Linux上的线程开发以及Qt对线程的封装(Linux平台部分)。Linux上的线程API使用的是pthread库,我们来粗略认识下pthread。
从进程到线程
首先声明,gemfield本文以Linux为基础,所涉及到的线程概念以Linux为准。避免对于windows下的你产生困扰。
在《从程序到进程》一文中,我们知道了进程在内核中是以一个task_struct结构来描述和维护的,那么,我们编程中使用的线程概念,在内核中是怎么维护的呢?和进程有什么区别? 继续阅读
从内存(RAM)到寻址(Address)
第一部分:分段
CPU在工作的时候肯定是在一个不断地寻找内存地址的习惯中度过的。它要处理的数据、它需要调用的指令,都是在别处的内存里放着,不可能在ALU中放下,事实上也放不下,就算放下了也还得重新编写门牌号用来寻址数据和指令。呵呵,和绕口令似的。
继续阅读
CivilNet的2012
每年从元旦到除夕的这段时间,都是gemfield进行总结和反思的时间。这几乎都快成为一个传统了。今天gemfield要说的,是CivilNet在2012年的一些计划。作为提升CivilNet透明度的一部分,这篇文章可以算作是CivilNet进入2012的宣言。
从程序到进程
本文以《从代码到可执行文件》为基础,阅读本文前确保你熟悉了《从代码到可执行文件》中提到的概念,本文中的示例程序仍是《从代码到可执行文件》中的gemfield.c。代码如下: 继续阅读
从代码到可执行文件
gemfield本文可能对你的编码能力不会产生影响,也可能对提高你的社会地位起不到任何帮助,但世界上总有一些事务是为改变你的世界观而诞生的——就像gemfield本文《从代码到可执行文件》 。
塞罕坝上欢动的精灵
基于Qt QUICK的SYSZUXsame
SYSZUXsame游戏就是基于QtSdk中Demos下的游戏:samegame。之所以将samegame在gemfield本文中命名为SYSZUXsame,是因为其添加了SYSZUX提供的网络服务,添加了QML webkit的示例,并且在gemfield的未来文章中,还会将其中的javascript逻辑替换为c++逻辑。这样不会带给你混淆。 继续阅读
Qt之年
要使用Qt为N9开发应用程序,我们最好对Qt有一个全面的了解。在gmefield这里,Qt可以划分为6个时代:
1、trolltech时代的Qt;
2、Qt被KDE的创建者Matthias Ettrich选为底层开发库;
3、 发布Qt/Embedded后的Qt;
3、NOKIA收购后的Qt;
4、将NOKIA Qt SDK和Qt SDK合并之后的Qt;
5、推出QUICK后的Qt;
6、2012年的Qt 5 (新的社区治理模型之下)。
继续阅读
使用QtSdk为N9 harmattan开发程序
在N9上市的这一个月里,CivilNet社区已经陆续买入了3台N9,部分原因是CivilNet社区对Qt社区的支持,当然了,另外的原因是因为N9确实漂亮。作为CivilNet对Qt社区提供支持的证据之一,就是gemfield本文了。
N9可以说是首款真正的Qt powered phone。要在N9上开发程序,有很多环境和机制,但最为强大,也是诺基亚官方推荐的开发平台,就是Qt Sdk。因为CivilNet Blog 2012发布在即,gemfield本文使用了很少的插图,以减轻2012年gemfield博客迁移的难度和工作量。所以,阅读此文将需要更多的耐心,如果有任何疑问,可以在http://civilnet.cn/qt上提问。
继续阅读
N9 Harmattan的文件系统
在《gemfield的N9》一文中提到了Harmattan并不是meego系统,本文将要阐述的文件系统也佐证了这一点。Harmattan的文件系统遵循了标准的linux并且作了自己的一点扩展。
N9的Harmattan系统一共有三个分区,如下(可以在N9终端下使用df命令查看):
继续阅读
Gemfield的N9
gemfield最终下定决心要将诺基亚N9购入,是在今年的五月份,比埃诺普在新加坡connection大会上发布N9还要早一个月。得益于CivilNet社区对于硬件设备和Qt的关注,各种曝光N9的帖子早已层出不穷。 继续阅读
你好,G币
世界上最神奇的魔术从不是那些盛大舞台上表演的“分身术”或者“无中生有”之类的哗众取宠,而是东西在你手上,你抱着、掖着、惦着、数着、看着,它被你紧攥在手里,被你紧盯在眼里,它千真万确的触手可及,然而它又悄悄消失了。它是世界上最无耻的魔术,它是世界上最赤裸的抢劫,它是世界上最伪善的残忍,它是世界上最肮脏的阴谋,它是货币发行。
继续阅读
Qt用硬件加速来显示图形
原本这周gemfield的主要任务是使用Qt程序写一些open GL ES的程序,然后移植到SYSZUX PAD上。但也是从这会儿意识到Qt并没有包含GLES/gl.h头文件,虽然从civilnet.cn/bbs上可以下载到该头文件,但是它对应的库文件是整合到QtopenGL模块里了吗,又是哪个版本的Qt for Embedded linux呢?gemfield深陷泥淖之中。无奈之余,就看到了TomCooksey的一篇文章,将翻译过来放在这里慢慢研究吧。
继续阅读
从char到QChar
char类型是c/c++中内置的类型,描述了1个字节的内存信息的解析。比如:
char gemfield=’g’;
那么在由gemfield标记的这块内存的大小就是1个字节,信息就是01100111,8位。
继续阅读
从PhotoShop到QML
Photoshop在从8.0到cs 4的发展中对脚本的支持越来完善,而致力于为移动平台打造更流畅、更易于开发的Qt新框架——QtQuick也日渐成熟。而QtQuick的核心之一就是QML语言。至此,gemfield本文题目中的两个名词全都出现了。下面gemfield详细说说。
继续阅读
从QTimer到晶振
Qt的QTimer是个非常受gemfield欢迎的定时器类,配合Qt的信号槽系统和事件循环系统,gemfield可以简洁的、自由的、肆意的展开时间轴上的一些操作,游刃有余。正如下面代码片段展示的这样:
继续阅读
Qt使用mysql
Qt sql模块对数据库提供了较为完善的封装,并且Qt支持绝大多数主流的数据库,就连CivilNet社区的客户端SYSZUXcn也大量使用了Qt sql技术(mysql)。gemfield本文的目的就是提供一个Qt使用mysql数据库的粗略印象和理论支持。
继续阅读
如何发布Qt应用程序
Gemfield在发布SYSZUXdesk程序(http://civilnet.cn/syszux/syszuxdesk)时遇到了一个难题, SYSZUXdesk程序以release方式生成.exe后,和相关的dll文件一起拷贝到另一台电脑上,点击运行程序,程序界面闪一下后就消失了。然后屏幕右下角的程序图标出现一会儿(是灰显,鼠标放上去就消失了)。整个过程没有报任何错误。
继续阅读