Skip to content

Instantly share code, notes, and snippets.

View foxnewsnetwork's full-sized avatar

Thomas Chen foxnewsnetwork

View GitHub Profile
@foxnewsnetwork
foxnewsnetwork / exposition.markdown
Created September 5, 2015 23:54
Elixir application module attributes production loading

The setup

In my Elixir phoenix web app, I have a plug which handles requests made to an internal endpoint which forbids access to all users without a proper authorization in the request header.

Sounds simple right? Well it is, the below is my plug. It checks if the incoming request has a "simwms-master-key" field, and passes all users who have that key.

import Ember from 'ember';
export default Ember.Controller.extend({
queryParams: [{
ctrl: {
type: 'string'
}
}]
});
@foxnewsnetwork
foxnewsnetwork / controllers.application.js
Created June 13, 2019 16:31
TestQueriablePossibility
import Ember from 'ember';
export default Ember.Controller.extend({
appName: 'Ember Twiddle'
});
@foxnewsnetwork
foxnewsnetwork / browse.collection.index.template.hbs
Created May 8, 2019 00:06
Alternative-Proposal-to-TTI-Measurement
<h2>
browse/collection/index/template.hbs
</h2>
{{outlet}}
@foxnewsnetwork
foxnewsnetwork / controllers.application.js
Created May 1, 2019 19:37
Testing-Redirect-Duration-Blank-Ember
import Ember from 'ember';
export default Ember.Controller.extend({
appName: 'Ember Twiddle',
redirectDuration: Ember.computed("redirectBefore", "transitionStart", {
get() {
return this.get('transitionStart') - this.get('redirectBefore')
}
})
@foxnewsnetwork
foxnewsnetwork / controllers.application.js
Created November 19, 2018 20:27
Each with iterator generators
import Ember from 'ember';
function* range(start=0, end=5, step=1) {
for (let i = start; i < end; i += step) {
yield i;
}
}
export default Ember.Controller.extend({
appName: 'Ember Twiddle',
@foxnewsnetwork
foxnewsnetwork / controllers.application.js
Created November 16, 2018 00:58
Nondestructive Pagination
import Ember from 'ember';
import MixerGames from '../data/mixer-games';
export default Ember.Controller.extend({
appName: 'Ember Twiddle',
MixerGames,
start: 0,
perPage: 5,
lastPage: Ember.computed("perPage", {
get() {
@foxnewsnetwork
foxnewsnetwork / controllers.application.js
Last active October 24, 2018 16:39
RSVP rejection window error
import Ember from 'ember';
export default Ember.Controller.extend({
appName: 'Ember RSVP rejection demo',
actions: {
die() {
Ember.RSVP.reject("blah blah")
},
swallow() {
@foxnewsnetwork
foxnewsnetwork / controllers.application.js
Created October 19, 2018 20:58
Ember Error Routing Experiments
import Ember from 'ember';
export default Ember.Controller.extend({
appName: 'Ember Twiddle'
});
@foxnewsnetwork
foxnewsnetwork / adventures-in-reasonml-js-api-typing.md
Last active September 12, 2018 16:19
ReasonML JavaScript API Bindings for Union Types

Problem Background

Recently, I've been trying to experiment with using ReasonML in production, however, this generally involves writing bindings to existing libraries... and unfortunately, some of these libraries expose extremely difficult to type interfaces; consider trying to wrap the following getUserInfo function (written in typescript for illustration purposes):

type xInfo = {
    info: string,
    message: string
};