Skip to content

Instantly share code, notes, and snippets.

View ChrisLowe-Takor's full-sized avatar

Chris Lowe ChrisLowe-Takor

View GitHub Profile
extension Double {
var degreesToRadians: CGFloat {
return CGFloat(self) * CGFloat(M_PI) / 180.0
}
}
extension CLLocationCoordinate2D {
func distanceFromCoordinateInMeters(coordinate: CLLocationCoordinate2D) -> Double {
// Haversine forumla. https://en.wikipedia.org/wiki/Haversine_formula
@ChrisLowe-Takor
ChrisLowe-Takor / MGLMapView+Reactive.swift
Last active April 15, 2016 08:48
RxSwift reactive extension for MGLMapViewDelegate methods
import Foundation
import Mapbox
import RxCocoa
import RxSwift
import UIKit
class RxMGLMapViewDelegateProxy: DelegateProxy, MGLMapViewDelegate, DelegateProxyType {
import RxSwift
extension ObservableType {
func rateLimit(rate: NSTimeInterval) -> Observable<E> {
let scheduler = MainScheduler.sharedInstance
var lastEmit = NSDate()
return filter { _ in
return scheduler.now.timeIntervalSinceDate(lastEmit) > rate
}
@ChrisLowe-Takor
ChrisLowe-Takor / ClosureAsRxObservable.swift
Last active November 21, 2021 01:53
Creating an RxSwift Observable from a closure
// Say we have an Alamofire request we want to consume as an Observable..
func fooAsObservable(URL: String, headers: [String: AnyObject?]) -> Observable<Foo> {
return create { observer in
let request = Alamofire(.GET, URL, headers: headers
.responseJSON(completionHandler: { (_, _, result) in
switch result {
@ChrisLowe-Takor
ChrisLowe-Takor / ZipObservables.java
Created April 15, 2016 09:02
Android RxJava zip two observables
// Say you have two observables (Bar and Baz) you want to combine into a single output (Foo)
public Observable<Foo> combineObservables(Observable<Bar> barObservable, Observable<Baz> bazObservable) {
return Observable.zip(
barObservable,
bazObservable,
new Func2<Bar, Baz, Foo>() {
@Override
# Terminal color and style
export PS1="\[\033[36m\]\u:\[\033[33;1m\]\w\[\033[m\]\$ "
export CLICOLOR=1
export LSCOLORS=ExFxBxDxCxegedabagacad
# Aliases
alias ll='ls -alGFh'
alias gemlist='gem list | egrep -v "^( |$)"'
alias hist="history | grep -E -v '^ *[0-9]+ *h ' | grep "
@ChrisLowe-Takor
ChrisLowe-Takor / .html
Created December 6, 2018 04:48
React leaflet /public/index.html
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/normalize/7.0.0/normalize.min.css">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/leaflet/1.3.4/leaflet.css">
<link href="https://stackpath.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet">
<script src="https://cdnjs.cloudflare.com/ajax/libs/leaflet/1.3.4/leaflet.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/babel-standalone/6.26.0/babel.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/16.5.2/umd/react.production.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.5.2/umd/react-dom.production.min.js"></script>
@ChrisLowe-Takor
ChrisLowe-Takor / App.js
Created December 6, 2018 04:50
React leaflet basic map
import React, { Component } from 'react'
import { Map, TileLayer } from 'react-leaflet'
import ExampleComponent from 'react-leaflet-editable-circle'
export default class App extends Component {
render () {
return (
<div className="map">
<Map
import React, { Component } from 'react'
import { Map, TileLayer } from 'react-leaflet'
import ExampleComponent from 'react-leaflet-editable-circle'
export default class App extends Component {
render () {
return (
<div className="map">
<Map
.leaflet-container {
height: 100vh;
width: 100%;
}