An introduction to curl using GitHub's API.
Makes a basic GET request to the specifed URI
curl https://api.github.com/users/caspyin
| (defstruct path :state :previous :cost-so-far :total-cost) | |
| (defn path-to-string | |
| [path] | |
| (format "Path to %s, cost %s" (:state path) (:total-cost path))) | |
| (defn make-path | |
| "Create a new path object" | |
| [state previous cost-so-far total-cost] | |
| (struct path state previous cost-so-far total-cost)) |
| <!DOCTYPE html> | |
| <html lang="en"> | |
| <head> | |
| <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> | |
| <title>SoundCloud OAuth 2 User Agent Authentication Flow Demo</title> | |
| <script type="text/javascript" charset="utf-8" src="javascript/jquery-1.4.2.js"></script> | |
| <script type="text/javascript" charset="utf-8"> | |
| $(function () { | |
| var extractToken = function(hash) { |
An introduction to curl using GitHub's API.
Makes a basic GET request to the specifed URI
curl https://api.github.com/users/caspyin
| Latency Comparison Numbers (~2012) | |
| ---------------------------------- | |
| L1 cache reference 0.5 ns | |
| Branch mispredict 5 ns | |
| L2 cache reference 7 ns 14x L1 cache | |
| Mutex lock/unlock 25 ns | |
| Main memory reference 100 ns 20x L2 cache, 200x L1 cache | |
| Compress 1K bytes with Zippy 3,000 ns 3 us | |
| Send 1K bytes over 1 Gbps network 10,000 ns 10 us | |
| Read 4K randomly from SSD* 150,000 ns 150 us ~1GB/sec SSD |
Locate the section for your github remote in the .git/config file. It looks like this:
[remote "origin"]
fetch = +refs/heads/*:refs/remotes/origin/*
url = [email protected]:joyent/node.git
Now add the line fetch = +refs/pull/*/head:refs/remotes/origin/pr/* to this section. Obviously, change the github url to match your project's URL. It ends up looking like this:
| import org.slf4j.Logger; | |
| import org.slf4j.LoggerFactory; | |
| import org.springframework.security.web.session.InvalidSessionStrategy; | |
| import org.springframework.util.StringUtils; | |
| import javax.servlet.ServletException; | |
| import javax.servlet.http.HttpServletRequest; | |
| import javax.servlet.http.HttpServletResponse; | |
| import java.io.IOException; |
| App configuration in environment variables: for and against | |
| For (some of these as per the 12 factor principles) | |
| 1) they are are easy to change between deploys without changing any code | |
| 2) unlike config files, there is little chance of them being checked | |
| into the code repo accidentally | |
| 3) unlike custom config files, or other config mechanisms such as Java |
| // Create our own MyResponseWriter to wrap a standard http.ResponseWriter | |
| // so we can store the status code. | |
| type MyResponseWriter struct { | |
| status int | |
| http.ResponseWriter | |
| } | |
| func NewMyResponseWriter(res http.ResponseWriter) *MyResponseWriter { | |
| // Default the status code to 200 | |
| return &MyResponseWriter{200, res} |
| // copy/paste into chrome console (alt+cmd+J) after the video starts playing. | |
| setInterval(function() { | |
| var possibleButtons = document.getElementsByClassName('continue-playing'); | |
| if (possibleButtons.length) { | |
| for (var i = 0; i < possibleButtons.length; i++) { | |
| if (/Continue Playing/.test(possibleButtons[i].textContent)) { | |
| var event = document.createEvent('HTMLEvents'); | |
| event.initEvent('click', true, false); | |
| possibleButtons[i].dispatchEvent(event); | |
| } |
| #!/bin/bash | |
| # Stop all containers | |
| containers=`docker ps -a -q` | |
| if [ -n "$containers" ] ; then | |
| docker stop $containers | |
| fi | |
| # Delete all containers | |
| containers=`docker ps -a -q` | |
| if [ -n "$containers" ]; then | |
| docker rm -f -v $containers |