- Design Patterns & Architecture (MVC, MVVM, VIPER, Flux)
- REST, HTTP
- Functional Reactive Programming (ReactiveCocoa, ReactiveKit, RxSwift)
- Concurrency (GCD)
- Dependency Injection (Typhoon)
How To Walk A Jazz Bass Line | |
- Adam Neeley | |
youtube.com/watch?v=ruTfC5v9Z2Y | |
Arpeggiate the triad | |
Or at least play chord tones | |
On beats 1 and 3 (the strong beats) | |
Followed by notes from the key, or not from the key |
class CRC32 { | |
static var table: [UInt32] = { | |
(0...255).map { i -> UInt32 in | |
(0..<8).reduce(UInt32(i), { c, _ in | |
(c % 2 == 0) ? (c >> 1) : (0xEDB88320 ^ (c >> 1)) | |
}) | |
} | |
}() |
<?xml version="1.0" encoding="UTF-8" standalone="no"?> | |
<gpx xmlns="http://www.topografix.com/GPX/1/1" xmlns:gpxtpx="http://www.garmin.com/xmlschemas/TrackPointExtension/v1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" creator="Sports Tracker" version="1.1" xsi:schemaLocation="http://www.topografix.com/GPX/1/1 http://www.topografix.com/GPX/1/1/gpx.xsd http://www.garmin.com/xmlschemas/TrackPointExtension/v1 http://www.garmin.com/xmlschemas/TrackPointExtensionv1.xsd"> | |
<metadata> | |
<name>05.06.2016 15:09</name> | |
<author> | |
<name>Sean Buttinger</name> | |
</author> | |
<link href="www.sports-tracker.com"> | |
<text>Sports Tracker</text> | |
</link> |
<?xml version="1.0" encoding="UTF-8" standalone="no"?> | |
<gpx xmlns="http://www.topografix.com/GPX/1/1" xmlns:gpxtpx="http://www.garmin.com/xmlschemas/TrackPointExtension/v1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" creator="Sports Tracker" version="1.1" xsi:schemaLocation="http://www.topografix.com/GPX/1/1 http://www.topografix.com/GPX/1/1/gpx.xsd http://www.garmin.com/xmlschemas/TrackPointExtension/v1 http://www.garmin.com/xmlschemas/TrackPointExtensionv1.xsd"> | |
<metadata> | |
<name>06.06.2016 11:30</name> | |
<author> | |
<name>Sean Buttinger</name> | |
</author> | |
<link href="www.sports-tracker.com"> | |
<text>Sports Tracker</text> | |
</link> |
<?xml version="1.0" encoding="UTF-8"?> | |
<gpx xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:gpxdata="http://www.cluetrust.com/XML/GPXDATA/1/0" xmlns="http://www.topografix.com/GPX/1/0" xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/GPX/1/0/gpx.xsd http://www.cluetrust.com/XML/GPXDATA/1/0 http://www.cluetrust.com/Schemas/gpxdata10.xsd" version="1.0" creator="http://ridewithgps.com/"> | |
<author>RideWithGPS LLC</author> | |
<url>http://ridewithgps.com/routes/987058</url> | |
<time>2012-03-08T14:47:12Z</time> | |
<trk> | |
<name>East Coast Greenway, Florida to Maine</name> | |
<trkseg> | |
<trkpt lat="24.54678" lon="-81.79604"> | |
<ele>0.1</ele> |
<?xml version="1.0" encoding="UTF-8" standalone="no"?> | |
<gpx xmlns="http://www.topografix.com/GPX/1/1" xmlns:gpxtpx="http://www.garmin.com/xmlschemas/TrackPointExtension/v1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" creator="Sports Tracker" version="1.1" xsi:schemaLocation="http://www.topografix.com/GPX/1/1 http://www.topografix.com/GPX/1/1/gpx.xsd http://www.garmin.com/xmlschemas/TrackPointExtension/v1 http://www.garmin.com/xmlschemas/TrackPointExtensionv1.xsd"> | |
<metadata> | |
<name>25.09.2016 10:34</name> | |
<author> | |
<name>Sean Buttinger</name> | |
</author> | |
<link href="www.sports-tracker.com"> | |
<text>Sports Tracker</text> | |
</link> |
#!/usr/bin/env python | |
# cf. http://www.youtube.com/watch?v=RUuUoJzE11g&feature=youtu.be&t=16m20s | |
import random | |
class RandomPoem: | |
vowels = ['a', 'e', 'i', 'o', 'u'] | |
consonants = [chr(n) for n in xrange(ord('a'), ord('z')) if not chr(n) in vowels] |