Docker教程
概述
Docker 是一个开源的应用容器引擎,基于Go 语言 并遵从Apache2.0协议开源。
Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。
容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。
应用场景
Web 应用的自动化打包和发布。
自动化测试和持续集成、发布。
在服务型环境中部署和调整数据库或其他的后台应用。
架构模式
Docker 使用客户端-服务器 (C/S) 架构模式,使用远程API来管理和创建Docker容器。
Docker 容器通过 Docker 镜像来创建。
容器与镜像的关系类似于面向对象编程中的对象与类:
Docker
面向对象
容器
对象
镜像
类
概念名词
含义
Docker 镜像(Images)
用于创建 Docker 容器的模板。
Docker 容器(Container)
独立运行的一个或一组应用。
Docker 客户端(Client)
通过 ...
gitlab-ci 搭建持续集成环境
什么是持续集成
概述
持续集成(Continuous Integration,简称CI)指的是,频繁地(一天多次)将代码集成到主干。
GitLab CI是 GitLab 提供的持续集成服务,只要在你的仓库根目录 创建一个.gitlab-ci.yml 文件, 并为该项目指派一个Runner,当有合并请求或者 push的时候就会触发build。
.gitlab-ci.yml 文件定义GitLab runner要做哪些操作。 默认有3个[stages(阶段)]: build、test、deploy。
优点
可以快速发现错误,定位错误也比较容易
防止分支大幅偏离主干。代码集成到主干之前,必须通过自动化测试。只要有一个测试用例失败,就不能集成
持续交付、持续部署
持续交付(Continuous delivery)指的是,频繁地将软件的新版本,交付给质量团队或者用户,以供评审。如果评审通过,代码就进入生产阶段。
持续部署(Continuous deployment)是持续交付的下一步,指的是代码通过评审以后,自动部署到生产环境。
持续集成系统的组成
一个 ...
终端输出的字体带颜色或背景色的方法
Linux终端输出的日志信息主要是程序或运行脚本, 两者均可使用下述属性配置进行定制化输出。
属性配置可叠加使用
建议末尾记得设置回默认关闭状态
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051#!/bin/shset -ecurrent_dir=$(cd `dirname $0`; pwd)ATTR_DEFAULT="\033[0m" # 默认终端输出状态, 关闭所有属性的设置ATTR_CONTROL_HIGH_LIGHT="\033[1m" # 高亮ATTR_CONTROL_UNDERLINE="\033[4m" # 下划线ATTR_CONTROL_FLASH="\033[5m" # 闪烁ATTR_CONTROL_REVERSE_DISPLAY="\033[7m" # 反显ATTR ...
了解的一些资源链接
资源下载
阿里巴巴开源镜像
Centos历史版本官方镜像下载
工具
So Json —— 在线解析、加解密、混淆等
RGB颜色对照表
CSS样式表属性
Linux 命令查询
Codelf —— AI 取名
Neon 可视化工具
PDF 解密工具
SSE 指令查询
Neon 指令查询
学习网站
慕课网
菜鸟教程
极客学院
CSDN
博客园
开源中国
码农网
阿里云
C语言中文网
开发文档 —— 各类编程语言的链接汇总
新兴网络 —— 各类工具源码下载
小天地,大世界 —— 关于Web开发技术交流的博客
QTCN —— Qt编程学习
内存溢出 —— 程序员资料分享,编程技术交流的网站
SegmentFault —— 学习技能、解决问题的网站
机器学习速成教学
IT大咖说
IBM Developer —— 开发教程、工具
代码汇
业内标准
Google 开源项目风格指南
Visual Studio 各版本对C++的支持
通过无线远程使用adb
操作步骤
设置好NDK环境(废话)
保持手机和电脑在同一局域网内,将数据线连接手机和电脑
查看当前连接设备情况: adb devices
12List of devices attached8828c40d device
查看此时设备的ip地址: adb shell ifconfig (或 adb shell ip addr)
12## 比如我的手机是:inet addr:172.20.19.67
开启 adb tcp监听: adb tcpip 5555 (端口号自己指定)
1restarting in TCP mode port: 5555
断开数据线,无线连接: adb connect 172.20.19.67:5555
1connected to 172.20.19.67:5555
完成。通过 adb devices 可以看到设备连接已变成无线的方式, 一应操作和线连adb是一样的, 同样也可使用android studio安装app并调试
12List of devices attached172.20.19.67:5555 device
其他操作
断开连接
...
Shell脚本常用命令
概述
Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。Shell 既是一种命令语言,又是一种程序设计语言。
Shell 脚本(shell script),是一种为 shell 编写的脚本程序。
set 命令
set -e表示一旦脚本中有命令的返回值为非0,则脚本立即退出,后续命令不再执行;
set -o pipefail表示在管道连接的命令序列中,只要有任何一个命令返回非0值,则整个管道返回非0值,即使最后一个命令返回0.
set -u遇到不存在的变量就会报错,并停止执行。效果等同 set -o nounset
常用特殊变量
变量
含义
$0
当前脚本的文件名
$n
传递给脚本或函数的参数。n 是一个数字,表示第几个参数。例如,第一个参数是$1,第二个参数是$2
$#
传递给脚本或函数的参数个数
$*
传递给脚本或函数的所有参数
$@
传递给脚本或函数的所有参数。被双引号(” “)包含时,与 $* 稍有不同
$?
上个命令的退出状态,或函数的返回值。成功返回0,失败返回1
$$
当前Shell进程ID。 ...
Shell脚本处理JSON数据工具: jq
概述
JSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式,采用完全独立于编程语言的文本格式来存储和表示数据。易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。
jq可以对json数据进行分片、过滤、映射和转换,和sed、awk、grep等命令一样,都可以让你轻松地把玩文本。q是用C编写,没有运行时依赖,所以几乎可以运行在任何系统上。预编译的二进制文件可以直接在Linux、OS X和windows系统上运行。
安装
macOS
1brew install jq
ubuntu
1sudo apt-get install jq
centos
1sudo yum install jq
也可直接到官网下载安装。
基础使用注:json 数组的键命名必须为下划线”_”,不能为”-“,否则解析不了。
更多的高级使用, 请查看官方使用手册。
单个值获取
语法: jq '.key' jq '.key?' jq '.["key1", &q ...
2018-11-25 厦门GDG谷歌开发者节
人工智能语音技术
分享自 洪青阳(博士 厦门大学副教授 天聪智能创始人).
人工智能技术及行业应用
应用层
安防
金融
自动驾驶
医疗
…
技术层(通用技术 - 算法 - 底层架构)
图像识别 - 机器学习 - Tensor Flow
语音识别 - 深度学习 - Kaldi/CNTK
自然语言理解 - 增强学习 - Caffe
知识图谱 - 对抗学习 - Torch
…
基础层(计算能力 - 数据质量)
大数据 - 图像数据
GPU - 语音数据
云计算 - 交通数据
神经网络芯片 - 医疗数据
…
人工智能技术趋势
感知计算
视觉、语音识别率超过97%,感知层基础技术基本具备。
认知计算
自然语言理解是人工智能现阶段需要重点突破的技术,目前在客服和机器人领域有较好的应用。
无监督学习
现有深度学习严重依赖标注数据,一旦无监督学习突破,人工智能必将进入新的阶段。
人工智能应用趋势
机器感知(视觉、语音)
应用在安防、金融、智能家居、机器人,在5年内普及。
机器感知(自然语言理解)
未来较大的应用会在医疗、证券、法律等领域,预计在5~10年内普及。
人机结合 ...
Hexo+Github免费搭建个人静态博客
概要:
Hexo是一个快速、简洁且高效的静态博客框架,Hexo使用 Markdown(或其它渲染引擎)解析文章,在几秒内,即可利用靓丽的主题生成静态网页。可以将本地的网页发布到Github page(国外访问速度快)或Coding page(国内访问速度快)上,这样就能通过互联网访问博客网站了,而且是免费的。也可以再购买一个独立域名,绑定解析到Github page空间地址和Coding page空间地址后,就可以用你的特色域名访问博客系统了。
参考资料
Hexo+Github+Coding免费搭建个人静态博客
使用Gitee+Hexo搭建个人博客
搭建Hexo环境安装 npmNPM的全称是Node Package Manager ,是一个NodeJS包管理和分发工具,已经成为了非官方的发布Node模块(包)的标准。
推荐官网下载。
安装完node后建议设置npm淘宝镜像以加速后面的过程(或使用科学上网工具)。
12npm config set registry https://registry.npm.taobao.org --globalnpm config set dis ...
Hello World
Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub.
Quick StartCreate a new post1$ hexo new "My New Post"
More info: Writing
Run server1$ hexo server
More info: Server
Generate static files1$ hexo generate
More info: Generating
Deploy to remote sites1$ hexo deploy
More info: Deployment