Skip to content

Instantly share code, notes, and snippets.

View eneko's full-sized avatar
💻

Eneko Alonso eneko

💻
View GitHub Profile
@eneko
eneko / iPhone-releases.md
Last active October 8, 2020 11:53
List of iPhone releases

iPhone line

  • 2007 - iPhone
  • 2008 - iPhone 3G
  • 2009 - iPhone 3GS
  • 2010 - iPhone 4 (new design)
  • 2011 - iPhone 4s
  • 2012 - iPhone 5 (new design)
  • 2013 - iPhone 5s and iPhone 5c
  • 2014 - iPhone 6 and iPhone 6 Plus (new design)
  • 2015 - iPhone 6s and iPhone 6s Plus
@eneko
eneko / iPad-releases.md
Last active May 19, 2020 14:33
List of iPad releases

iPad (all)

  • 2010 - iPad
  • 2011 - iPad 2
  • 2012 - iPad (3rd generation)
  • 2012 - iPad Mini
  • 2012 - iPad (4th generation)
  • 2013 - iPad Air
  • 2013 - iPad Mini 2
  • 2014 - iPad Mini 3
  • 2014 - iPad Air 2
@eneko
eneko / gp.fish
Created May 19, 2020 17:46
Fish function to pull latest code from remote and remove merged local branches
function gp
echo "Pulling latest code..."
git pull
git pull --tags -f
echo "\nDeleting local branches that were removed in remote..."
git fetch -p
git branch -vv | awk '/: gone]/{print $1}' | xargs git branch -D
echo "\nRemaining local branches:"
git branch -vv
end
@eneko
eneko / ArrayProduct.swift
Last active June 3, 2020 21:53
Cartesian product of arrays
// Cartesian product of two arrays
func * <U, V>(lhs: [U], rhs: [V]) -> [(U, V)] {
lhs.flatMap { left in
rhs.map { right in
(left, right)
}
}
}
print([1, 2, 3] * ["a", "b"])
@eneko
eneko / IndirectProposal.md
Last active June 15, 2020 16:12
Proposal for 'indirect' modifier keyword for struct properties

Proposal for indirect modifier for struct properties

Introduction

Add support for indirect modifier keyword for struct properties

@eneko
eneko / dealloc-breakpoint.md
Last active January 3, 2024 02:24
Xcode UIViewController dealloc breakpoint

Xcode deinit breakpoint for UIViewController

This breakpoint provides an easy way to track view controller deinitialization (deallocation) in UIKit-based applications. This can help finding memory leaks caused by retain cycles preventing view controllers from being deinitialized when dismissed or popped.

From Cédric Luthi's tweet in 2017:

Useful Xcode breakpoint. When you dismiss a controller and you don’t hear the pop sound (or see the log), you probably have a retain cycle.

@eneko
eneko / hello.json
Created October 16, 2020 19:31
JSON Example
{
"hello": "world"
}
function ll
command ls -lashG $argv
end
function xcodeclean
echo "Cleaning Xcode Derived Data folder..."
command rm -frd ~/Library/Developer/Xcode/DerivedData/*
echo "Cleaning Xcode caches folder..."
command rm -frd ~/Library/Caches/com.apple.dt.Xcode/*
end
@eneko
eneko / LRUCacheActor.swift
Last active October 7, 2022 11:54
Thread-safe, ordered-dictionary-backed, actor-based LRU cache
//
// LRUCacheActor.swift
// LRUCacheActor
//
// Created by Eneko Alonso on 9/5/21.
//
import Foundation
import OrderedCollections