More old hand-written notes
Touch Events
- Events
touchstart
touchmove
touchend
touchcancel
(vague)
- IE does it differently
- "stick with
click
" reliable
- really means "activate"
- sadly slow (300ms)
- chrome experiment (removing click delay)
- The event cascade
- anything but tap
- single tap
- IE quirk with
mouseout
event
- safari, if a content change occurs on
mouseover
or mouseout
, the rest of the event stack is canceled
- Separate events
- no touch-specific
focus
/ blur
- does every interaction class need its own set of events? "YES"
- Microsoft suggest merging pointer and touch
- new set of Microsoft events
-ms-touch-action: none
- Hover
- hover is an intent, might use later
- event info works, but coordinates are different
- use
changedTouches
- not in the MS model
Web components can do that?
- configuring things with meaningful tags with data though attributes
<x-miley>
<slideshow>
<img>
</slideshow>
- Polymer
- attributes customise
<select>
behaviour
- should work with other components
- change attribute callback for customer elements
- scoped styles
- new selectors to style shadow dom root ^ elem, root ^^ elems
- EVERYTHING is an element
You don't want an object
- Object
- messaging & late binding
- hidden state
- controllers should not be objects, they're stateless, no need to persist
- Having 1 user shouldn't limit us to 1 model
- "we do lots of things they don't care about"
- most 'models' are modules
- if modular, they are easy to unit test
- objects are bad at values
- streams (like gulp) properties
- keep an eye on the goal, not what you're working with
- check your assumptions
Bits Behind JSBin
- stream create() on JSBin
- debounced saving
- "spike.js" send only the panel that is updated
- Phonegap JSBin app
- if (res.connection.writable === false)
- upstart to keep it running
- need to be careful with how easy it is, don't get lazy
/Reg(exp){2}lained/
/^Reg(exp?|resessions)$/
- leaverou.github.io/regexplained
- matches cannot intersect
/a{5}/g
=> "aaaaa"
{5,}
at least 5
{5,8}
5-8 range
*
=> {0,}
+
=> {1,}
?
=> {0,1}
- qualifiers are greedy
.+?
is lazy instead of greedy
[]
any from
a-z
for range
\w
=> [a-z0-9A-Z_]
\d
=> [0-9]
\s
=> all whitespace
- can be used in range
/[^\w]
=> not in range
\W
= [^\w]
\D
= [^\d]
\S
= [^\s]
/w(tf|ft)/
wtf or wft
()
grouping
(?:
stops it being a capture group (eg $1
or \1
)
/^$/
beginning and end of string
/^$/m
beginning and end of line
\b
=> word boundary
/a(?=b)/
matches an a followed by a b
(?!
negative lookahead
- don't match for matching's sake
/('|").+?\1/g' matches a string,
\1` is an internal reference
- Keep It Simple Stupid
- don't be greedy
- don't forget anchors
- be as specific as possible
- use non-catching groups where possible