Presenter: Jay Phelps (@_jayphelps)
- Jay Phelps
- Senior Software Engineer
- InfoSec
- Preventing unauthorized access
- Stopping hackers
- Can block exploits using their gateway proxy
- They need to know if it's working
| // Variables used by Scriptable. | |
| // These must be at the very top of the file. Do not edit. | |
| // icon-color: light-gray; icon-glyph: link; | |
| // share-sheet-inputs: url; | |
| // Set up constants, pull link from Widget parameter | |
| const link = args.widgetParameter | |
| const title = "Copied!" | |
| const widgetText = "Copy Link" |
| var createFocusTrap = require('../../'); | |
| var containerOne = document.getElementById('demo-one'); | |
| var focusTrapOne = createFocusTrap('#demo-one', { | |
| onDeactivate: function () { | |
| containerOne.className = 'trap'; | |
| }, | |
| }); | |
| document.getElementById('activate-one').addEventListener('click', function () { |
| // Name of layer to copy | |
| var sourceLayerName = "Card", | |
| url = NSURL.URLWithString("file:///Users/ryan/Downloads/Test.sketch") | |
| if( true ) { | |
| var sourceDoc = MSDocument.new() | |
| if(sourceDoc.readFromURL_ofType_error(url, "com.bohemiancoding.sketch.drawing", nil)) { | |
| var allChildren = sourceDoc.pages().valueForKeyPath("@distinctUnionOfArrays.children") | |
| // ######################################### | |
| // protocols/listlike.jsx | |
| // ######################################### | |
| import { Root, Children, conforms, ProtocolStyle } from 'style-protocol' | |
| import Listable from 'protocols/listable' | |
| export default class Listlike extends HierarchyProtocol { | |
| hierarchy() { | |
| return ( | |
| <Root> |
| /* | |
| (TEXT) PARAMS | |
| ================= | |
| 1. Namespace | |
| 2. Intensity | |
| 3. Text color | |
| 4. Background color (flat) | |
| 5. Highlight #1 color | |
| 6. Highlight #2 color | |
| 7. Width (px) |
| @mixin spring($selector, $name, $duration, $delay, $location, $spring) { | |
| // Set Defaults | |
| $selector: ".spring" !default; | |
| $location: 0,0,0 !default; | |
| $name: "spring" !default; | |
| $duration: 1s !default; | |
| $delay: 0s !default; | |
| $spring: 0.1 !default; | |
| // Set selector to use animation |
| %divider { | |
| &:after, &:before { | |
| display: block; | |
| position: absolute; | |
| } | |
| &:after { | |
| text-transform: none; | |
| text-shadow: none; | |
| @include rem(font-size, 12px); | |
| text-align: center; |
| angular.module('$app.directives') | |
| .directive 'showAfterEvent', ['$timeout', ($timeout)-> | |
| return { | |
| link: (scope, element, attrs) -> | |
| eventName = attrs.showAfterEvent | |
| element.css 'opacity', 0 | |
| element.bind eventName, (e) -> |
| // Ryan Gonzalez 7/2013 | |
| // Adapted from the blog post | |
| // http://phaistonian.pblogs.gr/expanding-textareas-the-easy-and-clean-way.html | |
| angular.module('autoresize', []); | |
| angular.module('autoresize') | |
| .directive('autoresize', function($window){ | |
| 'use strict'; | |
| return { |