Skip to content

Instantly share code, notes, and snippets.

Oli Griffiths oligriffiths

Block or report user

Report or block oligriffiths

Hide content and notifications from this user.

Learn more about blocking users

Contact Support about this user’s behavior.

Learn more about reporting abuse

Report abuse
View GitHub Profile
View broccoli.js
class Plugin
{
shouldBuild() {
return this.inputs.hasChanges();
}
build() {
for (let input of this.inputs) {
input.readFileSync('path/to/file');
}
@oligriffiths
oligriffiths / ember-ember data.md
Last active Mar 2, 2018
Thoughts on removing ember data from ember
View ember-ember data.md

The problem

Ember currently ships with ember data, and it is assumed that you will be using ember data within your application. The getting started guides also make the same assumption, and introduce ember data, before even mentioning that one can return a POJO or a promise that returns a POJO, for example an ajax request.

This contributes to the cognitive load of "learning ember" and I believe contributes substantially to the "steep learning curve" associated with learning ember. Ember data is indeed, a relatively complex product, with at least 4 core concepts to learn (models, store, adapters, serializers). To make matters worse, if your API isn't a nicely structure JSON-API, you're in for a hard time whilst you naviagte the ember data documentation to work out what to do. All of this is unnecessary to a new adopter to ember, and is likely to scare them off the framework entirely.

Background

Whilst some colleagues of mine worke

@oligriffiths
oligriffiths / ember-tumblr-addons.md
Last active Jan 14, 2018
Ember.js addons we've been using at Tumblr
View ember-tumblr-addons.md
View controllers.application.js
import Ember from 'ember';
import RSVP from 'rsvp';
//Make object proxy for promise
const ObjectPromiseProxy = Ember.ObjectProxy.extend(Ember.PromiseProxyMixin);
/**
* Returns a computed property that combines all dependent
* promises into an RSVP hash, which when resolves, calls
@oligriffiths
oligriffiths / gist:5940720
Created Jul 6, 2013
Koowa default plugin
View gist:5940720
<?php
/**
* @version $Id$
* @package Nooku_Plugins
* @subpackage Koowa
* @copyright Copyright (C) 2007 - 2012 Johan Janssens. All rights reserved.
* @license GNU GPLv3 <http://www.gnu.org/licenses/gpl.html>
* @link http://www.nooku.org
*/
@oligriffiths
oligriffiths / gist:5940659
Last active Dec 19, 2015
Docman example plugin
View gist:5940659
<?php
/**
* @package Koowa.Plugin
* @subpackage Docman
*
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
defined('KOOWA') or die;
View DataTable
(function($){
var filters = {
int: function(value){return typeof parseInt(value) !== 'NaN' ? parseInt(value) : null},
float: function(value){return typeof parseFloat(value) !== 'NaN' ? parseFloat(value) : null},
string: function(value){return ['string','boolean','number'].indexOf(typeof value) !== -1 ? value+'' : null},
array: function(value){return typeof value === 'object' && value.constructor === Array ? value : null},
object: function(value){return typeof value === 'object' ? value : null}
}
View Git Remove Branches.sh
# Remove remote references that have been deleted
git fetch -p
# Remove local branches that have been merged
git branch --merged | grep -v master | xargs git branch -d
View facebook-authenticator.php
<?php
namespace Nooku\Component\Overrides;
use Nooku\Library;
use Nooku\Component\Users;
class UsersDispatcherAuthenticatorFacebook extends Library\DispatcherAuthenticatorAbstract
{
/**
* A redirect url
@oligriffiths
oligriffiths / cacheable.php
Last active Aug 29, 2015
A cachable model behavior for Nooku Platform
View cacheable.php
<?php
/**
* User: Oli Griffiths
* Date: 06/03/15
* Time: 09:53
*/
namespace Oligriffiths\Component\Foursquare;
use Nooku\Library;
You can’t perform that action at this time.