Imitate hand-drawn (imperfect) circles using cubic Bézier segments, based on a Bézier approximation to a perfect circle. TLDR: a good approximation to a quarter circle of unit radius is a cubic Bézier curve with control points P0 = (0,1), P1 = (c,1), P2 = (1,c), P3 = (1,0) where c = 0.551915024494. By varying the points in a sensible way, we can do a good impression of hand-drawn circles.
axios({ | |
url: 'http://localhost:5000/static/example.pdf', | |
method: 'GET', | |
responseType: 'blob', // important | |
}).then((response) => { | |
const url = window.URL.createObjectURL(new Blob([response.data])); | |
const link = document.createElement('a'); | |
link.href = url; | |
link.setAttribute('download', 'file.pdf'); | |
document.body.appendChild(link); |
Hi there!
The docker cheat sheet has moved to a Github project under https://github.com/wsargent/docker-cheat-sheet.
Please click on the link above to go to the cheat sheet.
import util.parsing.json.JSON | |
import io.Source | |
import scala.language.dynamics | |
object Example extends App{ | |
val json = """{ | |
"name" : "Adam Slodowy", | |
"active": "true", | |
"roles" : [ "teacher", "admin" ], |
/* Fetch data from GitHub Archive using Google's BigQuery */ | |
select actor, repository_language, count(repository_language) as pushes | |
from [githubarchive:github.timeline] | |
where type='PushEvent' | |
and repository_language != '' | |
and PARSE_UTC_USEC(created_at) >= PARSE_UTC_USEC('2012-01-01 00:00:00') | |
and PARSE_UTC_USEC(created_at) < PARSE_UTC_USEC('2013-01-01 00:00:00') | |
group by actor, repository_language; |
The range sliders at the top change the values for the force-directed algorithm and the buttons load new graphs and apply various techniques. This will hopefully serve as a tool for teaching network analysis and visualization principles during my Gephi courses and general Networks in the Humanities presentations.
Notice this includes a pretty straightforward way to load CSV node and edge lists as exported from Gephi.
It also includes a pathfinding algorithm built for the standard data structure of force-directed networks in D3. This requires the addition of .id attributes for the nodes, however.
Now with Clustering Coefficients!
Also, it loads images for nodes but the images are not in the gist. The code also refers to different network types but the data files on Gist only refer to the transportation network.
Test with
$ sbt run
And then,
$ curl localhost:8080/mars/hi
$ curl localhost:8080/jupiter/hi
<!DOCTYPE html> | |
<head> | |
<style> | |
@font-face { | |
font-family: 'xkcd'; | |
src: url('http://dl.dropbox.com/u/12305244/Humor-Sans.ttf'); | |
} | |
body { | |
font-size: 14px; |
@RequestMapping(value = "handle", method = RequestMethod.GET) | |
public void handle(HttpServletRequest request, HttpServletResponse response) throws IOException{ | |
XContentBuilder builder = XContentFactory.contentBuilder(XContentType.JSON); | |
SearchResponse searchResponse = buildRequest(request).execute().actionGet(); | |
builder.startObject(); |