自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(112)
  • 收藏
  • 关注

转载 virtualbox虚拟机NAT模式下不能连接外网

背景  给VirtualBox虚拟机(装载了Ubuntu16.04系统)配置了两张网卡,网络模式分别为“网络地址转换(NAT)”和“仅主机(Host-Only)适配器”,其中,enp0s3网卡(NAT)用于外网访问,而enp0s8网卡(Host-Only)用于主机访问虚拟机。然而,虚拟机启动后,却不能访问外网。  定位网络配置文件如下:# vi /etc/network

2017-06-17 21:22:03 363

原创 Dockerfile注意事项

准则尽量将Dockerfile放在空目录中,如果目录中必须有其他文件,则使用.dockerignore文件。避免安装不必须的包。每个容器应该只关注一个功能点。最小化镜像的层数。多行参数时应该分类。这样更清晰直白,便于阅读和review,另外,在每个换行符\前都增加一个空格。对构建缓存要有清楚的认识。指令注意事项FROM    Dockerfile ref

2017-06-17 21:21:28 113

原创 Ceph部署(二)RGW搭建

背景Ceph RGW简介Ceph RGW基于librados,是为应用提供RESTful类型的对象存储接口。RGW提供两种类型的接口:  1) S3:兼容Amazon S3RESTful API;  2) Swift:兼容OpenStack Swift API。    S3和Swift API共享同一个命名空间,所以可以使用两种API访问相同的数据。环境规划

2017-06-17 21:19:09 154

原创 Docker存储驱动之OverlayFS简介

简介  OverlayFS是一种和AUFS很类似的文件系统,与AUFS相比,OverlayFS有以下特性:   1) 更简单地设计;   2) 从3.18开始,就进入了Linux内核主线;   3) 可能更快一些。  因此,OverlayFS在Docker社区关注度提高很快,被很多人认为是AUFS的继承者。就像宣称的一样,OverlayFS还很年轻。所以,在生成环境使用它时

2017-06-17 21:18:24 204

原创 rdb map出错rbd sysfs write failed

创建了一个rbd镜像$ rbd create --size 4096 docker_test然后,在Ceph client端将该rbd镜像映射为本地设备时出错。$ rbd map docker_test --name client.adminrbd: sysfs write failedRBD image feature set mismatch. You can disab

2017-06-17 21:17:54 114

原创 CEPH-DEPLOY INSTALL时,远端节点在执行APT-GET UPDATE命令时失败

环境  OS:Ubuntu 16.04背景  使用ceph-deploy部署Ceph集群,调用ceph-deploy install命令在远端节点安装ceph环境,执行apt-get update命令时失败。Err:1 http://mirrors.163.com/ubuntu xenial InRelease Temporary failure resolving '

2017-06-17 21:17:25 127

原创 Docker存储驱动之Device Mapper简介

Device Mapper是一个基于kernel的框架,它增强了很多Linux上的高级卷管理技术。Docker的devicemapper驱动在镜像和容器管理上,利用了该框架的超配和快照功能。为了区别,本文使用Device Mapper指驱动中的框架,而devicemapper指Docker的存储驱动。  注意:商业支持的Docker Engine(CS-Engine)建议在RHEL和CentO

2017-06-17 21:16:48 133

原创 Docker存储驱动之ZFS简介

ZFS是下一代的文件系统,支持了很多存储高级特性,如卷管理、快照、和校验、压缩和重复删除技术、拷贝等。  ZFS由Sun公司创建,现属于Oracle,ZFS是开源的,并基于CDDL license。因为CDDL和GPL不兼容,ZFS不能加入Linux kernel主线。然而,ZFS On Linux(ZoL)项目提供kernel模块和用户空间程序,这些都可以单独的安装。  ZFS on L

2017-06-17 21:16:21 118

原创 Docker存储驱动之总览

简介  本文会介绍Docker存储驱动的特性,别列出现在已经支持的存储驱动,最后,会介绍如果选型适合你的存储驱动。可插拔的存储驱动架构  Docker的存储驱动架构是可插拔的,可以让你很方便的将适合你环境和用例的存储驱动“插进”Docker。每个Docker存储驱动都建立在一种Linux文件系统或者卷管理系统之上,也可以很自由地按照其自己的方法去实现镜像层和容器层的管理。也就是

2017-06-17 21:15:47 115

原创 CEPH -S集群报错TOO MANY PGS PER OSD

背景集群状态报错,如下:# ceph -s cluster 1d64ac80-21be-430e-98a8-b4d8aeb18560 health HEALTH_WARN <-- 报错的地方 too many PGs per OSD (912 > max 300) monmap e1: 1 mons at {node1=109

2017-06-17 21:15:11 82

原创 重启osd服务失败:Start request repeated too quickly

背景  OS:Ubuntu 16.04  修改了osd的一些配置,修改后,需要重启osd服务才能生效。第一次重启后,配置立刻生效。再改了一些配置,重启osd服务后,配置却不再生效了。ps命令查看进程,发现osd进程都没有启动。分析  osd进程未启动,第一直觉就是配置出错,osd进程启动后又挂掉。于是,进入/var/log/ceph目录,查看ceph-osd.0.log,发

2017-06-17 21:14:43 2072

原创 Docker版本升级至17.03

2017/3/3,Docker官方发表了一篇博客,Docker版本从1.13.*直接跳入17.03,该版本的意思是17年3月。同时,还声明了Docker以后会以CE(Community Edition)和EE(Enterprise Edition)的形式发布。其中,CE版本每个月发布一次,也就是说,随后的版本就是17.03、17.04、17.05等,而EE的版本是没三个月发布一次,对应的就是17.

2017-06-17 21:14:14 109

原创 使用Docker容器来源码编译etcd

背景  etcd是CoreOS公司开发的分布式键值对存储库。在Kubernetes中,我们需要使用etcd作为所有REST API对象的持久化存储。  不幸的是,在github的release中,CoreOS将etcd的二进制可执行文件都放在了亚马逊的S3存储上,在国内访问非常慢。因此,我们只能通过源码编译etcd。过程  1. 下载etcd源码。$ git clone

2017-06-17 21:13:48 81

原创 PHP开发第一个扩展

首先声明:我们要构建的是扩展或者模块名为hello_module.该模块提供一个方法:hello_word.一、PHP环境的搭建1)一般使用源码包编译安装,而不是binary包安装。因为使用PHP的二进制分发包安装有些冒险,这些版本倾向于忽略./configure的两个重要选项,它们在开发过程中很便利:第一个--enable-debug。这个选项将把附加的符号信息编

2017-06-17 11:29:47 163

原创 CI框架SESSION重写

if ( ! defined('BASEPATH')) exit('No direct script access allowed');/** * CodeIgniter * * An open source application development framework for PHP 5.1.6 or newer * * @package     CodeIgnit

2017-06-17 11:29:15 182

原创 XMLHttpRequest的跨域请求

缘起由于浏览器的同源策略,非同源不可请求。但是,在实践当中,经常会出现需要跨域请求资源的情况,比较典型的例如某个子域名向负责进行用户验证的子域名请求用户信息等应用。以前要实现跨域访问,可以通过JSONP、Flash或者服务器中转的方式来实现,但是现在我们有了CORS。CORS与JSONP相比,无疑更为先进、方便和可靠。123

2017-06-17 11:28:49 391

转载 PHP哈希表碰撞攻击

哈希表是一种查找效率极高的数据结构,PHP中的哈希表是一种极为重要的数据结构,不但用于表示数组,关联数组,对象属性,函数表,符号表,还在Zend虚拟机内部用于存储上下文环境信息(执行上下文的变量及函数均使用哈希表结构存储)。PHP是使用单链表存储碰撞的数据,因此实际上PHP哈希表的平均查找复杂度为O(L),其中L为桶链表的平均长度;而最坏复杂度为O(N),此时所有数据全部碰撞,哈希表退化成

2017-06-17 11:28:23 104

原创 empty、isset、is

直接上代码123456789101112131415161718192021222324$a=0;$b='0';$c=0.0;$d='';$e=NULL;$f=array();$g='\0';$h=' ';//space$i=true;

2017-06-17 11:27:54 101

原创 PHP实现4种排序算法

1、冒泡排序  冒泡排序其实是基于“交换”。每次从第一个记录开始,一、二两个记录比较,大的往后放,二三两个记录比较...依次类推,这就是一趟冒泡排序。每一趟冒泡排序后,无序序列中值最大的记录冒到序列末尾,所以称之为冒泡排序123456789101112function BubbleSort(&$_arr){

2017-06-17 11:27:13 83

原创 C实现9种排序算法

#include #include #define   LENGTH(s)   (sizeof(s)/sizeof(int))#define   SWAP(x,y) {long t; t=x; x=y; y=t;}//冒泡排序void BubbleSort(int **p,int len){    int i,j;         for(i=0;i//外层控制循环

2017-06-17 11:26:47 121

原创 JS验证控件jQuery Validate

jQuery Validate 插件为表单提供了强大的验证功能,让客户端表单验证变得更简单,同时提供了大量的定制选项,满足应用程序各种需求。该插件捆绑了一套有用的验证方法,包括 URL 和电子邮件验证,同时提供了一个用来编写用户自定义方法的 API。实现步骤如下:step1:在body标签中增加一个表单标签                      

2017-06-14 21:24:10 64

原创 Android图片选择器

1、概述           应公司项目需求,要做一个图片选择器,网上搜索了一些源码,我在别人的基础上进行了修改,另外页面也进行了重整,我的是先加载图片文件夹列表,然后再进入选择图片。           参考博客地址:http://blog.csdn.net/lmj623565791/article/details/39943731           修改bug:可以扫描gif

2017-06-14 21:23:41 80

原创 苹果系统安装虚拟机 Mac如何安装虚拟机教程

1.前言   大家在用 Mac 系统的时候,可能有时难免还是要用到 Windows 系统。在 Mac 上使用 Windows 系统有二种方法。一种是在 Mac上安装双系统,适合要在机器上处理一些大型的应用,如大型游戏,设计,处理图形等。另一种方法是直接在 Mac 系统上安装一个  虚拟机,然后在虚拟机上安装 Window 系统。二种方法各有好处,双系统的话可以发挥出机器本身的硬件性能,

2017-06-14 21:23:12 179

原创 Android应用中实现系统“分享”接口

在android下各种文件管理器中,我们选择一个文件,点击分享可以看到弹出一些app供我们选择,这个是android系统分享功能,我们做的app也可以出现在这个列表中。第一步:在Manifest.xml进行配置,比普通的activity中多增加一个Intent过滤器        android:name="com.example.share.MainAct

2017-06-14 21:22:25 209

原创 FragmentPagerAdapter+ViewPager实现Tab切换效果

1.Activity  加载布局文件,获取Viewpager控件   给ViewPager填充适配器.import android.app.ActionBar;  import android.app.ActionBar.Tab;  import android.app.Activity;  import android.app.Fragment;  import android.ap

2017-06-14 21:21:55 129

原创 Android重写菜单增加系统自带返回键

条件:当前项目导入了ActionBarSherlock这个jar包,这个jar包的作用为了程序的兼容性,考虑低版本的问题.         学习ActionBarSherlock参考博客链接:http://blog.csdn.net/icyfox_bupt/article/details/9286387接下来贴上代码@Override  protected 

2017-06-14 21:21:08 151

原创 修改后的小米文件管理器(去掉远程管理)

最近项目要用到文件管理,就找来小米的开源文件管理代码,删掉了远程管理代码,只有文件管理.效果图如下:源码下载地址:http://download.csdn.net/detail/lowprofile_coding/7524729

2017-06-14 21:20:42 707

原创 Android标题栏上添加多个Menu按钮

最近项目中碰到要在Android Menu旁边再添加一个按钮,而不是点击menu按钮然后在弹出一些选项.MainActivity代码:public class MainActivity extends Activity {      private static final int MENU_CONFIRM = 17;        @Override 

2017-06-14 21:20:12 198

原创 Binary XML file line #2: Error inflating

06-27 14:29:27.600: E/AndroidRuntime(6936): FATAL EXCEPTION: main  06-27 14:29:27.600: E/AndroidRuntime(6936): android.view.InflateException: Binary XML file line #2: Error inflating class     com.exa

2017-06-14 21:19:44 95

原创 读Zepto源码之操作DOM

这篇依然是跟 dom 相关的方法,侧重点是操作 dom 的方法。读Zepto源码系列文章已经放到了github上,欢迎star: reading-zepto源码版本本文阅读的源码为 zepto1.2.0.remove()remove: function() { return this.each(function() { if (this.parentNo

2017-06-14 21:18:53 85

原创 读Zepto源码之样式操作

这篇依然是跟 dom 相关的方法,侧重点是操作样式的方法。读Zepto源码系列文章已经放到了github上,欢迎star: reading-zepto源码版本本文阅读的源码为 zepto1.2.0内部方法classREclassCache = {}function classRE(name) { return name in classCache ?

2017-06-14 21:18:22 78

原创 读Zepto源码之代码结构

虽然最近工作中没有怎么用 zepto ,但是据说 zepto 的源码比较简单,而且网上的资料也比较多,所以我就挑了 zepto 下手,希望能为以后阅读其他框架的源码打下基础吧。源码版本本文阅读的源码为 zepto1.2.0阅读zepto之前需要了解 javascript 原型链和闭包的知识,推荐阅读王福朋的这篇文章:深入理解 Javascript 原型和闭包,写得很详细,也非常

2017-06-14 21:14:19 63

原创 读 Zepto 源码之内部方法

数组方法定义var emptyArray = [] concat = emptyArray.concat filter = emptyArray.filter slice = emptyArray.slicezepto 一开始就定义了一个空数组 emptyArray,定义这个空数组是为了取得数组的 concat、filter、slice 方法co

2017-06-14 21:13:54 80

原创 读 zepto 源码之工具函数

Zepto 提供了丰富的工具函数,下面来一一解读。源码版本本文阅读的源码为 zepto1.2.0$.extend$.extend 方法可以用来扩展目标对象的属性。目标对象的同名属性会被源对象的属性覆盖。$.extend 其实调用的是内部方法 extend, 所以我们先看看内部方法 extend 的具体实现。function extend(target, so

2017-06-14 21:13:14 85

原创 用Vue实现一个全选指令

最近用vue做了两个项目,都需要实现全选反选的功能,两个项目用了两种实现方法,第一个项目用vue的computed,第二个项目用指令来实现,用起来,发觉指令更加方便。第一次做全选的时候是刚开始接触vue不久,全选的实现参考了知乎(链接:https://www.zhihu.com/question/37833194/answer/91812053)上的实现方法:1、从服务器拿到数据,为每

2017-06-14 21:12:39 94

原创 简单设置,解决使用webpack前后端跨域发送cookie的问题

最近用vue来做项目,用webpack来做前端自动化构建。webpack-dev-server会在本地搭建一个服务器,在和后端调试的时候,就会涉及到跨域的问题。刚开始时,没有用vue-cli来构建项目,而是参考了github上的vue-vueRouter-webpack来构建。看网上的资料,vue-cli可以通过配置代理来解决跨域的问题:proxyTable: { '/list':

2017-06-14 21:11:54 359

原创 谷歌插件Image downloader开发之 content script

自己运营了一个公众号,在发文章的时候,需要在网上找一些图,而有些网站的图片可能隐藏在属性或者背景图中,要下载的时候经常审查元素,查看源码,不太方便,最近在看一些谷歌插件的api,便顺手做了一个插件Image downloader。源码放到了github上,顺便学习并用了一下git。地址:https://github.com/yeyuqiudeng/imageDownloader功能Im

2017-06-14 21:11:16 117

原创 谷歌插件Image downloader开发之popup

Image downloader的交互逻辑是这样的:用户点击Image downloader的图标,会向页面(content script,见上一篇文章:谷歌插件Image downloader开发之 content script)发送收集图片事件,页面收集完图片后,将对应的图片地址数组发送给popup页处理。popup页就是点击谷歌插件图标所弹出来的页面。Image downloader的p

2017-06-14 21:10:45 88

原创 用vue实现模态框组件

基本上每个项目都需要用到模态框组件,由于在最近的项目中,alert组件和confirm是两套完全不一样的设计,所以我将他们分成了两个组件,本文主要讨论的是confirm组件的实现。组件结构

2017-06-14 21:10:13 102

原创 vue-lazy-render: 延迟渲染大组件,增强页面切换流畅度

最近用element来做项目,在开发的过程中,突然发现页面的操作和切换在数据量大的时候相当卡,后来提了个issue,在furybean解答后才知道,我每个单元格都加了tooltip,会生成大量的节点,造成页面操作卡顿。后来将tooltip去掉,操作流畅多了。但是,由于我是将页面的数据存在vuex中的,在路由切换回来的时候,发现在数据量大的时候,页面渲染得很慢,大概两三秒才能切换过来,用户体

2017-06-14 21:09:46 271

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除