Ragel for Ruby
发现Ragel的语言支持列表里没有列出Python,在已经列出的语言选一个,就选了Ruby.
linux上本身自带,又装了一个windows版本。
http://rubyforge.org/frs/?group_id=167&release_id=28426
比较靠谱的Ruby环境构建文章:
http://www.cnblogs.com/zhuque/archive/2012/11/24/2785609.html
下载Ruby开发插件(RDT)地址:http://jaist.dl.sourceforge.net/sourceforge/rubyeclipse/org.rubypeople.rdt-0.7.0.601192300PRD.zip
ruby在windows环境下下载安装devkit
http://gaitian00.blog.163.com/blog/static/186234180201311612545501/
Ruby的基本语法
http://www.blogjava.net/xxllnnn/archive/2009/01/18/251762.html
每天一条 ...
Python和C++混合使用QML开发GUI
作者:糖果
pyqt和qml结合的中文资很少,在baidu上搜索,基本上就是浪费时间。在国外的blog上,有零星的几篇,但是介绍好的少。在stackoverflow上看到一篇关于pyside,发现pyside,发现pyside果然给力,那就开始我们的pyside游戏之旅吧。
【编辑器】
目前的编辑环境是,Eclipse+PyDev, Erics, QtCreator这三个工具一起使用。用前两者进PY代码编辑,用QtCreator进行QML编辑和设计。
【概要】
用PyQt,C++,QML实现一个简单但的文本输入框值得取得和设置。从编码角度来看,我们需要在Python中调用QML的function方法,并通过参数传递把python中设定的变量值给QML.需要在QML中调用Python定义的函数方法,并把QML中InputText的Text值传递给Python.无论控件和业务逻辑多复杂都是如此。
Python代码
import sys
from PySide import QtCore, QtDeclarative, QtGui
class QtInterface(QtCore.QO ...
二分查找
#include<stdio.h>
int bseek(int key) {
int array[10] = {1,2,3,4,5,6,7,8,9,10};
int low = 0;
int high = (sizeof(array) / 4) - 1;
int mid = 0;
int ret = -1;
while(low <= high) {
mid = (low + high) / 2;
if (key == array[mid]) {
ret = mid;
break;
} else if (key < array[mid]) {
high = mid - ...
DIV+CSS
【概要】
选择Python做全栈解决方案,但是希望前段简单一些,可以向QML一样被重复的利用。选择用DIV+CSS控制页面的元素,一步步的构建社区。
将JQuery融入进来。本篇太简单,其他内容之后带入。
[code]
#div1 {
font-style: italic;
text-align: center;
width: 200px;
height:200px;
line-height:120px;
border:1px
solid #000000;
left:66px;
top:38px;
position: absolute;
}
#div2 {
font-style: italic;
text-align: center;
width: 200px;
height:200px;
line-height:120px;
border:1px
solid #000000;
left:272px;
top:38px;
position: absolute;
}
#div3 {
font-style: italic;
...
《QT---SDK自动生成代码解析》
一般情况,任何一个SDK开工具,在创建一个工程后,都会自动的生成一些自动代码,而之后的工作,就是在这一套自动生成的东西上,完成我们的后续工作,很好的理解SDK自动生成的东西,更便于我们后续的开发工作,可以起到事半功倍的效果,可以类推扩展出很多外延的知识,更便于之后对整个工具的快速学习理解。
传统的一些教程都是step by step的方式,这种方式对有没有基础概念的人来说,可以很好的达成他们想做出东西的目标,问题是在不了解框架机制的前提下跟着做,只能是照猫画虎,不能举一反三。
网上是不是,有很多的蛇精病教程让你苦恼那?那好吧,我们来写一个。
首先,QT在创建一个工程之后,她的目录结构是这样的。
主要的文件类型有:.pro .h .cpp .ui
.pro 文件: 简单说,这个就是整个C++工程的makefile文件,遵循的是QMakefile的语法规则,好普通的makefile语法类似。
.cpp 文件: SDK一共会生成两个.cpp 文件,main.cpp和mainwindow.cp, main.cpp是整个工程主函数的文件, mainwindow.cpp 就是用户自定义的窗体类。 ...
通过进程信息,检查内存泄露。
作者:糖果
【问题】
寻找内存泄露,有时是一件困难的事情。代码的内存申请和释放动作不配对,或是在并发环境下,时序变换的异常,都会引起的内存泄露,即使从core dump回溯调用栈,也未必能找到快速内存的泄露点。
某些嵌入式系统,对制造方式有特殊的限制,不允许使用智能指针或是STL库。编码的错误引起的内存泄露机率等问题,可以提前通过第三方软件静态检查,输出错误报告,从而找到问题的代码。
对稍微复杂的嵌入式系统而言,在UI层,中间件层,驱动层,都可能发生泄露。特别是在并发环境下的时序异常,引起的泄露就比较难找,可以用GDB attach 断点,或是输出系统Log,进行问题的切分。
如何解决?
Linux也提供了一种,不需要debug或是改代码的情况下,进行内从泄露检查的机制。在linux的proc目录下,有与系统进程同名的文件目录,进入目录后可以查看此进程的各种相关信息。
例如,要查看系统中一个叫做candy的进程的内存使用情况,就可以按如下步骤进行。
1)取得“candy”进程的PID号。
ps -elf | grep candy
2)查看进程使用内存的信息,假设candy的PID号是1 ...
十部国外经典算法著作
1、《Fundamentals of Data Structures》(Horowitz and Sartaj Sahni著)——中文译名《数据结构基础》
2、《Practical Data Structures in C++ 》(Bryan Flamig著)——中文译名(数据结构实践-用C++描述)
3、《Reliable Data Structures in C》(Thomas Plum著)——中文名不太清楚
4、《Data Structures and Algorithms》(Alfred V. Aho, Bell Laboratories, Murray Hill, New Jersey
John E. Hopcroft, Cornell University, Ithaca, New York
Jeffrey D. Ullman, Stanford University, Stanford, California)——作者可全都是大腕啊!
5、《Data Structures, Algorithms and Program Style Using C》
6、《Data Str ...
SWIFT之旅
对于一个新语言的第一个程序来说,比较传统的搞法是,在屏幕上,打印一行”hello,word” 。看看swift吧,一行语句就能搞定。
println(“Hello, world”)
如果你之前玩过C或是Objective-C, Swift的这种语法你可能眼熟。这一行代码就完成了这个程序,你都不用提前引用那些像输入输出控制或是字符串那些乱七八糟的库。程序的代码的全局范围有效的,所以,你都不需要像main函数的那种东西,你甚至也不需要在每个语句的后面加上一个分号。
这篇小文会提供给你足够的信息,给你秀一下,如何完成一个编程任务。如果有一些东西你暂时搞不懂,不用担心。几乎所有的细节介绍都会在本书的其他部分出现。
提示:
最好的经验就是,在Xcode中,打开本篇涉及到的例子代码,那样就允许你编辑代码,还可以立马的看到运行效果。
简单的变量值
使用let关键字定义一个常量,使用var关键字定义一个变量。这个常量值不需要再编译的时候知道。但你必须进行一次赋值。就是说,你可以使用一个常量命名一个值,再很多的地方使用。
var myVariable = 42
myVariable = 50
let m ...
圣诞的三个思考
关于脚本语言。
最近写了一段时间的LUA脚本,LUA使用好了,非常的强大,使用不好,给自己埋坑。通过使用LUA,对解释性的脚本语言的看法和以前有些变化。之前一直以来,尽量避免使用特殊的脚本语言开发,更倾向于使用Python做脚本开发,如果是从C++转向Python开发可以说很顺手。再使用LUA之后,就发现任何语言都有自己的优缺点。从面向解决问题的角度来说,尝试使用其他的脚本语言些程序也是很有意思的事,选择好的开发脚本语言。有着事半功倍的效果。
至此,发现现在如果开发点PHP和JAVA也未尝不可。有些功能用PHP到时很方便,因为是在服务器端运行,谁也不大关心具体用的技术,保证并发处理质量就和健壮性就可以。现在有的互联网公司,比的不是稳定,是速度。比的不是技术,是体力。
关于Linux开发环境。
今天群里有一个大哥说他,就是不喜欢Ubuntu,宁可选用freebsd也不愿意使用Ubuntu,问他为什么,他说他就是不喜欢。就是这么的任性。
使用开源语言工具开发系统,在Linux环境下,部署运行环境和开发环境都比较便利。个人比较YUM和apt-get 之间,更喜欢Ubuntu的ap ...
开源一览
Hy’s
https://hy.readthedocs.org/en/latest/
memcached
http://memcached.org/
libevent
http://libevent.org/
libevent for python
https://github.com/fancycode/python-libevent
websocket for python
https://github.com/Lawouach/WebSocket-for-Python
sinacloud for python
https://github.com/sinacloud/sae-python-dev-guide