Avatar_small

「译」 C++ 五大谣言(及辟谣),第1部分

译者注:本文于 2014年12月9日 由 C++ 之父 Bjarne Stroustrup 发表于 C++ 官方网站上https://isocpp.org/blog/2014/12/myths-1 「为了您在冬季能享受阅读的快乐,我们很高兴地推出了这个由 Bjarne Stroustrup 写的三部分系列文章。本文是第一部分,第二和第三部分将会在接下来的两个星期一发表,届时正好...

Avatar_small

C++ 的 ScopeExitGuard

C++ 提供了 RAII 机制,并提倡使用它来管理各种资源,可是在实际中会发现这一套使用起来并不如想象中的那么方便。在 Linux 下开发会遇到大量 open() / close() 或是 malloc() / free() 类似操作,而且大部分都没有现成好用的 C++ wrapper,如果每组操作都自己去寨一个 class OperationGuard 只用来管理资源释放未免又显得过...

Avatar_small

指针和虚函数表

前两天在水木 C++ 版看到两个题目,分别是关于指针和 class 的虚函数表的。关于指针和数组,之前已经打过很久的交道了,比较简单。不过虚函数表以及 class 成员的内存布局一直是模模糊糊的概念,趁此机会把《C++对象模型》拿出来研究了一把。 题目一 #include<stdio.h> int main() { int a[5] ...

Avatar_small

Ubuntu 右上角小键盘不见了解决方法

好久没用电脑了,打开电脑,发现发现输入法不能切换且 ubuntu 右上角的小键盘不见了,再网上搜索方法如下: 打开终端,在终端里输入如下命令: 1. killall ibus-daemon 2. ibus-daemon -d ibus 输入法偶尔会挂掉,结束进程,再重新启动即可。

Avatar_small

linux 内核代码格式 Documentation/CodingStyle

tabs为8空格, 这样对结构块的开始结尾比较清晰, 特别当你对着电脑看了很多小时, 大缩进让看代码更容易. 有人会说8缩进让代码太靠右了, 一行里面很难写完, 如果你有了至少四层的缩进, 那只能说你的代码写太差了. 不要在一行里面写多条语句, 除非你想做一些特别的事. 避免奇怪的表达式. 不要用空格代表缩进. 每行最多有80个字符 大括号的用法...

Avatar_small

我被硬特fortran编译器坑的事迹

最早先,gfortran下没有问题的代码在硬特编译后出现segment fault。结果发现数组整体赋值出了问题,比如 w=w1 只要数组w和w1特别大,就fault了。只好遇到比较大的数组,就把用循环。 DO k=0,kb w(:,:,:,k)=w1(:,:,:,k) ENDDO 最近又被坑了一次,而且完全与上面这个经验相反。 id...

Avatar_small

Flask的SERVER_NAME解析

SERVER_NAME是Flask中比较容易用错的一个设置值,本文将介绍如何正确使用SERVER_NAME。 Flask中的SERVER_NAME主要做两件事: 协助Flask在活动的请求(request)之外生成绝对URL(比如邮件中嵌入网站URL) 用于子域名支持 很多人误以为它可以做这两件事之外的其它事情。 第一件事:绝对U...

Avatar_small

论逗逼的自我修养之FFT练习记

最近做大爷们出的训练题,基本每天一道FFT...但是似乎我对FFT的理解只停留在“可以求两个数组的卷积”+背代码阶段,感觉再不重新学一遍要跟不上时代的脚步了... [12.7]差不多就到这儿吧。。感觉把教材pyx的博客上的每一块都看了一遍,但是感觉做题还是不大会用。。如果以后闲着无聊想自虐的话可能会去写一下策爷的[tex]e^{A_{(z)}}[/tex...

Avatar_small

rsync+inotify-tools+ssh触发式同步


Avatar_small

inotify-tools用法

一、介绍 inotify-tools是为linux下inotify文件监控工具提供的一套C的开发接口函数库,同时还提供了一系列的命令行工具,这些工具可以用来监控文件系统的事件。Inotify-tools使用用c编写的,除了要求内核(Linux2.6.13开始)支持inotify外,不依赖于其他。inotify-tools提供两种工具,一是inotifywait,它是用来监控...

Avatar_small

matlab添加工具箱的两种方法

第一种方法是 敲命令 ,首先把 工具箱 比如 bnt 工具箱 放到安装目录的 toolbox 这个文件夹下,然后启动matlab,敲入 1 addpath(genpath('path')); 2 savepath; 第二种方法是 界面操作, 首先把主界面调出来,有两种方式,一种是在命令窗口输入pathtool,另一种是在mat...

Avatar_small

rsync学习

一、示例 以下面两个目录为例子 src目录结构 ➜ tree src src └── demo.py dest目录结构 ➜ tree dest dest └── hello.py 1. 文件同步 ➜ rsync -v src/demo.py dest demo.py sent ...

Avatar_small

用HTML5构建一个流程图绘制工具

在我们的开发工程中经常会使用到各种图,所谓的图就是由节点和节点之间的连接所形成的系统,数学上专门有一个分支叫图论(Graph Theroy)。利用图我们可以做很多工具,比如思维导图,流程图,状态机,组织架构图,等等。今天我要做的是用开源的HTML5工具来快速构造一个做图的工具。 工具选择 预先善其事,必先利其器。第一件事是选择一件合适的工具,开源时代,程序员还是很幸福的...

Avatar_small

关于Git的学习思路: 关键在于分支

关于Git的学习思路 去年试图学过一次,但是居然没法接受,也许是使用svn太久脑子没法转过来。 这次因为工作需要,决定转到git。找了几本书看过,发现对于一个svn老人来说,掌握git的关键还在于思路转换。 转换思路的关键在于分支,只要理解了分支,理解了git中各个分支如同锁链一样将各个commit连接在一起,知道分支之间的切换、merge和rebase等...

Avatar_small

天河-1A下编译安装 HDF5 和 CGNS

天河-1A下编译安装 HDF5 和 CGNS 天河的开发环境太单薄了,很多库都没有,只能自己编译,没法像ubuntu那样apt-get一下就ok了 在hdf5的页面下载 zlib szip,配置方式为 ./configure -prefix /home/jack/lib 然后 make;make install 配置 hdf5 ./con...