Skip to content

Instantly share code, notes, and snippets.

Avatar

William Stein williamstein

View GitHub Profile
@williamstein
williamstein / tofile cell decorator
Created Sep 19, 2013
Load this then put "%default_mode tofile" in a cloud.sagemath worksheet.
View tofile cell decorator
def tofile(s):
maxout=500
import uuid
filename = str(uuid.uuid4()) +'.log'
o = open(filename,'w')
stdout = sys.stdout
class Stdout:
def __init__(self):
self.t = 0
@williamstein
williamstein / cloud-ipython.coffee
Created Oct 12, 2013
This is the code I wrote as part of https://cloud.sagemath.com in order to integrate IPython notebooks into my existing document synchronization infrastructure. It's CoffeeScript code that isn't meant to be run-able (I just copied it out of a bigger file). I just thought there could be some value in making this available under a BSD license, sin…
View cloud-ipython.coffee
###############################################################################
# Copyright (c) 2013, William Stein
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are met:
#
# 1. Redistributions of source code must retain the above copyright notice, this
# list of conditions and the following disclaimer.
# 2. Redistributions in binary form must reproduce the above copyright notice,
@williamstein
williamstein / gist:7386062
Created Nov 9, 2013
Making a 3d animation in the Sagemath Cloud http://youtu.be/lhirRHCW1q0
View gist:7386062
%time
filename_pattern = '/tmp/plt-%04d.png'
@parallel
def frame(n, filename):
t = Tachyon(xres=800,yres=800, camera_center=(2,5,2), look_at=(2.5,0,0), antialiasing=True)
t.light((0,0,100), 1, (1,1,1))
t.texture('r', ambient=0.1, diffuse=0.9, specular=0.5, opacity=1.0, color=(1,0,0))
for i in range(n):
@williamstein
williamstein / smcarch56
Last active Jan 2, 2016
SageMath Cloud backend architecture talk at Sage Days 56
View smcarch56
# SageMath Cloud backend architecture talk at Sage Days 56
## Guiding principles
- A place for everybody to use *all* math-related software easily, especially (but not only!) open source
- High availability: automatically survive failure of any proper subset of datacenters
- Make it very hard to permanently lose work:
- everything has synchronization
View proxy
httpProxy = require('http-proxy')
init_http_proxy_server = () =>
_remember_me_check_for_write_access_to_project = (opts) ->
opts = defaults opts,
project_id : required
remember_me : required
cb : required # cb(err, has_access)
account_id = undefined
View gist:49fc9a2857c89f099f69
~$ python
Python 2.7.6 (default, Mar 22 2014, 22:59:56)
[GCC 4.8.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import regs_180k_200k_conca
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "regs_180k_200k_conca.py", line 5484
@williamstein
williamstein / OrbitControls.js
Created Sep 18, 2014
Modification of THREE.js http://threejs.org/examples/js/controls/OrbitControls.js, but so that holding alt or command enables pan and holding shift or control enables zoom. This is for people like Mac users that have only one mouse button, but still want to pan using the mouse. I use this in SageMathCloud, where I can't enable the OrbitControls …
View OrbitControls.js
/**
* @author qiao / https://github.com/qiao
* @author mrdoob / http://mrdoob.com
* @author alteredq / http://alteredqualia.com/
* @author WestLangley / http://github.com/WestLangley
* @author erich666 / http://erichaines.com
*/
/*global THREE, console */
// This set of controls performs orbiting, dollying (zooming), and panning. It maintains