Pure JavaScript Zoom and Pan, taken from http://phrogz.net/tmp/canvas_zoom_to_cursor.html
A Pen by TechSlides on CodePen.
| image: python:3.8.3 | |
| # pipeline stages definitions | |
| test: &test | |
| step: | |
| name: test | |
| caches: | |
| - pip | |
| script: | |
| - python --version |
| plugins { | |
| id "org.jetbrains.intellij" version "0.2.15" | |
| id "maven" | |
| id "de.undercouch.download" version "3.2.0" | |
| } | |
| task setupPycharm() { | |
| if (!new File('.gradle/ide').exists()){ | |
| download { | |
| src 'https://download.jetbrains.com/python/pycharm-professional-2017.2.tar.gz' | |
| dest '.gradle/downloads/py.tar.gz' |
Pure JavaScript Zoom and Pan, taken from http://phrogz.net/tmp/canvas_zoom_to_cursor.html
A Pen by TechSlides on CodePen.
| for i in *.pdf; do basename="${i%.*}"; sips -s format png -s dpiWidth 300 -s dpiHeight 300 --resampleWidth 1500 ${basename}.pdf --out ${basename}.png; done |
| // | |
| // main.swift | |
| // Chapter2 | |
| // | |
| // Created by Erica Sadun on 7/2/15. | |
| // Copyright © 2015 Erica Sadun. All rights reserved. | |
| // | |
| import Foundation |
| struct Semaphore { | |
| let semaphore: dispatch_semaphore_t | |
| init(value: Int = 0) { | |
| semaphore = dispatch_semaphore_create(value) | |
| } | |
| // Blocks the thread until the semaphore is free and returns true | |
| // or until the timeout passes and returns false |
| import Foundation | |
| extension String | |
| { | |
| var length: Int { | |
| get { | |
| return countElements(self) | |
| } | |
| } | |