Skip to content

Instantly share code, notes, and snippets.

Recipe = DS.Model.extend
title: DS.attr('string')
steps: DS.hasMany('step', {async: true})
Step = DS.Model.extend
substeps: DS.hasMany('substep', {async: true})
Substep = DS.Model.extend()
import TokenAuth from 'appkit/lib/token-auth';
export default {
name: "token-auth",
before: "store",
initialize: function(container, application) {
application.register('auth:main', TokenAuth);
application.inject('controller', 'auth', 'auth:main');
var TokenAuth = Ember.Object.extend({
accessToken: $.cookie('accessToken'),
serverTokenEndpoint: 'http://api.lvh.me:3000/oauth/token/',
init: function() {
if(this.isAuthenticated) {
DS.RESTAdapter.reopen({
headers: {
"Authorization": "Bearer " + this.accessToken
}
});
<UITableViewCell: 0x12a4c3e0; frame = (0 44; 300 44); autoresize = W; layer = <CALayer: 0x12a4c370>>\n | <UITableViewCellContentView: 0x12a4c510; frame = (0 0; 300 44); gestureRecognizers = <NSArray: 0x12a4c770>; layer = <CALayer: 0x12a4c570>>\n | | <PXUITextField_InsetTextField: 0xb158f00; baseClass = UITextField; frame = (0 0; 300 44); clipsToBounds = YES; opaque = NO; gestureRecognizers = <NSArray: 0xb1595b0>; layer = <CALayer: 0xb159080>>"
@joshsmith
joshsmith / categories
Last active December 17, 2015 11:49
Categories
Analytics
Ask Lifestyle.io
Consulting / Freelancing
Design
Entrepreneurship
Failure Stories
Feedback
Growth Hacking
Health
Hiring

Usability Checklist

User Experience

  • Personalized features. Currency, language, country specific deals, taxes, or delivery options are changed based on user's location.
  • Registering provides value to users. For example a "Free Trial" button communicates a clear benefit, but a "Register" button doesn't. Unnecessary registration is avoided.
  • Transparent pricing. Prices are clearly displayed. There are no hidden costs or surprises in the terms.
  • Pages don't refresh automatically. Users can get confused if new content is uploaded suddenly, for example on news websites.
  • Sample content. For example there is a sample newsletter next to a newsletter sign up form.

How We Bootstrapped a $20K Website into a $4M/year Business

APRIL 17, 2013 4:40 PM \ LEAVE A COMMENT \ MYCLEAN When MyClean started 3 years ago, we did everything the hard way. The founders of our company are all non-technical – our CEO is a former derivatives salesman – and other founders had backgrounds in marketing and finance. We outsourced design and development for a cleaning website that allows customers to book appointments online, semi-automates scheduling, and emails cleaners their schedule. Until we hired a product manager a few months ago, there wasn’t a single full-time employee or founder who knew how to write HTML or open a .PSD. Using this simple platform from 3 years ago – the design hasn’t even been changed since then – we’ve bootstrapped our business into something to be proud of. Long story short – we hustled, cleaned and persevered.

Things were never easy. When our server crashed, we called our out-sourced developer in Canada and prayed he wasn’t at the movies with his girlfriend. When

@joshsmith
joshsmith / media.sass
Created March 30, 2013 22:59
@media query mixins for .sass
$mq-mobile-portrait : 320px !default
$mq-mobile-landscape : 480px !default
$mq-tablet-portrait : 768px !default
$mq-tablet-landscape : 1024px !default
$mq-desktop : 1382px !default
// Both portrait and landscape
=mobile-only
@media (max-width : $mq-mobile-landscape)
@content
@joshsmith
joshsmith / social-icons-footer.html
Created March 25, 2013 16:20
tables, tables, tables
/*
On OS X, basic text manipulations (left, right, command+left, etc) make use of the system key bindings,
and don't need to be repeated here. Anything listed here will take precedence, however.
*/
[
{ "keys": ["super+shift+n"], "command": "new_window" },
{ "keys": ["super+shift+w"], "command": "close_window" },
{ "keys": ["super+o"], "command": "prompt_open" },
{ "keys": ["super+shift+t"], "command": "reopen_last_file" },
{ "keys": ["super+alt+up"], "command": "switch_file", "args": {"extensions": ["cpp", "cxx", "cc", "c", "hpp", "hxx", "h", "ipp", "inl", "m", "mm"]} },