-
Open a browser
# start an instance of firefox with selenium-webdriver driver = Selenium::WebDriver.for :firefox # :chrome -> chrome # :ie -> iexplore
- Go to a specified URL
| // iOS Media Queries | |
| // Goal: capture styles for iPhone, iPhone 3G, iPhone 3GS, iPhone 4, iPhone 4S, iPad, and iPad 2 | |
| // | |
| // Author: Tony Schneider (@tonywok) | |
| // Please tell me where I fail. :) | |
| // iPhone v(4,4S) portrait | |
| // test: black text (overwritten by v* portrait) with blue background | |
| @media all and (-webkit-min-device-pixel-ratio: 2) and (orientation: portrait) { | |
| a { |
| require 'rubygems' | |
| require 'dnsimple' | |
| DNSimple::Client.username = '[email protected]' | |
| DNSimple::Client.password = 'd34thst4r' | |
| DNSimple::Client.debug = false | |
| user = DNSimple::User.me | |
| puts "#{user.domain_count} domains" |
| // if you have a link in your HTML that points to a sound: <a href="http://soundcloud.com/matas/hobnotropic">My Track</a> | |
| // it will convert them to our new HTML5 widgets | |
| $('a[href*="soundcloud.com"]').each(function(){ | |
| var $link = $(this); | |
| $.getJSON('http://soundcloud.com/oembed?format=js&url=' + $link.attr('href') + '&iframe=true&callback=?', function(response){ | |
| $link.replaceWith(response.html); | |
| }); | |
| }); |
| $sprites: sprite-map("sprites/*.png"); | |
| $sprites-retina: sprite-map("sprites-retina/*.png"); | |
| @mixin sprite-background($name) { | |
| background-image: sprite-url($sprites); | |
| background-position: sprite-position($sprites, $name); | |
| background-repeat: no-repeat; | |
| display: block; | |
| height: image-height(sprite-file($sprites, $name)); | |
| width: image-width(sprite-file($sprites, $name)); |
| #!/usr/bin/env ruby | |
| # -*- coding: utf-8 -*- | |
| require 'rubygems' | |
| require 'json' | |
| require 'time' | |
| require 'date' | |
| require 'mongo' | |
| require 'pp' | |
| MONGO_HOST = ENV["MONGO_HOST"] |
| module Freckle | |
| module Date | |
| class << self | |
| def parse(string) | |
| raw = string.to_s.strip | |
| return nil if raw.empty? | |
| begin | |
| # reverse order if we encounter "European" formatting |
| # Thee will be more information here when I share the entire problem space I'm working on, but | |
| # in short, this is preview material for my second talk in a series called "What Computer Scientists Know". | |
| # The first talk is on recursion, and goes through several examples., leading up to a problem based | |
| # on a simple puzzle that initial estimates based on performance of a previous puzzle would take years | |
| # to solve on modern computers with the techniques shown in Ruby. That sets the stage for improving the | |
| # performance of that problem with threading, concurrency, and related tuning. | |
| # | |
| # The second talk is on threading and concurrency, touching on algorithmic performance as well. | |
| # Using some knowledge of the problem (board symmetry, illegal moves, etc), we reduce the problem space | |
| # to about .5% of what we initially thought it was. Still, the initial single threaded solution took more |
All of the below properties or methods, when requested/called in JavaScript, will trigger the browser to synchronously calculate the style and layout*. This is also called reflow or layout thrashing, and is common performance bottleneck.
Generally, all APIs that synchronously provide layout metrics will trigger forced reflow / layout. Read on for additional cases and details.
elem.offsetLeft, elem.offsetTop, elem.offsetWidth, elem.offsetHeight, elem.offsetParent