很久没更新了

荒废了一年多没有更博,其实写了很多pdf,后面有机会可以拿出来。

话说自从上了研究生就没有更博了,因为自己累,心累!

接下来,我将会更新一系列的笔试面试题,以求在2018的招聘中能有好运。

苦心人,人不负。

这是开博的初衷。

有志者,事竟成。

这是开博的目标。

Makefile 与 make

Makefile介绍

Makefile 是一种类似于脚本的,能够自动化执行程序的编译链接工作(甚至命令的执行 py latex 等命令),从而省去了人工在命令行里输入指令的繁琐过程(并且在vim下对Makefile有着极好的支持)。而make指令(在win是cmake,linux下是gmake)可以自动搜索路径下的Makefile文件,并根据文件内容进行指令的执行,所以Makefile可以看做是一个工程的配置文件,只不过这个工程是用make打开编译。虽然Makefile给我们的程序的编译链接工作省去了很多繁琐的工作,但是偷懒的程序员依然觉得编写Makefile也是一件很是繁琐的工作,因此就诞生了诸多款的make工具用来根据程序员的一些设定自动生成能够执行的Makefile文件,从未又一定程度上减少了编写Makefile文件的重复工作量。这些工具有:

排序算法

重新复习一遍常用的排序算法

  1. 冒泡排序
  • 顾名思义就是将相邻的两个数比较,不满足大小关系就交换顺序,将最大或最小的数像泡泡一样冒到最右或最左端
  1. 选择排序
  • 找到一个最大或最小值,然后将其和最右或最左端的数交换
  1. 直接插入排序
  • 首先取出序列的第一个数,假设它已经排好序,然后从第二个数开始将其插入到第一个数前面或后面
  • 然后将序列长度增加
  • 现在前面的序列已经排好序了,然后先取出没排好序的第一个值,将其与前面的序列相比较,如果比要插入的值大就把排好序的值依次往后挪一个,以空出一个空位让要插入的值占着。直到找到那个排好序的序列中比要插入的值小或相等的值,则要放置的位置就确定了,然后放入要插入的值,再将排好序的序列的长度增加,开始下一轮循环。
  • 简言之就是在已排序的序列中从后往前扫描,找到相应位置并插入

cplusplus notes

一些关于C++的笔记

  1. Lambdas 表达式

  2. 尾置返回类型-一般用于返回类型比较复杂和难理解(例如 数组的指针或是数组的引用)的函数中来声明返回类型。
    * 尾置返回类型的一般格式为:auto fun(parameter list) -> trailing type
    * 返回类型跟在形参列表的后面,并且以一个-> 符号开头。
    * 为了表示真正的返回类型跟在形参列表之后,在本该出现返回类型的地方放置一个auto
    * 实例:申明一个返回指向一个维度为10的int数组的指针

    • 原生的方式: int (*function(int i))[10]
    • 使用尾置返回: auto function(int i) -> int (*)[10]
    • 使用类型别名: typedef int arrT[10] or using arrT = int[10] then arrT* function(int i)
    • 使用decltype:首先int arr[] = {1,2,3,4} then decltype(arr) *function(int i)

优雅地使用Kindle

嗯,在纠结了很久之后还是剁手了,包括机械键盘和kindle,现在还差一个显示器和一个ssd,加油吧,尽早把它们买回来。在此之前我要插播一个小广告-当然是给Kindle做广告。嗯,在我选择kindle之前,我做了很多的工作,因为很早之前就种了一棵kindle的草,然后前些时间我拿了同学的kpw2 看了看英文原版的电子书,感觉效果很是不错,然后我就下狠心要买一个电纸书,然后我要选择kindle的版本所以问了很多的同学有的使用的是 oasis,有的是 kpw,一个偶然的机会看到了一个前辈说到了文石的一款机器,之后逛了贴吧和淘宝感觉这个评价不是很高,但是我看那个前辈极力推荐这款设备而且又看了他的资料感觉应该可能靠谱,又鉴于文石的机器支持自定义剪裁,而且价格很是可以,顿时就对文石的机器产生了好感,很不幸的下单了一个文石的机器,机器到手后一个小时候我就毅然决定退掉这款机器,可能是自己的问题老师感觉那个机器的屏幕雾蒙蒙的,然后拿了同学的kpw2对比发现差距太明显了,而且有的时候还会有残影。所以还是退了,但是售后感觉态度还是不错的说,虽然稍微有点恼火。然后我就立马下单了一个 kpw3,希望老天保佑,所以在收货之前先做一把功课,希望能借此有好运气。

Linux 安装Caffe

本文按照网上教程在Ubuntu 14.04 环境下安装caffe的记录,其中安装的OpenCV 2.4.13 使用的CUDA是7.0。在这里首先将遇到的一些问题和环境不一样的地方例举如下(如果遇到其他的问题可以参考这里):

  1. 安装libboost-all-de应该改成libboost1.55-all-dev
  2. 在禁用独立显卡来安装CUDA后应该再次打开独立显卡。
  3. 安装CUDNN的指令
    1
    2
    sudo cp lib64/*  /usr/local/cuda/lib64/
    sudo cp include/cudnn.h /usr/local/cuda/include/
  4. 如下报错
    1
    2
    -- Installing Dependencies
    ./opencv_install.sh: 第 27 行: source: dependencies.sh: 文件未找到
    把安装脚本27行 dependencies.sh 改成 ./dependencies.sh
站点访问量: / , 本页阅读量:
T B