技术
iteye_20321
这个作者很懒,什么都没留下…
展开
-
Berkeley DB初探
前言最近一个一个相似文章搜索功能时,要保存文章库的向量矩阵,由于矩阵太大无法一次加载到内存中,加上项目属于轻量级。总结了一下需求其实很简单,就是从一个非常大的矩阵中(无法一次性加载到内存),每次会随机通过文章编号得到其tfidf向量(矩阵的一行数据)。发现嵌入式数据库Berkeley DB可以很好的满足我的需求。只要把文章编号看成key,tfidf向量看成data,就可以利用Berkeley ...原创 2010-10-10 21:07:27 · 175 阅读 · 0 评论 -
用shell简单的获取多个文件的字段个数和
有时候会遇到如下情况,现有几个文件,每个文件的每条记录都含有通过tab(也可以是其它字符)切割的字段值,并且第一个字段是key,其它字段都是不一样的,现在需要求所有文件中除了key以外的所有字段个数。当然可以通过写一段简单的脚本实现,其实用一段简单的shell命令就可以实现head -1 -q tmp1.txt tmp2.txt | awk 'BEGIN{FS="\t"; i=0;} {i=i...原创 2011-10-28 12:41:41 · 439 阅读 · 0 评论 -
C/C++语言中sizeof对于数组的一点总结
最近在面试中被问到了几个有关sizeof的问题,自我感觉都回答对了,不过回来实际编写代码试了一下,发现还是错了一个地方,于是总结了一下。栈中的数组对于栈中的数组,sizeof给出的会是实际的数组长度,而非指针长度。#include <string.h>#include <stdio.h>int main() { char a[5]=...原创 2011-03-21 01:26:39 · 214 阅读 · 0 评论 -
进程与线程回顾
现代操作系统使用分时技术管理多个运行程序,对用户来说似乎是同步执行的。当然,如果机器上有多个CPU,会有多个程序真正同步运行。但是为了简单起见,我们假设只有一个处理器,在这种情况下同步只是一种表面现象。操作系统将运行程序的每个实例表述为进程(Unix术语)或任务(Windows术语)。因此,同时执行的单个程序的多个调用(例如vi文本编辑器的同步会话)是各自独立的进程。在只有一个CPU的机器上,...原创 2011-04-18 00:58:19 · 88 阅读 · 0 评论 -
ubuntu 自动加载硬盘
如果希望每次系统启动都能自动挂载硬盘,则还需要修改“/etc/fstab”。使用vi或者gedit添加以下一行“/dev/sdb1 /home/user/disk ext2 defaults 0 0”或则“UUID=xxxxx /home/user/disk ext2 defaults 0 0"。其中sdb1为添加的虚拟硬盘, UUID后的xxxxx代表添加的虚...原创 2011-04-20 10:44:12 · 279 阅读 · 0 评论 -
linux Shell命令行输入的一些实用快捷键
下面是一些shell的常用快捷键,快捷键玩熟悉了在一定程度上是可以提高工作效率滴…Ctrl + a 切换到命令行开始Ctrl + e 切换到命令行末尾Ctrl + l 清除屏幕内容Ctrl + u 清除剪切光标之前的内容Ctrl + k 剪切清除光标之后的内容Ctrl + w 删除光标所指的一个单词(从光标到单词的开头)Ctrl + y 复制剪切板里的内容Ctrl + h 类似...原创 2011-10-28 14:07:27 · 395 阅读 · 0 评论 -
shell中$*和$@的区别
如果想用一个shell脚本把输入参数完整的传给另一个脚本,特别遇到以下这种情况的时候./a.sh 'test 1' 'test 2'。此时就需要使用$@,而不是$*来完成需求。具体运行一下以下脚本就清楚这两条命令之间的区别了。b.shecho pn:$#echo p: $*echo p: $@ a.shecho $#echo './b.sh $*'./b.sh ...原创 2011-11-04 16:01:27 · 258 阅读 · 0 评论 -
Emacs使用命令
复制/粘贴在要被复制的块开始处,按Ctrl-Space(由于我的机器Ctr-Space是切换输入法的快捷键,使用Ctr-Shift-Space可以达到同样效果)设置标记,移动光标到要被复制的块的结束处,按Ctr-w剪切(cut)或Meta-w复制(copy),在pc里,Meta一般就是Alt。 跳转到某一行 (Alt+x goto-line n)按快捷键Meta-...原创 2011-04-27 09:26:38 · 137 阅读 · 0 评论 -
shell中读取ini配置。
利用awk 的范围模板来读取ini中的配置 范围模板匹配从第一个模板的第一次出现到第二个模板的第一次出现之间所有行。如果有一个模板没出现,则匹配到开头或末尾。 如$ awk '/root/,/mysql/' test将显示root第一次出现到mysql第一次出现之间的所有行。假设tmp.ini文件内容为[common]key1="common 1"key2="com...原创 2011-11-28 19:45:24 · 290 阅读 · 0 评论 -
创建型模式
先来看一个《设计模式》中的例子,这段代码很好的简单描述了一个迷宫的设计和实现。只要在加点函数定义它也就可以工作了。但是它很不灵活。它对迷宫的布局进行硬编码。并且它也对迷宫的构件进行了硬编码。创建型模式显示如何使得这个设计更灵活,但未必更小。特别是,它们将便于修改定义一个迷宫构件的类。假设你想在一个包含(所有的东西)施了魔法的迷宫的新游戏中重用一个已有的迷宫布局。施了魔法的迷宫游戏有新的构件...原创 2011-05-01 23:11:17 · 105 阅读 · 0 评论 -
Linux实用命令汇总(持续更新...)
经常会为某个简单的命令名google,baidu,于是觉得有必要自己开个页面,持续的更新这些命令。判断shell脚本的输入参数个数命令: argc=$# 使用例子: if [ $# -ne 1 ] then echo "Usage: $0 tabname"; echo "e.g.: $0 cdr_20110114"; exit 1...原创 2011-03-02 09:22:49 · 120 阅读 · 0 评论 -
使用Emacs+Cedet+Cscope阅读c/c++代码
Ubuntu 11.04下安装Emacs和Cscope1、安装emacs sudo apt-get install emacs23 emacs23-el 2、安装cscope sudo apt-get install cscope 3、安装color-theme sudo apt-get install emacs-goodies-el 3、配置...原创 2011-02-13 14:41:43 · 182 阅读 · 0 评论 -
python链接mysql
使用python的时间不久,这几天接到一个小需求,本来想着在linux下使用python实现,但一时手头上没有linux环境,加上这个需求的最终版本需要操作excel 2007,一想得了,干脆就在windows下使用吧,由于输入数据放在mysql中,于是就需要从mysql上取一些数据,虽然数据简单,但还是得想办法连上mysql,查了下Google,貌似MySQL-python这套组件不错,前提本人...原创 2011-06-30 09:31:04 · 125 阅读 · 0 评论 -
使用 GNU profiler 来提高代码运行速度
简介各种软件对于性能的需求可能会有很大的区别,但是很多应用程序都有非常严格的性能需求,这一点并不奇怪。电影播放器就是一个很好的例子:如果一个电影播放器只能以所需要速度的 75% 来播放电影,那么它几乎就没什么用处了。其他应用程序(例如视频编码)如果是耗时非常长的操作,最好以 “批处理” 任务的方式运行,此时启动一个作业,让其一直运行,然后我们就可以去干别的事情了。尽管这些类型的应用...原创 2010-10-28 22:28:44 · 103 阅读 · 0 评论 -
Crontab实例
cron是一个linux下的定时执行工具,可以在无需人工干预的情况下运行作业。由于Cron 是Linux的内置服务,但它不自动起来,可以用以下的方法启动、关闭这个服务:/sbin/service crond start //启动服务 /sbin/service crond stop //关闭服务 /sbin/service crond restart ...原创 2011-07-29 21:38:09 · 182 阅读 · 0 评论 -
理解MySQL——并行数据库与分区(Partition)
1、并行数据库 1.1、并行数据库的体系结构并行机的出现,催生了并行数据库的出现,不对,应该是关系运算本来就是高度可并行的。对数据库系统性能的度量主要有两种方式:(1)吞吐量(Throughput),在给定的时间段里所能完成的任务数量;(2)响应时间(Response time),单个任务从提交到完成所需要的时间。对于处理大量小事务的系统,通过并行地处理许多事务可以提高...原创 2011-08-01 14:51:12 · 177 阅读 · 0 评论 -
查看目录或文件大小
可以使用“ls”来查看一个目录下各个文件的大小,但是无法查看文件夹的大小。shell里有个命令可以实现查看文件,文件夹占磁盘空间大小。那就是“du“几个比较常用的方式1、du -sh 查看当前目录的总的占磁盘空间。-s表示求总和,-h表示使用人类易读的形式,也就是x.xG, x.xM, x.xK这样的形式,而不是字节数。2、du -h迭代显示当前目录下所有子文件夹,文件占磁盘大...原创 2011-12-20 17:10:21 · 188 阅读 · 0 评论 -
shell下list的使用
1、定义 list1=(a b c)2、获取item个数: ${#list1[@]}3、获取某个item:${list1[0]},${list1[1]}4、转换成以空格分隔各item的字符串: str=${list1[*]}5、把以空格分隔的字符串转换成list:str=a" "b" "c; list1=($str); echo ${#list1[@]};这条用的场所,主要是把...原创 2011-12-20 17:26:59 · 20353 阅读 · 0 评论 -
shell函数的局部变量,全局变量。
在shell脚本中定义函数时,曾被局部变量,全局变量搞的头昏脑胀的。于是就写了两个脚本尝试了一下。首先看第一个例子#!/bin/bashfunction test() { echo "d_o_f:" $d_o_f d_i_f="defined in function" d_o_f="modified in function" echo "d_i_...原创 2011-12-31 11:00:41 · 2297 阅读 · 0 评论 -
Shell使用getopts读取参数
使用getopts可以处理<command> [-i infile] outfile。不过还不知道怎么处理像<command> outfile [-i infile]。因为getopts遇到outfile时就会放弃分析。usage='Usage: <command> [-i infile] outfile'infile='/tmp/infile'...原创 2012-01-12 17:22:05 · 250 阅读 · 0 评论 -
shell脚本获取后台子进程的退出状态
(echo aaa >> /dev/null;sleep 10; exit 0)&(echo bbb >> /dev/null;sleep 11; exit 1)&(echo ccc >> /dev/null;sleep 12; exit 0)&(echo ddd >> /dev/null;sleep 5; ...原创 2011-09-21 21:02:55 · 1477 阅读 · 0 评论 -
在shell脚本运行时如何获取自己所在的目录
在shell脚本中有时需要用到相对路径,来减少子程序的路径配置,但是这样主程序还是需要知道自己所在的路径。有什么办法可以自动获取主程序所在的目录,而不用配置呢。总结了一下,运行脚本的方式有以下几种(假如主程序名为"test.sh")1、./test.sh or sh test.sh2、test.sh (路径配置在了环境变量中)3、../bin/test.sh or ...原创 2011-12-01 15:55:46 · 1018 阅读 · 0 评论