今年国内首届Swift大会在北京举行,Swift是苹果2014年7月推出的新编程语言,从许多现代语言中吸收了不少非常棒的特性。
北京这次完全是坊间出于技术交流与分享的热情组织起来的非盈利性会议,请到了来自国内外的多位技术大咖,有同学戏称是iOS界网红见面会,总之非常难得。
议程结束不久,趁着还热乎,在此先与大家分享一下。回头官方放出视频和Keynotes再做补充。
by Chris Eidhof
wget http://spud.in/tools/phantomjs-1.9.2-linux-x86_64.tar.bz2 | |
tar -xvjpf phantomjs-1.9.2-linux-x86_64.tar.bz2 | |
cd phantomjs-1.9.2-linux-x86_64 | |
sudo ln -sf `pwd`/bin/phantomjs /usr/local/bin/phantomjs | |
cd - | |
git clone git://github.com/n1k0/casperjs.git | |
cd casperjs | |
sudo ln -sf `pwd`/bin/casperjs /usr/local/bin/casperjs | |
cd - | |
wget https://raw2.github.com/supersheep/Edward/master/main.js -O capture.js |
function anyequal(arr){ | |
return arr.some(function(ei,i){ | |
return arr.some(function(ej,j){return ej==ei && i!=j}); | |
}); | |
return res; | |
} | |
function getmax(wlen,len){ | |
var max = (wlen-1).toString(wlen); | |
var maxarr = []; |
function isDirectory(file){ | |
return fs.existsSync(file) && fs.statSync(file).isDirectory(); | |
}; | |
function mkdirSync(dir){ | |
if(!isDirectory(dir)){ | |
var SPLITTER = path.sep, | |
splits = dir.split(SPLITTER), | |
directory_stack = [], | |
last, |
function Parallel(tasks,alldone){ | |
var count = tasks.length; | |
var results = new Array(count); | |
var finished = 0; | |
function done(result,i){ | |
results[i]=result; | |
finished++; | |
if(finished==count){ | |
alldone(results); | |
}; |
function(resschema,body,type){ | |
var result,schema; | |
if(!resschema){ | |
return {ok:false,msg:"no response schema"}; | |
} | |
if(!body){ | |
return {ok:false,msg:"no body"}; | |
} |
function (req, res, next) { | |
var url,reqdata; | |
if(!req.xhr){next();} | |
url = urlmod.parse(req.url).pathname; | |
reqdata = { | |
get : req.query, | |
post : req.body, | |
header: req.headers | |
}; |
(function(win,DP){ | |
// 适配mootools与neuron框架创建元素方法 | |
function create(tag){ | |
if(DP.DOM){ | |
return DP.DOM.create(tag).el(0) | |
}else{ | |
return new Element(tag); | |
} | |
} |
// 非常偷懒的假设中文字符集为两个字符长度,别的都是一个 | |
function clipString(str,length){ | |
var strArr = str.split(""); | |
var result = []; | |
for(var i=0;chr=strArr[i];i++){ | |
if(/[\u0391-\uFFE5]/.test(chr)){ | |
length -= 2; | |
}else{ | |
length -= 1; | |
} |