↓ Skip to main content
  1. Categories/

工程

2017

archlinux安装记

·167 words·1 min
实在不忍心x1c吃灰。。。 打算装个arch玩。。。 第一次失败了,原因是忘记配置引导相关… 第二次就成功了… 教程满大街都是就不再写了….

qt 5.x初探 (3)

·677 words·2 mins
update3: 终于知道了正确的学习姿势… 用百度把要用的东西大概描述出来,然后总能找到一个是你要的。。。 然后再去搜关键词。。。 嗯。。百度还是很有用的啊2333 qt5.8_doc_Line Edits Example 所以现在要把之前写成dialog的几个改回Line edit

g++ 编译多个源文件(转载)

·1369 words·3 mins
参考资料 一. 常用编译命令选项 假设源程序文件名为test.c。 无选项编译链接 用法:#gcc test.c 作用:将test.c预处理、汇编、编译并链接形成可执行文件。这里未指定输出文件,默认输出为a.out。

qt 5.x 学习笔记 (2)

·3095 words·7 mins
先来放一波过程中用到的资料和官方文档好了。 basic layout_qt5.8 QBoxLayout Class_qt5.8 QString Class 5.8 QChar Class qt 5.8 Standard Dialogs Example qt 5.8 更新的部分还是放在最前面好了。 convert from QString to char *的时候有个坑。 In order to convert a QString to a char*, then you first need to get a latin1 representation of the string by calling toLatin1() on it which will return a QByteArray. Then call data() on the QByteArray to get a pointer to the data stored in the byte array. See the documentation: See the following example for a demonstration:

qt 5.x 初探(1)

·477 words·1 min
嘛。。为了系统安全课来学一波qt… 现在算是写出了一个可以打开文件,保存文件的记事本。 接下来要搞定的事情是,如何写一个自定义的事件?比如计算个开方之类的。

ubuntu 包管理(apt-get)损坏的解决办法

·287 words·1 min
症状是不管安装什么,都会说有一大堆依赖无法安装。。。 大概是: a depends b[i],but b[i] is not be installed. (b==0..n) 最后会提示Unable to correct problems, you have held broken packages 解决办法:用synaptic工具,把可能存在问题的包都清除掉。

install galliumOS on chromebook with chrx

·538 words·2 mins
我的chromebook 是 samsung 3 查阅Hardware Compatibility 可以知道我的cb支持 gallium,对应的cpu 是Intel Braswell 然后去galliumos 官网 下载相应版本。 (发现这种做法并不需要自己下载。。。) 安装 galliumOS大体有两种方法,一种是完全去掉chromeOS,这种方法需要拆机去除写保护。。。我嫌麻烦。。。于是打算另一种,使用chrx 

murmurhash源码分析

·2165 words·5 mins
分析 levelDB 源码的时候遇到的,发现是一个广泛应用的 hash 算法,而且是纯 C 写的,于是找来了源码看。 MurmurHash 是一种非加密型哈希函数,适用于一般的哈希检索操作。[1][2][3]由Austin Appleby在2008年发明,[4][5] 并出现了多个变种,[6] 都已经发布到了公有领域(public domain)。与其它流行的哈希函数相比,对于规律性较强的key,MurmurHash的随机分布特征表现更良好。[7]

内存屏障(Memory Barriers)

·2114 words·5 mins
起因是最近在看 levelDB 源码,其中 port 里的atomic_pointer.h 文件用到了内存屏障。。 于是来学习一下。 粗略地说下我自己的理解。 代码的顺序并不和执行的顺序完全对应,出于对效率的追求,CPU 和编译器会对指令进行重排,以期得到最大的执行效率。

Lock-free vs wait-free concurrency

·1069 words·3 mins
参考资料 看 leveldb 源码中遇到的,关于 lock-free 和 wait-free..感觉这个讲得不错,我试着翻译一下? There are two types of non-blocking thread synchronization algorithms - lock-free, and wait-free. Their meaning is often confused. In lock-free systems, while any particular computation may be blocked for some period of time, all CPUs are able to continue performing other computations. To put it differently, while a given thread might be blocked by other threads in a lock-free system, all CPUs can continue doing other useful work without stalls. Lock-free algorithms increase the overall throughput of a system by occassionally increasing the latency of a particular transaction. Most high- end database systems are based on lock-free algorithms, to varying degrees.

AWK 初探

·2989 words·6 mins
参考资料: awk_维基百科 awk简明教程 awk是一门比较古老但是很好用的文本处理工具(语言?) 语法还是很好懂的。。转载了一篇文章,算是简明手册?不过台词有点糟糕 orz 有一些网友看了前两天的《Linux下应该知道的技巧》希望我能教教他们用awk和sed,所以,出现了这篇文章。我估计这些80后的年轻朋友可能对awk/sed这类上古神器有点陌生了,所以需要我这个老家伙来炒炒冷饭。况且,AWK是贝尔实验室1977年搞出来的文本处理神器,今年是蛇年,是AWK的本命年,而且年纪和我相仿,所以非常有必要为他写篇文章。 之所以叫AWK是因为其取了三位创始人 Alfred Aho,Peter Weinberger, 和 Brian Kernighan 的Family Name的首字符。要学AWK,就得提一提AWK的一本相当经典的书《The AWK Programming Language》,它在豆瓣上的评分是9.4分!在亚马逊上居然卖1022.30元。

C++ const 用法总结(转载)

·3410 words·7 mins
基本全文照搬了:关于C++ const 的全面总结 总结全面还是要一点时间的orz..感谢原作者,暂时没发现有什么错误(? 其中对我而言比较陌生的是“const修饰成员函数”的用法。。已经加粗。

一致性哈希初探

·3645 words·8 mins
原始论文:一致性哈希 本来不打算放的。。被批评说太不严谨 orz 说说自己的理解好了。 大概就是 hash 的时候,一开始有 n 个桶,你设计的函数是 y=x%n,看起来美滋滋。 然后这时候突然一个桶不见了,如果按照之前设计的 hash 函数,就变成了 x%(n-1)。

Linux 下各个目录的作用及内容

·2481 words·5 mins
参考:FHS(Filesystem Hierarchy Standard) 其实这东西虽然有一个统一的标准,但是不同发行版,或者同一个发行版的不同版本,差异貌似都蛮大的。所以这里只是理论上各个目录的作用,可能和具体的发行版不符。。

压缩算法初探(科普向,转载)

·5010 words·10 mins
参考链接 简要概述原理: 每个文件都由各种不同代码组成,比如01代码。这类文件只有数字0与1组合。 压缩原理就是 【通过寻找其中的规律,简化数字的排列】。 比如 00000110001111111111 可以简化成 5个0,2个1,3个0,10个1的排列 100000000000 可以简化成数学的 10^10

缓存淘汰算法之LRU(转载)

·4269 words·9 mins
参考博客 计组块忘光了呜呜呜。。。来复习一波。。 1. LRU # 1.1. 原理 LRU(Least recently used,最近最少使用)算法根据数据的历史访问记录来进行淘汰数据,其核心思想是“如果数据最近被访问过,那么将来被访问的几率也更高”。

C++ sort学习笔记

·377 words·1 min
回想起大一的时候打cf…那个时候对C++还不怎么熟悉。。。用sort不会自定义排序方式。。 于是手写快排。。。直接取中间元素没加随机化。。。跪了。。。 后来知道sort怎么写以后。。发现sort是可以通过的。。。