2015-10-02 - 我担任 CTO 已经有一段时间了,我觉得这是一个非常好的锻炼机会,因为我不仅可以编写代码,还要带领团队,管理项目,设计架构,组织工作,审查代码,调查不同的问题,研究各种解决方案,了解许多技术以及联系客户等等。 通过这么广泛的任务,我学到了很多不...
2015-10-02 - #!/bin/bash - #================================ # # FILE: conv.sh # # USAGE: ./conv.sh # # DESCRIPTION: # # OPTIONS: --- # REQUIREMENTS: --- # BUGS: 目前不支持传入参数中含有空格; # NOTES: --- #AUTHOR: linkscue (scue), linkscue@gmail.com #...
2015-10-01 - 这篇文章主要是对我收集的一些文章的摘要。因为已经有很多比我有才华的人写出了大量关于如何成为优秀Python程序员的好文章。 我的总结主要集中在四个基本题目上:函数式编程,性能,测试,编码规范。如果一个程序员能将这四个方面的内容知识都吸收消化,那他...
2015-09-30 - 初试牛刀 假设你希望学习Python这门语言,却苦于找不到一个简短而全面的入门教程。那么本教程将花费十分钟的时间带你走入Python的大门。本文的内容介于教程(Toturial)和速查手册(CheatSheet)之间,因此只会包含一些基本概念。很显然,如果你希望真正学好一门...
2015-09-29 - 如果只是编写一些小程序,程序只有几十或几百行,编程风格可能并不重要。然而,如果是和许多人一起进行一定规模的项目开发,或者希望过一段时间之后,还能够快速而准确地理解自己的程序,就必须养成良好的编程习惯。良好的编程风格可以增加程序代码的可读性...
2015-09-29 - 英语中一个单词可能有很多不同的意思。很多中国开发者外语本来就不好,概念是往往先入为主。甚至在不清楚一般意义的情况下,先记住了特定环境中的意思。 单词 普通人眼中 开发者眼中 socket 插座 套接字 performance 演出 性能 ATM 自动取款机 异步传输模式...
2015-09-29 - Golang开发环境的安装 阅读Go源码之前,安装Go语言的开发环境是必不可少的。下面我们介绍下载和安装的步骤。 1.下载官方的Go语言安装包 请根据操作系统的版本(FreeBSD、Linux、Mac OS X或者Windows)以及处理器的架构(386、amd64或者arm)进行选择。下载地...
2015-09-28 - 总结下之前尝试过的搭建的编写Linux驱动程序的环境。由于之前的环境是centos,其他平台的差异,就自己注意下吧。 步骤如下: Step1:下载kernel源码包,解压到/usr/src目录下 命令如下:tar Jxvf /home/yourAccount/linux-2.6.32.67.tar.xz Step2:为系统的incl...
2015-09-27 - 由于本人最近正在学习Linux内核的知识,在看到内存管理时,一下子钻入内核中去看系统如何使用内存,看着看着就蒙了,然后就不知道他这说什么了,看完之后似懂非懂,好尴尬,费了这么长时间,收获不大。所以最好的方式不应该是直接深入内核去学习内存管理,而...
2015-09-25 - 一,用objdump命令查看.o文件的段分布 1,先用gcc编译出.o文件(带-c选项); 如:gcc -c hello.c 2,然后使用objdump命令查看.o文件的布局情况 如:objdump -h hello.o 下面是一个实际例子的截图: 二,用size命令报告正文段,数据段和bss段的长度 如:size...
2015-09-25 - 1.背景 在Linux编程的过程中,有时候需要用到系统时间,例如根据当前的时间戳产生文件名。为此,本文对Linux中关于时间的一些函数和类型进行简单的总结。 2.time_t time_t其实是一个长整形的别名,它记录的是从1970年1月1日0时0分0秒到当前所经历的时间。 3....
2015-09-25 - MASM: MASM是微软公司开发的汇编开发环境,拥有可视化的开发界面,使开发人员不必再使用DOS环境进行汇编的开发,编译速度快,支持80x86汇编以及Win32Asm是Windows下开发汇编的利器。它与windows平台的磨合程度非常好,但是在其他平台上就有所限制,使用MASM...
2015-09-24 - linux中 likely与unlikely,见了不少次,但终究没体验过所谓的提高效率,所以,如果不是阅读他人的讲解,自己在码砖的时候就不能想到使用它,软实力的一个体现吧。 看内核时总遇到if(likely( )){}或是if(unlikely( ))这样的语句,具体定义如下: #define lik...
2015-09-24 - 在linux上装oralce时,先要检查一对rpm有没有安装,如果每次都一个一个地去检查,会很麻烦,于是做了一个脚本简化一下。 使用这个脚本只需3步: 1)将如下shell脚本另存为orarpm.sh,本文将该文件放在home目录下: #!/bin/bash if [ $# -ne 1 ]; then echo U...
2015-09-23 - 有时程序员需要完成这类任务: 假如你有一个二进制版的系统,例如现在流行的android,你需要为这个系统开发一个软件。这个软件牵涉到系统行为,因此需要对系统做修改。然而你并没有这个系统的所有源码( Nexus S的源码不一定与 android 官方版本一模一样),...
2015-09-23 - Linux下的C程序常常会因为内存访问错误等原因造成segment fault(段错误),此时如果系统core dump功能是打开的,那么将会有内存映像转储到硬盘上来,之后可以用gdb对core文件进行分析,还原系统发生段错误时刻的堆栈情况。这对于我们发现程序bug很有帮助。...
2015-09-23 - 在Linux中,mprotect()函数可以用来修改一段指定内存区域的保护属性。 函数原型如下: #include unistd.h #include sys/mmap.h int mprotect(const void *start, size_t len, int prot); mprotect()函数把自start开始的、长度为len的内存区的保护属性修改为p...
2015-09-22 - 摘要: 通过编写一个C++程序,并用其处理汇编源文件,使汇编源文件中的被特别标识符标识的Ansi字符串转化为Unicode字符串。 源程序: //String to Unicode String (for assembler) //可以把汇编源文件(ANSI编码)中的 //;Unicode Name 12我门3 //转化为 /...
2015-09-22 - 今天尝试自己加载第一个驱动模块,根据惯例hello word 然后失败了,现在说明我的操作过程,请个位看看。 首先我的内核版本: 模块代码与MAKEFILE #includelinux/init.h #includelinux/module.h MODULE_LICENSE(Dual BSD/GPL); static int hello_init(void) {...
2015-09-21 - 贴一篇代码,我们操作系统老师布置的作业,由单信号量,改为一个信号集中多信号量。水平有限,写的不好。 #include stdio.h #include stdlib.h #include unistd.h #include sys/types.h #include sys/ipc.h #include sys/sem.h #includesys/mman.h //提供了...
2015-09-21 - 应付老师部置的作业而写的,水平有限,写的不好。 #includestdio.h #includestdlib.h #includestring.h #includemysql.h typedef struct phonelist { char numbers[12]; char name[10]; struct phonelist *prev; struct phonelist *next; } PL, *PLP; PLP cr...
2015-09-20 - 脚本的概念: Bash程序不仅可以作为用户管理Linux系统的命令操作环境,同时也可以作为一种优秀的脚本程序语言。凡是使用Shell编程的语言编写的程序都可以称为Shell脚本,通俗一点说,只要将一些Linux命令按顺序保存到一个文本文件中,并给予这个文件可执行权...
2015-09-20 - 1.不能在非UI线程(主线程)里面更新UI,同时不能再UI线程里面执行耗时的程序A,执行耗时程序会出现ANR错误。 2.不能再广播接收里执行耗时程序,广播的生命周期时间很短,执行耗时程序会出现ANR错误,但是也不能通过子线程的方式解决,因为广播线程生命周期...
2015-09-18 - 概述 DLL hell 是指 Windows 系统上动态库的新版本覆盖旧版本,且新版本不能兼容旧版本的问题。例如:装新软件,但原有的软件运行不起来了。 Linux 系统下也同样面临着和 Windows 一样的动态库多版本的问题,其严重影响软件的升级和维护。 那么此问题该如何...
2015-09-17 - Redis管理脚本基于Ubuntu 的发行版上的,Ubuntu的可以看这篇文章ubuntu安装启动redis( http://www.linuxdiyf.com/linux/14219.html ),在Centos linux 上并不能用,下面的脚本可以用于CentOS: 用这个脚本管理之前,需要先配置下面的内核参数,否则Redis脚...
2015-09-17 - 社区管理人员写过好多文章,介绍如何才能吸引学生志愿者为开源项目贡献代码。这回,我打算写篇内容一样的文章,不过从学生的角度来写。下面介绍你如何才能吸引我为你的开源项目贡献代码。 1.成立我会实际使用的开源项目 这恐怕是我要告诉你的最重要一点。如...
2015-09-17 - 相信很多做过内核编程的人都写过makefile,虽然之前写过一些简单的内核模块写过makefile,到今天想要写一个内核模块的时候发现之前学的的已经全部忘记了。言归正传,Makefile这个文件还是真的不好写。相信你跟我一样之前编程的时候为了图好看的代码风格,敲...
2015-09-16 - 是的,你申请了自己梦寐以求的开发工作,得到了面试机会,感觉一切都很顺利,但是最后所有的努力换来的竟然只是一封拒绝信! 原因可能是以下几点: 1.我们搜索了你的名字 这家伙不错,但是当我用你的名字和电子邮件地址作了个快速搜索之后,我整个人都不好了...
2015-09-16 - Linux的内存使用以及优化是一个很有意思很深度的问题,在此写一篇文章来回顾和记录。 内存活动基本上可以用3个数字来量化,活动虚拟内存总量,交换(swapping)率和调页(paging)率。其中第一个数字表明内存的总需求量,后两个数字表示那些内存中有多少比例正...
2015-09-15 - 现在我明白了,我在编程方面的很多做法都是古怪的、不入流的,不过,对我而言,多多少少是有帮助的。我的网站比大部分网站,肯定存在更多的问题,但是我交付的速度快了不少。你不都懂的。 我从来无法正确学到的一件事,就是注释我的代码(http://www.labazho...
2015-09-15 - 这篇文章主要介绍一些小细节的优化技巧,当这些小技巧综合使用起来的时候,对于整个App的性能提升还是有作用的,只是不能较大幅度的提升性能而已。选择合适的算法与数据结构才应该是你首要考虑的因素,在这篇文章中不会涉及这方面。你应该使用这篇文章中的小...
2015-09-14 - 块设备文件: 表示文件系统高速缓存的设备,例如硬盘驱动器 设备文件: 表示非高速缓存的设备,例如磁带驱动器、鼠标和系统终端 那么如何把一个数据存到文件系统中?是怎么存的? 一般地,我们认为文件就是文件的数据信息,它存放在磁盘上,如果单纯的这样理...
2015-09-14 - 使用vi编写shell 内容如下: #!/bin/sh #UpdateCSW.sh #using jaxb tools to generate java classes from xsd rm -rf com xjc -p com.geostar.csw.domains UpdateCSW.xsd 编辑完毕以后保存。 给用户执行的权限: chmod u+x UpdateCSW.sh 最后执行shell命令:...
2015-09-13 - linux/kdev_t.h文件提供了处理设备号相关的宏: MKDEV(major, minor) 得到设备的dev_t值 MAJOR(dev_t) 得到主设备号 MINOR(dev_t) 得到次设备号 需要注意的是这三个宏在在内核和用户态有不同的解释,下面截取kdev_t.h的相关片段(系统为64位Redhat5.4) #if...
2015-09-13 - Linux shell可通过查看/etc/mtab或者/proc/mounts文件来获取当前文件系统挂载信息,示例: 程序内读取/etc/mtab或者/proc/mounts,解析字符串较为繁琐,可以使用mntent提供的方便函数: FILE *setmntent(const char *filename, const char *type); struct mn...
2015-09-13 - D 不可中断睡眠(通常进程在进行I/O) R 运行中或者可运行状态(在运行队列中) S 可中断睡眠(等待event,进程idle中) T 进程停止(进程被trace或者进程被信号停止) X 进程死亡(应该永不可见) Z 僵尸进程(结束,但是父进程没有wait该子进程) 对于BSD...
2015-09-13 - 这个脚本的目的是:从文件/etc/ipsecrules.conf里面动态截取字符串,并把字符串赋值给不同的变量:status,connName,便于脚本后面的代码使用。 首先我把想要赋值的变量以字符串的形式放在for循环后面的选择项里面,当然,这个时候的选项都只是字符串,并不是...
2015-09-13 - 依托Docker运行的后端服务(如数据库,缓存,存储等)感觉相当完美,但对于编译语言,Docker却并未本地开发的理想之...
2015-09-12 - 1、开发工具软件的安装 将博创兴业科技有限公司提供的附带开发工具光盘插入CDROM,然后执行以下命令: mount /dev/cdrom /mnt 若系统不识别/dev/cdrom 的话,可以用如下命令,假设CDROM 为从盘,即为/dev/hdb,则: mount t iso9660 /dev/hdb /mnt 然后进入...
2015-09-12 - GCC(GNU Compiler Collection) 官方网站: https://gcc.gnu.org/ GCC有Windows移植版本,比较出名的就是MinGW和TDM-GCC MinGW :http://www.mingw.org/ TDM-GCC: http://tdm-gcc.tdragon.net/download Cygwin:http://www.cygwin.com/ GNU编译器套件(GNU C...