随笔分类 -  UNIX &Linux

摘要:开通测试机的wifi权限时需要知道mac地址。通常可以用如下方式:"在设置--无线和网络--wlan设置 ,然后点菜单键--高级,就可以看到MAC地址了".但是不巧,我拿到的这台测试机UI有问题,点击触屏坐标有很大的偏差,无法完成上述操作。还好可以在pc上通过adb工具完成:1. 手机启用usb调试... 阅读全文
posted @ 2013-05-27 14:50 阅读(359) 评论(0) 推荐(0) 编辑
摘要:Antrl 官方没有提供预编译的3.5版本的c runtime,我下载源码编译了一下。源码里没有现成的Makefile,需要使用configure工具生成。编译步骤大致如下:1.执行命令aclocal生成aclocal.m42.文件aclocal.m4有点小问题,需要将: LIBTOOL='$(SH... 阅读全文
posted @ 2013-05-20 18:04 阅读(434) 评论(0) 推荐(0) 编辑
摘要:http://blog.csdn.net/hhq163/article/details/73202411、MX打开usb调试,连接ubuntu。2、在Terminal输入lsusb,获得: Bus 002 Device 005: ID 18d1:0005 Google Inc.3、运行命令sudo vim /etc/udev/rules.d/51-android.rules,输入内容 SUBSYSTEM=="usb", SYSFS{"Meizu Corp."}=="18d1", MODE="0666"4、运行命令s 阅读全文
posted @ 2013-04-01 22:13 阅读(793) 评论(0) 推荐(0) 编辑
摘要:写了个小app,需要将数据存入sqlite中,按照文档说明,如下方式创建数据库文件: db_aimu = SQLiteDatabase.openOrCreateDatabase("test.db", null);运行时logcat报错:02-22 09:16:28.214: E/SQLiteLog(26781): (14) cannot open file at line 30176 of [00bb9c9ce4]02-22 09:16:28.222: E/SQLiteLog(26781): (14) os_unix.c:30176: (2) open(//test.db. 阅读全文
posted @ 2013-02-22 17:24 阅读(15988) 评论(2) 推荐(0) 编辑
摘要:android上画图可以使用Opengl es,分两个不兼容的版本:opengl es1.x, opengl es 2.0,使用时它们之间的一个重要区别就是:opengl es 1.x的图片大小必须是2的整数次幂,而opengl es 2.0则无此要求。看有些文档里说:libgdx只支持2的整数次幂的图像,那应该是opengl es1.x的版本。在编译一个开源游戏freegemas时,代码在Lwjgl的pc上运行正常,而编译成apk在android真机或模拟器上运行时就崩溃,报错:“图像大小必须是2的整数次幂”。但是:“libgdx's wiki said: we explicitel 阅读全文
posted @ 2012-12-31 21:14 阅读(810) 评论(0) 推荐(0) 编辑
摘要:我们项目中有一个协议打包模块,c++写的。需要移植到java和python上,不想重写,就使用了一个叫swig(http://swig.org/)的工具,从c++代码直接生成了java/python代码。推荐一下。 几点感受: (1)swig支持的语言还是很多的,可以从c/c++生成java/pyt... 阅读全文
posted @ 2012-12-31 19:04 阅读(516) 评论(0) 推荐(0) 编辑
摘要:周末加班,ssh登录服务器超慢,top查看系统负载,达到12以上。跟踪发现,是其他同事利用周末,跑了一堆程序。系统反应慢,怎么办?两种办法:(一)降低其他用户程序的优先级。执行top命令:1 PID USER PR NI VIRT RES SHR S %CPU %MEM ... 阅读全文
posted @ 2012-12-29 14:41 阅读(1935) 评论(0) 推荐(0) 编辑
摘要:下载地址:http://code.google.com/p/googletest/downloads/list现在的最新版本是1.6.文档:http://code.google.com/p/googletest/w/list下载,解压,过程略。(1)编译gtest:先看 README文件,基本上就知... 阅读全文
posted @ 2012-12-01 15:22 阅读(432) 评论(0) 推荐(0) 编辑
摘要:项目要结束了,按流程需要做单元测试并提交测试报告。本来公司内部有测试工具,拿过来直接用就是。但实际上一堆问题,在这里不吐不快。(1)首先尝试的是测试工具XXTest,但竟然编译不通过。打开代码一看,顿时跪倒:1 MTString log = "";2 log += "... 阅读全文
posted @ 2012-12-01 15:01 阅读(302) 评论(0) 推荐(0) 编辑
摘要:下午调试crawlermanager时,成同学反映:client发送的command包,有些没有收到响应。但是查我这边的日志显示是已经发送响应包了的。不放心,就使用tcpdump抓了一下包,然后使用wireshark进行分析,成功定位了问题。(1)运行tcpdump:tcpdump -s 0 -c ... 阅读全文
posted @ 2012-11-15 17:50 阅读(1510) 评论(0) 推荐(0) 编辑
摘要:截取文件头几行,输出到另一个文件中:head -i 1000 a.txt|tee b.txt压缩/解压 gz文件:gunzip a.gzgzip a #将文件a 压缩为a.gz 阅读全文
posted @ 2012-11-15 17:20 阅读(449) 评论(0) 推荐(0) 编辑
摘要:最近研究uuid,收集的一些资料:http://www.mysqlops.com/2011/09/10/innodb-primary.html(针对InnoDB引擎)我们实际生产环境可能会使用四类属性作为主键:(1). 自增序列;(2). UUID()函数生成的随机值;(3). 用户注册的唯一性帐号名称,字符串类型,一般长度为:40个字符;(4). 基于一套机制生成类似自增的值,比如序列生成器;那么我们接下来,再分析下这四类属性各自作为表主键的优缺点:(1). 自增序列:从小到大 或从大到小的顺序模式增加新值;数据类型也利于进行主键值比较;存储空间占用也... 阅读全文
posted @ 2012-11-04 17:36 阅读(7708) 评论(1) 推荐(0) 编辑
摘要:背景:(1)工作时的代码都在放在服务器上(2)服务器不稳定,随时可能当机所以决定写个shell脚本,自动(每天凌晨)将client服务器上指定的文件夹打包,然后复制到另外一台服务器server上的指定目录下。话不多说,上代码: 1 #/bin/sh 2 3 #usage 4 #(1)modify ... 阅读全文
posted @ 2012-11-01 17:51 阅读(486) 评论(0) 推荐(0) 编辑
摘要:有如下结构体: 1 typedef struct _client_msg 2 { 3 _client_msg(int clientID, int msgValue) 4 { 5 this->clientID = clientID; 6 this->ms... 阅读全文
posted @ 2012-10-30 16:39 阅读(1771) 评论(0) 推荐(0) 编辑
摘要:在服务器的/etc/inclue目录下发现一个头文件:mqueue.h,不知道干嘛的就查了一下。得到如下信息:(1) 是实现linux下posix消息队列的;具体使用可以man mq_open系列函数;(2) 2.4的内核对POSIX支持得很不好所以特意升级到2.6链接时不是加-lposix4,而是-lrthttp://bbs.chinaunix.net/thread-2191087-1-1.html(3)有人提到:“linux的mq_open系列实现真烂”http://www.newsmth.net/nForum/article/LinuxDev/33733具体情况需要具体分析,这里不做讨论 阅读全文
posted @ 2012-10-08 17:18 阅读(5624) 评论(0) 推荐(0) 编辑
摘要:下午跑程序,在插入mysql时突然报错:”The table‘xxxx’is full“而之前一直没问题的。上网查了一下,都说临时表的问题,需要设置”tmp_table_size“:tmp_table_size 如果内存内的临时表超过该值,MySQL自动将它转换为硬盘上的MyISAM表。如果你执行许多高级GROUP BY查询并且有大量内存,则可以增加tmp_table_size的值。http://www.2cto.com/database/201106/92968.html感觉与我们服务器情况不太相符:我们没用到临时表,而且tmp_table_size已经非常大了。再查到:mysql出现&qu 阅读全文
posted @ 2012-09-28 17:16 阅读(1275) 评论(0) 推荐(0) 编辑
摘要:mysql在更新记录时,需要在原来的值上在累加新的值。例如原来有条记录:idcountrya784829a-c0dc-4cb6-88a9-8c376fab83a6USA现在更新更新country字段:在原值的基础上添加“$+$UK”,使其变为如下值:idcountrya784829a-c0dc-4cb6-88a9-8c376fab83a6USA$+$UK但是,在更新时,并不知道该记录的原值,也不希望通过mysql查询来获取原值(实际上,并不关心原值是多少,只需要在原值基础上添加新值即可)。最后,通过如下sql来实现:insert into video(id, country) values(& 阅读全文
posted @ 2012-09-27 17:00 阅读(8563) 评论(1) 推荐(0) 编辑
摘要:测试程序时,想要查看程序真正占用了多少内存,top命令只能看个大概,于是就找到了pmap命令。使用很简单: 1 SYNOPSIS 2 pmap [options] pid [...] 3 4 DESCRIPTION 5 The pmap command reports the memory map of a process or processes. 6 7 OPTIONS 8 -x, --extended 9 Show the extended format.10 11 -d, --device12 ... 阅读全文
posted @ 2012-08-30 11:12 阅读(3770) 评论(0) 推荐(0) 编辑
摘要:项目中需要将原有的id统一改为uuid,于是直接用boost中的uuid库来生成uuid。但在测试中发现程序性能严重下降,原来每分钟能处理60万条数据,使用uuid后只能处理2万条左右。于是跟踪之,先看我们的实现方式:1 static std::string uuid()2 {3 boost... 阅读全文
posted @ 2012-08-15 17:20 阅读(3602) 评论(0) 推荐(0) 编辑
摘要:项目中用到了vector,list,set等容器,运行完毕后需要清理,以释放内存以降低内存开销。一开始我直接使用clear()函数来释放,实际观察下来,内存并没有被释放。经同事提醒,clear()并不能释放内存,需要使用swap来释放。于是查了一下,找到以下资料:vector与deque不同,其内存占用空间只会增长,不会减小。比如你首先分配了10,000个字节,然后erase掉后面9,999个,则虽然有效元素只有一个,但是内存占用仍为10,000个。所有空间在vector析构时回收。 empty()是用来检测容器是否为空的,clear()可以清空所有元素。但是即使clear(),所占用的... 阅读全文
posted @ 2012-08-03 14:16 阅读(1355) 评论(0) 推荐(0) 编辑