T-shirt Testing


colors = ximport( "colors" )

font( "Courier", 100 )
align( CENTER )
text_path_line_1 = textpath( "PALM", 0, 200, width = WIDTH)
text_path_line_2 = textpath( "4FUN", 0, 350, width = WIDTH)

resx = 300
resy = 80
rx = 1.0
ry = 1.5
dotsize = 4.5
dx = WIDTH  / float( resx )
dy = HEIGHT / float( resy )

def draw_text() :
  strokewidth( random( 0.2, 2.8 ) )
  clr = choice( [
      colors.hex( "#FFBCA4" ),
      colors.hex( "#FFBCA4" ),
      colors.hex( "#FF4500" ),
      colors.hex( "#D93B00" ),
      colors.hex( "#A72D00" ) ]
  clr.a = random( 0.6, 1 )
  stroke( clr )
  oval( pointx + random( -rx, rx ), pointy + random( -ry, ry ), size, size )

for x, y in grid( resx, resy ) :
  size = choice( [ 1, 2, 2, 2, 3, 3, 3, dotsize ] )
  pointx = x * dx - size
  pointy = y * dy - size
  if text_path_line_1.contains( pointx, pointy ) or text_path_line_2.contains( pointx, pointy ) :


Don't touch me Don't touch me Don't touch me

update android sdk with shadowsocks proxy



[android] $ /usr/local/share/gradle-1.11/bin/gradle clean build
Creating properties on demand (a.k.a. dynamic properties) has been deprecated and is scheduled to be removed in Gradle 2.0. Please read http://gradle.org/docs/current/dsl/org.gradle.api.plugins.ExtraPropertiesExtension.html for information on the replacement for dynamic properties.
Deprecated dynamic property: "buildName" on "ProductFlavorDsl_Decorated{name=main, minSdkVersion=null, targetSdkVersion=null, renderscriptTargetApi=-1, renderscriptSupportMode=null, renderscriptNdkMode=null, versionCode=-1, versionName=null, applicationId=null, testApplicationId=null, testInstrumentationRunner=null, testHandleProfiling=null, testFunctionalTest=null, signingConfig=null, resConfig=null}", value: "1.0.97".

FAILURE: Build failed with an exception.

* What went wrong:
A problem occurred configuring project ':app'.
> Could not resolve all dependencies for configuration ':app:_debugCompile'.
   > Could not find com.android.support:appcompat-v7:20.0.0.
     Required by:

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.s


Failed connect to dl-ssl.google.com:443;



安装shadowsocks的pythohn client:

$ pip install shadowsocks

Downloading/unpacking shadowsocks
  Running setup.py egg_info for package shadowsocks

    warning: manifest_maker: MANIFEST.in, line 1: 'recursive-include' expects <dir> <pattern1> <pattern2> ...

Installing collected packages: shadowsocks
  Running setup.py install for shadowsocks

    warning: manifest_maker: MANIFEST.in, line 1: 'recursive-include' expects <dir> <pattern1> <pattern2> ...

    Installing sslocal script to /usr/local/bin
    Installing ssserver script to /usr/local/bin
Successfully installed shadowsocks
Cleaning up...


root@palm4fun-core-1:~/install# sslocal -h
usage: sslocal [-h] -s SERVER_ADDR [-p SERVER_PORT]
               [-b LOCAL_ADDR] [-l LOCAL_PORT] -k PASSWORD [-m METHOD]
               [-t TIMEOUT] [-c CONFIG] [--fast-open] [-v] [-q]

optional arguments:
  -h, --help            show this help message and exit
  -s SERVER_ADDR        server address
  -p SERVER_PORT        server port, default: 8388
  -b LOCAL_ADDR         local binding address, default:
  -l LOCAL_PORT         local port, default: 1080
  -k PASSWORD           password
  -m METHOD             encryption method, default: aes-256-cfb
  -t TIMEOUT            timeout in seconds, default: 300
  -c CONFIG             path to config file
  --fast-open           use TCP_FASTOPEN, requires Linux 3.7+
  -v, -vv               verbose mode
  -q, -qq               quiet mode, only show warnings/errors

Online help: <https://github.com/clowwindy/shadowsocks>


```javascript ~/.shadowconfig { “server”:”my_server_ip”, “server_port”:8388, “local_port”:1080, “password”:”barfoo!”, “timeout”:600, “method”:”table” }


root@palm4fun-core-1:~/install# sslocal -c ~/.shadowconfig
INFO: loading config from /root/.shadowconfig
shadowsocks 2.1.0
2014-09-02 00:27:53 INFO     starting local at

命令行更新android sdk

先配置java命令使用的代理,然后 从命令行更新android sdk。只需要到tools目录下面去跑(-u是不显示GUI,-s是指定不使用ssl链接):

$ export _JAVA_OPTIONS="-DsocksProxyHost="
$ android update sdk -u -s --all



When shit happens


2014-09-02 00:27:53 INFO     starting local at
2014-09-02 00:28:04 INFO     connecting
2014-09-02 00:28:04 INFO     connecting
2014-09-02 00:28:04 INFO     connecting

因为本座平时上网也是在用Google VM上的这个代理,没理由这么慢。所以就怀疑那个74.125.237.1的地址是被谁在/etc/hosts里面给配了固定ip。打开一看果然有:



Last but not the least, Fuck you, GFW.