This is a rant about how a decentralized network for storing structured data
might look like.
The goal is to allow third party developers to build applications and services
that use it as a data-store and allow users to switch between any application or
service without loosing their data.
There have been several HOWTOs posted regarding streaming the 2012 Olympics using HTTP / SOCKS proxies via SSH and other similar methods. None of these actually work using the latest Flash on Mountain Lion (with Firefox, Chrome or Safari). Additionally, the third-party streaming sites don't provide BBC's amazing interface, which lets you quickly skip to individual competitors and events. However, setting up an OpenVPN server does work, with some tweaks. You'll get the exact same UX that people in England receive.
-
Get a Linode VM in the UK. The 512MB server for $20 works just fine. (If you want to use my referral link, go for it: http://bit.ly/OuzdVe)
-
Follow the standard OpenVPN installation documentation. (Basically, 'apt-get install openvpn' or 'yum install openvpn' and then follow these docs: http://openvpn.net/index.php/open-source/documentation/howto.html). For an OS X client, I prefer Viscosity: http://www.thesparklabs
# encoding: utf-8 | |
require 'bench_press' | |
require 'json' | |
require 'yajl' | |
require 'msgpack' | |
extend BenchPress | |
reps 10_000 |
find . -name \.AppleDouble -exec rm -rf {} \; |
// native notifications for https://outlook.office365.com/ | |
(function () { | |
var logging = false; | |
var bound = []; | |
function log () { | |
return logging && console.log.apply(console, ['notifications:'].concat(Array.prototype.slice.apply(arguments))); | |
} |
// use for patterns: | |
// https://login.microsoftonline.com/* | |
// https://outlook.office365.com/* | |
// desktop badge count for https://outlook.office365.com/ | |
(function () { | |
var logging = false; | |
function log () { |
#include <stdio.h> | |
#include <stdlib.h> | |
#include <math.h> | |
#include <float.h> | |
int main | |
(int argc | |
,char *ac []){int i, count = argc - 1; | |
double * dvalues=malloc(01- 01+count* | |
sizeof(double)+1); double mi=DBL_MAX,ran=.0,ma =DBL_MIN,mo;for(i= 00; argc>1 | |
&&i<count;i=i+8-7) {double val = atof(ac[i+1]) ;if(23&&val<mi)mi= val;if(val |
#!/usr/bin/env python | |
import sys | |
import os | |
def adf2mp3(input_path, output_path, buffer_size=1024*1024): | |
print 'Converting', output_path | |
input_file = open(input_path, 'rb') | |
output_file = open(output_path, 'wb') | |
for read_buffer in iter(lambda: input_file.read(buffer_size), ''): |
Use magit-ediff or 'e' on an unmerged item to resolve merge conflicts with ediff. Magit will set up an ediff with three buffers A, B and C. A and B are the original (conflicting) files, and C is the conflicted merge.
Use 'n'/'p' to move to the next/previous conflict, use 'a'/'b' to choose which changes (those in a A or B) should be the ones to keep in the merged file.
You can always just switch to buffer C and edit what the merged version should look like.
=begin
Example box JSON schema
{
:name => :name_of_vagrant_box, #REQUIRED
:ip => '10.0.0.11', #REQUIRED
:synced_folders => [
{ '.' => '/home/vagrant/myapp' }
],
:commands => [