转载请注明出处。
sshd 是 ssh 套件中的监听守护模块,只有运行 sshd 监听程序的主机才能被远程主机通过 ssh 登录。在某些情况下(比如在一台没有系统权限的主机上,系统的 ssh 限制了某些登录)需要以普通用户的身份在某一端口启动 sshd 服务,以方便地进行 ssh 登录。本文便总结了经过实践验证的启动 sshd 的方法。
- 设置 sshd 配置文件
mkdir etc cp /[......]
转载请注明出处。
sshd 是 ssh 套件中的监听守护模块,只有运行 sshd 监听程序的主机才能被远程主机通过 ssh 登录。在某些情况下(比如在一台没有系统权限的主机上,系统的 ssh 限制了某些登录)需要以普通用户的身份在某一端口启动 sshd 服务,以方便地进行 ssh 登录。本文便总结了经过实践验证的启动 sshd 的方法。
mkdir etc cp /[......]
本文来自于一篇英特尔的技术文档,讲解了如何用 VTune 和 Inspector 工具分析 MPI 程序。我在实际工作中用到的是 VTune 工具。没用过的不好说,不过两者操作起来很是相似。
用 VTune 分析 MPI 程序,就像把大象装冰箱,分三步:
最近读了一本书,作者深深地推荐了一款对我来说完全是新玩意儿的 shell——zsh。听说不光功能强大,还很文艺。无意之中看到同实验室的同学竟然也在用,给我很大触动。本着活到老折腾到老的精神,我也装一个玩玩看,当然,运行环境是 Ubuntu。
本文主要参考终极shell和定制你的zsh命令提示符。
zsh据说是很难配置的,后来有人写了个方便上手的工具,叫做“oh my zsh”。所以除了安装 zsh 以外,还要安装这个工具。zsh 的安装非常简单:
$sudo apt-get install zsh
$chsh -s /bin/zsh[......]
第一个问题是为文档中包含的单词生成一个列表。可以使用C++标准模版库中的sets和strings:
int main(void){ set S; set ::iterator j; string t; while (cin >> t) S.insert(t); for (j = S.begin(); j != S.end(); ++j) cout > t) M[t]++; for (j = M.begin(); j != M.end()[......]
本章重点关注的是一种特殊的数据结构——堆。这种结构在数据结构课和算法课中多有介绍(其实本章内容与《算法导论》中第6章的内容“堆排序”比较相似)。本章介绍了堆以及其两种用途——优先级队列和排序。
<li><strong>堆数据结构</strong></li>
堆有两个特定的性质。一是顺序,即任何结点的值都小于或等于其子结点的值,这意味着根结点的值最小。二是形状,一般用一棵二叉树来表示堆,树是平衡的,它最多在两层上具有叶结点,其中最底层的叶结点尽可能地靠左分布。因此,如果堆有n个结点,那么所有结点到根结点的距离都不超过lgn。
因[……]
<li><strong>二分搜索树</strong></li>
二分搜索树可以认为是在链表的基础上进一步进行扩展——它支持快速搜索和插入。
二分搜索树基于一个事实:任何一个结点,其左孩子的值小于其值,其右孩子的值大于其值。
private: int n, *v, vn; struct node{ int val; node *left, *right; node(int i) {val = i; left = right = 0; } [......]
本章讨论的是搜索问题中的数据结构。作者依次描述了适用于不同情境下的数据结构,存储的数据信息均为整数。
要实现的伪代码:
initialize set S to empty size = 0 while size < m do t = bigrand() % maxval if t is not in S insert t into S size ++ print the elements of S in sorted order
(数据结构)接口的定义:
class IntSetImp { public: IntSetImp (int maxelements, int maxval); //将集合初始化为空 void insert (int t); //插入新整数t int size(); //返回集合中的元素个数 [......]
长焦距、浅景深(大光圈),让主要拍摄对象成为唯一清晰的区域。
拍摄快速移动的物体,可以在拍摄对象要经过的某个点上预先对焦,尽量背对主光源。
使用广角镜头时应当让拍摄对象距离相机较近,而且,选用恰当的引导线可以实现生动的透视效果(比如火车轨道)。
如果拍摄正在移动的对象,尝试在它经过您面前时使用“摇拍”技巧。用相机跟随从面前经过的对象(一般与此同时辅以较慢的快门速度),还可以使用闪光灯(TTL模式)填充闪光。
本章的关注点是随机对象的选取。具体来讲,就是从n个对象中随机选取m个对象的问题,其中要用到随机数生成函数。
假设:一个能返回很大随机整数的的函数bigrand(),一个能返回i..j范围内均匀选择的随机整数函数randint(i,j)。
在C语言中,随机函数rand()通常返回约15个随机位,可以使用该函数实现上述bigrand()和randint()函数。
int bigrand(){ return RAND_MAX*rand() + rand(); } int randint(int l, int u){ return l + bigra[......]
插入排序
直观的插入排序isort1:
for i = [1, n) for (j=i; j > 0 && x[j-1] > x[j]; j--) swap(j-1, j)
将swap展开后得到isort2,展开代码为:
t = x[j] ; x[j] = x[j-1]; x[j-1] = t
考虑到t总是被赋予同样的值,将其挪到循环外面得到isort3:
for i = [1, n) t = x[j] for (j = i; j > 0 && x[j-1] > t; j--) [......]