diff --git a/2015/04/08/hello-world/index.html b/2015/04/08/hello-world/index.html new file mode 100644 index 0000000..7e1ba82 --- /dev/null +++ b/2015/04/08/hello-world/index.html @@ -0,0 +1,212 @@ + + + + + + Hello World | Why is Mapic + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + +
+
+ +
+ + + + +

Hello World

+ + +
+
+ +



2015/04/05-2015/04/08

博客诞生之初!

+

这几天适逢清明节,一个人在实验室安安静静的学到了很多东西,在此感谢Gavin。正是看到他关于Hexo的介绍,才萌生了建博客的念头。还有Zippera的不吝指导,包括他博客的教程以及通过QQ的交谈,可以说没有他的帮助我不会这么顺利。

+

从今开始,我会尝试用博客记录我的成长历程,见证我成为大牛的点点滴滴!

+ + +
+
+ + + +
+ + +
+
+
+
+ + + +
+ +
+ + + + +
+ +
+ +
+
+ + + + + + + + + + + + + + \ No newline at end of file diff --git "a/2015/04/09/Ubuntu14.10\344\270\213\351\205\215\347\275\256java\347\216\257\345\242\203\345\217\230\351\207\217/index.html" "b/2015/04/09/Ubuntu14.10\344\270\213\351\205\215\347\275\256java\347\216\257\345\242\203\345\217\230\351\207\217/index.html" new file mode 100644 index 0000000..bd52b1c --- /dev/null +++ "b/2015/04/09/Ubuntu14.10\344\270\213\351\205\215\347\275\256java\347\216\257\345\242\203\345\217\230\351\207\217/index.html" @@ -0,0 +1,236 @@ + + + + + + Ubuntu14.10配置java环境变量 | Why is Mapic + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + +
+
+ +
+ + + + +

Ubuntu14.10配置java环境变量

+ + +
+
+ +
    +
  1. 下载最新的jdk8安装

    +
  2. +
  3. 解压jdk-8u40-linux-x64.gz(64位版本,相信32位的现在已经很少了吧),解压后放置在/opt下

    +
    1
    $sudo tar -zxvf jdk-8u40-linux-x64.gz -C /opt
    +
  4. +
  5. 配置环境变量

    +
    1
    $sudo gedit ~/.bashrc
    +
  6. +
  7. 在末尾处加入一下内容

    +
    1
    2
    3
    4
    export JAVA_HOME=/opt/jdk1.8.0_40
    export JRE_HOME=${JAVA_HOME}/jre
    export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
    export PATH=${JAVA_HOME}/bin:$PATH
    +
  8. +
  9. 配置默认JDK
    由于部分linux已经自带了JDK,所以我们需要设置刚刚安装好的JDK来作为默认JDK,可以进行下面的配置

    +
    1
    2
    $sudo update-alternatives --install /usr/bin/java java /opt/jdk1.8.0_40/bin/java 300
    $sudo update-alternatives --install /usr/bin/javac javac /opt/jdk1.8.0_40/bin/javac 300
    +
  10. +
  11. 测试
    启动终端,输入以下命令

    +
    1
    $java -version
    +
  12. +
+

如果显示java的版本号1.8.0则环境变量配置成功

+ + +
+
+ + + + +
+ java +
+ +
+ + +
+
+
+
+ + + +
+ +
+ + + + +
+ +
+ +
+
+ + + + + + + + + + + + + + \ No newline at end of file diff --git "a/2015/04/09/Ubuntu14.10\345\256\211\350\243\205hadoop/index.html" "b/2015/04/09/Ubuntu14.10\345\256\211\350\243\205hadoop/index.html" new file mode 100644 index 0000000..81f4d72 --- /dev/null +++ "b/2015/04/09/Ubuntu14.10\345\256\211\350\243\205hadoop/index.html" @@ -0,0 +1,272 @@ + + + + + + Ubuntu14.10安装hadoop | Why is Mapic + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + +
+
+ +
+ + + + +

Ubuntu14.10安装hadoop

+ + +
+
+ +

配置java环境变量

参见上一篇文章。

+

准备工作

    +
  1. 创建hadoop组和hadoop用户,并将hadoop用户加入hadoop组

    +
    1
    2
    $sudo addgroup hadoop
    $sudo adduser -ingroup hadoop hadoop
    +

    回车后会提示输入新的UNIX密码,这是新建用户hadoop的密码。密码不回显,输入之后会要求确认一次。切记这一步不能回车跳过,否则无法登陆创建的用户。密码确认之后还要输入其他一些个人信息,这里可以一直回车跳过,最后确认所有信息正误,输入Y之后回车。

    +
  2. +
  3. 为hadoop用户添加权限

    +
    1
    $sudo gedit /etc/sudoers
    +

    在打开的sudoers文件中,给hadoop用户赋予和root用户同样的权限。在root ALL=(ALL:ALL) ALL这一行下面添加hadoop ALL=(ALL:ALL) ALL

    +
  4. +
  5. 使用hadoop用户身份登陆Ubuntu系统
  6. +
  7. 安装ssh

    +
    1
    $sudo apt-get install openssh-server
    +

    安装完成后,启动服务:

    +
    1
    $sudo /etc/init.d/ssh start
    +

    查看服务是否正确启动:

    +
    1
    ps -e | grep ssh
    +

    我们将会看到终端打印出sshd的进程

    +
  8. +
  9. 设置免密码登录,生成私钥和公钥
    1
    $ssh-keygen -t rsa -P ""
    +
  10. +
+

安装hadoop1.2.1

    +
  1. 官网下载hadoop1.2.1
  2. +
  3. 安装hadoop
    解压hadoop至/usr/local目录下:

    +
    1
    $sudo tar zxvf hadoop-1.2.1.tar.gz -C /usr/local/
    +

    赋予用户对该文件夹足够的权限:

    +
    1
    $sudo chmod 777 /usr/local/hadoop-1.2.1
    +

    配置环境变量

    +
    1
    $sudo gedit ~/.bashrc
    +

    在文件的末尾添加环境变量:

    +
    1
    2
    3
    4
    5
    6
    #HADOOP VARIABLES START
    export JAVA_HOME=/opt/jdk1.8.0_40/
    export HADOOP_HOME=/usr/local/hadoop-1.2.1
    export PATH=$PATH:$HADOOP_HOME/bin:$JAVA_HOME/bin
    export CLASSPATH=$JAVA_HOME/lib:.
    #HADOOP VARIABLES END
    +

    执行下面的命令使添加的环境变量生效:

    +
    1
    $source ~/.bashrc
    +
  4. +
  5. 配置hadoop-env.sh文件
    执行下面的命令:

    +
    1
    $sudo gedit /usr/local/hadoop-1.2.1/conf/hadoop-env.sh
    +

    找到JAVA_HOME变量,修改此变量如下:

    +
    1
    export JAVA_HOME=/opt/jdk1.8.0_40
    +
  6. +
  7. 配置core-site.xml文件
    填写以下内容:

    +
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <configuration>
    <property>
    <name>hadoop.tmp.dir</name>
    <value>/home/hadoop/hadoop-1.2.1/tmp</value>
    <description>Abase for other temporary directories.
    </description>
    </property>
    <property>
    <name>fs.default.name</name>
    <value>hdfs://localhost:9000</value>
    </property>
    </configuration>
    +
  8. +
  9. 配置hdfs-site.xml文件

    +
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    <configuration>
    <property>
    <name>dfs.name.dir</name>
    <value>/home/hadoop/hadoop-1.2.1/dfs/name</value>
    <description>Path on the local filesystem where the NameNode stores the namespace and transactions logs persistently.</description>
    </property>

    <property>
    <name>dfs.data.dir</name>
    <value>/home/hadoop/hadoop-1.2.1/dfs/data</value>
    <description>Comma separated list of paths on the local filesystem of a DataNode where it should store its blocks.</description>
    </property>
    <property>
    <name>dfs.replication</name>
    <value>1</value>
    </property>
    </configuration>
    +
  10. +
  11. 配置mapred-site.xml文件

    +
    1
    2
    3
    4
    5
    6
    7
    <configuration>
    <property>
    <name>mapred.job.tracker</name>
    <value>localhost:9001</value>
    <description>Host or IP and port of JobTracker.</description>
    </property>
    </configuration>
    +
  12. +
  13. 配置masters文件
    填写:

    +
    1
    localhost
    +
  14. +
  15. 配置slaves文件
    填写:

    +
    1
    localhost
    +
  16. +
+ + +
+
+ + + + +
+ hadoop +
+ +
+ + +
+
+
+
+ + + +
+ +
+ + + + +
+ +
+ +
+
+ + + + + + + + + + + + + + \ No newline at end of file diff --git "a/2015/04/09/hadoop\350\277\220\350\241\214\344\270\216wordcount\347\250\213\345\272\217\346\265\213\350\257\225/index.html" "b/2015/04/09/hadoop\350\277\220\350\241\214\344\270\216wordcount\347\250\213\345\272\217\346\265\213\350\257\225/index.html" new file mode 100644 index 0000000..0ba1e28 --- /dev/null +++ "b/2015/04/09/hadoop\350\277\220\350\241\214\344\270\216wordcount\347\250\213\345\272\217\346\265\213\350\257\225/index.html" @@ -0,0 +1,231 @@ + + + + + + Hadoop安装与WordCount程序测试 | Why is Mapic + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + +
+
+ +
+ + + + +

Hadoop安装与WordCount程序测试

+ + +
+
+ +
    +
  1. 首次运行hadoop前需格式化HDFS文件系统,命令如下:

    格式化成功将会显示如下提示:
  2. +
  3. 运行hadoop,命令及运行情况如下:
  4. +
  5. 测试数据说明
    测试数据来自hadoop官网的6个网页文件(html),每一个网页文件都具有大量的英文单词。文件如下:
  6. +
  7. 运行WordCount程序
    +

    将本地的6个html文件拷贝进HDFS文件系统,命令如下:

    +

    运行hadoop自带的wordcount程序,命令如下:

    +

    运行过程如下:

    +
    +
  8. +
  9. 查看HDFS中的结果
  10. +
  11. 将结果从HDFS拷贝到本地磁盘
  12. +
  13. 查看结果,test-out会产生3个文件或者文件夹,如下:

    中间一个part-r-00000的文件是我们需要的结果,它是以词与词频的形式为我们呈现的,如下所示(截取部分):
  14. +
  15. 注意事项
    在启动hadoop之后偶尔发现在HDFS中不能删除文件,提示namenode safe mode,这时候需要hadoop dfsadmin –safemode leave取消safe mode。
  16. +
+ + +
+
+ + + + +
+ hadoop +
+ +
+ + +
+
+
+
+ + + +
+ +
+ + + + +
+ +
+ +
+
+ + + + + + + + + + + + + + \ No newline at end of file diff --git "a/2015/06/05/Linux\344\270\213capget\344\270\216capset\347\263\273\347\273\237\350\260\203\347\224\250/index.html" "b/2015/06/05/Linux\344\270\213capget\344\270\216capset\347\263\273\347\273\237\350\260\203\347\224\250/index.html" new file mode 100644 index 0000000..bc75ed7 --- /dev/null +++ "b/2015/06/05/Linux\344\270\213capget\344\270\216capset\347\263\273\347\273\237\350\260\203\347\224\250/index.html" @@ -0,0 +1,227 @@ + + + + + + Linux下capget和capset系统调用详解 | Why is Mapic + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + +
+
+ +
+ + + + +

Linux下capget和capset系统调用详解

+ + +
+
+ +

吐槽

居然被陈某人拉进了SELinux小组,只能说郁闷

+

权能机制

linux从2.1开始加入权能机制,从此,访问控制的时候不再是判断主体的euid(有效用户ID),而是判断主体是否具有某一个权能。3.10版本的权能已经多达37个。目前只有root用户完整的拥有这些权能,且只有root可以赋予其他进程某些权能,这就是通过capget与capset实现的。

+

原型

capset与capget系统调用位于内核kernel/include/linux/syscalls.h系统调用表中,其原型为:

+
    +
  1. asmlinkage long sys_capget(cap_user_header_t header,cap_user_data_t dataptr);
  2. +
  3. asmlinkage long sys_capset(cap_user_header_t header,const cap_user_data_t data);
  4. +
+


+

功能

capget用来获得进程的权能,capset用来设置进程的权能。

+

相关数据结构

typedef struct __user_cap_header_struct {
+    __u32 version;
+    int pid;
+} __user *cap_user_header_t;
+
+ +
+
+ + + + +
+ Linux +
+ +
+ + +
+
+
+
+ + + +
+ +
+ + + + +
+ +
+ +
+
+ + + + + + + + + + + + + + \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..91e417a --- /dev/null +++ b/README.md @@ -0,0 +1,2 @@ +# mapicccy.github.io +个人博客 diff --git a/archives/2015/04/index.html b/archives/2015/04/index.html new file mode 100644 index 0000000..ea83805 --- /dev/null +++ b/archives/2015/04/index.html @@ -0,0 +1,194 @@ + + + + + + 归档:2015/4 | Why is Mapic + + + + + + + + + + + + + + + + + + + + + + + + +
+
+

2015/4

+ + +
+ + + + + + + + + +
+
+ +
+
+ + + + + + + + + + + + + + \ No newline at end of file diff --git a/archives/2015/06/index.html b/archives/2015/06/index.html new file mode 100644 index 0000000..6752cc5 --- /dev/null +++ b/archives/2015/06/index.html @@ -0,0 +1,158 @@ + + + + + + 归档:2015/6 | Why is Mapic + + + + + + + + + + + + + + + + + + + + + + + + +
+
+

2015/6

+ + + +
+ +
+
+ + + + + + + + + + + + + + \ No newline at end of file diff --git a/archives/2015/index.html b/archives/2015/index.html new file mode 100644 index 0000000..10d55b1 --- /dev/null +++ b/archives/2015/index.html @@ -0,0 +1,206 @@ + + + + + + 归档:2015 | Why is Mapic + + + + + + + + + + + + + + + + + + + + + + + + +
+
+

2015

+ + +
+ + + + + + + + + + + +
+
+ +
+
+ + + + + + + + + + + + + + \ No newline at end of file diff --git a/archives/index.html b/archives/index.html deleted file mode 100644 index 8a71a19..0000000 --- a/archives/index.html +++ /dev/null @@ -1,437 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 归档 | mapicccy - - - - - - - - - - - - - -
-
- -
-
- - -
- - - -

mapicccy

- -
-

男人有实力,才有魅力

-
- - -
- - - - - - - - - -
-
- - -
- - 0% -
-
- - - -
-
-
- - -
- - - - - -
-
-
- 嗯..! 目前共计 2 篇日志。 继续努力。 -
- - -
- 2022 -
- - - - - - -
-
- - - - - - - - -
- - - - -
- - - - - - - - -
-
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/css/font/fontawesome-webfont.eot b/css/font/fontawesome-webfont.eot new file mode 100644 index 0000000..89070c1 Binary files /dev/null and b/css/font/fontawesome-webfont.eot differ diff --git a/css/font/fontawesome-webfont.svg b/css/font/fontawesome-webfont.svg new file mode 100644 index 0000000..1245f92 --- /dev/null +++ b/css/font/fontawesome-webfont.svg @@ -0,0 +1,255 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/css/font/fontawesome-webfont.ttf b/css/font/fontawesome-webfont.ttf new file mode 100644 index 0000000..c17e9f8 Binary files /dev/null and b/css/font/fontawesome-webfont.ttf differ diff --git a/css/font/fontawesome-webfont.woff b/css/font/fontawesome-webfont.woff new file mode 100644 index 0000000..09f2469 Binary files /dev/null and b/css/font/fontawesome-webfont.woff differ diff --git a/fancybox/blank.gif b/fancybox/blank.gif new file mode 100644 index 0000000..35d42e8 Binary files /dev/null and b/fancybox/blank.gif differ diff --git a/fancybox/fancybox_loading.gif b/fancybox/fancybox_loading.gif new file mode 100644 index 0000000..a03a40c Binary files /dev/null and b/fancybox/fancybox_loading.gif differ diff --git a/fancybox/fancybox_loading@2x.gif b/fancybox/fancybox_loading@2x.gif new file mode 100644 index 0000000..9205aeb Binary files /dev/null and b/fancybox/fancybox_loading@2x.gif differ diff --git a/fancybox/fancybox_overlay.png b/fancybox/fancybox_overlay.png new file mode 100644 index 0000000..a439139 Binary files /dev/null and b/fancybox/fancybox_overlay.png differ diff --git a/fancybox/fancybox_sprite.png b/fancybox/fancybox_sprite.png new file mode 100644 index 0000000..fd8d5ca Binary files /dev/null and b/fancybox/fancybox_sprite.png differ diff --git a/fancybox/fancybox_sprite@2x.png b/fancybox/fancybox_sprite@2x.png new file mode 100644 index 0000000..d0e4779 Binary files /dev/null and b/fancybox/fancybox_sprite@2x.png differ diff --git a/fancybox/jquery.fancybox.css b/fancybox/jquery.fancybox.css new file mode 100644 index 0000000..367890a --- /dev/null +++ b/fancybox/jquery.fancybox.css @@ -0,0 +1,274 @@ +/*! fancyBox v2.1.5 fancyapps.com | fancyapps.com/fancybox/#license */ +.fancybox-wrap, +.fancybox-skin, +.fancybox-outer, +.fancybox-inner, +.fancybox-image, +.fancybox-wrap iframe, +.fancybox-wrap object, +.fancybox-nav, +.fancybox-nav span, +.fancybox-tmp +{ + padding: 0; + margin: 0; + border: 0; + outline: none; + vertical-align: top; +} + +.fancybox-wrap { + position: absolute; + top: 0; + left: 0; + z-index: 8020; +} + +.fancybox-skin { + position: relative; + background: #f9f9f9; + color: #444; + text-shadow: none; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} + +.fancybox-opened { + z-index: 8030; +} + +.fancybox-opened .fancybox-skin { + -webkit-box-shadow: 0 10px 25px rgba(0, 0, 0, 0.5); + -moz-box-shadow: 0 10px 25px rgba(0, 0, 0, 0.5); + box-shadow: 0 10px 25px rgba(0, 0, 0, 0.5); +} + +.fancybox-outer, .fancybox-inner { + position: relative; +} + +.fancybox-inner { + overflow: hidden; +} + +.fancybox-type-iframe .fancybox-inner { + -webkit-overflow-scrolling: touch; +} + +.fancybox-error { + color: #444; + font: 14px/20px "Helvetica Neue",Helvetica,Arial,sans-serif; + margin: 0; + padding: 15px; + white-space: nowrap; +} + +.fancybox-image, .fancybox-iframe { + display: block; + width: 100%; + height: 100%; +} + +.fancybox-image { + max-width: 100%; + max-height: 100%; +} + +#fancybox-loading, .fancybox-close, .fancybox-prev span, .fancybox-next span { + background-image: url('fancybox_sprite.png'); +} + +#fancybox-loading { + position: fixed; + top: 50%; + left: 50%; + margin-top: -22px; + margin-left: -22px; + background-position: 0 -108px; + opacity: 0.8; + cursor: pointer; + z-index: 8060; +} + +#fancybox-loading div { + width: 44px; + height: 44px; + background: url('fancybox_loading.gif') center center no-repeat; +} + +.fancybox-close { + position: absolute; + top: -18px; + right: -18px; + width: 36px; + height: 36px; + cursor: pointer; + z-index: 8040; +} + +.fancybox-nav { + position: absolute; + top: 0; + width: 40%; + height: 100%; + cursor: pointer; + text-decoration: none; + background: transparent url('blank.gif'); /* helps IE */ + -webkit-tap-highlight-color: rgba(0,0,0,0); + z-index: 8040; +} + +.fancybox-prev { + left: 0; +} + +.fancybox-next { + right: 0; +} + +.fancybox-nav span { + position: absolute; + top: 50%; + width: 36px; + height: 34px; + margin-top: -18px; + cursor: pointer; + z-index: 8040; + visibility: hidden; +} + +.fancybox-prev span { + left: 10px; + background-position: 0 -36px; +} + +.fancybox-next span { + right: 10px; + background-position: 0 -72px; +} + +.fancybox-nav:hover span { + visibility: visible; +} + +.fancybox-tmp { + position: absolute; + top: -99999px; + left: -99999px; + visibility: hidden; + max-width: 99999px; + max-height: 99999px; + overflow: visible !important; +} + +/* Overlay helper */ + +.fancybox-lock { + overflow: hidden !important; + width: auto; +} + +.fancybox-lock body { + overflow: hidden !important; +} + +.fancybox-lock-test { + overflow-y: hidden !important; +} + +.fancybox-overlay { + position: absolute; + top: 0; + left: 0; + overflow: hidden; + display: none; + z-index: 8010; + background: url('fancybox_overlay.png'); +} + +.fancybox-overlay-fixed { + position: fixed; + bottom: 0; + right: 0; +} + +.fancybox-lock .fancybox-overlay { + overflow: auto; + overflow-y: scroll; +} + +/* Title helper */ + +.fancybox-title { + visibility: hidden; + font: normal 13px/20px "Helvetica Neue",Helvetica,Arial,sans-serif; + position: relative; + text-shadow: none; + z-index: 8050; +} + +.fancybox-opened .fancybox-title { + visibility: visible; +} + +.fancybox-title-float-wrap { + position: absolute; + bottom: 0; + right: 50%; + margin-bottom: -35px; + z-index: 8050; + text-align: center; +} + +.fancybox-title-float-wrap .child { + display: inline-block; + margin-right: -100%; + padding: 2px 20px; + background: transparent; /* Fallback for web browsers that doesn't support RGBa */ + background: rgba(0, 0, 0, 0.8); + -webkit-border-radius: 15px; + -moz-border-radius: 15px; + border-radius: 15px; + text-shadow: 0 1px 2px #222; + color: #FFF; + font-weight: bold; + line-height: 24px; + white-space: nowrap; +} + +.fancybox-title-outside-wrap { + position: relative; + margin-top: 10px; + color: #fff; +} + +.fancybox-title-inside-wrap { + padding-top: 10px; +} + +.fancybox-title-over-wrap { + position: absolute; + bottom: 0; + left: 0; + color: #fff; + padding: 10px; + background: #000; + background: rgba(0, 0, 0, .8); +} + +/*Retina graphics!*/ +@media only screen and (-webkit-min-device-pixel-ratio: 1.5), + only screen and (min--moz-device-pixel-ratio: 1.5), + only screen and (min-device-pixel-ratio: 1.5){ + + #fancybox-loading, .fancybox-close, .fancybox-prev span, .fancybox-next span { + background-image: url('fancybox_sprite@2x.png'); + background-size: 44px 152px; /*The size of the normal image, half the size of the hi-res image*/ + } + + #fancybox-loading div { + background-image: url('fancybox_loading@2x.gif'); + background-size: 24px 24px; /*The size of the normal image, half the size of the hi-res image*/ + } +} \ No newline at end of file diff --git a/fancybox/jquery.fancybox.pack.js b/fancybox/jquery.fancybox.pack.js new file mode 100644 index 0000000..73f7578 --- /dev/null +++ b/fancybox/jquery.fancybox.pack.js @@ -0,0 +1,46 @@ +/*! fancyBox v2.1.5 fancyapps.com | fancyapps.com/fancybox/#license */ +(function(r,G,f,v){var J=f("html"),n=f(r),p=f(G),b=f.fancybox=function(){b.open.apply(this,arguments)},I=navigator.userAgent.match(/msie/i),B=null,s=G.createTouch!==v,t=function(a){return a&&a.hasOwnProperty&&a instanceof f},q=function(a){return a&&"string"===f.type(a)},E=function(a){return q(a)&&0
',image:'',iframe:'",error:'

The requested content cannot be loaded.
Please try again later.

',closeBtn:'',next:'',prev:''},openEffect:"fade",openSpeed:250,openEasing:"swing",openOpacity:!0, +openMethod:"zoomIn",closeEffect:"fade",closeSpeed:250,closeEasing:"swing",closeOpacity:!0,closeMethod:"zoomOut",nextEffect:"elastic",nextSpeed:250,nextEasing:"swing",nextMethod:"changeIn",prevEffect:"elastic",prevSpeed:250,prevEasing:"swing",prevMethod:"changeOut",helpers:{overlay:!0,title:!0},onCancel:f.noop,beforeLoad:f.noop,afterLoad:f.noop,beforeShow:f.noop,afterShow:f.noop,beforeChange:f.noop,beforeClose:f.noop,afterClose:f.noop},group:{},opts:{},previous:null,coming:null,current:null,isActive:!1, +isOpen:!1,isOpened:!1,wrap:null,skin:null,outer:null,inner:null,player:{timer:null,isActive:!1},ajaxLoad:null,imgPreload:null,transitions:{},helpers:{},open:function(a,d){if(a&&(f.isPlainObject(d)||(d={}),!1!==b.close(!0)))return f.isArray(a)||(a=t(a)?f(a).get():[a]),f.each(a,function(e,c){var k={},g,h,j,m,l;"object"===f.type(c)&&(c.nodeType&&(c=f(c)),t(c)?(k={href:c.data("fancybox-href")||c.attr("href"),title:c.data("fancybox-title")||c.attr("title"),isDom:!0,element:c},f.metadata&&f.extend(!0,k, +c.metadata())):k=c);g=d.href||k.href||(q(c)?c:null);h=d.title!==v?d.title:k.title||"";m=(j=d.content||k.content)?"html":d.type||k.type;!m&&k.isDom&&(m=c.data("fancybox-type"),m||(m=(m=c.prop("class").match(/fancybox\.(\w+)/))?m[1]:null));q(g)&&(m||(b.isImage(g)?m="image":b.isSWF(g)?m="swf":"#"===g.charAt(0)?m="inline":q(c)&&(m="html",j=c)),"ajax"===m&&(l=g.split(/\s+/,2),g=l.shift(),l=l.shift()));j||("inline"===m?g?j=f(q(g)?g.replace(/.*(?=#[^\s]+$)/,""):g):k.isDom&&(j=c):"html"===m?j=g:!m&&(!g&& +k.isDom)&&(m="inline",j=c));f.extend(k,{href:g,type:m,content:j,title:h,selector:l});a[e]=k}),b.opts=f.extend(!0,{},b.defaults,d),d.keys!==v&&(b.opts.keys=d.keys?f.extend({},b.defaults.keys,d.keys):!1),b.group=a,b._start(b.opts.index)},cancel:function(){var a=b.coming;a&&!1!==b.trigger("onCancel")&&(b.hideLoading(),b.ajaxLoad&&b.ajaxLoad.abort(),b.ajaxLoad=null,b.imgPreload&&(b.imgPreload.onload=b.imgPreload.onerror=null),a.wrap&&a.wrap.stop(!0,!0).trigger("onReset").remove(),b.coming=null,b.current|| +b._afterZoomOut(a))},close:function(a){b.cancel();!1!==b.trigger("beforeClose")&&(b.unbindEvents(),b.isActive&&(!b.isOpen||!0===a?(f(".fancybox-wrap").stop(!0).trigger("onReset").remove(),b._afterZoomOut()):(b.isOpen=b.isOpened=!1,b.isClosing=!0,f(".fancybox-item, .fancybox-nav").remove(),b.wrap.stop(!0,!0).removeClass("fancybox-opened"),b.transitions[b.current.closeMethod]())))},play:function(a){var d=function(){clearTimeout(b.player.timer)},e=function(){d();b.current&&b.player.isActive&&(b.player.timer= +setTimeout(b.next,b.current.playSpeed))},c=function(){d();p.unbind(".player");b.player.isActive=!1;b.trigger("onPlayEnd")};if(!0===a||!b.player.isActive&&!1!==a){if(b.current&&(b.current.loop||b.current.index=c.index?"next":"prev"],b.router=e||"jumpto",c.loop&&(0>a&&(a=c.group.length+a%c.group.length),a%=c.group.length),c.group[a]!==v&&(b.cancel(),b._start(a)))},reposition:function(a,d){var e=b.current,c=e?e.wrap:null,k;c&&(k=b._getPosition(d),a&&"scroll"===a.type?(delete k.position,c.stop(!0,!0).animate(k,200)):(c.css(k),e.pos=f.extend({},e.dim,k)))},update:function(a){var d= +a&&a.type,e=!d||"orientationchange"===d;e&&(clearTimeout(B),B=null);b.isOpen&&!B&&(B=setTimeout(function(){var c=b.current;c&&!b.isClosing&&(b.wrap.removeClass("fancybox-tmp"),(e||"load"===d||"resize"===d&&c.autoResize)&&b._setDimension(),"scroll"===d&&c.canShrink||b.reposition(a),b.trigger("onUpdate"),B=null)},e&&!s?0:300))},toggle:function(a){b.isOpen&&(b.current.fitToView="boolean"===f.type(a)?a:!b.current.fitToView,s&&(b.wrap.removeAttr("style").addClass("fancybox-tmp"),b.trigger("onUpdate")), +b.update())},hideLoading:function(){p.unbind(".loading");f("#fancybox-loading").remove()},showLoading:function(){var a,d;b.hideLoading();a=f('
').click(b.cancel).appendTo("body");p.bind("keydown.loading",function(a){if(27===(a.which||a.keyCode))a.preventDefault(),b.cancel()});b.defaults.fixed||(d=b.getViewport(),a.css({position:"absolute",top:0.5*d.h+d.y,left:0.5*d.w+d.x}))},getViewport:function(){var a=b.current&&b.current.locked||!1,d={x:n.scrollLeft(), +y:n.scrollTop()};a?(d.w=a[0].clientWidth,d.h=a[0].clientHeight):(d.w=s&&r.innerWidth?r.innerWidth:n.width(),d.h=s&&r.innerHeight?r.innerHeight:n.height());return d},unbindEvents:function(){b.wrap&&t(b.wrap)&&b.wrap.unbind(".fb");p.unbind(".fb");n.unbind(".fb")},bindEvents:function(){var a=b.current,d;a&&(n.bind("orientationchange.fb"+(s?"":" resize.fb")+(a.autoCenter&&!a.locked?" scroll.fb":""),b.update),(d=a.keys)&&p.bind("keydown.fb",function(e){var c=e.which||e.keyCode,k=e.target||e.srcElement; +if(27===c&&b.coming)return!1;!e.ctrlKey&&(!e.altKey&&!e.shiftKey&&!e.metaKey&&(!k||!k.type&&!f(k).is("[contenteditable]")))&&f.each(d,function(d,k){if(1h[0].clientWidth||h[0].clientHeight&&h[0].scrollHeight>h[0].clientHeight),h=f(h).parent();if(0!==c&&!j&&1g||0>k)b.next(0>g?"up":"right");d.preventDefault()}}))},trigger:function(a,d){var e,c=d||b.coming||b.current;if(c){f.isFunction(c[a])&&(e=c[a].apply(c,Array.prototype.slice.call(arguments,1)));if(!1===e)return!1;c.helpers&&f.each(c.helpers,function(d,e){if(e&&b.helpers[d]&&f.isFunction(b.helpers[d][a]))b.helpers[d][a](f.extend(!0, +{},b.helpers[d].defaults,e),c)});p.trigger(a)}},isImage:function(a){return q(a)&&a.match(/(^data:image\/.*,)|(\.(jp(e|g|eg)|gif|png|bmp|webp|svg)((\?|#).*)?$)/i)},isSWF:function(a){return q(a)&&a.match(/\.(swf)((\?|#).*)?$/i)},_start:function(a){var d={},e,c;a=l(a);e=b.group[a]||null;if(!e)return!1;d=f.extend(!0,{},b.opts,e);e=d.margin;c=d.padding;"number"===f.type(e)&&(d.margin=[e,e,e,e]);"number"===f.type(c)&&(d.padding=[c,c,c,c]);d.modal&&f.extend(!0,d,{closeBtn:!1,closeClick:!1,nextClick:!1,arrows:!1, +mouseWheel:!1,keys:null,helpers:{overlay:{closeClick:!1}}});d.autoSize&&(d.autoWidth=d.autoHeight=!0);"auto"===d.width&&(d.autoWidth=!0);"auto"===d.height&&(d.autoHeight=!0);d.group=b.group;d.index=a;b.coming=d;if(!1===b.trigger("beforeLoad"))b.coming=null;else{c=d.type;e=d.href;if(!c)return b.coming=null,b.current&&b.router&&"jumpto"!==b.router?(b.current.index=a,b[b.router](b.direction)):!1;b.isActive=!0;if("image"===c||"swf"===c)d.autoHeight=d.autoWidth=!1,d.scrolling="visible";"image"===c&&(d.aspectRatio= +!0);"iframe"===c&&s&&(d.scrolling="scroll");d.wrap=f(d.tpl.wrap).addClass("fancybox-"+(s?"mobile":"desktop")+" fancybox-type-"+c+" fancybox-tmp "+d.wrapCSS).appendTo(d.parent||"body");f.extend(d,{skin:f(".fancybox-skin",d.wrap),outer:f(".fancybox-outer",d.wrap),inner:f(".fancybox-inner",d.wrap)});f.each(["Top","Right","Bottom","Left"],function(a,b){d.skin.css("padding"+b,w(d.padding[a]))});b.trigger("onReady");if("inline"===c||"html"===c){if(!d.content||!d.content.length)return b._error("content")}else if(!e)return b._error("href"); +"image"===c?b._loadImage():"ajax"===c?b._loadAjax():"iframe"===c?b._loadIframe():b._afterLoad()}},_error:function(a){f.extend(b.coming,{type:"html",autoWidth:!0,autoHeight:!0,minWidth:0,minHeight:0,scrolling:"no",hasError:a,content:b.coming.tpl.error});b._afterLoad()},_loadImage:function(){var a=b.imgPreload=new Image;a.onload=function(){this.onload=this.onerror=null;b.coming.width=this.width/b.opts.pixelRatio;b.coming.height=this.height/b.opts.pixelRatio;b._afterLoad()};a.onerror=function(){this.onload= +this.onerror=null;b._error("image")};a.src=b.coming.href;!0!==a.complete&&b.showLoading()},_loadAjax:function(){var a=b.coming;b.showLoading();b.ajaxLoad=f.ajax(f.extend({},a.ajax,{url:a.href,error:function(a,e){b.coming&&"abort"!==e?b._error("ajax",a):b.hideLoading()},success:function(d,e){"success"===e&&(a.content=d,b._afterLoad())}}))},_loadIframe:function(){var a=b.coming,d=f(a.tpl.iframe.replace(/\{rnd\}/g,(new Date).getTime())).attr("scrolling",s?"auto":a.iframe.scrolling).attr("src",a.href); +f(a.wrap).bind("onReset",function(){try{f(this).find("iframe").hide().attr("src","//about:blank").end().empty()}catch(a){}});a.iframe.preload&&(b.showLoading(),d.one("load",function(){f(this).data("ready",1);s||f(this).bind("load.fb",b.update);f(this).parents(".fancybox-wrap").width("100%").removeClass("fancybox-tmp").show();b._afterLoad()}));a.content=d.appendTo(a.inner);a.iframe.preload||b._afterLoad()},_preloadImages:function(){var a=b.group,d=b.current,e=a.length,c=d.preload?Math.min(d.preload, +e-1):0,f,g;for(g=1;g<=c;g+=1)f=a[(d.index+g)%e],"image"===f.type&&f.href&&((new Image).src=f.href)},_afterLoad:function(){var a=b.coming,d=b.current,e,c,k,g,h;b.hideLoading();if(a&&!1!==b.isActive)if(!1===b.trigger("afterLoad",a,d))a.wrap.stop(!0).trigger("onReset").remove(),b.coming=null;else{d&&(b.trigger("beforeChange",d),d.wrap.stop(!0).removeClass("fancybox-opened").find(".fancybox-item, .fancybox-nav").remove());b.unbindEvents();e=a.content;c=a.type;k=a.scrolling;f.extend(b,{wrap:a.wrap,skin:a.skin, +outer:a.outer,inner:a.inner,current:a,previous:d});g=a.href;switch(c){case "inline":case "ajax":case "html":a.selector?e=f("
").html(e).find(a.selector):t(e)&&(e.data("fancybox-placeholder")||e.data("fancybox-placeholder",f('
').insertAfter(e).hide()),e=e.show().detach(),a.wrap.bind("onReset",function(){f(this).find(e).length&&e.hide().replaceAll(e.data("fancybox-placeholder")).data("fancybox-placeholder",!1)}));break;case "image":e=a.tpl.image.replace("{href}", +g);break;case "swf":e='',h="",f.each(a.swf,function(a,b){e+='';h+=" "+a+'="'+b+'"'}),e+='"}(!t(e)||!e.parent().is(a.inner))&&a.inner.append(e);b.trigger("beforeShow");a.inner.css("overflow","yes"===k?"scroll": +"no"===k?"hidden":k);b._setDimension();b.reposition();b.isOpen=!1;b.coming=null;b.bindEvents();if(b.isOpened){if(d.prevMethod)b.transitions[d.prevMethod]()}else f(".fancybox-wrap").not(a.wrap).stop(!0).trigger("onReset").remove();b.transitions[b.isOpened?a.nextMethod:a.openMethod]();b._preloadImages()}},_setDimension:function(){var a=b.getViewport(),d=0,e=!1,c=!1,e=b.wrap,k=b.skin,g=b.inner,h=b.current,c=h.width,j=h.height,m=h.minWidth,u=h.minHeight,n=h.maxWidth,p=h.maxHeight,s=h.scrolling,q=h.scrollOutside? +h.scrollbarWidth:0,x=h.margin,y=l(x[1]+x[3]),r=l(x[0]+x[2]),v,z,t,C,A,F,B,D,H;e.add(k).add(g).width("auto").height("auto").removeClass("fancybox-tmp");x=l(k.outerWidth(!0)-k.width());v=l(k.outerHeight(!0)-k.height());z=y+x;t=r+v;C=E(c)?(a.w-z)*l(c)/100:c;A=E(j)?(a.h-t)*l(j)/100:j;if("iframe"===h.type){if(H=h.content,h.autoHeight&&1===H.data("ready"))try{H[0].contentWindow.document.location&&(g.width(C).height(9999),F=H.contents().find("body"),q&&F.css("overflow-x","hidden"),A=F.outerHeight(!0))}catch(G){}}else if(h.autoWidth|| +h.autoHeight)g.addClass("fancybox-tmp"),h.autoWidth||g.width(C),h.autoHeight||g.height(A),h.autoWidth&&(C=g.width()),h.autoHeight&&(A=g.height()),g.removeClass("fancybox-tmp");c=l(C);j=l(A);D=C/A;m=l(E(m)?l(m,"w")-z:m);n=l(E(n)?l(n,"w")-z:n);u=l(E(u)?l(u,"h")-t:u);p=l(E(p)?l(p,"h")-t:p);F=n;B=p;h.fitToView&&(n=Math.min(a.w-z,n),p=Math.min(a.h-t,p));z=a.w-y;r=a.h-r;h.aspectRatio?(c>n&&(c=n,j=l(c/D)),j>p&&(j=p,c=l(j*D)),cz||y>r)&&(c>m&&j>u)&&!(19n&&(c=n,j=l(c/D)),g.width(c).height(j),e.width(c+x),a=e.width(),y=e.height();else c=Math.max(m,Math.min(c,c-(a-z))),j=Math.max(u,Math.min(j,j-(y-r)));q&&("auto"===s&&jz||y>r)&&c>m&&j>u;c=h.aspectRatio?cu&&j
').appendTo(b.coming?b.coming.parent:a.parent);this.fixed=!1;a.fixed&&b.defaults.fixed&&(this.overlay.addClass("fancybox-overlay-fixed"),this.fixed=!0)},open:function(a){var d=this;a=f.extend({},this.defaults,a);this.overlay?this.overlay.unbind(".overlay").width("auto").height("auto"):this.create(a);this.fixed||(n.bind("resize.overlay",f.proxy(this.update,this)),this.update());a.closeClick&&this.overlay.bind("click.overlay",function(a){if(f(a.target).hasClass("fancybox-overlay"))return b.isActive? +b.close():d.close(),!1});this.overlay.css(a.css).show()},close:function(){var a,b;n.unbind("resize.overlay");this.el.hasClass("fancybox-lock")&&(f(".fancybox-margin").removeClass("fancybox-margin"),a=n.scrollTop(),b=n.scrollLeft(),this.el.removeClass("fancybox-lock"),n.scrollTop(a).scrollLeft(b));f(".fancybox-overlay").remove().hide();f.extend(this,{overlay:null,fixed:!1})},update:function(){var a="100%",b;this.overlay.width(a).height("100%");I?(b=Math.max(G.documentElement.offsetWidth,G.body.offsetWidth), +p.width()>b&&(a=p.width())):p.width()>n.width()&&(a=p.width());this.overlay.width(a).height(p.height())},onReady:function(a,b){var e=this.overlay;f(".fancybox-overlay").stop(!0,!0);e||this.create(a);a.locked&&(this.fixed&&b.fixed)&&(e||(this.margin=p.height()>n.height()?f("html").css("margin-right").replace("px",""):!1),b.locked=this.overlay.append(b.wrap),b.fixed=!1);!0===a.showEarly&&this.beforeShow.apply(this,arguments)},beforeShow:function(a,b){var e,c;b.locked&&(!1!==this.margin&&(f("*").filter(function(){return"fixed"=== +f(this).css("position")&&!f(this).hasClass("fancybox-overlay")&&!f(this).hasClass("fancybox-wrap")}).addClass("fancybox-margin"),this.el.addClass("fancybox-margin")),e=n.scrollTop(),c=n.scrollLeft(),this.el.addClass("fancybox-lock"),n.scrollTop(e).scrollLeft(c));this.open(a)},onUpdate:function(){this.fixed||this.update()},afterClose:function(a){this.overlay&&!b.coming&&this.overlay.fadeOut(a.speedOut,f.proxy(this.close,this))}};b.helpers.title={defaults:{type:"float",position:"bottom"},beforeShow:function(a){var d= +b.current,e=d.title,c=a.type;f.isFunction(e)&&(e=e.call(d.element,d));if(q(e)&&""!==f.trim(e)){d=f('
'+e+"
");switch(c){case "inside":c=b.skin;break;case "outside":c=b.wrap;break;case "over":c=b.inner;break;default:c=b.skin,d.appendTo("body"),I&&d.width(d.width()),d.wrapInner(''),b.current.margin[2]+=Math.abs(l(d.css("margin-bottom")))}d["top"===a.position?"prependTo":"appendTo"](c)}}};f.fn.fancybox=function(a){var d, +e=f(this),c=this.selector||"",k=function(g){var h=f(this).blur(),j=d,k,l;!g.ctrlKey&&(!g.altKey&&!g.shiftKey&&!g.metaKey)&&!h.is(".fancybox-wrap")&&(k=a.groupAttr||"data-fancybox-group",l=h.attr(k),l||(k="rel",l=h.get(0)[k]),l&&(""!==l&&"nofollow"!==l)&&(h=c.length?f(c):e,h=h.filter("["+k+'="'+l+'"]'),j=h.index(this)),a.index=j,!1!==b.open(h,a)&&g.preventDefault())};a=a||{};d=a.index||0;!c||!1===a.live?e.unbind("click.fb-start").bind("click.fb-start",k):p.undelegate(c,"click.fb-start").delegate(c+ +":not('.fancybox-item, .fancybox-nav')","click.fb-start",k);this.filter("[data-fancybox-start=1]").trigger("click");return this};p.ready(function(){var a,d;f.scrollbarWidth===v&&(f.scrollbarWidth=function(){var a=f('
').appendTo("body"),b=a.children(),b=b.innerWidth()-b.height(99).innerWidth();a.remove();return b});if(f.support.fixedPosition===v){a=f.support;d=f('
').appendTo("body");var e=20=== +d[0].offsetTop||15===d[0].offsetTop;d.remove();a.fixedPosition=e}f.extend(b.defaults,{scrollbarWidth:f.scrollbarWidth(),fixed:f.support.fixedPosition,parent:f("body")});a=f(r).width();J.addClass("fancybox-lock-test");d=f(r).width();J.removeClass("fancybox-lock-test");f("").appendTo("head")})})(window,document,jQuery); \ No newline at end of file diff --git a/images/avatar.gif b/images/avatar.gif index 28411fd..3b5d744 100644 Binary files a/images/avatar.gif and b/images/avatar.gif differ diff --git a/images/cc-by-nc-nd.svg b/images/cc-by-nc-nd.svg index 79a4f2e..7e37337 100644 --- a/images/cc-by-nc-nd.svg +++ b/images/cc-by-nc-nd.svg @@ -1,121 +1 @@ - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - + \ No newline at end of file diff --git a/images/cc-by-nc-sa.svg b/images/cc-by-nc-sa.svg index bf6bc26..d685321 100644 --- a/images/cc-by-nc-sa.svg +++ b/images/cc-by-nc-sa.svg @@ -1,121 +1 @@ - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - + \ No newline at end of file diff --git a/images/cc-by-nc.svg b/images/cc-by-nc.svg index 3697349..64e0230 100644 --- a/images/cc-by-nc.svg +++ b/images/cc-by-nc.svg @@ -1,121 +1 @@ - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - + \ No newline at end of file diff --git a/images/cc-by-nd.svg b/images/cc-by-nd.svg index 934c61e..a56f8d3 100644 --- a/images/cc-by-nd.svg +++ b/images/cc-by-nd.svg @@ -1,117 +1 @@ - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - + \ No newline at end of file diff --git a/images/cc-by-sa.svg b/images/cc-by-sa.svg index 463276a..47d7579 100644 --- a/images/cc-by-sa.svg +++ b/images/cc-by-sa.svg @@ -1,121 +1 @@ - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - + \ No newline at end of file diff --git a/images/cc-by.svg b/images/cc-by.svg index 4bccd14..5b1db2b 100644 --- a/images/cc-by.svg +++ b/images/cc-by.svg @@ -1,121 +1 @@ - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - + \ No newline at end of file diff --git a/images/cc-zero.svg b/images/cc-zero.svg index 0f86639..0c08ee6 100644 --- a/images/cc-zero.svg +++ b/images/cc-zero.svg @@ -1,72 +1 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + \ No newline at end of file diff --git a/images/ftrace.png b/images/ftrace.png index 8e5338f..7c687dc 100644 Binary files a/images/ftrace.png and b/images/ftrace.png differ diff --git a/images/logo.svg b/images/logo.svg index cbb3937..0f2b8d8 100644 --- a/images/logo.svg +++ b/images/logo.svg @@ -1,23 +1 @@ - -image/svg+xml + \ No newline at end of file diff --git a/images/meizi.jpg b/images/meizi.jpg index 5399832..eebe85e 100644 Binary files a/images/meizi.jpg and b/images/meizi.jpg differ diff --git a/images/ring_buffer.png b/images/ring_buffer.png index e956689..1149f2a 100644 Binary files a/images/ring_buffer.png and b/images/ring_buffer.png differ diff --git a/index.html b/index.html deleted file mode 100644 index a3feaa4..0000000 --- a/index.html +++ /dev/null @@ -1,556 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - mapicccy - - - - - - - - - - - - - -
-
- -
-
- - -
- - - -

mapicccy

- -
-

男人有实力,才有魅力

-
- - -
- - - - - - - - - -
-
- - -
- - 0% -
-
- - - -
-
-
- - -
- - - - -
- - - - - -
-

- - -

- - -
- - - - -
- - -

Ftrace探析

Ftrace原理

ftrace(function tracer)支持全局trace,可以对内核和模块全局函数进行跟踪。tracer为编译器在编译时自动插入代码段的一条指令,程序在运行时能够利用这条指令实现跳转。目前Linux 5.10支持的tracer种类有8种,分别为hwlatblkfunction_graphwakeup_dlwakeup_rtwakeupfunctionnop,可以通过/sys/kernel/debug/tracing/available_tracers查看。

- -
- - 阅读全文 » - -
- - - -
- - - - -
-
-
-
- - - - - - - -
- - - - - -
-

- - -

- - -
- - - - -
- - - - -
- - - - -
-
-
-
- - - - - - - - - -
- - - - -
- - - - - - - - -
-
- -
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/js/gallery.js b/js/gallery.js new file mode 100644 index 0000000..bb70af5 --- /dev/null +++ b/js/gallery.js @@ -0,0 +1,65 @@ +(function($){ + // Caption + $('.entry').each(function(i){ + $(this).find('img').each(function(){ + var alt = this.alt; + + if (alt){ + $(this).after('' + alt + ''); + } + + $(this).wrap(''); + }); + }); + + // Gallery + var play = function(parent, item, callback){ + var width = parent.width(); + + item.imagesLoaded(function(){ + var _this = this[0], + nWidth = _this.naturalWidth, + nHeight = _this.naturalHeight; + + callback(); + this.animate({opacity: 1}, 500); + parent.animate({height: width * nHeight / nWidth}, 500); + }); + }; + + $('.gallery').each(function(){ + var $this = $(this), + current = 0, + photoset = $this.children('.photoset').children(), + all = photoset.length, + loading = true; + + play($this, photoset.eq(0), function(){ + loading = false; + }); + + $this.on('click', '.prev', function(){ + if (!loading){ + var next = (current - 1) % all; + loading = true; + + play($this, photoset.eq(next), function(){ + photoset.eq(current).animate({opacity: 0}, 500); + loading = false; + current = next; + }); + } + }).on('click', '.next', function(){ + if (!loading){ + var next = (current + 1) % all; + loading = true; + + play($this, photoset.eq(next), function(){ + photoset.eq(current).animate({opacity: 0}, 500); + loading = false; + current = next; + }); + } + }); + }); +})(jQuery); \ No newline at end of file diff --git a/js/jquery.imagesloaded.min.js b/js/jquery.imagesloaded.min.js new file mode 100644 index 0000000..bc56220 --- /dev/null +++ b/js/jquery.imagesloaded.min.js @@ -0,0 +1,3 @@ +(function(c,n){var l="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///ywAAAAAAQABAAACAUwAOw==";c.fn.imagesLoaded=function(f){function m(){var b=c(i),a=c(h);d&&(h.length?d.reject(e,b,a):d.resolve(e));c.isFunction(f)&&f.call(g,e,b,a)}function j(b,a){b.src===l||-1!==c.inArray(b,k)||(k.push(b),a?h.push(b):i.push(b),c.data(b,"imagesLoaded",{isBroken:a,src:b.src}),o&&d.notifyWith(c(b),[a,e,c(i),c(h)]),e.length===k.length&&(setTimeout(m),e.unbind(".imagesLoaded")))}var g=this,d=c.isFunction(c.Deferred)?c.Deferred(): +0,o=c.isFunction(d.notify),e=g.find("img").add(g.filter("img")),k=[],i=[],h=[];c.isPlainObject(f)&&c.each(f,function(b,a){if("callback"===b)f=a;else if(d)d[b](a)});e.length?e.bind("load.imagesLoaded error.imagesLoaded",function(b){j(b.target,"error"===b.type)}).each(function(b,a){var d=a.src,e=c.data(a,"imagesLoaded");if(e&&e.src===d)j(a,e.isBroken);else if(a.complete&&a.naturalWidth!==n)j(a,0===a.naturalWidth||0===a.naturalHeight);else if(a.readyState||a.complete)a.src=l,a.src=d}):m();return d?d.promise(g): +g}})(jQuery); diff --git a/tags/Linux/index.html b/tags/Linux/index.html new file mode 100644 index 0000000..3eea732 --- /dev/null +++ b/tags/Linux/index.html @@ -0,0 +1,158 @@ + + + + + + Linux | Why is Mapic + + + + + + + + + + + + + + + + + + + + + + + + +
+
+

Linux

+ + + +
+ +
+
+
+ + © 2015 mapicc + +
+
+ + + + + + + + + + + + + \ No newline at end of file diff --git a/tags/hadoop/index.html b/tags/hadoop/index.html new file mode 100644 index 0000000..a42edb9 --- /dev/null +++ b/tags/hadoop/index.html @@ -0,0 +1,170 @@ + + + + + + hadoop | Why is Mapic + + + + + + + + + + + + + + + + + + + + + + + + +
+
+

hadoop

+ + +
+ + + + + +
+
+ +
+
+
+ + © 2015 mapicc + +
+
+ + + + + + + + + + + + + \ No newline at end of file diff --git a/tags/java/index.html b/tags/java/index.html new file mode 100644 index 0000000..847fa7c --- /dev/null +++ b/tags/java/index.html @@ -0,0 +1,158 @@ + + + + + + java | Why is Mapic + + + + + + + + + + + + + + + + + + + + + + + + +
+
+

java

+ + +
+ + + +
+
+ +
+
+
+ + © 2015 mapicc + +
+
+ + + + + + + + + + + + + \ No newline at end of file