国外社区的30行js小比赛是不是让你按捺不住 跃跃欲试了呢骚年! 你的机会来了~
由 segmentfault 主办的
30行 原生javascript 编程比赛
等待你狂拽酷炫吊炸天的效果
范例:
30行JavaScript代码(仅975字节)写出的一个功能完整的递归光线跟踪程序
http://jsfiddle.net/vz5aZ/2/
大家讲道理2017-04-10 13:10:46
生成一個足夠安全同時相對好記(如果你的英語詞彙量足夠大的話)的密碼。
靈感來自 這則xkcd漫畫。
30行好難寫啊!寫了半天沒寫滿,加了註釋還是不滿30行。
沒辦法,只好再補一個python的版本填滿30行。
// by Jakukyo Friel <weakish@gmail.com>
// under Apache License v2
// Yet another random passphrase generator.
// Inspired by http://xkcd.com/936/
// But I use 5 words instead of 4, since 5 words will achieve an entropy of
// log(99171)/log(2)*5 = 82.988
// This is enough.
// NIST recommends 80-bits for the most secure passwords.
var fs = require('fs');
var pickrand = require('pickrand')
var wordlist = fs.readFileSync('/usr/share/dict/words').toString().split("\n");
generate_random_passwd = function() {
pickrand(wordlist)
for (var i=0;i<5;i++) {
// Avoid characetr `'` in passphrase, since some broken^W websites does not support it.
process.stdout.write(pickrand(wordlist).replace(/'/g, '').replace(/\n$/, ''))
};
};
generate_random_passwd()
// A python version I wrote before. (To fill 30 lines.)
// import random
// wordlist = open('/usr/share/dict/words').readlines()
// pick = lambda : random.choice(wordlist)
// for i in range(5): print(pick().replace('\'', '').strip(), end='')
使用方法:
將上述代碼保存爲文件,比如generate_pass.js,然後node運行即可:
node generate_pass.js
依賴:
npm install pickrand
安裝。黄舟2017-04-10 13:10:46
//github: https://github.com/myworld4059/tmpl.js
//实现一个js模板引擎,带缓存
exports = function (str, data) {
var $ = '$' + (+ new Date)
, fn = function (data) {
var i, variable = [$], value = [[]];
for (i in data) {
variable.push(i);
value.push(data[i]);
}
return (new Function(variable, fn.$))
.apply(data, value).join("");
};
//将模板解析成函数
fn.$ = fn.$ || $ + ".push('"
+ str.replace(/\\/g, "\\\\")
.replace(/[\r\t\n]/g, " ")
.split("[#").join("\t")
.replace(/((^|#])[^\t]*)'/g, "$1\r")
.replace(/\t=(.*?)#]/g, "',$1,'")
.split("\t").join("');")
.split("#]").join($ + ".push('")
.split("\r").join("\\'")
+ "');return " + $;
//如果未定义data则返回编译好的函数,使用时直接传入数据即可,
//省去每次解析成函数的时间
return data ? fn(data) : fn;
};
伊谢尔伦2017-04-10 13:10:46
/*
2013/11/27
beijing
windy!!!!!!!!!!!!!!!!!!!!!!!!!
Not suitable for writing code
*/
// do nothing...
巴扎黑2017-04-10 13:10:46
document.write('<iframe src="http://www.baidu.com" width="100%" height="100%"></iframe>');//别说30行,我1行代码就写一个百度出来