代码改变世界

C/C++ extended python时一种常见的内存泄漏

2012-06-29 00:13 by OCaml, 1224 阅读, 0 推荐, 收藏, 编辑
摘要:比如像这样的代码:PyObject *dic = PyDict_New();iret = PyDict_SetItem(dic, Py_BuildValue("s","xxxxxx"),Py_BuildValue("s"), "Hello xxxx");这样就会出现内存泄漏!正确的写法应该是这样:PyObject *dic = PyDict_New();PyObject *obj1 = Py_BuildValue("s","xxxxxx");PyObject *obj2 = 阅读全文

折腾gcc/g++链接时.o文件及库的顺序问题

2012-06-18 22:25 by OCaml, 14047 阅读, 2 推荐, 收藏, 编辑
摘要:折腾gcc/g++链接时.o文件及库的顺序问题Table of Contents1 gcc/g++链接时.o文件以及库的顺序问题1.1 写在前面1.2 几个名词1.3 技术铺垫1.3.1 编译动态库时的符号解析1.3.2 linux下查看一个可执行文件或动态库依赖哪些动态库的办法1.3.3 load 动态库过程1.4 gcc/g++链接时对库的顺序要求1.4.1 对于library的查找1.4.2 对于符号的查找1.5 –as-needed对链接动态库的影响1.5.1 链接主程序模块或者是静态库的时的‘undefined reference to: xxx’1.5.2 编译动态库(shared 阅读全文

unix平台下I/O聚集和分离的一种方案

2012-02-26 11:45 by OCaml, 499 阅读, 0 推荐, 收藏, 编辑
摘要:最近学习了两个unix平台下两个软件的构架,其中一个就是大名鼎鼎的oracle,首先oracle的体系结构官方又很多资料, 以前的大牛也分析了很多,我就不说了(因为说起了又是一篇文章)。我对它们的I/O处理有一些认识,猜测其使用的技术。 基本是前端有个listener接受请求,让后将“请求”发给server进程(这个里面有复杂的session机制在里面)。 unix下“请求”的本质就是“文件... 阅读全文

用Ubuntu11.10+Apache+SSL+Subversion+trac快速搭建一个项目管理系统

2012-02-26 10:35 by OCaml, 714 阅读, 0 推荐, 收藏, 编辑
摘要:目标:快速构建一个项目的管理系统,包括源码管理,web服务,bug追踪,工程进度,wiki基本步骤:1、安装Subversion2、安装Apache3、在Apache中配置SSL4、在Apache中配置Subversion5、安装trac准备在搭建环境之前你最好更新一下系统,确保软件是最新的可用版本$sudo apt-get update$sudo apt-get upgrade1、安装Subversion$sudo apt-get install subversion检查一下是否安装成功,你可以用svn --version查看一下Subversion的版本信息如果一切正常输出如下:$svn 阅读全文

折腾vsftp。。。

2012-01-05 00:28 by OCaml, 485 阅读, 0 推荐, 收藏, 编辑
摘要:500 OOPS: cannot change directory:/home/*******”处理方式 1、vsftpd本地用户不能登录问题的解决: 打开/etc/selinux/config 将selinux=enforcing或permissive改成disabled。 重启vsftp服务! 2、 用户是否被 vsftpd 限制登录, 比如用户名在 /... 阅读全文

*nix shell启动脚本

2012-01-05 00:24 by OCaml, 905 阅读, 0 推荐, 收藏, 编辑
摘要:写在前面:开始用debian的时候,经常碰到的问题就是执行文件找不到,要链接的动态库找不到。所以我们学会了ldd等命令。我当时把自己的LD_LIBRARY_PATH设置在.profile文件中。当我开多个终端开发时。每个终端都要去source ~.profile以下才可以。最近要做一个打包器,一个基本的需求就是给不同的平台设置环境变量,不同的shell启动脚本是不一样的。所以这次必须折腾清楚。。 ... 阅读全文

cpp extend python 的一种解决方案

2012-01-05 00:16 by OCaml, 679 阅读, 0 推荐, 收藏, 编辑
摘要:因为python的module机制,python很容易通过c扩充。 官方的方法module,newType:http://docs.python.org/extending/index.html ctype:http://docs.python.org/library/ctypes.html 但是cpp扩展python还是比较复杂,原因就是cpp的语法比较复杂。 比较好的现有解决方案就是:... 阅读全文

fedora使用初级

2011-11-26 19:34 by OCaml, 638 阅读, 0 推荐, 收藏, 编辑
摘要:1、安装显卡驱动:显卡有两种方案,一是安装官方的驱动,二是安装开源驱动.貌似第一种方案不给力(听说)。所以我采用第二种方案。安装开源驱动基本包含两个动作: 添加 RPM Fusion 源:su -c 'yum localinstall --nogpgcheck http://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-st... 阅读全文

Oracle Install

2011-10-27 10:50 by OCaml, 344 阅读, 0 推荐, 收藏, 编辑
摘要:oracle install最后两个脚本的执行结果:[root@localhost ~]# /u01/app/oracle/oraInventory/orainstRoot.sh更改权限/u01/app/oracle/oraInventory 到 770.更改组名/u01/app/oracle/oraInventory 到 oinstall.脚本的执行已完成[root@localhost ~]# /u01/app/oracle/product/10.2.0/db_1/rracg/ rdbms/ relnotes/ root.sh root.sh.old [root@local... 阅读全文

“租房中介“

2011-10-25 22:44 by OCaml, 264 阅读, 0 推荐, 收藏, 编辑
摘要:”租房中介“因该是给很多应届毕业上过课,基本上应届生一毕业就来到城市工作,让后就是与“租房中介”斗智斗勇,结果当然是占尽天时、地利和人和的中介胜出。中介角色的出现最早就是为能够方便租客(然后的提成),现在中介要干的事情就是让租客找不到房子,把所有的房子拽在手里,想尽办法坑你。从另一种角度看,中介其实没有创造任何价值。他们的生存空间就在房主和租客之间,所以他们这么做也是可以理解地。我有在深圳租房的血泪史。中介就是“作死”的圈你的钱。现在回想起来我认为我的“智商”确实不是他们的对手。写这些无聊的纯属于自娱自乐。以纪念那段青涩的回忆。 阅读全文

python中的deamon进程

2011-10-23 10:32 by OCaml, 738 阅读, 0 推荐, 收藏, 编辑
摘要:python官方说python进程是系统的原生进程,线程也是系统的原生线程。最近需要在linux下设置python deamon进程#!/usr/bin/python # -*- coding: utf-8 -*- # Daemon.py # # Created on: 2011-8-29 # Author: roberts import sys, os, time, atexit from signal import SIGTERM class Daemon: """ A generic daemon class. Usage: subcla... 阅读全文

解决debian下看flash视频很卡的问题

2011-10-23 09:56 by OCaml, 486 阅读, 0 推荐, 收藏, 编辑
摘要:linux下的flash确实做得不怎么样。这个跟linux的设计是有关系的。我上视频网站看flash视频基本上是卡得不行。所以决定安装一下flash。虽然不能从本质上解决问题。但是至少可以比现在好一点: 1、下载对应的软件包:flashplugin-nonfree_2.8.3_amd64.deb 2、 root用户dpkg -i flashplugin-nonfree_2.8.3_amd64.deb虽然风扇还是呼呼叫,但还是比之前好了很多。 阅读全文

debian6安装NVidia驱动

2011-10-23 09:47 by OCaml, 866 阅读, 0 推荐, 收藏, 编辑
摘要:其实就显示效果来说,debian6自带的显卡驱动已经很好了。但是一开flash表现就不怎么样了。所以还是安装一下官方提供的驱动。我的硬件:NVidia Geforce210首先下载驱动:NVIDIA-Linux-x86_64-285.05.09.run这个是一个很大的文本,打开保存到本地就ok,用Epiphany比iceweasel好一点。alex@alex:~$ su -密码:root@alex:~# /etc/init.d/gdm3 stoproot@alex:~# aptitude updateroot@alex:~# aptitude upgraderoot@alex:~# aptit 阅读全文

debian6无线网卡不能上网的问题

2011-10-23 08:41 by OCaml, 683 阅读, 0 推荐, 收藏, 编辑
摘要:debian6安装以后无线网卡不能上网debian6安装以后无线网卡不能上网Table of Contents1 debian6无线网卡不能上网的问题1 debian6无线网卡不能上网的问题我以前debian5安装以后是可以上无线的,debian6为什么不能呢?查了一下, debian6剔除了所有non-free代码,firmware-iwlwifi_0.28_all.deb这个 包就是其中一个。我的无线网卡是:Wireless 5100 AGN。另外有两个地方提示需要这个东西:安装系统的时候提示:是否从其它设备加载缺失固件程序:firmware-iwlwifi_0.28_all.deb睡眠的 阅读全文

将rm删除的文件,放到回收站

2011-09-30 13:00 by OCaml, 404 阅读, 0 推荐, 收藏, 编辑
摘要:本人是有了惨痛的经历才这么做。rm-rf *估计是大牛用滴。因为rm的东西实在是很难恢复。基本的想法就是用mv来代替rm。1、写个小脚本:MyRM.sh2、添加路径:如果你不觉得自己的脚本和系统的混合混乱的话,就直接cp到/usr/bin下3、在.bashrc文件中添加:alias rm='MyRM.sh'(等号两边不能有空格)附件:#!/bin/bash#filename:MyRM.sh#author:camel_flying#add a line "alias rm='MyRM.sh'" to ~/.bashrc#then copy th 阅读全文

linux常用命令

2011-09-22 01:02 by OCaml, 376 阅读, 0 推荐, 收藏, 编辑
摘要:1、查看分区:fdisk2、查看磁盘可用空间:df3、查看命令历史:history4、删除命令历史:history -c 5、unzip:解压.zip文件 解压到指定目录:unzip -n xxx.zip -d /tmp 查看压缩目录但是不解压:unzip -v xxx.zip 6、挂载iso镜像,安装软件包: smount /dev/cdrom /mnt 7、清空文件: > file... 阅读全文

读书安排

2011-03-29 21:48 by OCaml, 314 阅读, 0 推荐, 收藏, 编辑
摘要:专业书籍:计算机基础:《深入理解计算机系统》语言:《C程序设计语言(第2版·新版)》、《c语言现代方法》、《c专家编程》。算法和数据结构:算法:C语言实现(第1~4部分)基础知识、数据结构、排序及搜索(原书第3版)、《程序员实用算法》。系统编程:《Unix高级环境编程》、《Unix网络编程卷1,套接字》、《Unix网络编程卷2,进程间通信》、《Unix编程艺术》。系统设计:《Unix编程艺术》、《设计模式》库学习:《c语言标准库》基础阅读:《系统程序员成长计划》历史类:《史记》经济类:《货币战争》 阅读全文

Linux进程间通信

2011-02-22 22:17 by OCaml, 268 阅读, 0 推荐, 收藏, 编辑
摘要:l通信方式:1、管道(Pipe)和命名管道(name Pipe):管道可用于有亲缘关系的进程间的通信,命名管道还允许没有亲缘关系的进程间通信。但是数据都是单向传递。2、信号(Signal):信号是比较复杂的通信方式,可以用来通知接受进程(包括自己)某个事件发生了。Linux支持sigal(传统的)和sigaction(BSD)。3、消息队列(Message):消息队列通过链表实现地。解决signal信息量少的问题。4、内存共享(memory share):最快的可用IPC通信。常与信号量结合使用,可以达到进程间的同步和互斥。5、信号量(semaphore):主要用于解决进程之间的同步。6、套. 阅读全文

vm定制安装redhat-server5.1和安装python2.7.1

2011-02-22 19:29 by OCaml, 413 阅读, 0 推荐, 收藏, 编辑
摘要:vm定制安装redhat-server5.1:1、软件:vm+redhat-server5.12、new virtual machine->custom->install the operating system later3、设置安装的镜像4、启动虚拟机,一路next就ok安装python7.1: 1、下载python安装包:http://www.python.org/getit/ 2、解压安装包:tar -xf Python-2.7.1 3、./configure 4、make 5、make install 测试: 1、python 2、如果显示的不是你所安装的版本号就给bin 阅读全文

Singleton(单例模式)

2010-12-13 10:16 by OCaml, 353 阅读, 0 推荐, 收藏, 编辑
摘要:Singleton pattern的思想: 一个类能返回对象的一个引用(永远是同一个)和一个获得该实例的方法(必须是静态方法,通常使用getInstance这个名称)。如果类持有的引用不为空就返回这个引用,如果为空就需要创建这个类的实例,并将这个实例赋值给该类持有的引用。最后还要返回这个引用。私有构造方法创建唯一的实例,static方法接口来获取唯一实例的引用。其实就是全局变量而已。Singleton pattern的UML图解:Singleton pattern的使用时机: 怎个运行过程中只需要有一个实例时。比如说我们联合我们的AbstractFactory模式使用。AbstractFact 阅读全文