Skip to content

Instantly share code, notes, and snippets.

@yemster
yemster / share-tool-lite.html
Created May 13, 2016 15:05
Lightweight share tool snippet for specific services
<script type="text/javascript">
// Create pop-up box to sharing destination
popOutSharer(t){
var e=600,
n=screen.width;
n>e&&(n=e);
var i=window.open(t,"name","height=200,width="+n);
return window.focus&&i.focus(),!1
}
// MINIFIED version :: popOutSharer(t){var e=600,n=screen.width;n>e&&(n=e);var i=window.open(t,"name","height=200,width="+n);return window.focus&&i.focus(),!1}

Are your Ruby HTTPS API calls secure?

Let's check:

2.0.0-p481 :001 > OpenSSL::SSL::SSLContext::DEFAULT_PARAMS
 => {:ssl_version=>"SSLv23", :verify_mode=>1, :ciphers=>"ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM:+LOW", :options=>-2147482625}
2.0.0-p481 :002 > rating = JSON.parse(RestClient::Resource.new("https://www.howsmyssl.com/a/check" ).get)['rating']
 => "Bad"
@yemster
yemster / IE9_fix_for_imagesLoaded_plugin_issue.js
Created December 30, 2011 10:01
IE9 + imagesLoaded() jQuery plugin cached image bug :: Fix
// *************
// Original plugin Gist: https://gist.github.com/268257
// Current repos: https://github.com/desandro/imagesloaded
// fix in response to: https://github.com/desandro/imagesloaded/issues/8
//
// In case this is useful to anyone.
// *************
/*!
<!DOCTYPE html>
<html>
<head>
<style>
/* How to select a range of children
* (Here, 3rd-7th children, inclusive):
*/
ul li:nth-child(n+3):nth-child(-n+7) {
outline: 1px solid #0f0;
}
@yemster
yemster / svg-ico-sprite-mixin.scss
Created March 1, 2017 09:39
Automate SVG Sprite Background Image Variations with a SCSS Mixin
/*
Automate SVG Sprite Background Image Variations with a SCSS Mixin
- see egghead.io video: https://egghead.io/lessons/css-automate-svg-sprite-background-image-variations-with-a-scss-mixin
• This utilises a sass mixing to generate the necessary code for the icons within the sprite
*/
$ico-width-default: 3em;
$ico-width-small: 2em;
$icons: plug, star, umbrella;
@yemster
yemster / module-boilerplate.js
Created October 5, 2017 15:52
Snippet / boilerplate or starting new modules / library closures. --// Parked here until I find a better home for it
MyModule = MyModule || {}
MyModule.Foo = (function() {
// declare private methods
var _myPrivateMethod = function() {
console.log('\t >>>>> I am a private method call <<<<<<')
}
// expose public methods
return {
myPublicMethod: function(someArgs) {
@yemster
yemster / opera-vpn.md
Created October 7, 2017 20:14 — forked from spaze/opera-vpn.md
Opera VPN behind the curtains is just a proxy, here's how it works

When setting up (that's immediately when user enables it in settings) Opera VPN sends few API requests to https://api.surfeasy.com to obtain credentials and proxy IPs, see below, also see The Oprah Proxy.

The browser then talks to a proxy de0.opera-proxy.net (when VPN location is set to Germany), it's IP address can only be resolved from within Opera when VPN is on, it's 185.108.219.42 (or similar, see below). It's an HTTP/S proxy which requires auth.

When loading a page with Opera VPN enabled, the browser sends a lot of requests to de0.opera-proxy.net with Proxy-Authorization request header.

The Proxy-Authorization header decoded: CC68FE24C34B5B2414FB1DC116342EADA7D5C46B:9B9BE3FAE674A33D1820315F4CC94372926C8210B6AEC0B662EC7CAD611D86A3 (that's sha1(device_id):device_password, where device_id and device_password come from the POST /v2/register_device API call, please note that this decoded header is from another Opera installation and thus contains

@yemster
yemster / random-string.js
Last active June 26, 2019 15:46
Random string generator in Javascript / nonce generator
/*
Generate a random string of a given length.
@params:
length: *required* - length of string to generate
kind: *optional* - character set or sets to use for string generation (default: 'aA#')
Available options
'a' => for lowercase alphabets [a-z]
'A' => for uppercase alphabets [A-Z]
'#' => numbers [0-9]
'!' => special character as defined
<!DOCTYPE html>
<html>
<head>
<title>Google Fonts Preview</title>
<style>
#preview {
margin: 0 auto;
text-align: center;
width: 80%;
}
@yemster
yemster / snapshotter.py
Created August 19, 2019 10:34 — forked from nguyendangminh/snapshotter.py
AWS EBS snapshotter
#!/usr/bin/env python
# Shameless copy from qwiklab
import boto.ec2, os, datetime
MAX_SNAPSHOTS = 2 # Number of snapshots to keep
# Connect to EC2 in this region
region = os.environ.get('EC2_REGION')
connection = boto.ec2.connect_to_region(region)