Skip to content

Instantly share code, notes, and snippets.

View fabiosoft's full-sized avatar

Fabio Nisci fabiosoft

View GitHub Profile
fabiosoft / toggle_device_after_time.yaml
Last active September 22, 2022 22:11 — forked from derekoharrow/toggle_device_after_time.yaml
Home Assistant Blueprint to toggle a device after a period of time since state was set
name: Toggle device status after a period of time
description: "Once a device has been in a defined status for a period of time, toggle it's status"
domain: automation
name: Device
description: Which device to monitor and toggle?
fabiosoft / NSObject.m
Created May 4, 2022 13:57
Get all methods of an Objective-C class or instance
// Either in lldb:
(lldb) po [self _methodDescription]
//or in code:
@interface NSObject (Private)
- (NSString*)_methodDescription;
// Somewhere in the code:
name: Detect water and notify
description: detect 'moisture' device-class and if so execute an action.
domain: automation
name: Actions
description: Notifications or similar to be run. {{sensors}} is replaced with the names of sensors.
action: {}
fabiosoft / home_assistant_cam_ptz.yml
Created November 26, 2021 14:45
Add PAN/TILT/ZOOM to onvif, home assistant camera
# paste as a custom (manual) card in lovelace and replace all entities id
type: picture-glance
- entity: camera.cam_studio_profile_1
action: call-service
service: onvif.ptz
entity_id: camera.cam_studio_profile_1
pan: LEFT
fabiosoft / Tree -
Created September 26, 2021 17:17
Breadth first search
#Breadth first search
# Definition for a binary tree node.
# class TreeNode:
# def __init__(self, val=0, left=None, right=None):
# self.val = val
# self.left = left
# self.right = right
class Solution:
def isSameTree(self, p: TreeNode, q: TreeNode) -> bool:
from collections import deque
fabiosoft /
Last active September 26, 2021 20:50
Tree - Depth first search
def recursive_dfs(graph, source,path = []):
if source not in path:
if source not in graph:
# leaf node, backtrack
return path
for neighbour in graph[source]:
path = recursive_dfs(graph, neighbour, path)
return path
fabiosoft / FooterFix.m
Last active July 9, 2021 09:47
Create a UITableView Footer / Header With a Dynamic Height (using AutoLayout). All snippets must be implemented by a UIVIewController subclass
[super viewDidLayoutSubviews];
if (!self.tableView.tableFooterView){
UIView *footerView = (UIView /*you can replace with you concrete type*/ *)self.tableView.tableFooterView;
CGFloat width = self.tableView.bounds.size.width;
CGSize size = [footerView systemLayoutSizeFittingSize:UILayoutFittingCompressedSize];
if (footerView.frame.size.height != size.height) {
fabiosoft / AVPlayer_ViewController.swift
Last active January 7, 2021 10:21
AVPlayer Programmatically
import AVFoundation
class ViewController {
private var videoPlayer: AVPlayer?
private var playerItem: AVPlayerItem?
private var layer: AVPlayerLayer?
func viewDidAppear(_ animated: Bool) {
fabiosoft / gist:e16cebdd4c8b072281c559a9f992063b
Created August 28, 2020 18:41 — forked from srosenthal/gist:3adc0dafcdd3c55656bad7a4a8de9c91
Batch convert HEIC (iPhone) photos to JPEG, preserving creation dates
for i in *.heic; do sips -s format jpeg -s formatOptions best "${i}" --out "${i%heic}jpg" && touch -r "${i}" "${i%heic}jpg"; done
fabiosoft /
Last active October 30, 2019 09:40
Elegant ways to support equivalence ("equality") in Python classes
class Number:
def __init__(self, number):
self.number = number
def __eq__(self, other):
"""Overrides the default implementation"""
if isinstance(other, Number):