This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"events": { | |
"title": "Say *what* the event will be covering. No need to mention the intiative or speaker names, usually.", | |
"shortTitle": "A shorter version of the above (only necessary if the above is longer than 26 characters)", | |
"description": "A sentence or two about *why* someone should come--what will they get out of the thing they learn.", | |
"details": "Exactly what attendees will make, what they should install in advance, how to get into the building, etc. (Does not include the speakers' bios, if any.)", | |
"startDateTime": "2014-09-24T22:00:00.000Z", | |
"endDateTime": "2014-09-25T00:00:00.000Z", | |
"rsvpUrl": "https://www.facebook.com/events/1498602387045198/", | |
"isInternal": false, |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
//maxlength inputs | |
$.webshims.ready('DOM forms', function() { | |
$('input[maxlength]').each(function(i, elem) { | |
var $elem = $(elem); | |
//1. Remove maxlength attribute and replace it with a data-maxlength so that the browser will let user type beyond the maximum, which is better usability, | |
// but then webforms will use a custom constraint to mark the field as invalid (even wihtout maxlength) if the user tries to leave it with a value that's too long | |
$elem.attr('data-maxlength', $elem.attr('maxlength')).removeAttr('maxlength'); | |
//2. Set up the character counter's HTML | |
$elem.add('label[for='+ $elem.attr('id') +']').wrapAll('<div class="input-maxlength wrapper" />') | |
.filter('label').append('<span class="remaining-chars help-text disabled">' + ($elem.attr('data-maxlength') - $elem.val().length) + '</span>'); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
//forms help text | |
jQuery(document).ready(function($) { | |
var forms = $('form'), className = 'visually-hidden'; | |
//hide all help-text and make links in help text untabbable (because the text itself is hidden) | |
$('.help-text:not(.help-text-group)', forms).addClass(className).find('a').attr('tabindex', '-1'); | |
//listen to any changes of focus within our forms (uses event delegation for speed) | |
forms.delegate("input, select, texarea, .tinymce", "focusin focusout", function(event) { | |
var $this = $(this), labelId, helpText; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"links": { | |
"presenters.currentEmployer": { | |
"type": "companies" | |
} | |
}, | |
"presenters": [{ | |
"twitterId": "20961134", | |
"name": "Jon Chan", |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"links": { | |
"venues.company": { | |
"type": "companies" | |
} | |
}, | |
"venues": { | |
"name":"Stack Exchange", | |
"kind":"company_office", |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"organizations": { | |
"name": "StackExchange", | |
"url": "http://stackexchange.com/", | |
"description": "StackExchange runs a network of amazing Q&A sites including StackOverflow." | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
[{"title":"Building Your First Web App","shortTitle":"Building Your 1st Web App","description":"An overview of the technologies required to make a web app.","details":"For people who may or may not know how to program, this event offers an overview of the different parts of a web app are and how they fit together. It will be followed by HTML & CSS workshops for designers looking to become productive frontend coders. Meanwhile, people looking to learn backend coding will be pointed to appropriate resources. By the end of the event, both technical and non-technical people will know how to get the skills required to contribute to a web app project a hackathon.","startDateTime":"2014-11-01T16:30:00.000Z","endDateTime":"2014-11-01T17:30:00.000Z","rsvpUrl":"https://www.facebook.com/events/1514033535502764/","modified":"2014-10-19T04:26:36.990Z","created":"2014-10-17T00:24:53.217Z","isPlaceholder":false,"id":"544061d56b0287336dfc51d4","links":{"venue":"53f54dd98d1e62ff12539dab","teams":["5440609d6b0287336dfc51cf","5 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Non tail recursive; will have a stack overflow. | |
function sum(list) { | |
if(list.length === 0) { | |
return 0; | |
} | |
return list[0] + sum(list.slice(1)); | |
} | |
// Naive tail recursive (ugly api) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** | |
* reducer :: a -> b -> a | |
* | |
* reduce :: Iterable f => (a -> b -> a) -> f b -> a -> a | |
* | |
* makeMappingTransducer :: (a -> b) -> (c -> b -> c) -> (c -> a -> c) | |
*/ | |
const makeMappingTransducer = (transformer) => (reducer) => { | |
return (acc, input) => reducer(acc, transformer(input)) | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Matches two double quotes and any characters between them, without stopping | |
// at backslash-escaped double quotes that appear in the middle. This is a lot | |
// like JS's string literal syntax, except that it will some match characters | |
// between the double quotes that JS would require be backslash escaped -- | |
// most notably, the newline, which must be \n in string literals. | |
// Note: we use [^] instead of . below to match any character because JS | |
// doesn't change the meaning of the dot even in the precense of the | |
// multiline flag. | |
const STRING_LITERAL_LIKE = /"([^"\\]|\\[^])*"/g; |
OlderNewer