- https://atom.io/packages/autocomplete-emojis
- https://atom.io/packages/color-picker
- https://atom.io/packages/emmet
- https://atom.io/packages/es6-javascript
- https://atom.io/packages/file-icons
- https://atom.io/packages/highlight-selected
- https://atom.io/packages/jss-atom-snippets
- https://atom.io/packages/language-babel
- https://atom.io/packages/linter
@import '../mixins/responsive'; | |
.carousel { | |
&.is-fullscreen { | |
position: fixed; | |
z-index: 100; | |
top: 0; | |
left: 0; | |
bottom: 0; | |
right: 0; |
While attempting to explain JavaScript's reduce
method on arrays, conceptually, I came up with the following - hopefully it's helpful; happy to tweak it if anyone has suggestions.
JavaScript Arrays have lots of built in methods on their prototype. Some of them mutate - ie, they change the underlying array in-place. Luckily, most of them do not - they instead return an entirely distinct array. Since arrays are conceptually a contiguous list of items, it helps code clarity and maintainability a lot to be able to operate on them in a "functional" way. (I'll also insist on referring to an array as a "list" - although in some languages, List
is a native data type, in JS and this post, I'm referring to the concept. Everywhere I use the word "list" you can assume I'm talking about a JS Array) This means, to perform a single operation on the list as a whole ("atomically"), and to return a new list - thus making it much simpler to think about both the old list and the new one, what they contain, and
#!/usr/bin/env ruby | |
require 'open-uri' | |
require 'pathname' | |
require 'json' | |
def strip_hash(f) | |
ext = f.extname | |
if ext.include?("?") |
# Windows image file caches | |
Thumbs.db | |
ehthumbs.db | |
# Folder config file | |
Desktop.ini | |
# Recycle Bin used on file shares | |
$RECYCLE.BIN/ |
const isObject = value => value === Object(value) | |
const isArray = value => Array.isArray(value) | |
const isFile = value => value instanceof File | |
const makeArrayKey = (key) => { | |
if (key.length > 2 && key.lastIndexOf('[]') === key.length - 2) { | |
return key | |
} else { | |
return key + '[]' | |
} | |
} |
var T2 = (()=>{ | |
// todo: mixins collection | |
class Foo { | |
foo () { | |
this.__super(); | |
console.log(this.bar()); | |
} | |
bar() {console.log('bar')} | |
} |
html { | |
font-family: sans-serif; | |
-ms-text-size-adjust: 100%; | |
-webkit-text-size-adjust: 100% | |
} | |
body { | |
margin: 0 | |
} |
{ | |
// http://eslint.org/docs/rules/ | |
"ecmaFeatures": { | |
"binaryLiterals": false, // enable binary literals | |
"blockBindings": false, // enable let and const (aka block bindings) | |
"defaultParams": false, // enable default function parameters | |
"forOf": false, // enable for-of loops | |
"generators": false, // enable generators | |
"objectLiteralComputedProperties": false, // enable computed object literal property names |
@charset "UTF-8"; | |
html{ | |
font-family:"PT Serif", Georgia, serif; | |
font-size:100%; | |
line-height:1.6; | |
background:#fff; | |
color:#000; | |
-webkit-overflow-scrolling:touch; } | |
body{ |