Skip to content

Instantly share code, notes, and snippets.

View ppcano's full-sized avatar

Pepe Cano ppcano

View GitHub Profile
@ppcano
ppcano / contacts.js
Created October 2, 2012 19:25
phongap cotnacts
var options = new ContactFindOptions();
options.filter="";
options.multiple=true;
var fields = ["name", "phoneNumbers"];
navigator.contacts.find(fields, onContactsSuccess, onContactsError, options);
@ppcano
ppcano / Article.md
Created December 11, 2012 10:29 — forked from Warry/Article.md
How to make faster scroll effects?

How to make faster scroll effects?

  • Avoid too many reflows (the browser to recalculate everything)
  • Use advanced CSS3 for graphic card rendering
  • Precalculate sizes and positions

Beware of reflows

The reflow appens as many times as there are frames per seconds. It recalculate all positions that change in order to diplay them. Basically, when you scroll you execute a function where you move things between two reflows. But there are functions that triggers reflows such as jQuery offset, scroll... So there are two things to take care about when you dynamically change objects in javascript to avoid too many reflows:

test("if a containerView appends a child in its didInsertElement event, the didInsertElement event of the child view should be fired once", function () {
var counter = 0,
root = Ember.ContainerView.create({});
var container = Ember.ContainerView.create({
didInsertElement: function() {
var view = Ember.ContainerView.create({
@ppcano
ppcano / store_adaper_test.js
Last active December 10, 2015 15:29
record.loadedData in Run.once async problem
asyncTest("Records loaded multiple times and retrieved in recordArray are ready to send state events", function() {
adapter.findQuery = function(store, type, query, recordArray) {
var self = this;
setTimeout(function() {
Ember.run(function() {
// use different recordArray based on the call
var recordArray = (!!people2) ? people2 : people;
@ppcano
ppcano / Assetfile.rb
Last active November 11, 2023 06:42
Precompile handlebars templates with rake-pipeline
input "app" do
match "templates/**/*.handlebars" do
filter HandlebarsPrecompiler
filter ConcatFilter, "apptmp.js"
filter AddMicroLoader, :global => true
filter AddHandlebarsDependencies
end
2013-03-27T17:47:39+00:00 heroku[router]: at=info method=HEAD path=/admin/ host=yoin-deploy.herokuapp.com fwd="204.93.223.151" dyno=web.1 connect=5ms service=43ms status=200 bytes=0
2013-03-27T17:47:43+00:00 app[web.1]: 18:47:43 celeryd.1 | [2013-03-27 18:47:43,523: WARNING/MainProcess] Traceback (most recent call last):
2013-03-27T17:47:43+00:00 app[web.1]: 18:47:43 celeryd.1 | [2013-03-27 18:47:43,524: WARNING/MainProcess] File "/app/.heroku/python/lib/python2.7/site-packages/gevent/greenlet.py", line 390, in run
2013-03-27T17:47:43+00:00 app[web.1]: 18:47:43 celeryd.1 | [2013-03-27 18:47:43,524: WARNING/MainProcess] result = self._run(*self.args, **self.kwargs)
2013-03-27T17:47:43+00:00 app[web.1]: 18:47:43 celeryd.1 | [2013-03-27 18:47:43,524: WARNING/MainProcess] accept_callback(pid or os.getpid(), time.time())
2013-03-27T17:47:43+00:00 app[web.1]: 18:47:43 celeryd.1 | [2013-03-27 18:47:43,524: WARNING/MainProcess] File "/app/.heroku/python/lib/python2.7/site-packages/celery/worker/job.py", line 301, in
@ppcano
ppcano / ConnectPlugin.java
Created March 28, 2013 14:44
Android FB Phonegap Plugin fix
package org.apache.cordova.facebook;
import java.util.Arrays;
import java.util.Date;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Set;
import org.apache.cordova.api.Plugin;
@ppcano
ppcano / test.js
Created April 21, 2013 11:26
example: Bindings/CP/observers
var bar, Bar;
module('Ember.Object compare Binding/CP/Observers', {
setup: function() {
},
teardown: function() {
var el1, el2,
hammer1, hammer2,
event;
module("Hammer Integration - Multiple Gestures", {
setup: function() {
el1= document.getElementById('toucharea1');
el2= document.getElementById('toucharea2');
hammer1 = new Hammer(el1);
hammer2 = new Hammer(el2);
#!/usr/bin/env node
var exec = require('child_process').exec,
rmdir = require('rimraf'),
outputPath = 'public';
rmdir(outputPath, function(error){