lots of new files
This commit is contained in:
9
eric/Cakefile
Normal file
9
eric/Cakefile
Normal file
@ -0,0 +1,9 @@
|
||||
spawn = (require 'child_process').spawn
|
||||
|
||||
to_stdio = (emitter) ->
|
||||
emitter.stdout.on 'data', (data) -> process.stdout.write data
|
||||
emitter.stderr.on 'data', (data) -> process.stderr.write data
|
||||
emitter
|
||||
|
||||
task 'build', 'Build game file', (options) ->
|
||||
to_stdio spawn 'coffee', ['--compile', 'eric.coffee']
|
43
eric/eric.coffee
Normal file
43
eric/eric.coffee
Normal file
@ -0,0 +1,43 @@
|
||||
dx = 20
|
||||
[nx, ny] = [30, 20]
|
||||
canvas = document.getElementById 'canvas'
|
||||
|
||||
canvas.width = nx*dx
|
||||
canvas.height = ny*dx
|
||||
|
||||
state = []
|
||||
for i in [1..ny] by 1
|
||||
line = []
|
||||
line.push 0 for j in [1..nx] by 1
|
||||
state.push line
|
||||
|
||||
ctx = canvas.getContext '2d'
|
||||
|
||||
color = [
|
||||
'rgb(255, 255, 255)',
|
||||
'rgb(204, 255, 255)',
|
||||
'rgb(153, 255, 255)',
|
||||
'rgb(102, 255, 255)',
|
||||
'rgb(51, 255, 255)',
|
||||
'rgb(0, 255, 255)',
|
||||
]
|
||||
|
||||
redraw = () =>
|
||||
for i in [0..ny-1] by 1
|
||||
for j in [0..nx-1] by 1
|
||||
ctx.fillStyle = color[state[i][j]]
|
||||
ctx.fillRect j*dx, i*dx, dx, dx
|
||||
|
||||
canvas.onmousemove = (e) =>
|
||||
if (e.pageX || e.pageY)
|
||||
[x, y] = [e.pageX, e.pageY]
|
||||
else
|
||||
x = e.clientX + document.body.scrollLeft + document.documentElement.scrollLeft
|
||||
y = e.clientY + document.body.scrollTop + document.documentElement.scrollTop
|
||||
x -= canvas.offsetLeft
|
||||
y -= canvas.offsetTop
|
||||
[i, j] = [Math.floor(y/dx), Math.floor(x/dx)]
|
||||
state[i][j] += 1
|
||||
state[i][j] %= 6
|
||||
redraw()
|
||||
|
66
eric/eric.js
Normal file
66
eric/eric.js
Normal file
@ -0,0 +1,66 @@
|
||||
// Generated by CoffeeScript 1.6.2
|
||||
(function() {
|
||||
var canvas, color, ctx, dx, i, j, line, nx, ny, redraw, state, _i, _j, _ref,
|
||||
_this = this;
|
||||
|
||||
dx = 20;
|
||||
|
||||
_ref = [52, 7], nx = _ref[0], ny = _ref[1];
|
||||
|
||||
canvas = document.getElementById('canvas');
|
||||
|
||||
canvas.width = nx * dx;
|
||||
|
||||
canvas.height = ny * dx;
|
||||
|
||||
state = [];
|
||||
|
||||
for (i = _i = 1; _i <= ny; i = _i += 1) {
|
||||
line = [];
|
||||
for (j = _j = 1; _j <= nx; j = _j += 1) {
|
||||
line.push(0);
|
||||
}
|
||||
state.push(line);
|
||||
}
|
||||
|
||||
ctx = canvas.getContext('2d');
|
||||
|
||||
color = ['rgb(255, 255, 255)', 'rgb(204, 255, 255)', 'rgb(153, 255, 255)', 'rgb(102, 255, 255)', 'rgb(51, 255, 255)', 'rgb(0, 255, 255)'];
|
||||
|
||||
redraw = function() {
|
||||
var _k, _ref1, _results;
|
||||
|
||||
_results = [];
|
||||
for (i = _k = 0, _ref1 = ny - 1; _k <= _ref1; i = _k += 1) {
|
||||
_results.push((function() {
|
||||
var _l, _ref2, _results1;
|
||||
|
||||
_results1 = [];
|
||||
for (j = _l = 0, _ref2 = nx - 1; _l <= _ref2; j = _l += 1) {
|
||||
ctx.fillStyle = color[state[i][j]];
|
||||
_results1.push(ctx.fillRect(j * dx, i * dx, dx, dx));
|
||||
}
|
||||
return _results1;
|
||||
})());
|
||||
}
|
||||
return _results;
|
||||
};
|
||||
|
||||
canvas.onmousemove = function(e) {
|
||||
var x, y, _ref1, _ref2;
|
||||
|
||||
if (e.pageX || e.pageY) {
|
||||
_ref1 = [e.pageX, e.pageY], x = _ref1[0], y = _ref1[1];
|
||||
} else {
|
||||
x = e.clientX + document.body.scrollLeft + document.documentElement.scrollLeft;
|
||||
y = e.clientY + document.body.scrollTop + document.documentElement.scrollTop;
|
||||
}
|
||||
x -= canvas.offsetLeft;
|
||||
y -= canvas.offsetTop;
|
||||
_ref2 = [Math.floor(y / dx), Math.floor(x / dx)], i = _ref2[0], j = _ref2[1];
|
||||
state[i][j] += 1;
|
||||
state[i][j] %= 6;
|
||||
return redraw();
|
||||
};
|
||||
|
||||
}).call(this);
|
14
eric/index.html
Normal file
14
eric/index.html
Normal file
@ -0,0 +1,14 @@
|
||||
<html>
|
||||
<head>
|
||||
<style type="text/css">
|
||||
body{
|
||||
margin: 0;
|
||||
padding: 0
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<canvas id="canvas">Your browser does no support canvas</canvas>
|
||||
<script src="eric.js"> </script>
|
||||
</body>
|
||||
</html>
|
109
gitfiti.html
Normal file
109
gitfiti.html
Normal file
@ -0,0 +1,109 @@
|
||||
<!DOCTYPE html>
|
||||
<meta charset="utf-8">
|
||||
<style>
|
||||
|
||||
body {
|
||||
font: 10px sans-serif;
|
||||
shape-rendering: crispEdges;
|
||||
}
|
||||
|
||||
.day {
|
||||
fill: #fff;
|
||||
stroke: #ccc;
|
||||
}
|
||||
|
||||
.month {
|
||||
fill: none;
|
||||
stroke: #000;
|
||||
stroke-width: 2px;
|
||||
}
|
||||
|
||||
.RdYlGn .q0-11{fill:rgb(165,0,38)}
|
||||
.RdYlGn .q1-11{fill:rgb(215,48,39)}
|
||||
.RdYlGn .q2-11{fill:rgb(244,109,67)}
|
||||
.RdYlGn .q3-11{fill:rgb(253,174,97)}
|
||||
.RdYlGn .q4-11{fill:rgb(254,224,139)}
|
||||
.RdYlGn .q5-11{fill:rgb(255,255,191)}
|
||||
.RdYlGn .q6-11{fill:rgb(217,239,139)}
|
||||
.RdYlGn .q7-11{fill:rgb(166,217,106)}
|
||||
.RdYlGn .q8-11{fill:rgb(102,189,99)}
|
||||
.RdYlGn .q9-11{fill:rgb(26,152,80)}
|
||||
.RdYlGn .q10-11{fill:rgb(0,104,55)}
|
||||
|
||||
</style>
|
||||
<body>
|
||||
<script src="http://d3js.org/d3.v3.min.js"></script>
|
||||
<script>
|
||||
|
||||
var width = 960,
|
||||
height = 136,
|
||||
cellSize = 17; // cell size
|
||||
|
||||
var day = d3.time.format("%w"),
|
||||
week = d3.time.format("%U"),
|
||||
percent = d3.format(".1%"),
|
||||
format = d3.time.format("%Y-%m-%d");
|
||||
|
||||
var color = d3.scale.quantize()
|
||||
.domain([-.05, .05])
|
||||
.range(d3.range(11).map(function(d) { return "q" + d + "-11"; }));
|
||||
|
||||
var svg = d3.select("body").selectAll("svg")
|
||||
.data(d3.range(1990, 2011))
|
||||
.enter().append("svg")
|
||||
.attr("width", width)
|
||||
.attr("height", height)
|
||||
.attr("class", "RdYlGn")
|
||||
.append("g")
|
||||
.attr("transform", "translate(" + ((width - cellSize * 53) / 2) + "," + (height - cellSize * 7 - 1) + ")");
|
||||
|
||||
svg.append("text")
|
||||
.attr("transform", "translate(-6," + cellSize * 3.5 + ")rotate(-90)")
|
||||
.style("text-anchor", "middle")
|
||||
.text(function(d) { return d; });
|
||||
|
||||
var rect = svg.selectAll(".day")
|
||||
.data(function(d) { return d3.time.days(new Date(d, 0, 1), new Date(d + 1, 0, 1)); })
|
||||
.enter().append("rect")
|
||||
.attr("class", "day")
|
||||
.attr("width", cellSize)
|
||||
.attr("height", cellSize)
|
||||
.attr("x", function(d) { return week(d) * cellSize; })
|
||||
.attr("y", function(d) { return day(d) * cellSize; })
|
||||
.datum(format);
|
||||
|
||||
rect.append("title")
|
||||
.text(function(d) { return d; });
|
||||
|
||||
svg.selectAll(".month")
|
||||
.data(function(d) { return d3.time.months(new Date(d, 0, 1), new Date(d + 1, 0, 1)); })
|
||||
.enter().append("path")
|
||||
.attr("class", "month")
|
||||
.attr("d", monthPath);
|
||||
|
||||
d3.csv("dji.csv", function(error, csv) {
|
||||
var data = d3.nest()
|
||||
.key(function(d) { return d.Date; })
|
||||
.rollup(function(d) { return (d[0].Close - d[0].Open) / d[0].Open; })
|
||||
.map(csv);
|
||||
|
||||
rect.filter(function(d) { return d in data; })
|
||||
.attr("class", function(d) { return "day " + color(data[d]); })
|
||||
.select("title")
|
||||
.text(function(d) { return d + ": " + percent(data[d]); });
|
||||
});
|
||||
|
||||
function monthPath(t0) {
|
||||
var t1 = new Date(t0.getFullYear(), t0.getMonth() + 1, 0),
|
||||
d0 = +day(t0), w0 = +week(t0),
|
||||
d1 = +day(t1), w1 = +week(t1);
|
||||
return "M" + (w0 + 1) * cellSize + "," + d0 * cellSize
|
||||
+ "H" + w0 * cellSize + "V" + 7 * cellSize
|
||||
+ "H" + w1 * cellSize + "V" + (d1 + 1) * cellSize
|
||||
+ "H" + (w1 + 1) * cellSize + "V" + 0
|
||||
+ "H" + (w0 + 1) * cellSize + "Z";
|
||||
}
|
||||
|
||||
d3.select(self.frameElement).style("height", "2910px");
|
||||
|
||||
</script>
|
43
gitfiti.js
Normal file
43
gitfiti.js
Normal file
@ -0,0 +1,43 @@
|
||||
var color = [
|
||||
'rgb(255, 255, 255)',
|
||||
'rgb(200, 255, 255)',
|
||||
'rgb(150, 255, 255)',
|
||||
'rgb(100, 255, 255)',
|
||||
'rgb(50, 255, 255)',
|
||||
'rgb(0, 255, 255)',
|
||||
]
|
||||
|
||||
var paint=0
|
||||
document.body.addEventListener('mousedown', function(){paint=1;console.log('painting');}, false );
|
||||
document.body.addEventListener('mouseup',function(){paint=0;console.log('released')}, false);
|
||||
|
||||
function box(){
|
||||
var box = document.createElement("div");
|
||||
box.value=0;
|
||||
box.style.width='25px';
|
||||
box.style.height='25px';
|
||||
box.style.border='1px solid gray';
|
||||
box.style.backgroundColor=color[0];
|
||||
box.paint=0
|
||||
//box.onclick = function() { cycle(this);};
|
||||
box.addEventListener('mousemove', function(){cycle(this);}, false );
|
||||
document.body.appendChild(box);
|
||||
return box
|
||||
};
|
||||
|
||||
function boxes(){
|
||||
var column = [];
|
||||
for (i=0;i<7;i++){
|
||||
column[i]=box();
|
||||
}
|
||||
}
|
||||
|
||||
function cycle(object){
|
||||
if (paint==1){
|
||||
object.value+=0.5;
|
||||
object.value%6;
|
||||
object.style.backgroundColor=color[object.value];
|
||||
}
|
||||
}
|
||||
|
||||
boxes();
|
124
gitfiti.py
124
gitfiti.py
@ -1,5 +1,18 @@
|
||||
#gitfiti
|
||||
import os, sys
|
||||
#generate a value insertion plan for a 7xN matrix
|
||||
#github new repo in account
|
||||
#git init new repo
|
||||
# git add gitfiti_output
|
||||
# start of file:
|
||||
# git commit -date $(date in the past) gitfiti_output
|
||||
# for day in matrix:
|
||||
# for value in day:
|
||||
# add a character to gitfiti file
|
||||
# git commit -m -date $date_value gitfiti_output "g"
|
||||
#git add remote (get github url)
|
||||
#git push -f master
|
||||
|
||||
import os, sys, datetime, math
|
||||
try:
|
||||
import requests
|
||||
except:
|
||||
@ -9,53 +22,90 @@ except:
|
||||
BASEURL='https://github.com/'
|
||||
color_commit_values=[0,1,2,3,4]
|
||||
|
||||
|
||||
def get_calendar(username):
|
||||
"""retrieves the github commit calendar data for a username"""
|
||||
url = BASEURL + 'users/' + username + '/contributions_calendar_data'
|
||||
req = requests.get(url)
|
||||
return req.json()
|
||||
|
||||
def max_commits(input):
|
||||
"""finds the highest number of commits in one day"""
|
||||
output = set()
|
||||
for i, j in enumerate(input):
|
||||
output.add(input[i][1])
|
||||
output = list(output)
|
||||
output.sort()
|
||||
output.reverse()
|
||||
return output[0]
|
||||
|
||||
def trim_calendar(input):
|
||||
"""remote the first 6 days to align data with sundays"""
|
||||
trim=input[6:]
|
||||
return trim
|
||||
|
||||
def squash_calendar(input):
|
||||
"""group days into weeks for formatting"""
|
||||
c=[]
|
||||
input.pop
|
||||
return c
|
||||
"""returns index of first sunday in the input"""
|
||||
for i, j in enumerate(input):
|
||||
day = input[i][0]
|
||||
day = datetime.datetime.strptime(day, '%Y/%m/%d')
|
||||
weekday = datetime.datetime.weekday(day)
|
||||
if weekday == 6:
|
||||
return i
|
||||
|
||||
kitty=[
|
||||
[0,0,0,4,0,0,0,0,4,0,0,0],
|
||||
[3,3,4,2,4,4,4,4,2,4,3,3],
|
||||
[0,0,4,2,2,2,2,2,2,4,0,0],
|
||||
[3,3,4,2,4,2,2,4,2,4,3,3],
|
||||
[0,0,4,2,2,3,3,2,2,4,0,0],
|
||||
[3,3,4,2,2,2,2,2,2,4,3,3],
|
||||
[0,0,0,4,4,4,4,4,4,0,0,0]]
|
||||
|
||||
oneup=[
|
||||
[0,0,4,4,4,4,4,4,4,0,0],
|
||||
[0,4,2,2,1,1,1,2,2,4,0],
|
||||
[4,3,2,2,1,1,1,2,2,3,4],
|
||||
[4,3,3,4,4,4,4,4,3,3,4],
|
||||
[0,4,4,1,4,1,4,1,4,4,0],
|
||||
[0,0,4,1,1,1,1,1,4,0,0],
|
||||
[0,0,0,4,4,4,4,4,0,0,0]]
|
||||
|
||||
#find date range for N weeks
|
||||
#each column starts on SUNDAY
|
||||
def multiplier(max_commits):
|
||||
"""calculates a multiplier to scale github colors to commit history"""
|
||||
m = max_commits/4.0
|
||||
m = math.ceil(m)
|
||||
m = int(m)
|
||||
return m
|
||||
|
||||
#generate a value insertion plan for a 7xN matrix
|
||||
def fakeit(image, reference, multiplier=1):
|
||||
height = range(7)
|
||||
width = len(image[0])
|
||||
cal_index = 0
|
||||
for w in range(width):
|
||||
for h in height:
|
||||
count = image[h][w]*multiplier
|
||||
if count == 0:
|
||||
cal_index += 1
|
||||
continue
|
||||
for c in range(count):
|
||||
date = reference[cal_index][0]
|
||||
date = datetime.datetime.strptime(date, '%Y/%m/%d').isoformat()
|
||||
shelloutput(c, date)
|
||||
cal_index += 1
|
||||
|
||||
#github new repo in account
|
||||
def shelloutput(content, commitdate):
|
||||
print '''echo ''' + str(content) + ''' >> gitfiti'''
|
||||
print '''GIT_AUTHOR_DATE=''' + commitdate + ''' GIT_COMMITTER_DATE=''' + commitdate + ''' git commit -a -m "''' + "gitfiti" +'''"'''
|
||||
|
||||
#git init new repo
|
||||
# git add gitfiti_output
|
||||
|
||||
# start of file:
|
||||
# git commit -date $(date in the past) gitfiti_output
|
||||
#git init gitfitii
|
||||
#cd gitfiti
|
||||
#touch gitfiti
|
||||
#git add gitfiti
|
||||
###SHELLOUTPUT
|
||||
#git remote add origin git@github.com:gelstudios/kitty.git
|
||||
#git push -u origin master
|
||||
|
||||
# for day in matrix:
|
||||
# for value in day:
|
||||
# add a character to gitfiti file
|
||||
# git commit -m -date $date_value gitfiti_output "g"
|
||||
|
||||
#git add remote (get github url)
|
||||
#git push -f master
|
||||
|
||||
#profit!
|
||||
|
||||
test=[
|
||||
[4,3,2,1,0],
|
||||
[3,2,1,0,4],
|
||||
[2,1,0,4,3],
|
||||
[1,0,4,3,2],
|
||||
[0,4,3,2,1]
|
||||
]
|
||||
|
||||
#GIT_AUTHOR_DATE='your date' GIT_COMMITTER_DATE='your date' git commit -m 'new (old) files'
|
||||
username='gelstudios'
|
||||
cal = get_calendar(username)
|
||||
x = trim_calendar(cal)
|
||||
m = max_commits(cal)
|
||||
m = multiplier(m)
|
||||
cal = cal[x:]
|
||||
fakeit(kitty, cal, m)
|
BIN
gitfiti.pyc
Normal file
BIN
gitfiti.pyc
Normal file
Binary file not shown.
5
text.html
Normal file
5
text.html
Normal file
@ -0,0 +1,5 @@
|
||||
<!DOCTYPE html>
|
||||
<head>
|
||||
</head>
|
||||
<body><script src='gitfiti.js'></script>
|
||||
</body>
|
7
views/index.tpl
Normal file
7
views/index.tpl
Normal file
@ -0,0 +1,7 @@
|
||||
login page
|
||||
<html>
|
||||
<head>
|
||||
<form>
|
||||
<input>
|
||||
</form>
|
||||
|
Reference in New Issue
Block a user