<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="3.6.2">Jekyll</generator><link href="http://heeeello.github.io/feed.xml" rel="self" type="application/atom+xml" /><link href="http://heeeello.github.io/" rel="alternate" type="text/html" /><updated>2018-03-08T09:47:43+00:00</updated><id>http://heeeello.github.io/</id><title type="html">heeeello.github.io</title><subtitle>Web Developer from Qingdao</subtitle><entry><title type="html">facebook opensource - stetho, watchman</title><link href="http://heeeello.github.io/facebook-stetho-watchman/" rel="alternate" type="text/html" title="facebook opensource - stetho, watchman" /><published>2018-03-08T00:00:00+00:00</published><updated>2018-03-08T00:00:00+00:00</updated><id>http://heeeello.github.io/facebook-stetho-watchman</id><content type="html" xml:base="http://heeeello.github.io/facebook-stetho-watchman/">&lt;h2 id=&quot;stetho&quot;&gt;stetho&lt;/h2&gt;

&lt;p&gt;A debug bridge for Android applications&lt;/p&gt;

&lt;p&gt;Stetho is a sophisticated debug bridge for Android applications. When enabled, developers have access to the Chrome Developer Tools feature natively part of the Chrome desktop browser. Developers can also choose to enable the optional dumpapp tool which offers a powerful command-line interface to application internals.&lt;/p&gt;

&lt;p&gt;可以把android应用程序集成到chrome dev tools： &lt;br /&gt;
The integration with the Chrome DevTools frontend is implemented using a client/server protocol which the Stetho software provides for your application. Once your application is integrated, simply navigate to chrome://inspect and click “Inspect” to get started!&lt;/p&gt;

&lt;p&gt;可以检查http网络访问： &lt;br /&gt;
Network inspection is possible with the full spectrum of Chrome Developer Tools features, including image preview, JSON response helpers, and even exporting traces to the HAR format.&lt;/p&gt;

&lt;p&gt;sqlite数据库内容检查：&lt;br /&gt;
SQLite databases can be visualized and interactively explored with full read/write capabilities.&lt;/p&gt;

&lt;p&gt;APP 视图层次结构：&lt;br /&gt;
View hierarchy support for ICS (API 15) and up! Lots of goodies such as instances virtually placed in the hierarchy, view highlighting, and the ability to tap on a view to jump to its position in the hierarchy.&lt;/p&gt;

&lt;p&gt;dumpapp：&lt;br /&gt;
Dumpapp extends beyond the DevTools UI features shown above to provide a much more extensible, command-line interface to application components. A default set of plugins is provided, but the real power of dumpapp is the ability to easily create your own!&lt;/p&gt;

&lt;p&gt;Javascript Console: &lt;br /&gt;
Javascript Console allows for execution of javascript code that can interact with the application or even the Android SDK.&lt;/p&gt;

&lt;p&gt;##watchman&lt;/p&gt;

&lt;p&gt;A file watching service&lt;/p&gt;

&lt;p&gt;Watchman exists to watch files and record when they change. It can also trigger actions (such as rebuilding assets) when matching files change.&lt;/p&gt;

&lt;p&gt;例子: &lt;br /&gt;
These two lines establish a watch on a source directory and then set up a trigger named buildme that will run a tool named minify-css whenever a CSS file is changed. The tool will be passed a list of the changed filenames.&lt;/p&gt;
&lt;div class=&quot;highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;$ watchman watch ~/src
# the single quotes around '*.css' are important!
$ watchman -- trigger ~/src buildme '*.css' -- minify-css
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;</content><author><name></name></author><summary type="html">stetho</summary></entry><entry><title type="html">single node hadoop yarn cluster setup on ubuntu 14.04</title><link href="http://heeeello.github.io/hadoop-2-6-0-single-node-yarn-setup/" rel="alternate" type="text/html" title="single node hadoop yarn cluster setup on ubuntu 14.04" /><published>2017-08-15T00:00:00+00:00</published><updated>2017-08-15T00:00:00+00:00</updated><id>http://heeeello.github.io/hadoop-2-6-0-single-node-yarn-setup</id><content type="html" xml:base="http://heeeello.github.io/hadoop-2-6-0-single-node-yarn-setup/">&lt;ol&gt;
  &lt;li&gt;
    &lt;p&gt;问题描述&lt;/p&gt;

    &lt;p&gt;需要开发hadoop的应用程序, 需要本机搭建一套开发环境.  单机环境参考了官方文档:&lt;/p&gt;
    &lt;ul&gt;
      &lt;li&gt;&lt;a href=&quot;https://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-common/SingleCluster.html&quot;&gt;https://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-common/SingleCluster.html&lt;/a&gt;&lt;/li&gt;
    &lt;/ul&gt;

    &lt;p&gt;但是在跑例子的时候, 发现job 一直会卡住, 无法向下进行. 
在hadoop cluster页面(localhost:8088)查看任务为UNDEFINED状态. 
cluster metrics中发现node有一个为unhealthy state.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;定位原因&lt;/p&gt;

    &lt;p&gt;通过搜索相关现象, 发现类似现象解决方案: &lt;a href=&quot;https://stackoverflow.com/questions/29010039/yarn-unhealthy-nodes&quot;&gt;https://stackoverflow.com/questions/29010039/yarn-unhealthy-nodes&lt;/a&gt;
通过更改yarn-site.xml中的关于yarn.nodemanager.disk-health-checker.min-healthy-disks, yarn.nodemanager.disk-health-checker.max-disk-utilization-per-disk-percentage, node变为healthy state. hadoop jar运行的命令也可以后面执行了.&lt;/p&gt;
    &lt;div class=&quot;highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;   &amp;lt;property&amp;gt;
    &amp;lt;description&amp;gt;The minimum fraction of number of disks to be healthy for the
    nodemanager to launch new containers. This correspond to both
    yarn-nodemanager.local-dirs and yarn.nodemanager.log-dirs. i.e. If there
    are less number of healthy local-dirs (or log-dirs) available, then
    new containers will not be launched on this node.&amp;lt;/description&amp;gt;
    &amp;lt;name&amp;gt;yarn.nodemanager.disk-health-checker.min-healthy-disks&amp;lt;/name&amp;gt;
    &amp;lt;value&amp;gt;0.02&amp;lt;/value&amp;gt;
  &amp;lt;/property&amp;gt;
  &amp;lt;property&amp;gt;
    &amp;lt;description&amp;gt;The maximum percentage of disk space utilization allowed after
    which a disk is marked as bad. Values can range from 0.0 to 100.0.
    If the value is greater than or equal to 100, the nodemanager will check
    for full disk. This applies to yarn-nodemanager.local-dirs and
    yarn.nodemanager.log-dirs.&amp;lt;/description&amp;gt;
    &amp;lt;name&amp;gt;yarn.nodemanager.disk-health-checker.max-disk-utilization-per-disk-percentage&amp;lt;/name&amp;gt;
    &amp;lt;value&amp;gt;98.0&amp;lt;/value&amp;gt;
  &amp;lt;/property&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;    &lt;/div&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;常用的启动命令
  首先根据配置更改etc/hadoop/下面的xml配置文件. 
  还需要设置hadoop-env.sh中的java home&lt;/p&gt;

    &lt;div class=&quot;language-shell highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;c&quot;&gt;# Start hdfs&lt;/span&gt;
./sbin/hadoop-daemons.sh  start namenode
./sbin/hadoop-daemons.sh  start secondarynamenode
./sbin/hadoop-daemons.sh  start datanode
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;    &lt;/div&gt;
    &lt;div class=&quot;highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;# Start yarn
sbin/yarn-daemons.sh start resourcemanager
sbin/yarn-daemons.sh start nodemanager

&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;    &lt;/div&gt;
    &lt;div class=&quot;highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;# .bashrc中的环境变量
export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64/
# hadoop
export HADOOP_HOME=/root/workspace/bigdata/test/hadoop-2.6.0
export HADOOP_PREFIX=$HADOOP_HOME
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;    &lt;/div&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;参考：&lt;/p&gt;
  &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Some googling&lt;/p&gt;</content><author><name></name></author><summary type="html">问题描述</summary></entry><entry><title type="html">使用gradle dependencyInsight来查找冲突的依赖包</title><link href="http://heeeello.github.io/gradle-dependencyInsight-to-track-down-unexpected-transitive-dependencies/" rel="alternate" type="text/html" title="使用gradle dependencyInsight来查找冲突的依赖包" /><published>2017-04-27T00:00:00+00:00</published><updated>2017-04-27T00:00:00+00:00</updated><id>http://heeeello.github.io/gradle-dependencyInsight-to-track-down-unexpected-transitive-dependencies</id><content type="html" xml:base="http://heeeello.github.io/gradle-dependencyInsight-to-track-down-unexpected-transitive-dependencies/">&lt;ol&gt;
  &lt;li&gt;
    &lt;p&gt;问题描述&lt;/p&gt;

    &lt;p&gt;项目使用grails3开发， 包含了一些依赖之后，运行的时候会报告slf4j-logback和slf4j-log4j12有冲突.
但是并不知道是哪些包使用了logback, 那些包使用了slf4j-log4j12.&lt;/p&gt;

    &lt;p&gt;可以使用如下的配置块来exclude slf4j-log4j12包的依赖&lt;/p&gt;

    &lt;div class=&quot;language-shell highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt; configurations.all &lt;span class=&quot;o&quot;&gt;{&lt;/span&gt;
 //    resolutionStrategy.eachDependency &lt;span class=&quot;o&quot;&gt;{&lt;/span&gt; DependencyResolveDetails details -&amp;gt;
 //        &lt;span class=&quot;k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;details.requested.name &lt;span class=&quot;o&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;'log4j'&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;{&lt;/span&gt;
 //            details.useTarget &lt;span class=&quot;s2&quot;&gt;&quot;org.slf4j:log4j-over-slf4j:1.7.21&quot;&lt;/span&gt;
 //        &lt;span class=&quot;o&quot;&gt;}&lt;/span&gt;
 //        &lt;span class=&quot;k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;details.requested.name &lt;span class=&quot;o&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;'commons-logging'&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;{&lt;/span&gt;
 //            details.useTarget &lt;span class=&quot;s2&quot;&gt;&quot;org.slf4j:jcl-over-slf4j:1.7.21&quot;&lt;/span&gt;
 //        &lt;span class=&quot;o&quot;&gt;}&lt;/span&gt;
 //    &lt;span class=&quot;o&quot;&gt;}&lt;/span&gt;

    exclude group: &lt;span class=&quot;s1&quot;&gt;'org.slf4j'&lt;/span&gt;, module: &lt;span class=&quot;s1&quot;&gt;'slf4j-log4j12'&lt;/span&gt;
 &lt;span class=&quot;o&quot;&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;    &lt;/div&gt;

    &lt;p&gt;这样在整个工程中都会排除掉slf4j-log4j12包。&lt;/p&gt;

    &lt;p&gt;如果想要查找这个log包是被哪个项目中配置的依赖包含进来的，怎么办？&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;使用gradle dependencies&lt;/p&gt;

    &lt;p&gt;可以使用gradle dependencies，将所有依赖重定向到一个文件中，然后查找. 这样会发现很多slf4j的依赖，比较难找&lt;/p&gt;

    &lt;div class=&quot;language-shell highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt; ./gradlew dependencies &lt;span class=&quot;o&quot;&gt;&amp;gt;&lt;/span&gt;aa.txt 2&amp;gt;&amp;amp;1
    
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;    &lt;/div&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;使用gradle dependencyInsight， 反过来查找transitive dependency对应的项目中的最顶层的依赖配置项&lt;/p&gt;

    &lt;p&gt;这样就很清楚的可以查看冲突的传递包被哪些顶层依赖包包含了。 可以有选择的exclude掉&lt;/p&gt;

    &lt;div class=&quot;language-shell highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt; ./gradlew dependencyInsight &lt;span class=&quot;nt&quot;&gt;--dependency&lt;/span&gt; slf4j-log4j12
 :api-portal:dependencyInsight
 org.slf4j:slf4j-log4j12:1.7.22 &lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;selected by rule&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt;

 org.slf4j:slf4j-log4j12:1.6.1 -&amp;gt; 1.7.22
 +--- com.101tec:zkclient:0.7
 |    &lt;span class=&quot;se&quot;&gt;\-&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;--&lt;/span&gt; org.apache.kafka:kafka_2.11:0.9.0.1
 |         +--- compile
 |         +--- project :common
 |         |    &lt;span class=&quot;se&quot;&gt;\-&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;--&lt;/span&gt; compile
 |         &lt;span class=&quot;se&quot;&gt;\-&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;--&lt;/span&gt; project :myplugin
 |              &lt;span class=&quot;se&quot;&gt;\-&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;--&lt;/span&gt; compile
 &lt;span class=&quot;se&quot;&gt;\-&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;--&lt;/span&gt; org.apache.zookeeper:zookeeper:3.4.6
      +--- org.apache.kafka:kafka_2.11:0.9.0.1 &lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt;
      &lt;span class=&quot;se&quot;&gt;\-&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;--&lt;/span&gt; com.101tec:zkclient:0.7 &lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt;

 org.slf4j:slf4j-log4j12:1.7.6 -&amp;gt; 1.7.22
 &lt;span class=&quot;se&quot;&gt;\-&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;--&lt;/span&gt; org.apache.kafka:kafka_2.11:0.9.0.1
      +--- compile
      +--- project :common
      |    &lt;span class=&quot;se&quot;&gt;\-&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;--&lt;/span&gt; compile
      &lt;span class=&quot;se&quot;&gt;\-&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;--&lt;/span&gt; project :myplugin
           &lt;span class=&quot;se&quot;&gt;\-&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;--&lt;/span&gt; compile

 &lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt; - dependencies omitted &lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;listed previously&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt;

 BUILD SUCCESSFUL

 Total &lt;span class=&quot;nb&quot;&gt;time&lt;/span&gt;: 3.183 secs

&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;    &lt;/div&gt;
    &lt;div class=&quot;highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt; compile (group: 'org.apache.kafka', name: 'kafka_2.11', version: '0.9.0.1') {
     exclude group: 'org.slf4j', module: 'slf4j-log4j12'
 }
 or when appropriate, do it globally for all configurations:

 configurations {
     all*.exclude group: 'org.slf4j', module: 'slf4j-log4j12'
 }
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;    &lt;/div&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;参考：&lt;/p&gt;
  &lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://solidsoft.wordpress.com/2014/11/19/gradle-tricks-tracking-down-not-expected-transitive-dependencies/&quot;&gt;https://solidsoft.wordpress.com/2014/11/19/gradle-tricks-tracking-down-not-expected-transitive-dependencies/&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://solidsoft.wordpress.com/2014/11/13/gradle-tricks-display-dependencies-for-all-subprojects-in-multi-project-build/&quot;&gt;https://solidsoft.wordpress.com/2014/11/13/gradle-tricks-display-dependencies-for-all-subprojects-in-multi-project-build/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</content><author><name></name></author><summary type="html">问题描述</summary></entry><entry><title type="html">proxychains使用ss代理来访问外网</title><link href="http://heeeello.github.io/proxychains/" rel="alternate" type="text/html" title="proxychains使用ss代理来访问外网" /><published>2017-03-27T00:00:00+00:00</published><updated>2017-03-27T00:00:00+00:00</updated><id>http://heeeello.github.io/proxychains</id><content type="html" xml:base="http://heeeello.github.io/proxychains/">&lt;ol&gt;
  &lt;li&gt;
    &lt;p&gt;首先安装proxychains&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;然后更改/etc/proxychains.conf:&lt;/p&gt;

    &lt;div class=&quot;language-shell highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt; dynamic_chain
 ProxyList改为： socks5: 127.0.0.1:1080
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;    &lt;/div&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;这样就可以使用proxychains来访问了：&lt;/p&gt;

    &lt;div class=&quot;language-shell highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt; proxychains curl ip.gs
 proxychains curl myip.ipip.net
 proxychains firefox
 proxychains git clone git@github.com:xxx
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;    &lt;/div&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;我的/etc/proxychains.conf&lt;/p&gt;

    &lt;div class=&quot;language-shell highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt; &lt;span class=&quot;c&quot;&gt;## proxychains conf &lt;/span&gt;

 &lt;span class=&quot;c&quot;&gt;# proxychains.conf  VER 3.1&lt;/span&gt;
 &lt;span class=&quot;c&quot;&gt;#&lt;/span&gt;
 &lt;span class=&quot;c&quot;&gt;#        HTTP, SOCKS4, SOCKS5 tunneling proxifier with DNS.&lt;/span&gt;
 &lt;span class=&quot;c&quot;&gt;#&lt;/span&gt;
 &lt;span class=&quot;c&quot;&gt;# The option below identifies how the ProxyList is treated.&lt;/span&gt;
 &lt;span class=&quot;c&quot;&gt;# only one option should be uncommented at time,&lt;/span&gt;
 &lt;span class=&quot;c&quot;&gt;# otherwise the last appearing option will be accepted&lt;/span&gt;
 &lt;span class=&quot;c&quot;&gt;#&lt;/span&gt;
 dynamic_chain
 &lt;span class=&quot;c&quot;&gt;#&lt;/span&gt;
 &lt;span class=&quot;c&quot;&gt;# Dynamic - Each connection will be done via chained proxies&lt;/span&gt;
 &lt;span class=&quot;c&quot;&gt;# all proxies chained in the order as they appear in the list&lt;/span&gt;
 &lt;span class=&quot;c&quot;&gt;# at least one proxy must be online to play in chain&lt;/span&gt;
 &lt;span class=&quot;c&quot;&gt;# (dead proxies are skipped)&lt;/span&gt;
 &lt;span class=&quot;c&quot;&gt;# otherwise EINTR is returned to the app&lt;/span&gt;
 &lt;span class=&quot;c&quot;&gt;#&lt;/span&gt;
 &lt;span class=&quot;c&quot;&gt;#strict_chain&lt;/span&gt;
 &lt;span class=&quot;c&quot;&gt;#&lt;/span&gt;
 &lt;span class=&quot;c&quot;&gt;# Strict - Each connection will be done via chained proxies&lt;/span&gt;
 &lt;span class=&quot;c&quot;&gt;# all proxies chained in the order as they appear in the list&lt;/span&gt;
 &lt;span class=&quot;c&quot;&gt;# all proxies must be online to play in chain&lt;/span&gt;
 &lt;span class=&quot;c&quot;&gt;# otherwise EINTR is returned to the app&lt;/span&gt;
 &lt;span class=&quot;c&quot;&gt;#&lt;/span&gt;
 &lt;span class=&quot;c&quot;&gt;#random_chain&lt;/span&gt;
 &lt;span class=&quot;c&quot;&gt;#&lt;/span&gt;
 &lt;span class=&quot;c&quot;&gt;# Random - Each connection will be done via random proxy&lt;/span&gt;
 &lt;span class=&quot;c&quot;&gt;# (or proxy chain, see  chain_len) from the list.&lt;/span&gt;
 &lt;span class=&quot;c&quot;&gt;# this option is good to test your IDS :)&lt;/span&gt;

 &lt;span class=&quot;c&quot;&gt;# Make sense only if random_chain&lt;/span&gt;
 &lt;span class=&quot;c&quot;&gt;#chain_len = 2&lt;/span&gt;

 &lt;span class=&quot;c&quot;&gt;# Quiet mode (no output from library)&lt;/span&gt;
 &lt;span class=&quot;c&quot;&gt;#quiet_mode&lt;/span&gt;

 &lt;span class=&quot;c&quot;&gt;# Proxy DNS requests - no leak for DNS data&lt;/span&gt;
 proxy_dns 

 &lt;span class=&quot;c&quot;&gt;# Some timeouts in milliseconds&lt;/span&gt;
 tcp_read_time_out 15000
 tcp_connect_time_out 8000

 &lt;span class=&quot;c&quot;&gt;# ProxyList format&lt;/span&gt;
 &lt;span class=&quot;c&quot;&gt;#       type  host  port [user pass]&lt;/span&gt;
 &lt;span class=&quot;c&quot;&gt;#       (values separated by 'tab' or 'blank')&lt;/span&gt;
 &lt;span class=&quot;c&quot;&gt;#&lt;/span&gt;
 &lt;span class=&quot;c&quot;&gt;#&lt;/span&gt;
 &lt;span class=&quot;c&quot;&gt;#        Examples:&lt;/span&gt;
 &lt;span class=&quot;c&quot;&gt;#&lt;/span&gt;
 &lt;span class=&quot;c&quot;&gt;#            	socks5192.168.67.781080lamersecret&lt;/span&gt;
 &lt;span class=&quot;c&quot;&gt;#http192.168.89.38080justuhidden&lt;/span&gt;
 &lt;span class=&quot;c&quot;&gt;#socks4192.168.1.491080&lt;/span&gt;
 &lt;span class=&quot;c&quot;&gt;#       http192.168.39.938080##&lt;/span&gt;
 &lt;span class=&quot;c&quot;&gt;#       proxy types: http, socks4, socks5&lt;/span&gt;
 &lt;span class=&quot;c&quot;&gt;#        ( auth types supported: &quot;basic&quot;-http  &quot;user/pass&quot;-socks )&lt;/span&gt;
 &lt;span class=&quot;c&quot;&gt;#&lt;/span&gt;
 &lt;span class=&quot;o&quot;&gt;[&lt;/span&gt;ProxyList]
 &lt;span class=&quot;c&quot;&gt;# add proxy here ...&lt;/span&gt;
 &lt;span class=&quot;c&quot;&gt;# meanwile&lt;/span&gt;
 &lt;span class=&quot;c&quot;&gt;# defaults set to &quot;tor&quot;&lt;/span&gt;
 socks5 	127.0.0.1 1080
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;    &lt;/div&gt;
  &lt;/li&gt;
&lt;/ol&gt;</content><author><name></name></author><summary type="html">首先安装proxychains</summary></entry><entry><title type="html">怎么编写jekyll的markdown文档</title><link href="http://heeeello.github.io/how-to-write-jekyll-markdown/" rel="alternate" type="text/html" title="怎么编写jekyll的markdown文档" /><published>2017-03-27T00:00:00+00:00</published><updated>2017-03-27T00:00:00+00:00</updated><id>http://heeeello.github.io/how-to-write-jekyll-markdown</id><content type="html" xml:base="http://heeeello.github.io/how-to-write-jekyll-markdown/">&lt;p&gt;请参考：&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://github.com/barryclark/jekyll-now&quot;&gt;https://github.com/barryclark/jekyll-now&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/barryclark/www.jekyllnow.com/gh-pages/_posts/2014-6-19-Markdown-Style-Guide.md&quot;&gt;https://raw.githubusercontent.com/barryclark/www.jekyllnow.com/gh-pages/_posts/2014-6-19-Markdown-Style-Guide.md&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.smashingmagazine.com/2014/08/build-blog-jekyll-github-pages/&quot;&gt;https://www.smashingmagazine.com/2014/08/build-blog-jekyll-github-pages/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;ol&gt;
  &lt;li&gt;
    &lt;p&gt;Code blocks in ordered list may reset the order number&lt;/p&gt;

    &lt;p&gt;First in vim:&lt;/p&gt;
    &lt;div class=&quot;language-shell highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt; &lt;span class=&quot;nb&quot;&gt;set &lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;tabstop&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;2
 &lt;span class=&quot;nb&quot;&gt;set &lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;shiftwidth&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;4
 &lt;span class=&quot;nb&quot;&gt;set &lt;/span&gt;expandtab
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;    &lt;/div&gt;
    &lt;p&gt;Then, in vim visual mode, shift right 4 spaces of the ```block&lt;/p&gt;
  &lt;/li&gt;
&lt;/ol&gt;</content><author><name></name></author><summary type="html">请参考：</summary></entry><entry><title type="html">You’re up and running!</title><link href="http://heeeello.github.io/Hello-World/" rel="alternate" type="text/html" title="You're up and running!" /><published>2014-03-03T00:00:00+00:00</published><updated>2014-03-03T00:00:00+00:00</updated><id>http://heeeello.github.io/Hello-World</id><content type="html" xml:base="http://heeeello.github.io/Hello-World/">&lt;p&gt;Next you can update your site name, avatar and other options using the _config.yml file in the root of your repository (shown below).&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/config.png&quot; alt=&quot;_config.yml&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The easiest way to make your first post is to edit this one. Go into /_posts/ and update the Hello World markdown file. For more instructions head over to the &lt;a href=&quot;https://github.com/barryclark/jekyll-now&quot;&gt;Jekyll Now repository&lt;/a&gt; on GitHub.&lt;/p&gt;</content><author><name></name></author><summary type="html">Next you can update your site name, avatar and other options using the _config.yml file in the root of your repository (shown below).</summary></entry></feed>