Skip to content

Instantly share code, notes, and snippets.

Avatar
😎

Guilherme Simoes guilhermesimoes

😎
View GitHub Profile
@guilhermesimoes
guilhermesimoes / README.md
Last active Oct 18, 2015
JScript: Find small album covers
View README.md

JScript to find album covers that measure less than 1000x1000 px. Perfect for those who like to manage their large music libraries.

@guilhermesimoes
guilhermesimoes / gist:4595862
Last active Dec 11, 2015
Never remove CSS outlines
View gist:4595862

Quick Tip: Never remove CSS outlines

(Description) Removing CSS outlines without proper fallbacks can make it impossible to navigate your site with a keyboard.

Use of the rule :focus { outline: none; } results in the link or control being focusable but with no visible indication of focus for keyboard users. Even worse, methods to remove it such as onfocus="blur()" result in keyboard users being unable to interact with the link or control.

If you do not like the default focus outline that is displayed when a user clicks on an interactive element, you have 3 accessible solutions:

  1. Style the outline. Webkit browsers have a more prominent outline so you could try styling it to make it less obtrusive. Consider the use of a:focus { outline: thin dotted; } to normalize the look of the outline across browsers.
@guilhermesimoes
guilhermesimoes / detect-private-browsing.js
Created Dec 12, 2015 — forked from cou929/detect-private-browsing.js
Detect private browsing mode (InPrivate Browsing or Incognito).
View detect-private-browsing.js
function retry(isDone, next) {
var current_trial = 0, max_retry = 50, interval = 10, is_timeout = false;
var id = window.setInterval(
function() {
if (isDone()) {
window.clearInterval(id);
next(is_timeout);
}
if (current_trial++ > max_retry) {
window.clearInterval(id);
@guilhermesimoes
guilhermesimoes / README.md
Last active Mar 27, 2016 — forked from anonymous/gist:3267597
JScript: Find broken iTunes tracks
View README.md

JScript to find broken tracks that iTunes can no longer find. Perfect for those who like to manage their large music libraries.

@guilhermesimoes
guilhermesimoes / authentication.md
Last active Oct 15, 2016
How authentication should work (in my mind)
View authentication.md
Page / User State Logged Out Logged In
/public-page Go to /public-page Go to /public-page
/page-requiring-auth
  1. Redirect to /login
  2. After successful login redirect to /page-requiring-auth
Go to /page-requiring-auth
/login
  1. Go to /login
  2. After successful login redirect to /
Redirect to /
/logout Redirect to /
  1. Log out the user
  2. Redirect to /
@guilhermesimoes
guilhermesimoes / last_uri_path_benchmark.rb
Last active Nov 30, 2016
Ruby Benchmark: Determining the last part of a URI
View last_uri_path_benchmark.rb
# gem install benchmark-ips
require "benchmark/ips"
uri = "http://twitter.com/user/statuses/1234567891011121314"
Benchmark.ips do |x|
x.report("file.basename") { File.basename(uri) }
x.report("split('/').last") { uri.split("/").last }
@guilhermesimoes
guilhermesimoes / .block
Last active Feb 8, 2017
D3.js: Animating a pie chart
View .block
license: gpl-3.0
@guilhermesimoes
guilhermesimoes / loop_starting_at_index_one_benchmark.rb
Created Apr 7, 2017
Ruby Benchmark: Starting a loop at index 1
View loop_starting_at_index_one_benchmark.rb
# gem install benchmark-ips
require "benchmark/ips"
Benchmark.ips do |x|
x.report("range") { (1..100).each { |i| i } }
x.report("upto") { 1.upto(100).each { |i| i } }
x.report("times plus one") { 100.times { |i| i + 1 } }
@guilhermesimoes
guilhermesimoes / .block
Last active Apr 19, 2017 — forked from mbostock/.block
D3 V3 join & enter
View .block
license: gpl-3.0
@guilhermesimoes
guilhermesimoes / .block
Last active Aug 14, 2017
D3 V4 join & enter
View .block
license: gpl-3.0