Ubuntu16.04 安装Nvidia显卡

参考:这个哥们写的最好

sudo service lightdm stop
sudo apt-get remove --purge nvidia*
sudo vim /etc/modprobe.d/blacklist.conf

blacklist vga16fb
blacklist nouveau
blacklist rivafb
blacklist nvidiafb
blacklist rivatv

sudo gedit /etc/modprobe.d/blacklist-nouveau.conf 
#添加数据
blacklist nouveau
blacklist lbm-nouveau
options nouveau modeset=0
alias nouveau off
alias lbm-nouveau off
sudo update-initramfs -u

sudo chmod +x NVIDIA-Linux-x86_64-390.77.run
sudo ./NVIDIA-Linux-x86_64-390.77.run

安装过程选项(步骤有很多 给出必要提示 其他选项一般都是选择OK)
The distribution-provided pre-install script failed! Are you sure you want to continue? 选择 yes 继续。
Would you like to register the kernel module souces with DKMS? This will allow DKMS to automatically build a new module, if you install a different kernel later? 选择 No 继续。
Would you like to run the nvidia-xconfigutility to automatically update your x configuration so that the NVIDIA x driver will be used when you restart x? Any pre-existing x confile will be backed up. 选择 Yes 继续
modprobe nvidia
nvidia-smi

PCL 点云库 Hello World 程序 ubuntu 16.04 安装

参考: 如何安装PCL来自: Point Cloud Library on Ubuntu 16.04 LTS
hello world 程序 来自 PCL 官网
《点云库PCL学习教程》
我受够了编译漫长的等待, 一条命令安装

包安装,libpcl-all 不行就 libpcl-dev

sudo add-apt-repository ppa:v-launchpad-jochen-sprickerhof-de/pcl 
sudo apt-get update
sudo apt-get install libpcl-all


安装依赖:以下都是我camke过来的 。 boost, eigen, flann, qhull, vtk,必装不可。

参考:第三方库功能说

1)boost,用于共享指针和线程操作,必需;

2)eigen,用于矩阵、向量等数据操作,必需;

3)flann,用于kd树模块中快速临近搜索,必需;

4)qhull,用于凹面或凸面的外包求解,可选;

5)qt,用于UI开发,可选;

6)openNI,用于与OpenNI兼容的设备获取点云,可选;

7)VTK(visualization ToolKit),在可视化模块中用于3D点云渲染和可视化,必需;

8)googletest,用于建立测试单元,可选;

9)MPI,用于集群上高性能计算,可选;

sudo apt-get update      
sudo apt-get install git build-essential linux-libc-dev
sudo apt-get install cmake
sudo apt-get install libusb-1.0-0-dev libusb-dev libudev-dev sudo apt-get install mpi-default-dev openmpi-bin openmpi-common sudo apt-get install libflann1.8 libflann-dev
sudo apt-get install libeigen3-dev
sudo apt-get install libboost-all-dev
sudo apt-get install libvtk5.10-qt4 libvtk5.10 libvtk5-dev sudo apt-get install libqhull* libgtest-dev
sudo apt-get install freeglut3-dev pkg-config
sudo apt-get install libxmu-dev libxi-dev
sudo apt-get install mono-complete

编译安装:

$cd pcl      
$mkdir release
$cd release
$cmake -DCMAKE_BUILD_TYPE=None -DCMAKE_INSTALL_PREFIX=/usr \ -DBUILD_GPU=ON -DBUILD_apps=ON -DBUILD_examples=ON \ -DCMAKE_INSTALL_PREFIX=/usr ..
$make
$sudo make install

创建项目:

MY_GRAND_PROJECT
——–build
——–CMakeLists.txt
——– pcd_write.cpp

CMakeLists.txt:

cmake_minimum_required(VERSION 2.6 FATAL_ERROR)
project(MY_GRAND_PROJECT)
find_package(PCL 1.3 REQUIRED COMPONENTS common io)
include_directories(${PCL_INCLUDE_DIRS})
link_directories(${PCL_LIBRARY_DIRS})
add_definitions(${PCL_DEFINITIONS})
add_executable(pcd_write_test pcd_write.cpp)
target_link_libraries(pcd_write_test ${PCL_LIBRARIES})

pcd_write.cpp:

#include <iostream>
#include <pcl/io/pcd_io.h>
#include <pcl/point_types.h>

int
  main (int argc, char** argv)
{
  pcl::PointCloud<pcl::PointXYZ> cloud;

  // Fill in the cloud data
  cloud.width    = 5;
  cloud.height   = 1;
  cloud.is_dense = false;
  cloud.points.resize (cloud.width * cloud.height);

  for (size_t i = 0; i < cloud.points.size (); ++i)
  {
    cloud.points[i].x = 1024 * rand () / (RAND_MAX + 1.0f);
    cloud.points[i].y = 1024 * rand () / (RAND_MAX + 1.0f);
    cloud.points[i].z = 1024 * rand () / (RAND_MAX + 1.0f);
  }

  pcl::io::savePCDFileASCII ("test_pcd.pcd", cloud);
  std::cerr << "Saved " << cloud.points.size () << " data points to test_pcd.pcd." << std::endl;

  for (size_t i = 0; i < cloud.points.size (); ++i)
    std::cerr << "    " << cloud.points[i].x << " " << cloud.points[i].y << " " << cloud.points[i].z << std::endl;

  return (0);
}
$ cd /PATH/TO/MY/GRAND/PROJECT 
$ mkdir build
$ cd build $ cmake ..


一键安装:sudo dpkg -i PCL-1.8.0-Linux.deb

这个包要自己去网上下载

坑: make -j 和 不加j 取决与你的电脑性能。我加 -j 参数会卡死。 直接make 还更快。
强烈建议一键安装,编译安装太辛苦了,太久了。

java web学习02: 开始吧!Spring boot, hello world, Intellij IDEA, maven

情景: 之前父亲想要做一个点餐的系统, 我无可奈何地摇摇头。 临近毕业季才开始感叹自己没有什么项目。在github看了一圈后: “为什么需要框架?” 这个问题突然冒出。
问题解释:如果不用框架就需要从头开始实现: 网络通信,根据http协议写encode和decode等。框架帮你做好了这些东西。简单的比喻就是:房子的框架已经搭好,你只需要砌砖。
任务:创建一个 Spring boot 和hello world 程序。
参考:https://docs.spring.io/spring-boot/docs/current/reference/html/getting-started-first-application.html

1 pom.xml 先写好包管理:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.shenghengyan</groupId>
<artifactId>MavenSpringTest</artifactId>
<version>1.0-SNAPSHOT</version>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.5.RELEASE</version>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
</project>

2 helloworld app 写src/main/java/HelloWorldApp.java方法:

import org.springframework.boot.*;
import org.springframework.boot.autoconfigure.*;
import org.springframework.web.bind.annotation.*;

@RestController
@EnableAutoConfiguration
public class Example {
@RequestMapping("/")
String home() {
return "Hello World!";
}
public static void main(String[] args) {
SpringApplication.run(Example.class, args);
}
}

alt+shift+f10, 运行一下 在127.0.0.1:8080 查看helloworld

总结:
在使用Android Studio 中会用到 gradle 包管理, 所以在使用 spring boot maven 管理前,我用gradle尝试了一遍,如果只是用包管理,我觉得maven比gradle容易理解。
明白框架意义后提出:
what is spring, spring MVC and spring Boot
Spring 是一个“引擎”;
Spring MVC 是基于Spring的一个 MVC 框架 ;
Spring Boot 是基于Spring4的条件注册的一套快速开发整合包。
Spring MVC和Spring Boot都属于Spring,Spring MVC 是基于Spring的一个 MVC 框架,而Spring Boot 是基于Spring的一套快速开发整合包
java Annotation
简单理解: 有信息的注释。用在spring boot 的例子:
@Restcontroller 它为阅读代码的人提供了提示,而为Spring提供了特定角色的提示。
@RequestMapping注释提供“路由”信息。 它告诉Spring,任何带有/ path的HTTP请求都应该映射到home方法。
@RestController注释告诉Spring将结果字符串直接渲染回调用者。



Java web学习01:dom4j 解析xml, maven 添加dom4j-2.1.1.jar, intellij IDEA, java 1.8

情景:刚学习java web 中, 在github 源码经常遇见pom.xml;
任务:使用maven管理jar包, 在pom.xml中添加dependency并使用dom4j解析xml文件中的数据

1.在intellij IDEA中创建maven项目

2.在pom.xml中添加dependcy 在给出的提示中导入包

<dependencies>
<dependency>
<groupId>dom4j</groupId>
<artifactId>dom4j</artifactId>
<version>2.1.1</version>
</dependency>
</dependencies>

3.src/main/java文件 和 xml 文件
这里xml我用w3school的food例子

import java.util.Iterator;

import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;

public class MavenTest {
public static void main(String[] args) throws Exception{
SAXReader reader = new SAXReader();
Document doc = reader.read("src/main/dishes.xml");
Element root = doc.getRootElement();
for (Iterator<Element> it = root.elementIterator(); it.hasNext();) {
Element element = it.next();
System.out.println(element.getStringValue());
}
}
}

4.结果:

总结:
使用maven有什么用:
maven统一jar包管理,多个项目可以使用同一个包,大大减轻项目体积。便于理解我把它类比与apt, yum, npm, 等包管理,而pom.xml 就像写好的 shell脚本。
xml有什么用:
主要用于存储数据, 和做配置文件。







故事

晚冬的雨后,暖色的霓虹灯光散漫在空气中,长长的柏油路旁的乔木刚好遮蔽今晚的夜空。`沥沥` 提着一把白色带透明的长柄伞站在路口,身子微微先前探出。`在暮` 双手揣着裤兜,走向前微笑道:“今天你带我逛逛吧。”

“好哇,你想逛哪里?”        

“那边我没去过诶” 在暮用脑袋指了指。 两人并肩而行,`沥沥` 微微在前一点点。`在暮` 俏皮的笑道:”诶, 是叫你带我逛逛” 随后牵住了沥沥的手“不是你一个人瞎逛”。`沥沥` 害羞笑了笑,左手一紧一放的捏住在暮的右手,似乎想要拭去手心的汗。

`在暮` 僵硬地挺着背,像是在告诉`沥沥`,他对她的学校比她还熟悉,突然 `在暮` 惊讶到:“我一直不知道你们这边有一条小路, 看起来好奇怪啊”

“我也没去过,我们去看看吧,感觉挺短的”

`在暮` 小心翼翼地踮在小路的石阶上,缓缓地把`沥沥`牵进来。 两旁高高的竹叶林把小路挤得只能一个人半侧着身进去,奇怪的是,空气变得干燥而清爽,弥漫在黑夜中的橙红色光污染,化为干净星散的夜空。淡银色皎洁的月光也浮在石阶上。小路边黑色土壤长着稀稀疏疏的蘑菇透着荧光蓝,蘑菇顶上长着一撮紫红色的花,花瓣有手掌一般大小。

“天哪,好漂亮” `沥沥` 睁大了眼睛,激动地拽着`在暮` 的衣袖。

“哇,太神奇了吧,从来没有见过植物也有这么美的夜景”。

不远处有一片高人半截的树林,每一棵树都只有四片叶子,心形叶子有雨伞那么大。叶与叶成标准的对称,密密麻麻遮住月光,荧蓝蘑菇为四叶树林作路灯,四叶树树干成半透明状,可以清晰的看见透着绿光的水流在静脉里流动。

`沥沥` 下意识瞄了眼手表:“已经过了两个小时了! 这不可能吧”。

“我刚刚也注意到了, 我手表已经停在22:22”

“我们赶紧出去吧,下次在探个究竟”。 `沥沥` 拉着 `在暮` 就小跑往回走,但是他们早就走丢来时的石阶路。“ `沥沥` 等一下,你没有发现我们一直在绕圈子吗”;

“哪怎么办, 我得回去了” `沥沥` 紧张的问。

天空淅淅沥沥下起雨来,他们两跑进小亭子里。雨水刷刷地拍在亭子边的竹叶上,空气中弥漫着泥土和青草的味道。一滴雨水不小心的点在沥沥的脸上,正想要拭去。在暮搂住沥沥的腰,身体稍稍往前试探。沥沥把头撇过一边,随便把手臂搂住在暮的脖颈。
        雨越下越急。
        在暮坏笑道:“干嘛,我只是帮你擦掉脸上的水”
        沥沥把脸转过来,突然呼吸急促了起来,水灵灵的眼睛似乎泛着光。在暮右手抚过沥沥的长发,缓缓地深吸了一口气,缠绕在颈背后的手更加有力。沥沥微微抬起脸,让空气轻轻滑入唇间。

出老千

           临近期末,大学里的莘莘学子开始忙碌起来。图书馆自习室往往都坐满了学生。严语是计算机,网络工程系的一名学生。对于期末考试他是自信满满,就像带着考试答案进考场一般。

           严语平时沉默寡言, 做的最多的就是在电脑前敲键盘,但是一旦你和他聊起技术,他可以叨叨个不停。烟霄与严语截然不同,烟霄平易近人,每个老师都能记住他的名字,因为他上课最活跃。同学也喜欢和他聊天,每每被他的笑话逗得前俯后仰。然而如此不同的人,竟然是最好的朋友。烟霄崇拜严语超强的技术,想做一个在屏幕背后惩恶扬善的黑客,深藏功与名。

           秋风萧瑟,一夜间校园小路旁的树,叶全掉了。严语一大早居然开始复习 “信息安全与技术” 烟霄有些诧异:“怎么开始这么用功念书了”

  严语:“啊, 突然想要这课的满分,不然别人都觉得我技术差”

  烟霄:“你课都没怎么去,那老师肯定会不给你高分的”

  严语:“那我卷子就是标准答案咧”

  烟霄:”哥们儿,可以啊”

两天前,严语就已经偷偷拿到学校服务器管理权限了,这份喜悦还没消逝,居然看到”信息安全老师” 把期末卷子挂在了网上。严语实在按耐不住,大喊一声“牛逼!”反正就只有AB卷,答案就那么点这还拿不到满分吗。严语心中窃喜。

烟霄一回到宿舍满是笑容:刚去办公室找老师答疑去了,给了两根烟,然后我问他,这些题考不考,他在我书上圈了很多题,说这些才考。哈哈哈,稳了。严语心中嘲讽,“这只是A卷的几道而已。”

考完的一个月后,成绩刚出来。严语 81分,烟霄93分;

可怜人

蒙蒙细雨,严语和好朋友澄建在家乡的湖边散步聊天。湖面倒影着这些年快速发展的高楼大厦和霓虹灯,加上阴天的雾气显的份外迷人。严语有些心事,面对近十年的老友,却不能一吐为快。

严语问朋友:你相信天道有轮回吗?就是因果报应

澄建问:你信?

严语答:最近发生在身上的事太多,尤其是发生在自己身上的。记得小时候嘲笑伙伴五音不全,如今自己正为音准发愁。再有以前不懂处理异性与伴侣之间的距离,所以有一段感情被绿的明明白白。

澄建说:你知道这些事是没有联系的吧,不过是你自己在‘果’的这件事情上找‘因’,不幸,在记忆中有同样的事情发生。

严语:道理都明白,只是想找一个可以骗自己的理由罢了。

一直到深夜,细雨跟着风爬慢全身,还没反应过来,身上的衣物已经浸湿了。两人在路口分了别,严语回家的路有一段距离,想了想,还是走回去吧,想静静思考一些感情人生的事情。路边花花草草以成水泥石瓦。大学期间回到家乡总是感觉被压的喘不过去。又听说谁谁谁功成名就, 又听说谁谁谁夫妻恩爱。

桥头处,一大姐哭的撕心裂肺。严语下意识地往兜里找面纸,真该死,每天都带,今天却没有。严语轻轻拍了她肩膀:” 没事儿吧,都会过去的”

“谢谢,我没事儿,”满是哭腔

“有什么不快的说出来吧,”

“没事儿,你回去吧”

“那我就站这边上了”

“没关系的,你回去吧”

“恩,都回过去的”

严语快步,心里一直不放心,当初自己也跑到这座桥上,偷偷的哭。当时觉得自己真是可怜的狗。到家后,带着毯子和面纸就想出去看一眼。万一出了什么事儿,良心过不去。多管闲事就多管闲事了。

桥上空无一人,桥下也空无一人。


ubuntu 16.04 常规设置

换源: sudo vim/etc/apt/source.list

deb http://mirrors.aliyun.com/ubuntu/ xenial main
deb-src http://mirrors.aliyun.com/ubuntu/ xenial main
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates main
deb http://mirrors.aliyun.com/ubuntu/ xenial universe
deb-src http://mirrors.aliyun.com/ubuntu/ xenial universe
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates universe
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates universe
deb http://mirrors.aliyun.com/ubuntu/ xenial-security main
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security main
deb http://mirrors.aliyun.com/ubuntu/ xenial-security universe
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security universe

sudo apt-get update

更新firefox


在官网下载解压出来没有icon
sudo vim /usr/share/applications/firefox.desktop

[Desktop Entry]
Name=FIREFOX
Type=Application
Exec=/home/yanyu/firefox/firefox 
Terminal=false
Icon=/home/yanyu/firefox/icons/firefox.jpeg
Comment=Latest firefox, add icon
NoDisplay=false
Categories=Browser
Name[en]=Firefox.desktop

安装互联网通行证

sudo add-apt-repository ppa:hzwhuang/ss-qt5
sudo apt-get update
sudo apt-get install shadowsocks-qt5

sudo apt-get proxychains

sudo vim ~/.vimrc (mac only)

syntax on
set fileencodings=utf-8,ucs-bom,gb18030,gbk,gb2312,cp936
set termencoding=utf-8
set encoding=utf-8
set enc=utf8
set fencs=utf8,gb2312
filetype plugin indent on
"show existing tab with 4 spaces width
set tabstop=4
"when indenting with ‘>’, use 4 spaces width
set shiftwidth=4
"On pressing tab, insert 4 spaces
set expandtab

install chinese method

sudo apt-get install ibus-rime

ubuntu 安装.net core 中 缺少libicu57的解决方法

apt-get install dotnet-sdk-<version> //再安装这个的时候会要求安装 dotnet-runtime-<version> 继续apt-get 安装后会提升需要libicu57依赖 这个没有再源里面

$wget http://ftp.de.debian.org/debian/pool/main/i/icu/libicu57_57.1-9_amd64.deb

$dpkg -i libicu57_57.1-9_amd64.deb

CentOS-7 Minimal 在VirtualBox中没有网的解决办法

在VirtualBox网络设置中尝试NAT 和 Bridged Adapter 都没有网,那就是CentOS-7 里面的问题了

自动获取ip地址:

1.$vi /etc/sysconfig/network-scripts/ifcfg-eth0 //ifcig-eth0 是网卡名, 不同主机有些不同。反正不是ifcig-lo

第4行: BOOTPROTO=dhcp 就是获取IP的方式是自动获取,static是固定IP,none是手动
第15行:启动时网络接口是否有效
第16行:mac地址 在virtualbox 网络高级设置里面看

2.$vi /etc/sysconfig/network

3.$vi /etc/resolv.conf

这里nameserver 填网关地址