操作系统级虚拟化概述
操作系统级虚拟化KVM、XEN等虚拟化技术允许各个虚拟机拥有自己独立的操作系统。与KVM、XEN等虚拟化技术不同,所谓操作系统级虚拟化,也被称作容器化,是操作系统自身的一个特性,它允许多个相互隔离的用户空间实例的存在。这些用户空间实例也被称作为容器。普通的进程可以看到计算机的所有资源而容器中的进程只能看到分配给该容器的资源。通俗来讲,操作系统级虚拟化将操作系统所管理的计算机资源,包括进程、文件、设备、网络等分组,然后交给不同的容器使用。容器中运行的进程只能看到分配给该容器的资源。从而达到隔离与虚拟化的目的。 实现操作系统虚拟化需要用到Namespace及cgroups技术。
命名空间(Namespace)在编程语言中,引入命名空间的概念是为了重用变量名或者服务例程名。在不同的命名空间中使用同一个变量名而不会产生冲突。Linux系统引入命名空间也有类似的作用。例如,在没有操作系统级虚拟化的Linux系统中,用户态进程从1开始编号(PID)。引入操作系统虚拟化之后,不同容器有着不同的PID命名空间,每个容器中的进程都可以从1开始编号而不产生冲突。 目前,Linux中的命名空间有6种类型,分 ...
Javascript中的数组
数组的定义:
var colors = new Array(20);
var colors = new Array(‘red’); // [‘red’]
var colors = [‘red’, ‘green’];
判断变量是不是数组:
colors instanceof Array; //true
Array.isArray(colors); //true
将数组转化为字符串:
colors.toString(); // ‘red,green’
colors.join(‘ ‘); //‘red green’
colors = [ “red”, undefined, “green”, null, “yellow” ];colors.toString(); //“red,,green,,yellow”colors.join(‘ ‘); //“red green yellow”colors.join(‘;’); //“red;;green;;yellow”
栈方法
colors.push(‘yellow’); //[‘red’, ‘gr ...
Javascript中的基本数据类型
Undefined
在var或者let中声明了变量但没有赋值时,这个变量的值就是undefined.
使用typeof关键字检测未声明变量的类型为undefined.
Null
null表示一个空对象指针,所以用typeof检测null时,会返回object
undefine派生自null, null == undefined 为true, null === undefined为false
Boolean
true false 区分大小写
空字符串、0和NaN、null、undefined转换为boolean的值为false
Number
Number表示整数和浮点数
八进制数以0开头,十六进制数以0x开头
Number.MIN_VALUE 表示Javascript支持的正的最小数值,Number.MAX_VALUE表示Javascript支持的最大数值
超出最大数值就会被转化为Infinity,如果为负值则会被转化为-Infinity
isFinite()函数可以判断一个数值是否在支持的范围之内
NaN表示本来该返回数值的操作数未 ...
React 概要
React 简介React 是一个开源的javascript库,用来构建用户接口(UI)。下图是React的一些基本信息:
React 的特点
单向数据流
数据自上而下
Props 不可变
States可变
任何数据、函数都可以作为属性(props)传 递给子组件(Props, States, Handlers, Styles)
事件冒泡
子组件触发的事件会传递到父组件
虚拟DOM
Javascript内存中的DOM数据缓存
组件发生变化时渲染虚拟DOM
React将虚拟DOM与DOM的差异转化为一系列的DOM操作
将这些操作同步应用到真实的DOM中
JSX
可以使用HTML语法创建Javascript 对象
代码更少
会被转化为Javascript执行
Offline - react-tools
In-Browser - JSXTransformer
不改变Javascript语义
其他特点
元素嵌套: 每个组件只允许有一个顶层元素(div, table …)
自定义属性: 除了HTML标签自带 ...
[转]Linux Mint启用VNC
This tutorial was adapted from here.
1. Remove the default Vino server:
sudo apt-get -y remove vino
2. Install x11vnc:
sudo apt-get -y install x11vnc
3. Create the directory for the password file:
sudo mkdir /etc/x11vnc
4. Create the encrypted password file:
sudo x11vnc –storepasswd /etc/x11vnc/vncpwd
You will be asked to enter and verify the password. Then press Y to save the password file.
5. Create the systemd service file for the x11vnc service:
sudo xed /lib/systemd/system/x11vnc.service
C ...
CSS概要
语法CSS全称为“层叠样式表 (Cascading Style Sheets)”,它主要是用于定义HTML内容在浏览器内的显示样式, 如文字大小、颜色、字体加粗等。使用CSS样式的一个好处是通过定义某个样式,可以让不同网页位置的 文字有着统一的字体、字号或者颜色等。
CSS语法 选择符 { 属性:值}
选择符:又称选择器,指明网页中要应用样式规则的元素,如本例中是网页中所有的段(p)的文字将变 成蓝色,而其他的元素(如ol)不会受到影响。
声明:在英文大括号“{}”中的的就是声明,属性和值之间用英文冒号“:”分隔。当有多条声明时,中间 可以英文分号“;”分隔
最后一条声明可以没有分号,但是为了以后修改方便,一般也加上分号
CSS注释 - /注释语句/
CSS的某些样式是具有继承性的。
为了使用样式更加容易阅读,可以将每条代码写在一个新行内
插入方式CSS样式可以写在哪些地方呢?从CSS 样式代码插入的形式来看基本可以分为以下3种:内联式、嵌入式和外部式三种。
内联式:把css代码用style属性直接写在现有的HTML标签中。如: <p style ...
ATOM快捷键操作
光标移动
Alt+Left or Alt+B - Move to the beginning of word
Alt+Right or Alt+F - Move to the end of word
Cmd+Left or Ctrl+A - Move to the first character of the current line
Cmd+Right or Ctrl+E - Move to the end of the line
Cmd+Up - Move to the top of the file
Cmd+Down - Move to the bottom of the file
Ctrl+P – Go up a single character
Ctrl+N – Go down a single character
Ctrl+B – Go left to a single character
Ctrl+F – Go right to a single character
Ctrl+G – Go to a certain line
Cmd+R – Jum ...
HTML概要
HTML CSS Javascript 的关系HTML是网页内容的载体。内容就是网页制作者放在页面上想要让用户浏览的信息,可以包含文字、图片、视频等。
CSS样式是表现。就像网页的外衣。比如,标题字体、颜色变化,或为标题加入背景图片、边框等。所有这些用来改变内容外观的东西称之为表现。
JavaScript是用来实现网页上的动态效果。如:鼠标滑过弹出下拉菜单。或鼠标滑过表格的背景颜色改变。还有焦点新闻(新闻图片)的轮换。
HTML 标签语法1. 标签由英文尖括号**<**和**>**括起来,如<html>就是一个标签。
2. html中的标签一般都是成对出现的,分开始标签和结束标签。结束标签比开始标签多了一个/。
如:
(1) <p></p>
(2) <div></div>
(3)<span></span>
3. 标签与标签之间是可以嵌套的,但先后顺序必须保持一致,如:<div>里嵌套<p>,那么</p>必须放在</div>的前面。如下图所示。
...
Python中list的遍历
在python中,若要遍历一个list而且需要在遍历时修改list,则需要十分注意,因为这样可能会导致死循环,例如:
In [10]: ls = ['hello', 'world', 'bugggggggg']
In [11]: for item in ls:
....: if len(item) > 5:
....: ls.insert(0, item)
....: print ls
....:
['bugggggggg', 'hello', 'world', 'bugggggggg']
['bugggggggg', 'bugggggggg', 'hello', 'world', 'bugggggggg']
['bugggggggg', 'bugggggggg', ' ...
Python中的参数传递与解析
Python传递命令行参数Python的命令行参数传递和C语言类似,都会把命令行参数保存到argv的变量中。对于python而言,argv是sys模块中定义的一个list。与C语言不同的是,python中并没有定义argc,要获得参数的个数,需要使用len(sys.argv)
当用户使用’python -c “command” ‘来运行一条python语句时,argv中保存的是[‘-c’]及”command”后面的参数,例如:
$ python -c 'import sys
print sys.argv' hello world
['-c', 'hello', 'world']
当用户使用’python -m “module” ‘来运行一个模块时,argv中保存的是模块名及”module”后面的参数,例如:
$ python -m 'show_args' hello world
['/home/kelvin/tmp/show_args.py', 'hello', ' ...