Skip to content

Instantly share code, notes, and snippets.

View couto's full-sized avatar
👽
Did you raid area 51?

Luís Couto couto

👽
Did you raid area 51?
View GitHub Profile
@couto
couto / bind.js
Created December 3, 2013 12:04
Simplest bind function
/**
* bind
* Takes a function and returns a new one that will always have a particular context.
* If arguments are given, curry will happen: http://ejohn.org/blog/partial-functions-in-javascript/
*
* @param {Function} fn Function whose context will be changed
* @param {Object} [ctx=this] the obejct to which the context will be set
* @param {Mixed} [args...] Arguments to be passed to the resulting function
* @returns {Function}
*/
@couto
couto / parameters.js
Created December 5, 2013 16:25
Get arguments names function
/**
* parameters
* Given a function, it will return the name of that function's arguments
*
* @param {Function}
* @returns {Array}
* @example
* var example = function (a, b) {};
* parameters(example) // ['a', 'b']
*
@couto
couto / fixsvn.sh
Last active June 17, 2016 10:37 — forked from siddhadev/gist:5814802
Fix the svn "Working copy text base is corrupt" error.
#!/bin/bash
set -e
usage(){
echo "Error $errcode $errorcode at line ${BASH_LINENO[0]} while executing: $BASH_COMMAND"
exit $errorcode
}
trap usage ERR

Overview

Following this gist, I decided to create my own tutorial/manual for future reference.

Prerequisites

Before trying to convert anything, you must have the following tools installed:

  • QuickTime (to record the video)
  • ffmpeg (to process the video file)
  • gifsicle (to create and optimise the animated gif)

Instalation

@couto
couto / SSL_cert_creation.sh
Last active January 2, 2016 02:39
Create random SSL certificates for use in development.
# Generate SSL Certificate for dev
export DOMAIN="example.dev"
export PASSPHRASE=$(head -c 500 /dev/urandom | tr -dc a-z0-9A-Z | head -c 128; echo)
export SUBJ="
C=PT
ST=Aveiro
O=Example Organization
localityName=Aveiro
commonName=$DOMAIN
# Install vim and mamp
brew install vim
brew cask install mamp
# Open MAMP and set default ports, don't start the server yet
# Also choose a better DocumentRoot like ~/Development or ~/Sites
open /Applications/MAMP/MAMP.app
# Enable virtual-hosts in Apache's configuration
vim /Applications/MAMP/conf/apache/httpd.conf
@couto
couto / browser_detection.js
Created February 11, 2014 15:04
Mootools' browser detection
var browser = (function () {
var ua = navigator.userAgent.toLowerCase(),
platform = navigator.platform.toLowerCase(),
UA = ua.match(/(opera|ie|firefox|chrome|version)[\s\/:]([\w\d\.]+)?.*?(safari|version[\s\/:]([\w\d\.]+)|$)/) || [null, 'unknown', 0],
mode = UA[1] === 'ie' && document.documentMode,
name = (UA[1] === 'version') ? UA[3] : UA[1],
version = mode || parseFloat((UA[1] === 'opera' && UA[4]) ? UA[4] : UA[2]),
browser;
return {
@couto
couto / restore_console.js
Created March 6, 2014 18:04
Little bookmarklet to restore the console on those websites that disable it (netflix)
javascript:(function () {
var iframe = document.createElement("iframe"),
console;
iframe.src = "about:blank";
iframe.style.display = "none";
document.body.appendChild(iframe);
console = (iframe.contentWindow || iframe.contentDocument).console;
iframe.parentNode.removeChild(iframe);

Basecamp was under network attack

The attack detailed below has stopped (for the time being) and almost all network access for almost all customers have been restored. We're keeping this post and the timeline intact for posterity. Unless the attack resumes, we'll post a complete postmortem within 48 hours (so before Wednesday, March 26 at 11:00am central time).

Criminals have laid siege to our networks using what's called a distributed denial-of-service attack (DDoS) starting at 8:46 central time, March 24 2014. The goal is to make Basecamp, and the rest of our services, unavailable by flooding the network with bogus requests, so nothing legitimate can come through. This attack was launched together with a blackmail attempt that sought to have us pay to avoid this assault.

Note that this attack targets the network link between our servers and the internet. All the data is safe and sound, but nobody is able to get to it as long as the attack is being successfully executed. This is like a bunch of people

@couto
couto / tl-wn725n.md
Last active March 11, 2018 11:49
Install TL-WN725N on Raspbian

TL-WN725N (8188eu)

This was tested on the Raspbian wheezy (2014-01-07)

Update the system

apt-get update --fix-missing
apt-get upgrade
apt-get dist-upgrade