ssh 以及 git 如何使用指定的 SSH key 进行连接?


Coder Life

最方便的方法是编辑 ~/.ssh/config 像这样:

以后只需要用 github-as-davinci 替换掉 github.com 即可,如:

Mac 下 OpenGL 开发环境搭配


Coder Life

本文介绍一下在 Mac 下用 Sublime Text 作为开发工具的环境搭配。

如果没有安装 Homebrew, 先安装 Homebrew

OpenGL 和 GLUT 是 macOS 自带了的。但通常并不足以满足我们的需求。可以先安装一些常用的库。

然后安装 Sublime Text, 直接从官网下载: https://www.sublimetext.com/3

然后添加一个新的 Build System, 拷贝以下内容进去。保存为 opengl.sublime-build

然后直接按 Command+B 就可以构建了。

这是项目中只包含一个 .cpp 源文件时快速方便的构建方法。适合用来学习和测试一些简单的程序,如果是包含多个 .cpp 文件的项目,可以用 make, autoconf, cmake, bakefile, bjam, scons 等各种构建系统。在 OpenGL 系列的后期会再写一篇博文来阐述。

OpenGL(一)六色旋转立方体


Coder Life

用 Mac 自带的 OpenGL 和 GLUT 框架

Contents

  1.  搭建好基本的 OpenGL 程序框架
    1. 设置好头文件目录、链接库文件(OpenGL, glut 等)
    2. 初始化,创建窗口
    3. 编写最基本的 Vertex Shader 和 Fragment Shader
    4. 编写读取文件的函数
    5. 编译、链接 Shader
  2. 绘制立方体
    1. 直接通过 glutSolidCube 绘制实心立方体
  3. 实现旋转
    1. glRotatef
    2. glutPostRedisplay 或 glutIdelFunc 来反复渲染
  4. 六个面的颜色
    1. 在 Vertex Shader 中获取法向量
    2. 传递到 Fragment Shader
    3. 通过法向量确定面
    4. 根据不同的面绘制不同的颜色

从以上文件中,你能学到:

  • glut 基本框架
  • C/C++ 读入文件内容
  • 创建 GLSL program
  • 重复调用 display 实现动画 (你也许还会在其它地方看到没有 glutPostRedisplay() 而在 glutDisplayFunc(display) 下有另一行 glutIdleFunc(display) )

这是老版本的 GLSL 语句,varing 传递变量,ftransform() 自动坐标转换。最基本的 vertex shader。下一节将更深入介绍。

这是老版本的 GLSL 语句,varing 接收传递过来的变量(法向量),通过法向量来判断平面,然后指定颜色。

预览

cube

解除网页的右键和选择限制


Coder Life

网页无法右键点击,无法选择复制怎么办?Javascript 禁用了复制怎么恢复?

进入到控制台,输入

如果是 IE 浏览器或不知道如何打开控制台,可以试着直接将以下命令复制到地址栏中然后回车(但有一些浏览器默认禁止地址栏中执行 Javascript)

Mac 上安装 Hadoop 运行 WordCount Example


Coder Life

直接用 Homebrew 安装

然后编辑 /usr/local/Cellar/x.x.x/libexec/etc/haddop-env.sh

(对应 Java 1.7 )

否则在 macOS 上会报 “Unable to load realm info from SCDynamicStore”

example 的 jar 文件在 /usr/local/Cellar/x.x.x/libexec/share/hadoop/mapreduce 下

进入目录之后

创建一个文件夹用于输入

把文本文件放入里面或者输入

运行

然后查看结果

Docker 基本使用


Coder Life

Docker 信息查看

Docker 列出镜像 images

Docker 列出运行中容器 containers

Docker 列出所有容器 containers

Docker 运行镜像(并创建容器)

options 查看 docker run --help

如果不指定容器名称,会生成随机的名称,可用 docker ps -l 查看。

一个容器对应一个虚拟的环境,所以新手要注意不要反复用 docker run 命令,而用以下的启动/停止容器命令。

Docker 启动/停止容器

Docker 查看容器内存/CPU占用

Ctrl-C 退出即可

Docker 挂载用户权限问题

Mac OS X 下 Docker 运行 mysql 容器时挂载 volumes 时权限问题

为例:

用户在文件系统中是以整型 id 来区分。所以同一个用户名在不同的环境中可能 id 不同。

查看用户 id 可以通过 cat /etc/passwd

然后在容器创建时执行命令 usermod -u 1000 mysql 即可。1000 应改为你挂载的目录的 owner id

命令可以加到 docker run [options] image command] 语句中执行。

也可以加到 Dockerfile 中,如本例中

php-apache:

Docker ssh 进入容器 shell?

从 host 进入容器不需要 ssh, 用以下命令:

其中的 sh 可以替换成容器中有的 shell, 如 bash, zsh 等

如果想能够从外网直接 ssh 进容器(不推荐, 因为你可以 ssh 到宿主机器再用上面的命令进入容器)

可以映射一个特定的端口到容器的 ssh端口(默认为22),然后从外网 ssh 到宿主 ip:映射端口

Docker 映射端口

docker run [options] container 时添加 option: -p xxxx:xx 左边的是 host, 右边的是容器。

如:

即可从宿主 ip:8080 访问到容器内的 nginx 服务器。

使用 fig

看到很多小朋友会把 docker run 的命令抄下来,以便将来需要重新 docker run。其实大可不必如此。使用 fig 就能很好的解决问题。

将会单独再写一篇文章讲 fig 的基本使用。