分类目录归档:技术

Linux IO多路复用分析(Select、Poll和Epoll)

前段时间被迫把一坨没人维护代码中的Select机制换成了Epoll,借此机会梳理一下Select、Poll和Epoll的原理。

I/O多路复用:

I/O多路复用就通过一种机制,可以监视多个描述符,一旦某个描述符就绪(一般是读就绪或者写就绪),能够通知程序进行相应的读写操作。但select,poll,epoll本质上都是同步I/O,因为他们都需要在读写事件就绪后自己负责进行读写,也就是说这个读写过程是阻塞的,而异步I/O则无需自己负责进行读写,异步I/O的实现会负责把数据从内核拷贝到用户空间。

继续阅读

Java使用JNA访问本地库

JNA(Java Native Access )是一个基于JNI的开源库,能有效提高Java访问调用本地库的效率。

官方介绍

JNA 为 Java 程序提供了对本机共享库的轻松访问,而无需编写除 Java 代码之外的任何内容 - 不需要 JNI 或本机代码。此功能可与Windows的Platform /Invoke和Python的ctype相媲美。

JNA 允许您使用自然 Java 方法调用直接调用本机函数。Java 调用看起来就像本机代码中的调用一样。大多数呼叫不需要特殊处理或配置;不需要样板或生成的代码。

JNA 使用一个小型 JNI 库存根来动态调用本机代码。开发人员使用 Java 接口来描述目标本机库中的函数和结构。这使得利用本机平台功能变得非常容易,而不会产生为多个平台配置和构建 JNI 代码的高开销。阅读此更深入的描述。

使用方法

import com.sun.jna.Library;
import com.sun.jna.Native;
public interface JnaDemo extends Library {
    JnaDemo INSTANCE = (JnaDemo) Native.loadLibrary("demo",JnaDemo.class);
    //demo处写需要调用的动态库名字,不写.so或.dll
    ...
    //此处写需要调用的库函数,注意不同类型的对应关系
}

注意事项:

  • 如果同时加载多个动态库,不要出现同名的函数,否则可能会出现致命错误。
  • C++与Java类型的对应关系一定要写对,否则也会出现致命错误。

待续

PointNet——三维点云深度学习网络

简介

此系列论文首先提出了一种新型的处理点云数据的深度学习模型-PointNet,并验证了它能够用于点云数据的多种认知任务,如分类、语义分割和目标识别。不同于图像数据在计算机中的表示通常编码了像素点之间的空间关系,点云数据由无序的数据点构成一个集合来表示。因此,在使用图像识别任务的深度学习模型处理点云数据之前,需要对点云数据进行一些处理。目前采用的方式主要有两种: - 将点云数据投影到二维平面。此种方式不直接处理三维的点云数据,而是先将点云投影到某些特定视角再处理,如前视视角和鸟瞰视角。同时,也可以融合使用来自相机的图像信息。通过将这些不同视角的数据相结合,来实现点云数据的认知任务。比较典型的算法有MV3D和AVOD。

继续阅读

vs2017+pcl库+cmake配置和存在的问题

最近这一阶段一直在搞点云相关的问题。之前就听说点云处理有一神器——pcl库,最近就尝试了一下,记录一下过程和目前存在的问题。

pcl库(Point Cloud Library)是一个开源的C++语言点云处理库,在这个库的帮助下能够较为方便的对点云进行操作。

目前pcl库官网上的最新版是1.6.0,然而github上的最新版是1.9.1,建议从github下载,提供一个网址:

继续阅读

Hexo常用命令

今天突发奇想给常年不更的团队网站更了两篇文章,http://www.teamwater.cn/ 然后发现好久没用hexo,hexo的命令都忘光了,于是水一篇文章复习一下。 其实hexo搭建好后,常用的指令并不是很多,主要就是下面这些

hexo n title == hexo new title#新建文章
hexo p == hexo publish #发布
hexo g == hexo generate#生成
hexo s == hexo server #启动服务预览
hexo d == hexo deploy#部署
hexo clean #清理

日照·中国赛

2017年的robocup中国赛在日照落幕了,水队如愿以偿得了冠军,可能是这学期第二重要的事情算是做完了。

说起来,日照真是个好地方啊,阳光、沙滩、海浪、仙人掌,还有一位老船长 。最重要的是,又回到齐鲁大地了。

今年国内赛打的还是比较艰苦的,而且还感冒了。至于决赛下半场,差点重演去年被北工翻盘,还好本队长眼看形势不对,立马把2号机下了,吓得一身冷汗。

继续阅读

ubuntu16.04重装

在疯狂的给ubuntu装了一坨软件之后,弹出了一个迷人的提示,根目录空间不足,检查之后发现根目录15G的空间只剩200M了,2333333。

于是疯狂查资料调整分区,然后得出一个结论重装一遍比调整分区快,虽重装之,写篇水文记录重装和重装之后装常用软件的过程,以备再次重装233333。


安装系统

这一步其实巨简单,而且当时没截图,只要安装的时候别选成清除整个硬盘就好。

修改软件源

个人觉得清华的源比较好用

安装搜狗输入法

官网下载输入法

sudo apt-get install -f

sudo dpkg -i sogoupinyin_2.0.0.0072_amd64.deb

注销一下,然后就可以选择搜狗输入法了

继续阅读

安装配置hexo

这个网上有好多教程,但是据我实验,没有一个能完整的安装下来,安装的时候遇到了好多坑,所以整理了一下安装方法,以便下次使用。

首先安装git和npm

sudo apt-get install git
sudo apt-get install npm
npm当时用中科大的源死活安不上,换成清华的源就可以了2333

然后安装hexo
sudo npm install hexo -g



合肥赛

最近好久没更新了,也许是在准备合肥国内赛吧。


然后就来到合肥了,还搞了一场挺装逼的人机人机大战。

然而最终却输给了不要命了的北京工业大学绿地战神队,原因不想说。

不过呢,输了也不是一点好处都没有,比如……