Skip to content

Instantly share code, notes, and snippets.

View gabro's full-sized avatar

Gabriele Petronella gabro

View GitHub Profile
@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
@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 / 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 / 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 / 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 / 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 / notify_build_result.sh
Last active October 22, 2015 04:47
Bambo <3 GitHub Status API
#!/bin/bash
GITHUB_API=https://api.github.com
AUTH_TOKEN= # GITHUB API TOKEN HERE
REPO= # REPO NAME HERE
URL=${bamboo.buildResultsUrl}
SHA=${bamboo.repository.revision.number}
SUCCESS_DESCRIPTION="The Bamboo CI build passed"
FAILURE_DESCRIPTION="Build #${bamboo.buildNumber} failed"
@gabro
gabro / gist:4322163
Created December 17, 2012 20:57
A parametric algebraic data type in Haskell
data UnionFindElement valueType =
RootElement valueType |
ElementWithParent valueType (UnionFindElement valueType)
deriving (Eq, Show)
@gabro
gabro / Money Chicago
Last active December 11, 2015 03:08
Money Chicago
var money =
"@people: luca gio dani gabro claudio jaja mike paolo\n"+
"@group: luca gio dani gabro claudio jaja\n"+
"@date: debiti e payback\n"+
"~Debiti (Dani 52.13 Luca 356.37 Gabro 13.18) claudio 309.88 gio 28.98 jaja 17.25 mike 64.51\n"+
"15 gio -> dani\n"+
"400 claudio -> gabro\n"+
"10 dani -> jaja\n"+
@gabro
gabro / user.js
Created February 27, 2013 22:45
node-example
var userSchema = new Schema(
fb_id : String,
firstName : String,
lastName : String,
messages : [{
content : String,
positive : Boolean,
author : User,
created_at : {type : Date, default : Date.now},
updated_at : {type : Date, default : Date.now}