Skip to content

Instantly share code, notes, and snippets.

View gabro's full-sized avatar

Gabriele Petronella gabro

View GitHub Profile

Keybase proof

I hereby claim:

  • I am gabro on github.
  • I am gabro (https://keybase.io/gabro) on keybase.
  • I have a public key ASBZl9AJO-rUEOoKZ98kEhpqYfcs3vlfuC1DA_bwE0FdRgo

To claim this, I am signing this object:

@gabro
gabro / 0_reuse_code.js
Created July 6, 2016 08:58
Here are some things you can do with Gists in GistBox.
// Use Gists to store code you would like to remember later on
console.log(window); // log the "window" object to the console
@gabro
gabro / AssetPicker.swift
Created November 2, 2015 10:07
A block-based asset picker for videos, photos and files
import Photos
import MobileCoreServices
class AssetPicker: NSObject, UIImagePickerControllerDelegate, UINavigationControllerDelegate, UIDocumentPickerDelegate, UIDocumentMenuDelegate {
static let sharedInstance = AssetPicker()
private lazy var cameraPicker: UIImagePickerController = {
let cameraPicker = UIImagePickerController()
@gabro
gabro / FreeConsultations.scala
Last active September 24, 2015 10:35
Learning the Free monad with cats
package project
import cats._
import cats.free.Free
object Main extends App {
import Algebra._
import ConsultationOp._
val c = Consultation(_id = "123", title = "A consultation")
@gabro
gabro / boom.scala
Last active September 4, 2015 16:22
Subtle scala quirk with implicit conversions
@ "42".toInt
res0: Int = 42
@ implicit object Foo extends Function1[String, Int] {
def apply(s: String) = s.toInt
}
defined object Foo
@ "42”.toInt
// BOOM (infinite recursion)
@gabro
gabro / modalValueProducer.swift
Last active August 29, 2015 14:27
UIViewController producing values. Example of editing a profile section with a modal interaction, which can produce a new Patient
// Create a ViewController automatically wrapped in a UINavigationController
// returns the viewController and a Signal<Patient, NoError>
let (profileVC, signal) = EditPersonalInfoViewController.wrappedInNavigationController(patient: patient)
// observe the signal. When a new Patient is produced, update the view
// dismiss the view controller whenever the signal is completed (i.e. modifications have been saved or interaction has been canceled)
signal.observe(next: reloadViewForPatient, completed: dismissViewController)
// let the game being
self.presentViewController(profileVC, animated: true, completion: nil)
@gabro
gabro / uvc_swizzle.swift
Created July 17, 2015 09:41
Handle viewWillTransitionToSize across all `UIViewController`s
// UIViewController+BackgroundStatusBar.swift
// hailadoc-ios
//
// Created by Gabriele Petronella on 7/16/15.
// Copyright (c) 2015 buildo. All rights reserved.
//
import Foundation
extension UIViewController {
@gabro
gabro / ReactiveCocoa.podspec
Created July 10, 2015 14:46
ReactiveCocoa v3.0-beta.9 Podspec
Pod::Spec.new do |s|
s.name = "ReactiveCocoa"
s.version = "3.0-beta.9"
s.summary = "A framework for composing and transforming streams of values"
s.description = <<-DESC
ReactiveCocoa (RAC) is an Objective-C framework for Functional Reactive Programming. It provides APIs for composing and transforming streams of values.
DESC
s.homepage = "https://github.com/ReactiveCocoa/ReactiveCocoa"
s.license = "MIT"
@gabro
gabro / statusbar_snippet.swift
Created June 29, 2015 17:39
colored status bar
// let's create our status bar background view
let statusBar = UIView()
// set the navigation bar color to white (assuming `navController` is our `UINavigationController`)
navController.navigationBar.barTintColor = UIColor.whiteColor()
// turn off the autoresizing mask, since we're using autolayout
statusBarBg.setTranslatesAutoresizingMaskIntoConstraints(false)
// set a background color for the status bar
API.cancelConsultation(consultation._id)
|> showHUDOnStart(status: "canceling consultation")
|> showHUDOnSuccessAndError
|> start()